데이터분석/회귀분석

scikit-learn 패키지를 활용한 단순회귀모형과 중회귀모형

상선약수64 2024. 8. 30. 16:35
반응형

1, 단순선형회귀모형 

 

  • scikit-learn 패키지에서 학습을 위한 데이터는 (n,c) 형태의 array 데이터 입니다. n은 데이터 개수이고, c는 feature(컬럼)의 개수를 의미합니다. n에 -1로 지정하면 크기를 자동으로 계산하도록 합니다.

       예를 들어, x.reshape(-1, 1) 코드는 차원 크기를 자동으로 계산하고, 1은 1차원 배열로 구성된다는 의미 입니다.

 

  • 선형회귀모형은 scikit-learn패키지의 LinearRegression 클래스를 이용해 모델을 설정할 수 있습니다. LinearRegression() 생성자를 이용하여 새로운 선형회귀모델 객체를 만들고, fit()메소를 이용하여 선형회귀모형을 설정합니다. 
#데이터
x = [30, 20, 50, 40, 10]
y = [120, 60, 140, 100, 70]

import numpy as np
from sklearn.linear_model import LinearRegression #scikit-lean 라이브러리에서 LinearRegression 클래스를 import함
x = np.array(x).reshape(-1, 1) #1차원 배열
y = np.array(y).reshape(-1, 1) #1차원 배열
lr = LinearRegression() #LinearRegression() 생성자를 이용하여 객체를 만듦
lr.fit(x, y) #설명변수와 반응변수의 배열에 대한 선형회귀모형을 설정
  • 절편과 회귀계수 확인
    • intercept_ : 절편
    • coef_ : 회귀계수 
print(lr.coef_) #회귀계수
print(lr.intercept_) #절편

 

  • 결정계수
    • socr(x, y) : 결정계수로 모형평가
print(lr.score(x, y)) #결정계수