线性回归中确定系数的直觉

时间:2017-12-25 11:13:28

标签: python-3.x machine-learning scikit-learn regression linear-regression

以下是我的代码片段:

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,小于
我不明白为什么会这样。请解释一下这个,如果它可以取负值,这个负值意味着什么。

2 个答案:

答案 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文档中提到的,当它们表明拟合模型“可以任意恶化。”