【发布时间】:2017-06-19 21:10:01
【问题描述】:
我将 3 个不同指标的分数组合成一个权重,我想使用 scipy 的优化来确定组合时权重的最佳系数(而不是平等对待它们并取平均值,这就是我以前做的)。下面代码中显示的 CV 函数处理实现交叉验证和计算反应的预测(其中反应只是“喜欢”或“不喜欢”)。
weight = A*(metric1) + B*(metric2) + C*(metric3)
prediction = CV(post, reaction, weight)
我想最大化我的accuracy,或最小化1 - accuracy,其中accuracy = accuracy_score(reaction, prediction)。我查看了 scipy 优化/最小化的文档,虽然我理解了一般想法,但我不确定如何将我的想法转化为实际代码。例如,一个令人困惑的领域是我想最小化“1-accuracy”,但准确性是由前面处理预测的部分决定的。任何帮助将不胜感激,并且一如既往,代码将非常有帮助:)
【问题讨论】:
-
(1) 从目前的形式来看,这个问题看起来更像是一个关于你的 CV 实现的问题,而不是 scipy (2) 它有点隐藏了你如何做 CV 以及如何在这里使用它,但你的优化必须永远不要在验证集上完成,只在训练集或 CV 失败的目的上完成。所以它再次高度依赖于你的简历程序。 (3) 我不确定优化准确性是否容易。如果没有更多分析,我认为它不适合连续凸选择案例(对于离散选择来说,scipy 并不多)。(4)使用这种加权形式的准确性听起来是错误的(需要阈值
-
您想要最小化的一个值是什么(即成本),什么变量(它可能是一个数组(1d?))?该函数的所有其他参数都是
args。minimize是改变x的值,直到它最小化成本。
标签: python optimization scipy prediction