我正在練習簡單的回歸模型作為機器學習的介紹。我已經回顧了一些多元回歸的樣本模型,我相信這是線性回歸的擴展,但具有超過 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)
檢查文檔。

夢里花落0921
TA貢獻1772條經驗 獲得超6個贊
你不必做任何你不想做的事情:-)。但一般來說,你會想以某種方式處理多重共線性之類的事情——但這并不一定意味著降維。
你的數據是什么形狀的?如果您有 20 個特征,但有 10k 個觀察值,則不需要降維(至少在第一遍中不需要)。
但是,如果您有 1k 個特征和 10k 個觀察值,那么您將非常適合在學習者之前進行無監督的降維步驟。
您可能想先嘗試一些正則化(請參閱https://web.stanford.edu/~hastie/ElemStatLearn/ - 您可以從那里免費下載這本書)。
因此,例如,嘗試使用ElasticNet
類而不是LinearRegression
類。這幾乎是一樣的,但對權重的 $L_1$ 和 $L_2$ 規范會有所懲罰。這往往有助于泛化。
如果不了解您的特定問題的更多信息,就很難說其他任何事情。
添加回答
舉報
0/150
提交
取消