Eda*_*ame 16 python metrics scikit-learn mean-square-error
一般来说,mean_squared_error越小越好.
当我使用sklearn指标包时,它在文档页面中说:http://scikit-learn.org/stable/modules/model_evaluation.html
所有得分对象都遵循以下惯例:较高的返回值优于较低的返回值.因此,测量模型和数据之间距离的度量(如metrics.mean_squared_error)可用作neg_mean_squared_error,它返回度量的否定值.
但是,如果我去:http://scikit-learn.org/stable/modules/generated/sklearn.metrics.mean_squared_error.html#sklearn.metrics.mean_squared_error
它说它是Mean squared error regression loss,没有说它被否定了.
如果我查看源代码并检查那里的例子:https://github.com/scikit-learn/scikit-learn/blob/a24c8b46/sklearn/metrics/regression.py#L183它是正常的mean squared error,即越小越好.
所以我想知道我是否错过了关于文档中否定部分的任何内容.谢谢!
Viv*_*mar 26
实际的功能"mean_squared_error"对负面部分没有任何意义.但是当您尝试'neg_mean_squared_error'时实现的功能将返回分数的否定版本.
请检查源代码,了解它在源代码中的定义:
neg_mean_squared_error_scorer = make_scorer(mean_squared_error,
greater_is_better=False)
Run Code Online (Sandbox Code Playgroud)
观察param greater_is_better的设置方式False.
现在所有这些得分/损失都用于其他各种事情,如cross_val_score,cross_val_predict,GridSearchCV等.例如,在'accuracy_score'或'f1_score'的情况下,得分越高越好,但如果出现损失(错误),则降低得分更好.要以相同的方式处理它们,它返回负数.
因此,该实用程序用于以相同方式处理分数和损失,而无需更改特定丢失或分数的源代码.
所以,你没有错过任何东西.您只需要处理要使用损失函数的场景.如果您只想计算mean_squared_error,则只能使用mean_squared_error.但是,如果您想使用它来调整模型,或者使用scikit中的实用程序进行cross_validate,请使用'neg_mean_squared_error'.
也许添加一些细节,我会解释更多.
| 归档时间: |
|
| 查看次数: |
11064 次 |
| 最近记录: |