1. ホーム
  2. python-3.x

[解決済み] ValueError: 2D 配列を期待したが、代わりに 1D 配列を得た。

2022-02-01 08:29:30

質問

単回帰モデルの練習中にこのようなエラーが発生しました。 私のデータセットに何か問題があるようです。

これが私のデータセットです。

ここに独立変数Xがあります。

ここに従属変数Yがあります。

ここにX_trainがあります。

Y_trainはこちら

これはエラー本体です。

ValueError: Expected 2D array, got 1D array instead:
array=[ 7.   8.4 10.1  6.5  6.9  7.9  5.8  7.4  9.3 10.3  7.3  8.1].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

そして、これが私のコードです。

import pandas as pd
import matplotlib as pt

#import data set

dataset = pd.read_csv('Sample-data-sets-for-linear-regression1.csv')
x = dataset.iloc[:, 1].values
y = dataset.iloc[:, 2].values

#Spliting the dataset into Training set and Test Set
from sklearn.cross_validation import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size= 0.2, random_state=0)

#linnear Regression

from sklearn.linear_model import LinearRegression

regressor = LinearRegression()
regressor.fit(x_train,y_train)

y_pred = regressor.predict(x_test)

ありがとうございました

解決方法は?

の両方が必要です。 fit predict メソッド 2D 配列。あなたの x_train , y_trainx_test は現在1次元のみです。コンソールで提案されているものは動作するはずです。

x_train= x_train.reshape(-1, 1)
y_train= y_train.reshape(-1, 1)
x_test = x_test.reshape(-1, 1)

これは、numpyの reshape . に関する質問 reshape は過去に回答されています。 reshape(-1,1) を意味します。 numpy reshapeの-1とはどういう意味ですか?