코딩헤딩

[ML(머신러닝)] 다중회귀모델(Multiple Regression) 본문

머신러닝 | 딥러닝

[ML(머신러닝)] 다중회귀모델(Multiple Regression)

멈머이 2023. 12. 29. 23:50
728x90

<다중회귀모델(Multiple Regression)>

  - 여러 개의 특성을 사용한 회귀모델
  - 특성이 많을수록 복잡도가 증가됨, (훈련시간이 오래 걸림, 시간 성능에 따라 빠를 수도 있음

  - 다중회계모델 공식
     => y = a*x1 + b*2 + c*3 + ... + y절편

 

 

* 훈련 정확도 및 검증(test) 정확도 확인해 보기

1. 독립변수 생성하기
  - 데이터프레임의 특성 중에 독립변수로 사용하 특성들을 2차원의 리스트 또는 배열 형태로 만들어주어야 함.

perch_full = df.to_numpy()
perch_full.shape

 

 

2. 종속변수 생성하기

import numpy as np
perch_weight = np.array(
                        [데이터 넣을 곳]
                         )

perch_weight.shape

**독립변수와 종속변수의 개수는 같아야 한다.

 

 

3. 훈련 및 테스트 데이터로 분류하기

from sklearn.model_selection import train_test_split
train_input, test_input, train_target, test_target = train_test_split(perch_full,
                                                                      perch_weight,
                                                                     test_size=0.3,
                                                                     random_state=42)
print(f"{train_input.shape} / {train_target.shape}")
print(f"{test_input.shape} / {test_target.shape}")

  - 분류기준 : 테스트 데이터를 30%로, 랜덤규칙은 42번

 

 

4. 모델생성하기

from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr

 

 

5. 모델 훈련시키기

lr.fit(train_input, train_target)

 

 

6. 훈련 정확도 및 검증(test) 정확도 확인하기

train_r2 = lr.score(train_input, train_target)
test_r2 = lr.score(test_input, test_target)

train_r2, test_r2

 

 

* 과적합 여부 파악하기
 <해석>
 훈련과 검증(테스트) 결정계수의 결과로 볼 때 과소적합은 발생하지 않았으며, 
 또한, 0.07~0.08 정도로 과대적합 또한 일어나지 않은 일반화된 모델로 볼 수 있음.
 - 다만, 검증(테스트) 정확도가 0.8대에서 0.9대로 올릴 수 없을지 고민해 본다.

 - 특성공학을 적용하여 특성 늘리는 방법으로 집중도를 강화하는 방식을 사용 해서 성능 향상이 되는지 확인


 <특성을 생성하는 라이브러리>
  - 사용 패키지 : sklearn.preprocessing
  - 사용 클래스 : PolynomalFeatures(변환기라고 보통 칭함)
  - 사용함수 : fit(훈련 독립변수에서 생성할 특성의 패턴 찾기), transform(찾은 패턴으로 특성 생성하기)
  - 종속변수는 사용되지 않는다.

728x90