Ожидаемый 2D-массив, вместо него получен 1D-массив: для простой модели линейной регрессии в Python - Jupyter Notebook - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь выучить Python и науку о данных с нуля, используя онлайновый материал.

Я только что попытался создать простую модель линейной регрессии, чтобы получить практические навыки после прочтения большого количества материал. Тем не менее, я получаю следующую ошибку при попытке сделать это.

Можете ли вы помочь понять эту ошибку и посмотреть, что я сделал неправильно.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

from numpy.random import randn
np.random.seed(101)

df3=pd.DataFrame(randn(5,2),index ='0 1 2 3 4'.split(), columns='Test Price'.split())

y= df3['Price']
x= df3['Test']

import sklearn.model_selection as model_selection
X_train, X_test, y_train, y_test = model_selection.train_test_split(x, y, test_size=0.2, random_state=101)

from sklearn.linear_model import LinearRegression
lm2= LinearRegression()

lm2.fit(X_train,y_train)

Ошибка

ValueError: Expected 2D array, got 1D array instead:
array=[-2.01816824  0.65111795  0.90796945 -0.84807698].
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.

1 Ответ

0 голосов
/ 30 марта 2020

проверьте do c Ссылка

Параметры

X: {массивоподобная, разреженная матрица} формы (n_samples, n_features) data

Таким образом, вам придется изменить свою X в (n_samples, 1) в вашем случае.

Использование

lm2.fit(X_train.values.reshape(-1,1),y_train)

...