sklearn.metrics.make_scorer详解

官方说明文档:点这里
从性能指标或损失函数中创建一个记分标准。
这个函数封装了用于GridSearchCV和cross_val_score的评分函数,它接受一个评分函数,如accuracy_score、mean_squared_error、adjusted_rand_index或average_precision,并返回一个可调用的值,该值对学习器的输出进行评分。
它的使用形式如下:

sklearn.metrics.make_scorer(score_func, greater_is_better=True, needs_proba=False, needs_threshold=False, **kwargs)

它的参数如下:

score_func 一个可调用的记分函数,如sklearn.metrics.accuracy_score等,也可以是一个损失函数,如sklearn.metrics.mean_squared_error等
greater_is_better 输入的score_func为记分函数时,该值为True(默认值);输入函数为损失函数时,该值为False;在后面这种情况中,得到的对象会对结果进行翻转,因为损失函数意味着函数值越小,拟合情况越好
needs_proba score_func是否需要获得一个predict_proba来得到分类器的概率估计,
如果是True,对于二元的标签值,score_function需要接受的y_pred是一个一维的
needs_threshold score_func是否具有连续的决策确定性。这只适用于使用具有decision_function或predict_proba方法的分类器的二元分类。如果为真,对于二进制y_true, score函数应该接受一维的y_pred(即,正类或决策函数的概率)。例如,平均精度或roc曲线下的面积不能使用离散预测来计算

这个函数返回的是一个可调用的记分对象。
实例如下:

model = LGBMRegressor(max_depth=5,num_leaves=10,objective="regression")
score_ = cross_val_score(model,X = X_train,y=Y_train,verbose=0,scoring=make_scorer(mean_squared_error))
print(score_)

输出结果:[0.46157155 0.47102463 0.47506401 0.44817591 0.46550807]

你可能感兴趣的:(sklearn学习)