머신러닝 지도 학습 알고리즘 종류

지수토리·2023년 3월 9일
1

머신러닝

목록 보기
3/6
post-thumbnail
post-custom-banner

📌 지도학습 Supervised Learning

머신러닝에는 지도학습과 비지도학습이 있다.
그 중 지도학습에 대해 다루어보겠다.

지도학습은 언제 사용할까?
데이터셋에 정답이 있는 경우 사용한다.
데이터(label)중 하나가 결괏값이 되는 데이터셋에 대하여 지도학습 알고리즘을 적용한다.

이러한 지도학습에는 "회귀"와 "분류"가 있다.

그림 출처: 생활코딩

  • 회귀란?
    예측하고자 하는 값(종속변수)이 양적/연속형 데이터일 때 주로 사용하는 머신러닝 방법이다.
    선형회귀, 비선형회귀가 있다.
    ▶ 대표적인 회귀 알고리즘: 선형 회귀, 로지스틱 회귀, 다항 회귀
  • 분류란?
    예측하고자 하는 값(종속변수)이 범주형 데이터일 때 주로 사용하는 머신러닝 방법이다.
    이진분류, 다중분류가 있다.
    ▶ 대표적인 분류 알고리즘: 로지스틱 회귀, 나이브베이즈, 의사결정트리, 서포트 벡터 머신, k-최소 근접, 심층 신경망, 앙상블 학습(voting, bagging, boosting, stacking)

    앙상블 학습?
    
    > 보팅: 하나의 데이터 셋에서 "다양한 알고리즘의 분류기"를 사용해 예측한 값을 "결합"
    > 배깅: 한 가지의 알고리즘 분류기를 통해 "다양한 데이터셋 각각"을 학습시켜 예측한 값을 "결합"
    > 부스팅: 여러 개의 분류기를 학습하면서 앞서 예측을 진행한 분류기가 예측 틀린 데이터에 대해 "가중치(weight)"를 부여하여 다음 분류기의 학습을 진행
    > 스태킹: 미리 다른 알고리즘 분류기로 예측한 값을 다시 학습용 데이터로 만들어 다른 분류기에 "재학습"시키는 방식

📌 알고리즘 종류

  1. logistic regression 로지스틱 회귀
    데이터가 특정 범주에 속할 확률을 0에서 1사이 값으로 예측하고, 그 확률에 따라 더 높은 범주에 속하는 것으로 분류해주는 2진 분류 알고리즘이다.

    ✔ 사이킷런(sklearn)에서의 학습

    • 하이퍼 파라미터

      • penalty: {‘l1’, ‘l2’, ‘elasticnet’, None}, default=’l2’
      • dual: bool, default=False
      • tol: float, default=1e-4
      • C: float, default=1.0,
      • fit_intercept: bool, default=True
      • intercept_scaling: float, default=1
      • class_weight: dict or ‘balanced’, default=None
      • random_state: int, RandomState instance, default=None
      • solver: {‘lbfgs’, ‘liblinear’, ‘newton-cg’, ‘newton-cholesky’, ‘sag’, ‘saga’}, default=’lbfgs’
      • max_iter: int, default=100
      • multi_class: {‘auto’, ‘ovr’, ‘multinomial’}, default=’auto’
      • verbose: int, default=0
      • warm_start: bool, default=False
      • n_jobs: int, default=None
      • l1_ratio: float, default=None
  1. linear regression 선형 회귀

    • 변수 사이의 선형적인(직선적인)관계를 모델링 한 것이다. 데이터들을 이용해 일차방정식을 수정해나가는 알고리즘이다.
    • 선형 회귀를 통해서 특정 요인의 수치가 다른 특정 요인의 수치에 영향을 받고 있는지 아닌지 확인할 수 있다.
    • 단순 선형 회귀 분석과 다중 선형 회귀 분석이 있다.

    ✔ 특징

    • 특징 1. 독립변수와 종속변수가 선형 관계이다.

      • 종속변수와 독립변수가 선형이 아닌 경우 대처법
        ◦ 다항 회귀 - 독립변수에 지수승을 붙여서 여러개의 변수로 만든다.
        ◦ 일반화 가법 모형 GAM - 독립변수를 그대로 이용하는 것이 아니라 다른 함수의 선형 결합으로 표현한다.
    • 특징 2. 데이터에 아웃라이어가 없다.

    • 특징 3. 오차항은 평균이 0이고 분산이 일정한 정규분포를 갖는다.

      • 만약 오차항의 확률분포가 정규분포가 아닌 경우 대처법
        ◦ 일반화 선형 회귀 GLM - 종속 변수에 적절한 함수를 적용(ex. logistic regression, ordinal regression, poisson regression)
    • 특징 4. 오차항은 자기 상관성(시계열에서의 주기성 같이 일정한 패턴을 가진 경우)이 없다.

    • 특징 5. 오차항과 독립변수는 서로 독립이다.

    ✔ 사이킷런(sklearn)에서의 학습

    • 하이퍼 파라미터

      • fit_intercept: 이 모델의 절편을 계산할지 여부로 False로 설정하면 계산에 절편이 사용되지 않음. (즉, 데이터가 중앙에 위치할 것으로 예상됨), default = True
      • copy_X: True이면 X가 복사되고, 그렇지 않으면 덮어쓴다.
      • n_jobs: 계산에 사용할 작업 수, default=None
      • positive: True로 설정하면 계수가 양수가 됨. 이 옵션은 고밀도 배열에만 지원, default=False
  1. decision tree 의사결정트리
    "분류 규칙"을 통해 데이터를 분류 또는 회귀하는 모델이다.

    • 데이터 전처리(정규화, 결측치, 이상치 등에 대한 처리)를 하지 않아도 된다.
      수치형과 범주형 변수를 한번에 다룰 수 있다.
    • 그러나 만약 샘플의 사이즈가 크다면 효율성과 가독성이 떨어진다.
      과적합으로 알고리즘 성능이 떨어질 수 있기에, 트리의 크기를 사전에 제한하는 튜닝이 필요하다.
    • 한번에 하나의 변수만을 고려하기 때문에 상호작용을 파악하기는 어렵다.
    • 약간의 레크드 개수의 차이 등으로 트리의 모양이 많이 달라질 수 있다.
    • 이를 극복하기 위해 나온 것이 랜덤 포레스트다!
  2. random forest 랜덤 포레스트
    앙상블 머신러닝 모델로 다수의 의사결정 트리를 만들고, 그 나무들의 분류를 집계해서 최종적으로 분류한다.

  3. gradient boosting 그래디언트 부스팅

  4. Support Vector Machine 서포트 벡터 머신

  5. Neural Network 인공신경망


참고한 자료

post-custom-banner

0개의 댓글