python - 如何在Python中执行线性回归时减少rmse

标签 python linear-regression

我并不是真正的程序员,但这就是我到目前为止所拥有的。我正在尝试应用线性回归来从样本数据中预测某些内容。我可能在这里犯了一些错误,因为我得到的 rmse 高于 1。我检查了连续变量之间的相关性,结果发现该相关性非常小,最大值达到 0.2。还使用四分位数范围方法检查了异常值,但没有。

请问有人可以告诉我如何降低均方根误差吗?

import pandas as pd
from sklearn import linear_model
from sklearn.metrics import mean_squared_error
from math import sqrt
from sklearn.cross_validation import train_test_split

df_hosp = pd.read_csv('C:\Users\LAPPY-2\Desktop\LengthOfStay.csv')

df_temp, df_test = train_test_split(df_hosp, test_size=0.30, train_size=0.70)
df_train, df_val = train_test_split(df_temp, test_size=0.30, train_size=0.70)

X = df_train[['rcount', 'male', 'female', 'dialysisrenalendstage', 'asthma', \
              'irondef', 'pneum', 'substancedependence', \
              'psychologicaldisordermajor', 'depress', 'psychother', \
              'fibrosisandother', 'malnutrition', 'hemo', 'hematocrit', \
              'neutrophils', 'sodium', 'glucose', 'bloodureanitro', \
              'creatinine', 'bmi', 'pulse', 'respiration', \
              'secondarydiagnosisnonicd9']]

y = df_train['lengthofstay']

model = linear_model.LinearRegression(fit_intercept=True, normalize=True, copy_X=True)
m = model.fit(X, y)

predictions_train = m.predict(X)
print('Score: %.2f' % m.score(X, y))
rms_train = sqrt(mean_squared_error(y, predictions_train))
print ('Training set RMSE: %.2f' % rms_train)

输出: 得分:0.75 训练集 RMSE:1.19

最佳答案

自从您的 y变量是停留时间,没有理由它应该有 rmse < 1Here是解释 RMSE 公式定义的资源。可以看到如果(y_pred - y)平均大于 1,那么您的 RMSE 将大于 1。

至于为什么会发生这种情况,您似乎正在尝试使用大量变量来拟合模型,而这些变量的总和实际上与您的输出变量并不相关。您应该只在实际相关的数据上拟合模型,因为相关性意味着输入数据会以某种方式影响输出数据。

尝试限制适合的输入变量的数量,从相关性最高的数据开始。

关于python - 如何在Python中执行线性回归时减少rmse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44692292/

相关文章:

python - 为什么在 Linux 环境下使用 pyodbc 插入空值?

python - geckodriver 可执行文件需要在路径中

python - 我的线性回归模型显示得分为 10%,我该如何改进?

r - 在 R 中呈现线性回归模型的调节效应时如何反转对数变换?

python - 使用 matplotlib 而不是 pylab 的线性回归示例

python - beautifulsoup4在mac上使用python3安装和导入

python - 使用稀疏向量进行查询的 Elasticsearch 运行时错误

machine-learning - 无法计算成本函数中 1 个变量的成本

python - 理解 Python 中 Spark MLlib 的 LinearRegressionWithSGD 示例有问题吗?

python - 如何在预期中看到输出?