我正在尝试使用sci-kit learn创建一个机器学习程序。我使用CSV文件存储数据,并决定使用Pandas数据框来导入和格式化这些数据。我不知道如何将这个数据框与模型拟合。
我的CSV文件有一个特征,即年龄,和一个目标,即体重。我使用线性回归算法来预测体重。实际上,我意识到这并不是处理这种数据的最佳算法。
当我运行这段代码时,我得到错误“ValueError: Found input variables with inconsistent numbers of samples: [10, 40]”。
这是我的代码:
# 导入
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# 加载和分割数据
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)
# 训练模型
lr = LinearRegression()
lr.fit(X_train, y_train)
# 得分
print(f"测试集得分: {round(lr.score(X_test, y_test), 3)}")
print(f"训练集得分: {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)