Ожидаемый 2D-массив, вместо скалярной регрессии получен скалярный массив - PullRequest
0 голосов
/ 10 января 2019

Я получаю ошибку, когда пытаюсь вычислить регрессию в пандах. Вот код:

import pandas as pd
import matplotlib.pyplot as plt

df=pd.DataFrame({"haftalar":[1,2,3,4,5,6,7],
                 "degerler":[6.11,5.66,5.30,5.32,5.25,5.37,5.28]})
haftalar=df[['haftalar']]
degerler=df[['degerler']]

from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(
    haftalar, degerler, test_size=0.57, random_state=0) 

from sklearn.linear_model import LinearRegression

lr=LinearRegression()

lr.fit(x_train,y_train)
tahmin=lr.predict(8)
print(tahmin)

когда я пытаюсь запустить код, я получаю эту ошибку:

"if it contains a single sample.".format(array))

ValueError: Expected 2D array, got scalar array instead:
array=8.
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.

У меня экзамен по этому предмету через 3 часа. Вы можете мне помочь?

1 Ответ

0 голосов
/ 10 января 2019

Попробуйте:

tahmin=lr.predict([[8]])

Чаще всего вы можете иметь данные в numpy массивах, например:

import numpy as np
x_test = np.array([8])

Теперь сообщение об ошибке говорит вам, что делать:

tahmin=lr.predict(x_test.reshape(-1, 1))
...