Шаг 5: Прогнозирование отклика
Прогнозы также работают так же, как и в случае простой линейной регрессии:
>>> y_pred = model.predict(x)
>>> print('predicted response:', y_pred, sep='\n')
predicted response:
[ 5.77760476 8.012953 12.73867497 17.9744479 23.97529728 29.4660957
38.78227633 41.27265006]
Прогнозируемый ответ получается с помощью .predict(), который очень похож на следующий:
>>> y_pred = model.intercept_ + np.sum(model.coef_ * x, axis=1)
>>> print('predicted response:', y_pred, sep='\n')
predicted response:
[ 5.77760476 8.012953 12.73867497 17.9744479 23.97529728 29.4660957
38.78227633 41.27265006]
Вы можете предсказать выходные значения, умножив каждый столбец ввода на соответствующий вес, суммируя результаты и добавляя точку пересечения к сумме. Вы также можете применить эту модель к новым данным:
>>> x_new = np.arange(10).reshape((-1, 2))
>>> print(x_new)
[ [0 1]
[2 3]
[4 5]
[6 7]
[8 9] ]
>>> y_new = model.predict(x_new)
>>> print(y_new)
[ 5.77760476 7.18179502 8.58598528 9.99017554 11.3943658 ]
Это прогноз с использованием модели линейной регрессии.
Полиномиальная регрессия с помощью scikit-learn
Реализация полиномиальной регрессии с помощью scikit-learn очень похожа на линейную регрессию. Есть только один дополнительный шаг: вам нужно преобразовать массив входных данных, чтобы включить нелинейные термины, такие как x2.
Шаг 1: Импортировать пакеты и классы
Помимо numpy и sklearn.linear_model.LinearRegression, вы также должны импортировать класс PolynomialFeatures из sklearn.preprocessing:
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
Импорт завершен, и у вас есть все необходимое для работы.
Шаг 2а: предоставьте данные
Этот шаг определяет ввод и вывод и такой же, как и в случае линейной регрессии:
x = np.array([5, 15, 25, 35, 45, 55]).reshape((-1, 1))
y = np.array([15, 11, 2, 8, 25, 32])
Это новый шаг, который необходимо реализовать для полиномиальной регрессии!
Как вы видели ранее, вам необходимо включить x2 (и, возможно, другие термины) в качестве дополнительных функций при реализации полиномиальной регрессии. По этой причине, вы должны преобразовать входной массив x, чтобы он содержал дополнительный столбец (столбцы) со значениями x2 (и, в конечном итоге, другими функциями).
Можно преобразовать входной массив несколькими способами (например, с помощью insert() из numpy), но класс PolynomialFeatures очень удобен для этой цели. Давайте создадим экземпляр этого класса:
transformer = PolynomialFeatures(degree=2, include_bias=False)
Преобразователь переменных относится к экземпляру PolynomialFeatures, который вы можете использовать для преобразования входного x.
Вы можете указать несколько дополнительных параметров для PolynomialFeatures:
|