【发布时间】:2022-01-21 04:58:17
【问题描述】:
我是 python 新手。我有一个复杂的数据集,线性回归不适合我的“预测”模型,但我发现高 R 平方值 0.658 它接近 1。我在我的代码中错过了为什么它很高,我的程序没有给出错误。我发现我的测试数据集的 R 平方值也没有训练。
R-squared: 0.658
Model: OLS
Adj. R-squared: 0.647
#####我有数字和分类输入。我应用了一种热编码
我以为我那里有问题。应用线性回归。我计算 R 平方值以了解线性回归如何适合我的模型
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(x_train, y_train)
regr_btu = linear_model.LinearRegression()
regr_btu.fit (x_train, y_train)
pred_out_btu = regr_btu.predict (x_test)
pred_out_btu_train = regr_btu.predict (x_train)
rmse_test = sqrt(mean_squared_error(pred_out_btu,y_test))
rmse_train = sqrt(mean_squared_error(pred_out_btu_train,y_train))
print('train: ' + str(rmse_train))
print('test: ' + str(rmse_test))
print('mean: '+ str(y.mean()))
print('percentage mean: ' + str(rmse_test/(y.mean())*100) + '%')
B = x[['education','rent','car_price','apple','banana','orange']]
C = y['salary']
model = sm.OLS(C,B).fit()
predictions = model.predict(B)
print_model = model.summary()
print(print_model)
【问题讨论】:
-
这是一个关于局部变量与全局变量的好教程:geeksforgeeks.org/global-local-variables-python
-
我有一个数据集,我在这段代码之前定义了 X 和 Y。
-
请附上minimal reproducible example 和错误消息。我们如何知道您在问题中未包含的代码中做了什么?
-
我更新了我的问题。感谢您的反馈
-
我的输入有不同的范围,这就是为什么我要对其进行归一化,x, y 是序列 X 和 Y 的归一化状态。我有分类数据,所以我应用了一种热编码 @MichaelSzczesny跨度>
标签: python machine-learning data-science linear-regression