optimization - 这种简单优化的机器学习算法是什么?

标签 optimization machine-learning linear-programming

关闭。这个问题是off-topic .它目前不接受答案。












想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。

9年前关闭。




Improve this question




我将制定一个我想用机器学习(在 R 或类似平台中)解决的简单问题:我的 算法 需要 3个参数 (a,b,c),并返回 评分 s 在 [0,1] 范围内。参数都是分类的:a 有 3 个选项,b 有 4 个,c 有 10 个。
因此我的数据集有 3 * 4 * 10 = 120 个案例。
高分是可取的(接近 1),低分不是(接近 0)。
让我们把算法当作一个黑盒子,取 a,b,c 并返回一个 s。

数据集如下所示:

a, b, c, s
------------------
a1, b1, c1, 0.223
a1, b1, c2, 0.454
...

如果我为每个参数绘制 s 的密度,我会得到非常宽的分布,在某些情况下表现非常好 (s > .8 ),其他情况很差 (s < .2 )。

如果我查看 s 非常高的情况,我看不到任何清晰的模式。
整体表现不佳的参数值与特定参数组合时表现非常好,反之亦然。

为了衡量特定值的表现(例如 a1),我计算了中位数:
median( mydataset[ a == a1]$s )

例如,中值(a1)=.5,中值(b3)=.9,但是当我将它们组合起来时,得到的结果 s(a_1,b_3)= .3。
另一方面,中值(a2)=.3,中值(b1)=.4,但s(a2,b1)= .7。

鉴于没有总是表现良好的参数值,我想我应该寻找似乎在统计上表现良好的(2 个参数的)组合,以具有统计意义的方式(即排除碰巧具有非常高分数的异常值)。
换句话说,我想获得一个策略来做出最佳参数选择,例如表现最好的组合是 (a1,b3)、(a2,b1) 等。

现在,我猜这是一个可以使用机器学习解决的优化问题。

在这种情况下,您会推荐哪些标准技术?

编辑:有人提出了一个线性规划解决方案 glpk ,但我不明白如何将线性规划应用于这个问题。

最佳答案

这个问题最标准的技术是线性回归。您可以预测特定参数的值;更一般地 - 获得在您的 3 个参数上为您提供最大值的函数

关于optimization - 这种简单优化的机器学习算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9809282/

相关文章:

python - 将 GEKKO 与 MINLP 求解器结合使用时如何知道方程的最大数量

algorithm - 折叠背包,容量变化是根据选择的元素而不是数量

optimization - 在 Julia/JuMP 中使用 2 个迭代器进行循环

c++ - 对于 { A=a;乙=乙; }, "A=a"会在 "B=b"之前严格执行吗?

c - 如何解决涉及重叠对的问题以及使用哪种数据结构

python - 在 Python 中对导数有约束的多项式的最小二乘近似

c++ - 我的分类神经网络存在逻辑问题

machine-learning - 如何在keras中将词嵌入和softmax权重结合起来?

python - Pandas 不进口吗? 'NameError: global name ' pandas'未定义'

python - 通过Gurobi Python添加变量和约束的有效方法,无需枚举所有元素