我想在scikit learn中实现自定义的损失函数。我使用以下代码片段:
def my_custom_loss_func(y_true,y_pred):
diff3=max((abs(y_true-y_pred))*y_true)
return diff3
score=make_scorer(my_custom_loss_func,greater_ is_better=False)
clf=RandomForestRegressor()
mnn= GridSearchCV(clf,score)
knn = mnn.fit(feam,labm)
什么参数应传递到my_custom_loss_func
中?我的标签矩阵名为labm
。我想计算实际输出和(由模型预测的)预测输出之间的差异乘以真实输出。如果我使用labm
代替y_true
,那么我应该用什么代替y_pred
?
ClassifierMixin
中的那行代码定义了score
方法,该方法用于您排名列表的第2和第3部分,但不用于第1部分,即模型本身的fit
方法中发生的实际优化。该优化取决于模型类型,但通常会使用比准确度更好且更微妙的损失函数。 - Ben Reiniger