[英]How do I properly fit a sci-kit learn model using a pandas dataframe?
我正在嘗試在 sci-kit learn 中創建一個機器學習程序。 我正在使用 CSV 文件來存儲數據,並決定使用 Pandas 數據框來導入和格式化這些數據。 我無法弄清楚如何將這個數據框與 model 匹配。
我的 CSV 文件有一個特征,年齡和一個目標,重量。 我正在使用線性回歸算法來預測使用年齡的體重。 我確實意識到這不是處理這些數據的最佳算法。
當我運行此代碼時,我收到錯誤“ValueError:找到樣本數量不一致的輸入變量:[10, 40]”
這是我的代碼:
# Imports
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# Load And Split Data
data = pd.read_csv("awd.csv")
feature_cols = ['Ages']
X = data.loc[:, feature_cols]
y = data.loc[:, "Weights"]
X_train, y_train, X_test, y_test = train_test_split(X, y, random_state=0, train_size=0.2)
# Train Model
lr = LinearRegression()
lr.fit(X_train, y_train)
# Scores
print(f"Test set score: {round(lr.score(X_test, y_test), 3)}")
print(f"Training set score: {round(lr.score(X_train, y_train), 3)}")
我的 CSV 文件的前 5 行:
Ages,Weights
1,19
1,21
2,26
2,32
您錯誤地分配了返回值。 見下文:
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0, train_size=0.2)
您應該像這樣更正 X_train、X_test、y_train 和 y_test 的順序:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
有關詳細信息,請參閱相關文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.