3. 회귀 알고리즘과 모델 규제

Rampaging Turtle·2025년 1월 16일
0

K-최근접 이웃 회귀

지도 학습 알고리즘은 크게 분류와 회귀(regression)으로 나뉜다.
회귀는 두 변수 사이의 상관관계를 분석하는 즉, 임의의 어떤 숫자를 예측하는 문제입니다.
K-최근접 이웃 회귀 알고리즘을 구현한 클래스는 KNeighborsRegression 입니다.

  • 결정계수 (coefficient of determination) = R2
    • R2=(타깃예측)2의합(타깃평균)2의합{R^2} = \frac{(타깃 - 예측)^{2}의 합}{(타깃 - 평균)^{2}의 합}

  • 과대적합 vs 과소적합
    • 과대적합 (overfitting) : 훈련세트에서 점수가 좋았는데 테스트 세트에서 점수가 나쁜 모델이 훈련된 세트
    • 과소적합 (underfitting) : 훈련세트보다 테스트 세트의 점수가 높거나 두 점수가 모두 너무 낮은 훈련 세트
    • 과소적합이 일어나는 원인은 훈련세트와 테스트 세트의 크기가 매우 작기 때문
    • 훈련세트 점수와 테스트세트 점수 차이가 크면 좋지 않음. 일반적으로 훈련세트의 점수가 테스트 세트보다 조금 더 높음.
    • 과대적합일 경우 모델을 덜 복잡하게 만들어야 함. (k값을 늘림)
    • 과소적합일 경우 모델을 더 복잡하게 만들어야 함. (k값을 줄임)

선형회귀

  • K-최근접 이웃 회귀의 경우, 훈련세트를 벗어나는 수치의 샘플이 오면 제대로 예측하지 못하는 한계가 있다.
    이런 경우 선형회귀 알고리즘으로 해결이 가능하다.

    • 선형 회귀(linear regression)은 널리 사용되는 대표 회귀 알고리즘으로 특성이 하나인 경우 어떤 직선을 학습하는 알고리즘

      y = a * x + b (a = 기울기, b = 절편, x = 길이)

    • 다항 회귀 : 곡선 linear, 현실을 반영

      y = a * x2 + b + x + c (a = 기울기, b = 절편, x = 길이)

특성 공학과 규제

  • 1개의 특성을 사용했을 때 선형 회귀 모델이 학습하는 것은 직선임 (곡선 표현을 위해 x{x}x2{x^2} 를 사용할 때에도 특성은 하나임, 헷갈리지 말자)
    • 특성 : 길이, 목표 : 무게
  • 특성이 2개면 선형 회귀는 평면을 학습한다.
    • 특성 : 길이, 높이, 두께, 목표 : 무게
  • 2개의 특성이 존재할 때 회귀 방정식
    • 타깃 = A X 특성1 + B X 특성2 + 절편
  • 특성공학 (feature engineering)

    여러개의 특성이 존재할 때 각 특성을 새로 곱해서 새로운 특성을 만들어 내는 작업을 의미함.
    농어의 "길이 X 높이"를 새로운 특성으로 생성하여 정의함.
    PolynomialFeatures() 함수의 transform을 사용할 경우, 한 샘플의 특성이 여러개로 늘어나는 현상을 설명한다.

규제 (regularization)

  • 규제란 머신러닝 모델이 훈련세트를 너무 과도하게 학습하지 못하도록 훼방하는 것을 의미. 모델이 훈련세트에 과대적합되지 않도록 만드는 것.
  • 선형 회귀 모델에 규제를 추가한 모델은 릿지(ridge)라쏘(lasso) 가 있다.
    • 릿지 회귀 : 계수를 제곱한 값을 기준으로 규제를 적용
    • 라소 회귀 : 계수의 절댓값을 기준으로 규제를 적용
  • alpha 매개변수
    • 릿지와 라쏘 모델을 사용할 때 규제의 양을 임의로 조절할 수 있음.
    • alpha 매개변수로 규제의 강조를 조절
      • alpha의 값의 매우 커지면 규제강도가 쎄지므로 과소적합됨. 작아지면 과대적합됨
    • alpha값은 릿지모델이 학습하는 값이 아니라 사전에 사용자가 지정하는 값
    • alpha값과 같이 머신러닝 모델이 학습할 수 없고 사람이 알려줘야 하는 파라미터를 하이퍼파라미터(hyperparameter)라고 한다.
  • 특성이 여러개일 경우, 특성의 스케일을 정규화 해야함. 사이킷런에서 스케일 정규화를 위해 StandardScaler 클래스를 제공함
profile
소프트웨어 엔지니어

0개의 댓글

관련 채용 정보