python-3.x 我想使用机器学习预测3个变量,但我当前的代码出现错误,我不知道该怎么做

vlf7wbxs  于 2023-01-22  发布在  Python
关注(0)|答案(1)|浏览(146)

我对机器学习比较陌生,我想通过此电子表格同时预测3个不同的变量,该电子表格将成为csv文件

我的代码现在看起来像这样:

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

data = pd.read_csv("weight-reps-volume-data.csv")

X = data[['prev_weight', 'prev_reps', 'prev_volume']]
y = data[['weight', 'reps', 'volume']]

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

model = LinearRegression()
model.fit(X_train, y_train)

predictions = model.predict(X_test)
print(predictions)

我不知道从哪里开始调试这个,或者如果我做正确的事情任何帮助将不胜感激
如上所述,我希望同时预测所有3个变量,如果我请求算法进行预测,例如,其输出将是(90,10,900)。

nuypyhwy

nuypyhwy1#

你需要使用sklearn.multioutput来处理多元线性回归。下面的一些方法可能会对你有用。
下面是一个类似的例子,它有三个目标(因变量),其余的是独立的特征。你可以通过打印来检查数据集,或者你可以使用.shape来检查它们的尺寸。注意,我在这里没有做任何分割,但是你应该遵循你的train_test_split机制。我只是在这里为你的情况提出一个解决办法。谢谢

import numpy as np
from sklearn.datasets import load_linnerud ## Inbuilt datasets
from sklearn.multioutput import MultiOutputRegressor
from sklearn.linear_model import LinearRegression
X, y = load_linnerud(return_X_y=True) ## y has 3 target similar to your input file
lr = LinearRegression() ## Instance of linear regression
model = MultiOutputRegressor(lr).fit(X, y) ## fit after applying it to MUltiOutputRegressor
model.predict(X)

相关问题