sklearn.linear_model.SGDClassifier的官方描述中说loss可以设置为'modified_huber'。但是印象中只有回归才有Huber loss这个说法。这里是分类问题,那么怎么解释这个modified_huber loss?
1个回答
modified_huber loss的公式:
它的曲线如下:
我的理解:p是预测值,y是真实值,p*y为margin。修改后的huber loss,有以下优点:
(1)能在margin大于1时,产生稀疏解提高训练效率(f(p, y)恒等于0)。
(2)在margin小于-1的时候,惩罚线性增加,受异常点干扰较小。
可以参考sklearn中的源码实现:
https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/linear_model/sgd_fast.pyx
SofaSofa数据科学社区DS面试题库 DS面经
谢谢!
-
vivian_o
2019-04-21 13:24