Как извлечь коэффициенты регрессии из модели scikit-learn


Вы можете использовать следующий базовый синтаксис для извлечения коэффициентов регрессии из модели регрессии, построенной с помощью scikit-learn в Python:

 p.d. DataFrame ( zip ( X.columns , model.coef_ ))

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: извлечь коэффициенты регрессии из модели Scikit-Learn.

Предположим, у нас есть следующий DataFrame pandas, который содержит информацию об учебных часах, количестве сданных подготовительных экзаменов и оценке за выпускной экзамен, полученной 11 учениками в классе:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' hours ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4],
                   ' exams ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4],
                   ' score ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90]})

#view DataFrame
print (df)

    hours exam score
0 1 1 76
1 2 3 78
2 2 3 85
3 4 5 88
4 2 2 72
5 1 2 69
6 5 1 94
7 4 1 94
8 2 0 88
9 4 3 92
10 4 4 90

Мы можем использовать следующий код, чтобы подогнать модель множественной линейной регрессии, используя часы и экзамены в качестве переменных-предикторов, а балл — в качестве переменной ответа:

 from sklearn. linear_model import LinearRegression

#initiate linear regression model
model = LinearRegression()

#define predictor and response variables
x, y = df[[' hours ', ' exams ']], df. score

#fit regression model
model. fit (x,y)

Затем мы можем использовать следующий синтаксис для извлечения коэффициентов регрессии часов и экзаменов :

 #print regression coefficients
p.d. DataFrame ( zip ( X.columns , model.coef_ ))

            0 1
0 hours 5.794521
1 exams -1.157647

Из результата мы можем увидеть коэффициенты регрессии для двух переменных-предикторов в модели:

  • Коэффициент для часов : 5,794521
  • Коэффициент для экзаменов : -1,157647

Если мы хотим, мы также можем использовать следующий синтаксис для извлечения исходного значения из модели регрессии:

 #print intercept value
print (model. intercept_ )

70.48282057040197

Используя каждое из этих значений, мы можем написать уравнение подобранной регрессионной модели:

Оценка = 70,483 + 5,795 (часы) – 1,158 (экзамены)

Затем мы можем использовать это уравнение, чтобы спрогнозировать итоговую оценку студента на экзамене на основе количества часов, потраченных на обучение, и количества сданных практических экзаменов.

Например, студент, проучившийся 3 часа и сдавший 2 подготовительных экзамена, должен получить итоговую оценку 85,55 :

  • Оценка = 70,483 + 5,795 (часы) – 1,158 (экзамены)
  • Оценка = 70,483 + 5,795(3) – 1,158(2)
  • Оценка = 85,55

Связанный: Как интерпретировать коэффициенты регрессии

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в Python:

Как выполнить простую линейную регрессию в Python
Как выполнить множественную линейную регрессию в Python
Как рассчитать AIC регрессионных моделей в Python

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *