혼공 머신러닝/딥러닝 #3

이번 장에서는 회귀 알고리즘 2가지와 모델 규제에 대해 배웠다.

k-최근접 이웃 회귀

  • 분류 문제에 사용했던 kNN 알고리즘은 회귀 문제에도 사용할 수 있다.
    • 하지만 범위를 훈련 세트의 범위를 벗어나는 데이터는 예측이 잘 안 맞는다.
    • 모델은 kNeightborsRegressor 를 사용.
  • kNN 회귀 방식 : 이웃 값들의 평균으로 예측치를 구함.
  • 회귀의 평가에는 결정계수($R^2$)를 사용함. $R^2 = {\sum(타깃 – 예측)^2 \over \sum(타겟 – 평균)^2}$
    • 상대적 수치이므로 절대 수치로 비교하려면 mean_absolute_error를 쓸 수 있다.
  • 과대적합 vs 과소적합
    • 훈련 세트 점수는 좋은데 테스트 세트 점수가 나쁘다면? → 과대적합(훈련 세트에만 너무 잘 맞춰짐)
    • 반대라면? 과소적합
    • 둘다 점수가 낮은 것도 과소적합
    • 데이터가 적어서 생길수도 있다
  • 과소적합(훈련 세트 점수 < 테스트 세트 점수) 해결하기
    • 모델을 좀 더 복잡하게 만들어서 다시 훈련 → 훈련 세트 점수는 높아지고 테스트 세트 점수는 낮아질 것.
데이터 세트 불러오기, 시각화 해보기
훈련하기
미션. 확인문제(03-1. 2번)

선형 회귀

  • kNN 회귀 모델의 한계 때문에 훈련 세트의 데이터 범위를 벗어나는 예측이 빗나갔다.
  • 선형 회귀 : 대표적인 회귀 알고리즘, 간단하고 성능이 뛰어남. 특성이 하나인 경우 어떤 직선을 학습하는 알고리즘. 데이터의 특성을 가장 잘 나타낼 수 있는 직선을 찾는다.
  • sklearn.linear_model.LinearRegression 클래스
선형회귀(LinearRegression) 모델 훈련과 예측, 파라미터 출력

선택 미션

  • 모델 파라미터란?
    • 머선러닝 모델의 구성 요소
    • 알고리즘이 찾은(학습한) 값
    • 선형회귀에선 기울기(coef_ 또는 weight)와 절편(intercept_ 또는 bias) 값을 뜻함.

다항회귀

  • 데이터의 특성에 따라 선형이 아니라면 n차항을 늘려가며 선형회귀를 할 수 있다.
    • 훈련 데이터(특성)의 제곱(2차항), 세제곱(3차항), … 을 훈련 데이터에 추가
    • 이때에도 선형회귀 모델을 사용할 수 있다.

다항회귀

  • 데이터의 특성에 따라 선형이 아니라면 n차항을 늘려가며 선형회귀를 할 수 있다.
    • 훈련 데이터(특성)의 제곱(2차항), 세제곱(3차항), … 을 훈련 데이터에 추가
    • 이때에도 선형회귀 모델을 사용할 수 있다.

특성 공학과 규제

다중 회귀

  • 여러 특성을 사용하는 회귀
  • 기본적으로 단순 선형 회귀와 같은 방식. 다만 여러 특성을 사용한다.

규제

  • 모델이 훈련 세트를 너무 과도하게 학습하지 못하도록 훼방하는 것 = 훈련 세트에 과대적합 되지 않도록 하는 것
  • 선형 회귀에서는 계수의 크기를 작게 만드는 것을 의미
  • 릿지(ridge), 라쏘(lasso)
    • 릿지 : 보통 이걸 선호
      • solver 매개변수 : 알고리즘 지정, sag=확률적 평균 경사하강법, saga=개선된 sag
    • 라쏘 모델은 특성의 계수를 0 으로 만들 수도 있다(즉 무시). 어떤 특성이 유효한지 찾기 위한 용도로도 활용할 수 있다.
      • 최적화에 좌표 하강법을 사용
      • max_iter 매개변수 : 알고리즘 반복 수행 횟수 지정
  • 훈련은 정규화한 특성으로 해야 함.
  • 규제의 정도를 alpha로 조정할 수 있음.
    • 이런 값들을..하이퍼파라미터(hyperparameter) 라고 부름. 사람이 정하는 값.
    • 적절한 alpha 값 찾기(하이퍼파라미터 튜닝) : 이것저것 해보기. 그리고 score 계산해보기

답글 남기기

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