我正在训练一个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
得分和得分2都显示出非常不同的价值。我虽然模型的得分函数假设与显式计算的r2_score相同
答案 0 :(得分:2)
你对r2_score的使用是错误的。第一个参数应该是真值,而不是预测值。
r2_score(y_true, y_pred, ...)
因此,请将代码中的这一行score2 = r2_score(y_rf,df['label'])
更改为:
score2 = r2_score(df['label'], y_rf)
然后比较结果。