模型 score() 与 r2_score 之间的差异

Difference between model score() vs r2_score

我正在训练 LinearRegression() 分类器并尝试衡量其预测准确度

from sklearn.metrics import r2_score
from sklearn.linear_model import LinearRegression
regr_rf = LinearRegression()

regr_rf.fit(df[features],df['label'])
y_rf = regr_rf.predict(df[features])
score = regr_rf.score(df[features],df['label'])
print score
score2 = r2_score(y_rf,df['label'])
print score2

score 和 score2 都显示出非常不同的值。我认为模型的得分函数与显式计算的 r2_score 相同

您对 r2_score 的用法是错误的。第一个参数应该是真实值,而不是预测值。

根据the documentation

r2_score(y_true, y_pred, ...)

所以将代码中的这一行 score2 = r2_score(y_rf,df['label']) 更改为:

score2 = r2_score(df['label'], y_rf)

然后比较结果。