Множественная линейная регрессия с помощью scikit-learn
Вы можете реализовать множественную линейную регрессию, выполнив те же шаги, что и для простой регрессии.
Шаги 1 и 2: Импорт пакетов и классов и предоставление данных
Сначала вы импортируете numpy и sklearn.linear_model.LinearRegression и предоставляете известные входные и выходные данные:
import numpy as np
from sklearn.linear_model import LinearRegression
x = [ [0, 1], [5, 1], [15, 2], [25, 5], [35, 11], [45, 15], [55, 34], [60, 35] ]
y = [4, 5, 20, 14, 32, 22, 38, 43]
x, y = np.array(x), np.array(y)
Это простой способ определить вход x и выход y. Вы можете распечатать x и y, чтобы увидеть, как они выглядят сейчас:
>>> print(x)
[ [ 0 1]
[ 5 1]
[15 2]
[25 5]
[35 11]
[45 15]
[55 34]
[60 35] ]
>>> print(y)
[ 4 5 20 14 32 22 38 43]
В множественной линейной регрессии x — это двумерный массив, по крайней мере, с двумя столбцами, а y — обычно одномерный массив. Это простой пример множественной линейной регрессии и x имеет ровно два столбца.
Шаг 3: Создайте модель и подгоните ее
Следующим шагом будет создание модели регрессии как экземпляр LinearRegression и подгонка ее с помощью .fit():
model = LinearRegression().fit(x, y)
Результатом этого оператора является переменная модель, ссылающаяся на объект типа LinearRegression. Он представляет собой регрессионную модель, оснащенную существующими данными.
Шаг 4: Получение результатов
Вы можете получить свойства модели так же, как и в случае простой линейной регрессии:
>>> r_sq = model.score(x, y)
>>> print('coefficient of determination:', r_sq)
coefficient of determination: 0.8615939258756776
>>> print('intercept:', model.intercept_)
intercept: 5.52257927519819
>>> print('slope:', model.coef_)
slope: [0.44706965 0.25502548]
Вы получаете значение R2 с помощью .score() и значения оценщиков коэффициентов регрессии с .intercept_ и .coef_. Опять же, .intercept_ содержит смещение b0, в то время как теперь .coef_ — это массив, содержащий b1 и b2 соответственно. В этом примере перехват составляет приблизительно 5,52, и это значение прогнозируемого отклика, когда x1=x2=0. Увеличение из x1 на 1 дает рост прогнозируемой реакции на 0,45. Точно так же, когда x1 увеличивается на 1, отклик увеличивается на 0,26.
Достарыңызбен бөлісу: |