为了账号安全,请及时绑定邮箱和手机立即绑定

如何实现多元回归?

如何实现多元回归?

噜噜哒 2022-10-18 16:05:32
我正在练习简单的回归模型作为机器学习的介绍。我已经回顾了一些多元回归的样本模型,我相信这是线性回归的扩展,但具有超过 1 个特征。从我看到的示例中,线性回归和多元回归的语法是相同的。运行以下代码时出现此错误:ValueError: x and y must be the same size.为什么我会收到此错误,我该如何解决?import pandas as pdimport numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LinearRegressiondf = pd.read_csv(r"C:\Users\****\Desktop\data.csv")#x.shape =(20640, 2), y=(20640,)X = df[['total_rooms', 'median_income']]y = df['median_house_value']X_test, y_test, X_train, y_train = train_test_split(X, y, test_size=.2, random_state=0)reg = LinearRegression()reg.fit(X_train, y_train)我错过了一步吗?谢谢你的时间。
查看完整描述

2 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

你有一个错误train_test_split- 结果的顺序很重要;正确的用法是:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.2, random_state=0)

检查文档


查看完整回答
反对 回复 2022-10-18
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

你不必做任何你不想做的事情:-)。但一般来说,你会想以某种方式处理多重共线性之类的事情——但这并不一定意味着降维。

你的数据是什么形状的?如果您有 20 个特征,但有 10k 个观察值,则不需要降维(至少在第一遍中不需要)。

但是,如果您有 1k 个特征和 10k 个观察值,那么您将非常适合在学习者之前进行无监督的降维步骤。

您可能想先尝试一些正则化(请参阅https://web.stanford.edu/~hastie/ElemStatLearn/ - 您可以从那里免费下载这本书)。

因此,例如,尝试使用ElasticNet类而不是LinearRegression类。这几乎是一样的,但对权重的 $L_1$ 和 $L_2$ 规范会有所惩罚。这往往有助于泛化。

如果不了解您的特定问题的更多信息,就很难说其他任何事情。


查看完整回答
反对 回复 2022-10-18
  • 2 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信