linerrud数据集上的LinearRegression



我正试图用线性回归技术来寻找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

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

>>> 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)

相关内容

  • 没有找到相关文章

最新更新