Python 如何实现多元回归?

Python 如何实现多元回归?,python,scikit-learn,linear-regression,Python,Scikit Learn,Linear Regression,我正在练习简单的回归模型,作为机器学习的入门。我已经回顾了一些多元回归的样本模型,我认为这是线性回归的一个扩展,但有不止一个特征。从我看到的示例来看,线性回归和多元回归的语法是相同的。我在运行以下代码时遇到此错误: ValueError: x and y must be the same size. 为什么会出现此错误,如何修复 import pandas as pd import numpy as np from sklearn.model_selection import train_te

我正在练习简单的回归模型,作为机器学习的入门。我已经回顾了一些多元回归的样本模型,我认为这是线性回归的一个扩展,但有不止一个特征。从我看到的示例来看,线性回归和多元回归的语法是相同的。我在运行以下代码时遇到此错误:

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)

我漏了一步吗?谢谢您的时间。

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

你的数据是什么形状的?如果你有,比如说20个特征,但有10k的观测值,那么就不需要降维(至少第一次不需要)

但是,如果你有1k的特征和10k的观察,那么你就非常适合在学习者面前进行无监督的降维步骤

您可能希望首先尝试一些正则化(请参阅--您可以从那里免费下载这本书)

例如,尝试使用
ElasticNet
类而不是
LinearRegression
类。这几乎是一样的事情,但对$L_1$和$L_2$标准重量有处罚。这有助于推广


如果你对自己的特殊问题不太了解,就很难说出其他的话。

你的
训练测试中有一个错误
-结果的顺序很重要;正确的用法是:

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

检查一下。

那么,我应该猜你是托马斯·品钦的粉丝吗?:)我是。希望不久能有最后一部小说。酷。答案解决了你的问题吗?我相信是的,但我需要做一些数据清理,这可能是我最初的问题。非常感谢。