以下是我的代码片段:
from sklearn.linear_model import LinearRegression
reg = LinearRegression()
reg.fit(feature_train,target_train)
print(reg.coef_)
print(reg.intercept_,reg.score(feature_test,target_test))
P.S:纠正我如果我理解reg.score()
错误。
我怀疑reg.score()
这是最后一句话。我知道这个分数越大越好,这也就是r平方值。
r平方值:据我所知,它表示Y值的变化是由X的变化来解释的,因此它的值必须介于0和1之间。
但是当我运行它时,我得到的值大约是-1.4,小于
我不明白为什么会这样。请解释一下这个,如果它可以取负值,这个负值意味着什么。
答案 0 :(得分:1)
R平方值(R2)可以计算为:
R2 = 1.0 - (absolute_error_variance / dependent_variable_variance)
如果您使用numpy数组,您可以轻松地找到这些值:
absolute_error_array.var()
和
dependent_variable_array.var()
并手动计算R平方值以找出问题。
答案 1 :(得分:1)
但是当我运行它时,我得到的值大约是-1.4,而不是 我不知道为什么会发生这种情况。
这可能发生在adjusted R-squared。解释是:您的预测值集合比预测实际值更糟糕,而不是在实际值的平均值水平绘制的直线上。这是sklearn文档中提到的,当它们表明拟合模型“可以任意恶化。”