혼공학습단 10기

[혼공학습단 10기] 혼자 공부하는 머시러닝 + 딥러닝 2주차 Ch_3 회귀 알고리즘과 모델 규제

부지런한 지구인 2023. 7. 15. 17:00

03-1 k-최근접 이웃 회귀

 

k-최근접 이웃 회귀

 

지도 학습 알고리즘

회귀(regression) : 임의의 숫자를 예측

분류(classification) : 샘플을 몇 개의 클래스 중 하나로 분류

 

k-최근접 이웃 알고리즘

분류 :

1. 예측하려는 샘플에 가장 가까운 샘플 k개 선택

2. 이 샘플들의 클래스중 다수 클래스를 새로운 샘플의 클래스로 예측

 

회귀 :

1. 예측하려는 샘플에 가장 가까운 샘플 k개를 선택

2. 샘플 k개의 평균값을 계산

 

실습

데이터 준비하기

농어 데이터
농어 데이터 산점도
train, test set 분리하기

 

결정계수(R^2)

 

결정계수 ( coefficient of determination )

- 결정계수가 0에 가까운 값

    예측한 값이 타깃의 평균 정도를 예측하는 수준

- 결정계수가 1에 가까운 값

     예측한 값이 타깃과 가까운 값을 예측

 

 

실습

훈련, 평가

모델 훈련, 평가

 

절댓값 오차의 평균을 평가로 사용

절댓값 오차를 평균

 

 

과대적합 vs 과소적합

 

과대적합 (overfitting )

- 훈련 세트에서는 점수가 좋은데, 테스트 세트에서는 점수가 나쁨

- 훈련 세트에서만 잘 맞는 모델

 

과소적합 (underfitting)

- 훈련세트보다 테스트 세트에서 점수가 좋음

- 훈련세트, 테스트 세트 둘 다 점수가 너무 낮음

- 모델이 단순하여 훈련 세트에 적절히 훈련되지 않은 경우

 

실습

훈련 세트와 테스트 세트의 점수 비교

훈련 세트와 테스트에서의 점수

 

문제점

- 과소적합, 훈련 세트에 비해 테스트 세트에서 점수가 높음

해결책

 - 모델을 복잡하게 만든다.

     -> k를줄여 k-최근접 이웃 알고리즘에서 모델을 복잡하게 만든다.

 

k를 줄인다.

- 국지적인 패턴에 민감

k를 늘린다.

- 데이터 전반에 있는 일반적인 패턴을 따름

 

복작한 모델 훈련
모델 변경 후 훈련 세트와 테스트에서의 점수

 

결과해석

- 모델 변경 후 훈련세트의 점수가 테스트세트에서의 점수보다 크다.

- 과소적합 문제 해결.

 

 

 

 

03-2 선형 회귀

 

k-최근접 이웃의 한계

 

실습

길이가 50cm인 농어 무게 예측하기

길이가 50cm인 농어의 무게 예측

 

예측한 50cm 농어의 산점도

 

문제점

 : 훈련데이터의 산점도상으로 길이가 증가하면 무게도 증가한다.

 : k-최근접 이웃 알고리즘은 가까운 샘플들의 무게의 평균을 구한다.

 : 45cm 근방의 샘플들의 무게의 평균을 구하게 된다.

 

 

길이가 100cm인 농어 무게 예측하기

 

길이가 100cm인 농어의 무게 예측

 

예측한 100cm 농어의 산점도

 

k-최근접 이웃 회귀의 한계

- 새로운 샘플이 훈련 세트의 범위를 벗어나면 잘못된 예측을 한다.

- 농어의 길이가 늘어나도 예측 무게는 늘어나지 않는다.

 

 

 

선형 회귀

- linear regression

- 특성이 하나인 경우 어떤 직선을 학습하는 알고리즘

- y = ax + b

- a, b를 찾는다.

 

실습

선형회귀로 50cm 농어 예측

 

선형회귀로 50cm농어의 무게 예측

 

선형회귀가 찾은 a, b값

 

예측한 회귀직선

 

훈련세트와 테스트세트의 결정계수 비교

문제점

- 길이가 작아지면 무게가 0보다 작아지도록 예측할 것으로 보임.

- 훈련세트의 산점도는 직선이 아닌 곡선의 형태를 보임

- 테스트세트의 점수가 낮음

 

 

다항 회귀

 

실습

2차 방정식의 그래프 그리기

훈련세트에 길이를 제곱한 항 추가하기

 

농어 길이의 제곱을 훈련세트에 추가
길이의 제곱을 추가한 훈련데이터를 훈련한 모델의 길이가 50cm인 농어의 무게 예측

 

2차방정식이 선형 회귀인 이유

길이의 제곱을 다른 변수를 치환
ex)  x:길이, y: 길이의 제곱, z : 무게
z = y*a + x*b + c

 

모델의 회귀 곡선

 

단순 선형회귀 모델 나은점  

- 훈련 세트의 경향을 잘 따르고 있다.

- 무게가 음수로 나오는 경우가 없다.

 

훈련세트와 테스트세트의 결정계수

결과해석

- 다항회귀를 사용하니 단순회귀에 비해 훈련세트와 테스트세트의 결정계수가 높아졌다.

 

문제점

- 테스트세트의 결정계수가 훈련세트의 결정계수보다 크다.

 

 

 

03-3 특성 공학과 규제

 

다중 회귀

- multiple regression

- 여러 개의 특성을 사용한 선형회귀

 

특성 공학

- feature engineering

- 기존의 특성을 사용해 새로운 특성을 만들어 내는 것.

 

사이킷런의 변환기

- transformer

- 특성을 만들거나 전처리하기 위한 클래스

- fit(), transform(), fit_transform()

 

실습

데이터준비

농어 data

 

train set, test set 분리

 

 

PolynomialFeatures 클래스를 이용한 transform

- 각 특성을 제곱한 항을 추가하고 특성끼리 서로 곱한 항을 추가

- include_bias = False : 절편을 위한 항을 제거.

PolynomialFeatures Transform

 

다중 회귀 모델 훈련하기

 

다중 회귀 모델 결과

결과 해석

- 농어의 길이만 사용했을 때의 과소적합은 사라졌다.

 

특성을 추가하여 반복수행

 

특성을 추가하여 반복 수행

결과 해석

- 훈련세트는 거의 1로 매우 높은 점수이다.

 

문제점

- 테스트 세트의 점수가 음수가 나왔다.

- 샘플의 갯수보다 특성의 갯수가 많다.

특성의 개수를 늘리면 선형 모델은 훈련 세트를 거의 완벽하게 학습한다.
그러나, 훈련 세트에 강하게 과대적합되어 테스트 세트에서 점수가 안좋아진다.

샘플의 갯수보다 특성의 갯수가 많으면 과대적합문제가 발생한다.

 

규제

- regularization

- 모델이 훈련 세트를 과도하게 학습하지 못하도록 한다.

- 모델이 훈련 세트에 과대적합하지 않도록 한다.

- 선형 회귀 모델의 경우는 특성에 곱해지는 계수의 크기를 작게 만들거나 0으로 만든다.

 

특성의 스케일

- 특성의 스케일이 정규화되지 않으면 특성에 곱해지는 계수 값도 차이가 발생.

- 일반적으로 선형 회귀 모델에 규제를적용할때 계수 값의 크기가 많이 다르면 특성들이 공정하게 제어되지 않는다.

 

실습

StandardScaler를 이용한 정규화

StandardScaler를 이용한 정규화

 

릿지 회귀

- ridge

- 계수를 제곱한 값을 기준으로 규제를 적용

 

실습

ridge 모델

ridge 모델

결과 해석

- 훈련세트의 점수가 약간 감소했다.

- 테스트세트의 점수가 음수에서 정상적인 값으로 돌아왔다.

- 과대적합되지 않았다.

 

alpha 매개변수

- 규제의 강도를 조절

- alpha 값이 크다

  -> 규제 강도가 세다

  -> 계수 값을 줄인다.

  -> 현재보다 과소적합되도록 한다.

- alpha 값이 작다.

  -> 규제 강도가 약하다.

  -> 계수 값이 선형 회귀 모델의 계수값과 비슷해진다.

  -> 과대적합된다.

- 적절한 alpha값 찾기 : 모든 alpha값에 대해서 결정계수값을 그래프로 그려보고, 훈련 세트와 테스트 세트의 점수가 가장 가까울때의 alpha값을 선택

 

실습

다양한 alpha값에 따른 결정계수 값

그래프 해석

- 파란선 : 훈련 세트, 주황선 : 테스트 세트

- 그래프의 왼쪽

  -> 훈련 세트와 테스트 세트의 점수 차이가 크다

  -> 훈련 세트는 잘 맞추고, 테스트 세트는 못 맞춘다

  -> 과대적합

- 그래프의 오른쪽

  -> 훈련 세트와 테스트 세트의 점수가 모두 낮아진다.

  -> 과소적합

- 훈련세트와 테스트세트의 점수가 가장 가깝고, 테스트 세트의 점수가 가장 높은 -1

  -> alpha = 0.1 : 가장 적적할 alpha

 

alpha = 0.1일때 점수

 

라쏘

- lasso

- 계수의 절대값을 기준으로 규제

- 계수를 0으로 만들 수도 있다.

 

실습

lasso alpha 값 찾기

그래프 해석

- 그래프 왼쪽

  -> 과대적합

-그래프 오른쪽

  -> 과소적합

- 최적의 값은 1

  -> alpha값은 10

 

alpha = 10일때 점수

결과 해석

- 과대적합을 줄임.

- 테스트 세트의 성능을 높임.

 

라쏘의 특징 확인하기

라쏘의 coefficient 갯수

- 55개의 특성에서 40개의 특성으로 특성의 갯수가 줄어듬.

- 유용한 특성을 골라내는 용도로 라쏘를 사용하는 이유

 

 

 

 

 

기본미션

Ch. 03(03-1) 2번 문제 출력 그래프 인증하기

n_neighbors을 1, 5, 10

 

선택미션

모델파라미터 설명하기

model parameter

머신러닝 모델이 특성에서 학습함 파라미터

ex) linear regression의 model parameter : coefficient, intercept

 

hyperparameter

머신러닝 모델이 학습할 수 없고 사람이 알려줘야 하는 파라미터

ex) rige, lasso의 alpha값