关于线性线性数据集的线性回归

我正在尝试使用线性回归技术查找linnerud数据集的性能和均方误差。我在传递数据时陷入困境,并收到错误“ ValueError:找到的输入变量样本数量不一致:[10,1]”。 Linnerud数据集具有三个功能和目标中的三列,我只想使用chinup的一个功能。有人可以帮我解决我遇到的困难吗?

以下是我到目前为止所做的尝试,通过引用https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html

from sklearn import datasets
from sklearn import linear_model
from sklearn.metrics import mean_squared_error,r2_score
import matplotlib.pyplot as plt
import numpy as np

linnerud = datasets.load_linnerud()
print(linnerud)

# Use only one feature
linnerud_X = linnerud.data[:,np.newaxis,0]
print(linnerud_X)
X = np.array(linnerud_X).reshape((1,-1))
print(X)
# Split the data into training/testing sets
linnerud_X_train = linnerud_X[:-10]
linnerud_X_test = linnerud_X[-10:]
#print(linnerud_X_train)
#print(linnerud_X_test)


Y = np.array(linnerud.target).reshape((1,-1))

# Split the targets into training/testing sets
linnerud_y_train = Y
#linnerud_y_test #= Y[-10:]
print(linnerud_y_train)
#print(linnerud_y_test)

# Create linear regression object
regr = linear_model.LinearRegression()

# Train the model using the training sets
regr.fit(linnerud_X_train,linnerud_y_train)

# Make predictions using the testing set
linnerud_y_pred = regr.predict(linnerud_X_test)

我期望在以下示例中实现类似的结果, https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html

yjy611 回答:关于线性线性数据集的线性回归

因变量和自变量中的条目数不是相同的。

>>> linnerud_y_train.shape
(1,60)
>>> linnerud_X_train.shape
(10,1)

此外,您在目标上进行的重塑是不正确的(我不确定您要在此处进行的操作)。

功能被分为训练和测试,但没有在目标上进行。这就是您得到值错误的原因。

但是更好的方法是:

linnerud = datasets.load_linnerud()
linnerud_X = linnerud.data[:,np.newaxis,0]   # Use only one feature

# Split to train and test
linnerud_X_train = linnerud_X[:10]
linnerud_X_test = linnerud_X[10:]

Y = linnerud.target[: np.newaxis,0]
linnerud_y_train = Y[:10]
linnerud_y_test = Y[10:]

regr = linear_model.LinearRegression()
regr.fit(linnerud_X_train,linnerud_y_train)
本文链接:https://www.f2er.com/3141005.html

大家都在问