1 분 소요

Logistic Regression

머신 러닝에서 정확한 예측을 생성하는 데 자주 사용되는 통계 모델이다. 사건이 발생할 확률을 결정하는데 사용되고 특성 간의 관계를 보여주고 특정 결과의 확률을 계산하는 방식이다.
또한 대상 변수가 이진이기때문에 값이 0또는 1로 나오게 된다.

특징

  1. 이진 로지스틱 회귀에서는 응답 변수가 이진이어야 된다.
  2. 대체로 대규모 크기의 샘플을 하는 경우 많이 사용된다.
    • 유명한 것은 심장병 질환에 걸릴 확률 예측

Ridge Regression 장단점

  • 장점

      1. 매우 효율적이고 엄청난 양의 리소스를 필요로 하지 않기 때문에 다양하게 사용된다.
      2. 해석이 쉽고 정규화또한 쉽기때문에 제공하는 결과도 잘 보정되어 있는 예측 확률이다.
      3. 관련이 없는 속성 또는 상관 관계가 있는 속성이 생략될 때 더 효율적이고 특히 Feature Engineering에서 성능의 효율성에 중요한 역할을 한다.
      4. 구현이 쉽고 복잡한 알고리즘 성능을 측정하는 데 도움이 된다.
    
  • 단점

      1. 비선형 문제를 해결할 때 사용이 불가능하다.
      2. 데이터의 표시에 의존성이 높고, 그로인해 과적합이 될 확률이 높다.
    

데이터 나누기

‘너가 찾아야할 답은 이거야’

  • 머신러닝 학습을 시킬 때 평가를 위해서 데이터를 적절하게 분리하는 작업이 필요하다.
  1. 훈련데이터
    • 모델을 학습하는데 사용된다.
    • 이 데이터를 기반으로 모델이 예측하는 것이 달라지게 된다.
  2. 테스트데이터
    • 훈련이나 검증과정에서 사용되지 않으며, 일반화 오류를 평가하기 위해서 선택된 모델에 한해서 한번 사용된다.
  3. 검증데이터
    • 모델을 선택하기 위해서 오류를 측정할 때 사용된다.
  • 보통 훈련과 테스트 데이터를 나누는 경우 4:1 비율이 많이 사용된다.
    • 이때 데이터의 비율이 훈련과 테스트가 동일해야한다. 예를 들어 양성, 음성을 나누는 문제에서 훈련이나 테스트에 양성또는 음성 비율이 과하게 이상할 경우 내가 원하는 모델이 안나올 수도 있다.

예시

  • 흔한 간질환 데이터로 보도록 하자.
  • 보통 학습전에 이런식으로 나누게 된다. 여기서 test_size=0.2의 비율이 위에서 언급한 80% 20% 4:1 비율이다.
from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer()
x = cancer.data
y = cancer.target

# 데이터 나누기
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, stratify=y, test_size=0.2, random_state=42)

훈련 데이터

모델에게 가리키기

우리가 무언가를 보고 배우듯, 모델에게도 보고 배울 무언가가 필요하다. 그게 바로 훈련 데이터이다.

테스트 데이터

모델을 만들 때 없어서는 안되는 데이터이다. '최종 모델에 대한 바이어스가 없는 평가를 제공하는 것'이라고도 표현한다.

위에서도 언급했듯이 딱 1번만 사용되기 떄문에, 훈련 데이터셋과 검증 데이터셋 두 가지를 모두 사용한 경우 흔히 최종 학습이 끝난 모델이라고 한다.

  • Kaggle 대회에서는 검증셋이 초기에 훈련셋과 주어지는데, 경쟁에서 승리하기 위해서는 시험 데이터셋의 성능을 바탕으로 정해진다.
    • 이때 많이들 검증 셋을 테스트 셋으로 사용하는데, 이것은 좋지 않은 경우가 많다고 한다.

검증 데이터의 중요성

검증 데이터는 모델 평가를 위해 사용되지만, 매 학습마다 자주 수행하는 평가를 위한 것이다.

특히 모델의 성능을 개선하는 과정에서 하이퍼파라미터를 미세조정하기 위해 사용된다. 별거 아닌것같아 검증을 넘길 경우 모델에 큰 영향을 주지는 않지만, 간접적으로 성능 향상의 기회를 간파하게 되는 것이다.