Priceless
[ML] 혼자 공부하는 머신러닝+딥러닝 Ch.3 본문
Ch.3 회귀 알고리즘과 모델 규제
3-1. k-최근접 이웃 회귀
k-최근접 이웃 회귀
회귀: 임의의 어떤 숫자를 예측하는 문제
내년 경제 성장률 예측, 배달 도착 시간 예측 등
분류: 샘플을 몇 개의 클래스 중 하나로 분류하는 문제
데이터 준비
길이로 무게를 예측하기 위해서는
길이가 특성이고 무게가 타깃이 된다
사이킷런에 사용할 훈련 세트는 2차원 배열이여야 하므로 reshape() 함수를 통해 1차원 배열을 2차원 배열로 바꾼다
결정계수(R^2)
NNeighborRegressor 클래스를 사용하여 회귀 모델 훈련
회귀에서는 정확한 숫자를 맞힌다는 것은 거의 불가능하다. 예측하는 값이나 타깃 모두 임의의 수치이다.
결정계수: 회귀의 값을 평가하는 계수로, R의 제곱으로 나타낸다

R이 1에 가까울 수록 좋다
mean_absolute_error 는 타깃과 예측의 절댓값 오차를 평균하여 반환한다
과대 적합: 훈련 집합에 비해 테스트 집합에서 예측 값이 크게 낮은 현상
과소 적합: 훈련 집합에 비해 테스트 집합에서 예측 값이 크게 높은 현상
회귀에서 과소 적합을 해결하기 위해 학습 모델을 더 복잡하게 만들 수 있다
이웃의 개수 k를 줄여 국지적인 패턴에 민감하게 반응하도록 한다
회귀 문제 다루기
모델을 훈련하고 나서 훈련 세트와 테스트 세트에 대해 모두 평가 점수를 구할 수 있다
훈련 세트의 점수와 테스트 세트의 점수 차이가 작을 수록 좋다
3-2. 선형 회귀
k-최근접 이웃의 한계
k-최근접 이웃 알고리즘은 평균을 구해서 학습한다
새로운 샘플이 훈련 세트의 범위를 벗어나면 예측하기 어렵다
선형 회귀
선형 회귀: 특성이 하나인 경우 특성을 잘 나타낼 수 있는 직선을 학습하는 알고리즘
from sklearn.linear_model import LinearRegression 을 통해 사용할 수 있다
직선을 찾기 위해 일차 함수의 y = ax + b의 a(coef_)와 b(intercept_) 를 학습하는 과정이다
다항 회귀
다항 회귀: 이차 이상의 함수 형태를 구하기 위한 회귀 알고리즘
곡선을 찾기 위해 샘플을 제곱한 항이 훈련 세트에 추가되어야 한다
제곱을 하더라도 타깃 값은 그대로 사용한다. 건드릴 필요가 없다
제곱한 항을 훈련 세트에 추가하여 훈련한다
train_poly, test_poly 함수 사용
3-3. 특성 공학과 규제
다중 회귀
다중 회귀: 여러 개의 특성을 사용한 선형 회귀(multiple regression)
특성 공학: 기존의 특성을 사용하여(곱하기, 더하기 등) 새로운 특성을 뽑아내는 작업
규제
규제: 머신러닝 모델이 훈련 세트를 너무 과도하게 학습하지 못하도록 제어하는 기능
과대적합을 막을 수 있다
선형 회귀 모델의 경우 특성에 곱해지는 계수의 크기를 작게 만드는 일이다
선형 회귀 모델에 규제를 추가한 모델: 릿지와 라쏘
릿지 회귀
릿지 회귀: 계수를 제곱한 값을 기준으로 규제를 적용하는 회귀 함수
from sklearn.linear_model import Ridge
를 통해 사용할 수 있다
라쏘 회귀
라쏘 회귀: 계수의 절댓값을 기준으로 규제를 적용하는 회귀 함수
라쏘는 계수를 0으로 만들 수 있다
from sklearn.linear_model import Lasso
를 통해 사용할 수 있다
'AI > ML' 카테고리의 다른 글
[ML]Image Classification과 Pytorch 실습 (1) | 2024.01.07 |
---|---|
[ML] 혼자 공부하는 머신러닝+딥러닝 Ch.6 (0) | 2023.08.29 |
[ML] 혼자 공부하는 머신러닝+딥러닝 Ch.5 (0) | 2023.08.21 |
[ML] 혼자 공부하는 머신러닝+딥러닝 Ch.4 (0) | 2023.08.15 |
[ML] 혼자 공부하는 머신러닝+딥러닝 Ch.1 & 2 (0) | 2023.08.01 |