머신러닝 알고리즘 유형과 학습법의 기본 개념

전재원·2022년 10월 27일
0
post-custom-banner

머신러닝은 AI의 하위 개념이며 딥 러닝(Deep Learning)이 머신러닝의 하위 개념이다.

머신러닝 알고리즘 유형

머신러닝 알고리즘 유형을 구분하는 것에는 두가지 기준이 있다.
첫 번째 기준은 정답의 유무로 구분되는 1) 지도학습과 2) 비지도학습이 있다.
지도학습에는 분류(Classification)과 회귀(Regression)이 있다.
비지도학습에는 군집화(Clustering)과 차원축소(Dimensionality Reduction)이 있다.
그리터 데이터의 형태에 따라 범주형을 다루는 알고리즘은 분류와 군집화, 수치형 데이터를 다루면 회귀와 차원축소로 구분지을 수 있다.

1.지도학습

지도학습은 정답(label)이 있는 데이터셋이 주어지는 경우로 여러 문제와 답을 함께 학습하여 문제에 대한 올바른 답을 예측하고자 하는 방법이다.

1) 분류(Classification)

문제의 답은 범주형 값을 갖는다.
ex : 종양이 악성인지 양성인지 진단하는 문제

2) 회귀(Regression)

주어진 input 변수를 output 변수에 대응시키는 연속함수를 찾는 과정
ex : 기간별 매출액

3) 예측(Forcasting)

과거 및 현재 데이터를 기반으로 미래를 예측하는 과정으로 동향 분석에 가장 많이 사용됨

2. 비지도학습

정답이 없고 비슷한 것 끼리 묶거나 차원 축소를 통한 분석 방법

1) 군집화(Clustering)

서로 유사한 관찰치들을 그룹으로 묶어 분류하여 군집을 찾는 것

2) 차원 축소(Dimension Reduction)

차원의 저주*를 해소하기 위해 사용하는 기법

*차원의 저주:
① 차원 증가 → 변수 증가 → 개별 차원 내에서 학습 데이터 감소 → 성능 저하
② 차원 증가 → 데이터 간 거리 증가 → 모델 예측의 신뢰도 저하

3. 강화 학습(Reinforcement Learning)

학습하는 시스템을 agent, 환경을 관찰해 agent가 스스로 행동하게 하고 모델은 그 결과로 특정 보상을 받아 이 보상을 최대화하도록 학습한다.
ex : 딥마인드의 알파고


머신러닝 학습법

결정 트리 (Decision Tree) 학습법

분류와 회귀 문제에 널리 사용하는 모델로 결정에 다다르기 위해 예/아니오 질문을 이어 나가면서 학습한다. 가능한 적은 질문으로 문제를 해결하는 것을 목표로 한다.

용어 정리1

노드 : 질문이나 정답을 담은 네모 박스
리프 : 마지막 노드

결정 트리의 종류

  1. 분류트리
    트리 모델 중 목표 변수가 유한한 수의 값을 가짐
  2. 회귀트리
    결정 트리 중 목표 변수가 연속하는 값, 일반적인 실수를 가짐

장점

  1. 결과를 해석하고 이해하기 쉽다.
  2. 자료를 가공할 필요가 거의 없다.
  3. 수지형, 범주형 데이터 모두 적용 가능하다.
  4. 화이트박스 모델을 사용.
  5. 대규모 데이터 셋에서도 잘 동작함.
  6. 안정적임.

단점

  1. 과소적합(Underfitting) 가능성
  2. 과대적합(Overfitting) 가능성

랜덤 포레스트 (Random Forest) 학습법

분류, 회귀분석에 사용되는 앙상블 학습 방법의 일종.
훈련 과정에서 구성한 다수의 결정 트리로부터 분류 또는 회귀 분석을 출력함으로 동작함.
결정 트리의 과적합 위험에 대한 대안으로 제시됨.

장점

  1. 높은 정확도

    랜덤 포레스트가 생성한 일부 트리는 과적합될 수 있지만, 많은 수의 트리를 생성해 과적합이 큰 영향을 미치지 못하도록 예방한다. 모델의 노이즈를 심화시키는 과적합 문제를 회피하여 정확도를 향상시킨다.

  2. 다재다능

    분류(Classification)와 회귀(Regression) 문제에 모두 사용 가능하기 때문에 매우 다재다능하다. 변환이나 재조정 없이 이진 및 숫자 기능과 범주형 기능을 쉽게 처리할 수 있다. 거의 모든 다른 모델과 달리 모든 유형의 데이터에서 매우 효율적이다.

  3. 데이터 관리 소요 시간 단축

    회귀 알고리즘이 아닌 의사결정나무 알고리즘에 기반한 기법이기 때문에 scaling, 정규화 과정이 필요 없어 데이터 관리 소요 시간이 단축된다.

단점

  1. 느린 연산속도

    알고리즘에서 많은 트리를 사용하기 때문에 예측의 정교함과 정확도가 높아지지만 예측에 오랜 프로세스 시간이 걸려 실시간 예측에는 비효율적이다.

  2. 추정 불가

    랜덤 포레스트의 예측은 관찰된 레이블의 평균에 의존하기 때문에 모델 특성상 모든 트리 모델을 다 확인하기 어렵기 때문에 해석이 어려워진다.

  3. 훈련 시 메모리 소모가 크다

특징

배깅(Bagging)은 bootstrap aggregating의 약자
부트스트랩(bootstrap)을 통해 조금씩 다른 훈련 데이터에 대해 훈련된 기초 분류기(Base Learner)들을 결합(Aggregating)시키는 방법

→ 서로 다른 데이터셋들에 대해 훈련시킴으로써, 트리들을 비상관화시켜주는 과정

분산을 줄이고 과적합(Overfitting)을 피하도록 해줌

주요 하이퍼 파라미터

n_estimators :

  • 결정트리의 갯수를 지정
  • default = 100
  • 트리의 갯수를 늘리면 성능이 좋아지지만 좋아지는 것 대비 시간이 오래 걸림

min_samples_split :

  • 노드를 분할하기 위한 최소한의 샘플 데이터 수
    → 과적합을 제어하기 위해 사용
  • default = 2
  • 작게 사용할 수록 분할 노드가 많아져 과적합 가능성이 증가

min_samples_leaf :

  • 리프노드가 되기 위해 필요한 최소한의 샘플 데이터 수
  • 불균형 데이터일 경우 특정 클래스의 데이터가 극도로 작을 수 있으므로 작게 설정 필요
  • min_samples_split과 함께 과적합 제어 용도로 사용

max_features :

  • 최적의 분할을 위해 고려할 최대 feature 개수
  • default = ‘sqrt’
  • int형으로 지정 → 피처 갯수
  • float형으로 지정 → 비중
  • sqrt 또는 auto : 전체 피처 중 루트를 씌운 만큼 선정
  • log : 전체 피처 중 log2 만큼 선정

max_depth :

  • 트리의 최대 깊이
  • default = None
    → 완벽하게 클래스 값이 결정될 때까지 분할
    또는 데이터 개수가 min_samples_split보다 작아질 때까지 분할
  • 깊이가 깊어지면 과적합 될 수 있으므로 적절히 제어가 필요

max_leaf_nodes :

  • 리프노드의 최대 개수

n_jobs :

  • 사용할 CPU의 코어 수
  • default = None
  • -1로 지정하면 컴퓨터의 모든 코어를 사용
profile
농구를 좋아하는 데이터 분석가 지망생
post-custom-banner

0개의 댓글