Как передать тестовые данные в уравнение регрессии в python?

Я построил уравнение регрессии для кадра данных поезда (b), в котором есть все X (входные переменные) в списке. Моя переменная ответа - Y - это SalePrice.

X = b[collist].values
y = b[['SalePrice']]
reg2 = LinearRegression()
reg2.fit(X, y)
(reg2.intercept_, reg2.coef_)

Я получил массив коэффициентов.

(array([-1003980.93890187]),
 array([[  1.13921901e+01,   6.72094755e-01,   3.57706059e+02,
           9.11889135e+01,   1.74211742e+01,   1.49978955e+01,
           1.01590205e+01,  -2.39999419e+00,   2.27570861e+01,
           ..........
           ..more terms...
           1.88596429e+01,   3.57099213e+01,  -2.91352714e+01,
           2.54343753e+01,   1.79479162e+03,   6.95632849e+02,
           3.97891154e+03,   1.67768978e+03,  -2.06711712e+03,
          -4.70429021e+03]]))

Как определить, какой коэффициент относится к какому термину?

Кроме того, как передать тестовый кадр данных в этом уравнении и получить переменную ответа?

для тестовых данных я получил еще один кадр данных, в котором столбец для SalePrice (ответ) отсутствует.

Спасибо.


person Ashish Menkudale    schedule 29.11.2016    source источник


Ответы (1)


Вы должны иметь возможность zip имен столбцов с коэффициентами...

[name, coef for name, coef in zip(b.columns, reg2._coef)

Что касается прогнозирования на тестовом кадре, это должно быть что-то вроде

reg2.predict(test_df)

Вы также можете назвать оценку вне выборки R в квадрате.

reg2.score(test_X, test_y)

Просто просмотрите документацию.

person Bruce Pucci    schedule 29.11.2016