Python LinearRegression ValueError: Найдены входные переменные с непоследовательным количеством выборок: [1, 3] - PullRequest
0 голосов
/ 18 октября 2018

Я использую этот код для выполнения LinearRegression:

from sklearn.linear_model import LinearRegression
import pandas as pd

def calculate_Intercept_X_Variable():
    list_a=[['2018', '3', 'aa', 'aa', 93,1884.7746222667, 165.36153386251098], ['2018', '3', 'bb', 'bb', 62, 665.6392779848, 125.30386609565328], ['2018', '3', 'cc', 'cc', 89, 580.2259903521, 160.19280253775514]]
    df = pd.DataFrame(list_a)
    X = df.iloc[:, 5]
    y = df.iloc[:, 6]
    clf = LinearRegression()
    clf.fit(X, y)

calculate_Intercept_X_Variable()

Но сообщение об ошибке:

Файл "E: \ Anaconda3 \ lib \ site-packages \"sklearn \ utils \ validation.py ", строка 181, в check_consistent_length" samples:% r "% [int (l) для l в длинах]) ValueError: Найдены входные переменные с несовместимым количеством выборок: [1, 3]

Где не так?

Как изменить мой код?

1 Ответ

0 голосов
/ 18 октября 2018

Из документа scikit-learn написано:

fit (X, y, sample_weight = None)

X: массивоподобная или разреженная матрица, форма (n_samples,n_features) Обучающие данные

y: array_like, shape (n_samples, n_targets) Целевые значения.При необходимости будет приведен к dtype X.

Проблема в том, что сейчас X и y являются одномерными массивами.

X.shape, y.shape
# ((3,), (3,))

Вам следует изменить форму X и y:

X = X.values.reshape(-1, 1)
y = y.values.reshape(-1, 1)
clf.fit(X,y)
...