4

我将制定一个我想用机器学习(在 R 或类似平台中)解决的简单问题:我的算法采用3 个参数(a、b、c),并返回[0,1] 范围内的分数s . 参数都是分类的:a 有 3 个选项,b 有 4 个,c 有 10 个。因此我的数据集有 3 * 4 * 10 = 120 个案例。高分是可取的(接近 1),低分不是(接近 0)。让我们将算法视为一个黑匣子,取 a,b,c 并返回 a 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的线性规划解决方案,但我不明白如何将线性规划应用于这个问题。

4

1 回答 1

1

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

于 2012-03-22T12:42:36.463 回答