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行提供的系数。
为什么它没有正确得到常数?
如何让它按照我想要的方式运作?
答案 0 :(得分:1)
使用LinearRegression
,会自动添加拦截术语。您可以使用以下命令查看此拦截术语:
print regr.intercept_ # 1000.0