我有一个包含两列[“A”, “B”]的数据库,其中”A”是输入变量,”B”是目标变量。所有值都是整数。
我的代码:
X.shape>>(2540, 1)y.shape>>(2540, 1)from sklearn.preprocessing import StandardScalerscaler = StandardScaler()scaler.fit(X)X = scaler.transform(X)import numpy as npfrom sklearn.model_selection import train_test_splitnp.random.rand(4)X_train, X_test, y_train, y_test = train_test_split(X,y,test_size = 0.2)
来自Sklearn的线性回归
regr = LinearRegression(fit_intercept=True)regr.fit(X_train, y_train) print ('Coefficients: ', regr.coef_)print ('Intercept: ',regr.intercept_) >>Coefficients: [[43.95569425]]>>Intercept: [100.68681298]
我得到了0.93的R2值
X_train中的最后一条记录是3687,对应的y_train值是212.220001
我使用最后一条记录进行预测,如下所示:
regr.predict([[3687]] )>>array([161825.22279211])
我不明白发生了什么,我期望预测值会在212左右。
但是,预测值是161825
您能解释一下原因吗,谢谢
回答:
或许你需要在将测试数据输入回归模型之前先通过缩放器处理。试试reg.predict(scaler.transform([3687])