Scikit-learn 모델에서 회귀 계수를 추출하는 방법


다음 기본 구문을 사용하여 Python에서 scikit-learn으로 구축된 회귀 모델에서 회귀 계수를 추출할 수 있습니다.

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

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: Scikit-Learn 모델에서 회귀 계수 추출

수업 시간, 응시한 준비 시험 횟수, 수업 중 11명의 학생이 획득한 최종 시험 성적에 대한 정보가 포함된 다음과 같은 pandas DataFrame이 있다고 가정합니다.

 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에서 다중 선형 회귀를 수행하는 방법
Python에서 회귀 모델의 AIC를 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다