Scikit普通最小二乘常数不起作用

时间:2016-01-07 10:19:29

标签: scikit-learn

from sklearn import linear_model
from random import randint

temp=[]
for i in range(0,100):
    r = randint(0,100)
    x=r*r+10*r+1000
    y=r
    temp.append([x,y])

tempX = [p[0] for p in temp]
tempY = [p[1] for p in temp]

trainX = tempX
trainY = [[1, y, y*y] for y in tempY]

regr = linear_model.LinearRegression()
regr.fit(trainY, trainX)

print regr.coef_

运行上面的代码给出了以下输出

[ 0. 10. 1.]

普通最小二乘法正确地得到r * r和r的系数。它们匹配我在第7行提供的系数。

为什么它没有正确得到常数?

如何让它按照我想要的方式运作?

1 个答案:

答案 0 :(得分:1)

使用LinearRegression,会自动添加拦截术语。您可以使用以下命令查看此拦截术语:

print regr.intercept_ # 1000.0