【问题标题】:how to improve linear regression model如何改进线性回归模型
【发布时间】:2015-04-24 16:56:01
【问题描述】:

我正在研究一个简单的线性回归模型,用于练习以学习机器学习。我的模型运行正确,但是得分很差,这意味着它是一个糟糕的模型,因此任何关于更好模型的建议都将不胜感激。这是我的模型

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score

########## reading training set ##########

data = pd.read_csv("train.csv", delimiter=",", header=0)
x = data[['Col1', 'Col2']]
y = data['Expected']

########## building model ##########

reg = LinearRegression()
reg.fit(x, y)

########## reading test making predictions ##########

data_test = pd.read_csv("test.csv",delimiter=",", header=0)
x_test = data_test[['Col1', 'Col2']]
prediction = reg.predict(x_test)
np.savetxt("prediction.txt",prediction,delimiter=',')

【问题讨论】:

  • 两件事:1) 仅仅打印用于处理线性回归的代码是没有用的。您正在分析的数据集样本将比scikit-learn docs 中类似于每个sn-p 的代码sn-p 更有帮助。 2) 你还应该在 Cross Validated 上提出这个问题,这是 StackOverflow 的机器学习和数据分析衍生产品。
  • 我使用 train.csv 文件包含 3 列输入 "Col1" 、 "Col2" 和输出 "Expected" ,我认为它们是随机值或类似的东西,但它们不代表任何东西如果这会让你给我一个很好的建议,我可以上传它们:D
  • 既然您只有 2 个特征,为什么不可视化您的数据(显然是 3D),看看它是否具有线性形状?
  • 如何做到这一点如何可视化我的数据对不起我是 python 新手?
  • 您可以简单地使用 Excel 或任何电子表格来绘制 2D 图形并将其可视化以查看它是否具有任何相关性。

标签: python-2.7 machine-learning linear-regression


【解决方案1】:

线性回归可能不是一个糟糕的模型,而是您的变量没有正确转换以避免回归问题。在许多情况下,非线性也是由于数据中的人为因素造成的,而不是由于对所使用的变量错误地使用了线性回归模型。

您是否对变量(全部)进行了预处理,因此它们都是弱感平稳 (WSS) 平稳的,变量是否都以相同的术语表示(例如百分比变化)。您是否检查了回归结果中的同方差性和序列相关性。您的数据是平衡的还是不平衡的(从正面到负面的元素)。你检查你的数据是否正常,如果没有应用适当的转换(box cox 或其他)。如果您在回归中使用的数据有任何或这些问题的组合,您的结果可能无效。请针对所有提到的问题运行测试,以确保以适当的形式提供给回归变量,以便结果可解释且有效。

另外,您使用 RMSE 或 R2 其他什么测量误差,每个测量都有其自身的问题。训练样本是否具有统计显着性以提供统计有效性。

在确定线性回归不是适当的实现模型之前,我会首先考虑这一点,因为这通常是使用回归时可能出现问题的根源。

【讨论】:

    猜你喜欢
    • 2019-10-09
    • 2017-11-30
    • 2015-04-06
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多