ошибка при печати прогнозируемого значения в множественной линейной регрессии - PullRequest
0 голосов
/ 06 января 2020
from sklearn import linear_model
regr = linear_model.LinearRegression()
x = np.asanyarray(train[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_COMB']])
y = np.asanyarray(train[['CO2EMISSIONS']])
regr.fit (x, y)
# The coefficients
print ('Coefficients: ', regr.coef_)
x1 = np.asanyarray(test[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_COMB']])
y1 = np.asanyarray(test[['CO2EMISSIONS']])
xy = regr.predict(y1)
print(xy) // an error is generating while printing this (valueError)

это работало в простой линейной регрессии, но здесь не работает в множественной линейной регрессии

Ответы [ 2 ]

1 голос
/ 06 января 2020

regr.predict ожидает такую ​​же форму x.

Кроме того, когда вы хотите что-то предсказать, оно должно основываться на некотором входном сигнале, а не на выходном.

Итак, xy = regr.predict(y1) неверно.

Вы должны попробовать xy = regr.predict(x1).

0 голосов
/ 07 января 2020

Причина, по которой это работает (но на самом деле это не правильно) в простой регрессии в том, что вы предоставляете одномерный массив для regr.predict. Как уже упоминалось, это должно быть regr.predict(x1) instread из regr.predict(y1), так как вы пытаетесь предсказать y1 из x1. Алгоритм не «различает guish» между x1 и y1 в простой регрессии, поскольку они оба являются одномерными массивами, поэтому он не вызывает ошибку.

Однако в множественной регрессии Вы подходите уравнение на 2D или 3D или ... N-мерный x массив. Поэтому, когда вы запускаете regr.predict(y1), возникает ошибка, потому что вы пытаетесь предсказать с помощью массива 1D y1.

Просто замените regr.predict(y1) на regr.predict(x1), и он будет работать как для простых, так и для множественная регистрация.

...