猿问

如何实现多元回归?

我正在练习简单的回归模型作为机器学习的介绍。我已经回顾了一些多元回归的样本模型,我相信这是线性回归的扩展,但具有超过 1 个特征。从我看到的示例中,线性回归和多元回归的语法是相同的。运行以下代码时出现此错误:


ValueError: x and y must be the same size.

为什么我会收到此错误,我该如何解决?


import pandas as pd

import numpy as np

from sklearn.model_selection import train_test_split

from sklearn.linear_model import LinearRegression


df = 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)

我错过了一步吗?谢谢你的时间。


噜噜哒
浏览 147回答 2
2回答

慕的地6264312

你有一个错误train_test_split- 结果的顺序很重要;正确的用法是:X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.2, random_state=0)检查文档。

梦里花落0921

你不必做任何你不想做的事情:-)。但一般来说,你会想以某种方式处理多重共线性之类的事情——但这并不一定意味着降维。你的数据是什么形状的?如果您有 20 个特征,但有 10k 个观察值,则不需要降维(至少在第一遍中不需要)。但是,如果您有 1k 个特征和 10k 个观察值,那么您将非常适合在学习者之前进行无监督的降维步骤。您可能想先尝试一些正则化(请参阅https://web.stanford.edu/~hastie/ElemStatLearn/ - 您可以从那里免费下载这本书)。因此,例如,尝试使用ElasticNet类而不是LinearRegression类。这几乎是一样的,但对权重的 $L_1$ 和 $L_2$ 规范会有所惩罚。这往往有助于泛化。如果不了解您的特定问题的更多信息,就很难说其他任何事情。
随时随地看视频慕课网APP

相关分类

Python
我要回答