본문 바로가기

AI Theory/key concept of AI

[파이썬으로 캐글뽀개기] 캐글에서 사용되는 머신러닝 알고리즘

지도학습과 비지도 학습

지도학습(Supervised learning)

  • train data에 target, label(레이블)이라는 정답이 포함됨
  • 분류(Classification)
  • 지도 학습에 속하는 기계 학습 모델:
    • 선형 회귀(Linear Regression)
    • 로지스틱 회귀
    • SVM(Support Vector Machine)
    • 의사결정나무
    • 랜덤 포레스트
    • k-NN(k-Nearest Neighbor)
    • 신경망(Neural Network)

 

비지도학습

  • 훈련 데이터에 target이나 label 정보 없음
  • 따라서 훈련 데이터에 아무런 가이드라인이 없으므로 머신러닝 모델이 스스로 학습해야함
  • 군집화: 전체 데이터를 몇개의 작은 군집으로 나누는 것 
    • k-평균
    • 계층 군집 분석(Hierarchical cluster Analysis)
    • 이상치 탐지(outlier detection)
    • 원 클래스 SVM
  • 연관 규칙: 데이터 사이 연관된 규칙을 찾아내는 것
    • 아프리오리(Apriori)
  • 차원 축소: 매우 많은 데이터의 차원을 가능한 정보를 잃지 않으면서 소수의 차원으로 축소시키는 것
    • 주성분 분석(principle component analysis)
    • 커널 PCA
    • SVD(Singular Value Decomposition)
    • 지역적 선형 임베딩

 

회귀 모형

회귀

데이터값이 평균과 같은 일정한 값으로 돌아가려는 경향

통계학, 경제학, 공학, 의학 등...

통계학에서의 회귀분석: 여러 개의 독립 변수와 한 개의 종속 변수 간 상관관계를 모델로 만드는 기법

독립 변수의 개수 1개 단순 회귀
2개 이상 다중 회귀
예측 함수의 형태 선형 함수 선형 회귀
비선형 함수 비선형 회귀
선형 회귀에서 규제의 유무와 형태 규제 없음 일반 선형 회귀
L2 규제 릿지 회귀
L1 규제 라쏘 회귀
L1과 L2 결합 규제 엘라스틱 넷 회귀

여러가지 회귀 모델 중 오차가 가장 적은 회귀 모델이 가장 좋은 회귀

비용(COST), 손실(LOSS): 머신러닝 기반 회귀에서 오차 제곱의 합

경사 하강법: 데이터를 기반으로 스스로 학습하여 비용을 최소화하는, 즉 오차가 최소인 파라미터 구함

 

의사 결정 나무

분류, 회귀 등에 사용되는 직관적인 머신러닝 알고리즘

여러 노드와 노드를 잇는 가지로 구성됨

리프 노드: 맨 위의 로드

규칙 노드: 중간의 노드

루트 노드: 맨 아래의 노드

리프 노드의 순수도: 맨 아래의 리프 노드가 가능한 동일하도록 만들어야 분류, 예측에서 성능이 좋음

지니 계수(Gini Index): 불순도를 계산하는 또다른 방법

깊이가 깊어지고 리프 노드가 많아질 수록 의사결정나무의 예측 성능이 나빠질 가능성이 크다

>>엔트로피, 인포메이션 게인, 지니 계수 등을 이용해 최적의 의사결정나무 만들어야 함

 

앙상블 학습

여러 개의 머신 러닝 알고리즘을 결합하여 더 정확한 최종 예측을 도출하는 기법

이미지, 동영상, 음성 등의 비정형 데이터 분석에는 딥러닝이 우수하지만, 정형 데이터를 분석할 때에는 앙상블 기법이 뛰어난 성능을 보인다.

 

보팅(voting)

한 주제에 대하여 여러가지 머신러닝 기법을 적용했을 때 더 빈도수 높은 예측 결과를 선택

 

배깅(Bagging)

주어진 하나의 훈련 데이터 세트에서 여러개의 훈련 데이터 세트를 만드는데, 이때 한번 사용했던 데이터를 다른 하위 훈련 데이터를 만들때 다시 사용할 수 있도록 중복을 허용

 

평준화(averaging) 기법

예를 들어 어떤 기업이 부도날 확률을 계산하는 머신 러닝 모델이 있을 때 여러 예측값의 평균값을 최종 예측값으로 결정

 

랜던 포레스트

배깅의 대표적 머신 러닝 알고리즘

주어진 훈련 데이터셋에서 배깅 방식으로 여러 하위 훈련 데이터 세트들을 샘플링함

이때 만드는 훈련 데이터 세트는 원래 훈련 데이터 세트와 동일한 사이즈로 만들어 사용(중복이 허용되기 때문에 가능)

이렇게 만들어진 하위 훈련 데이터셋으로 의사 결정 나무를 훈련시킴

이렇게 훈련된의사결정나무의 모양은 각양각색. 이를 보팅 방식으로 결합하여 최종 결과 생성

 

부스팅 기법

여러 개의 머신러닝 기법을 차례대로 학습하여 예측하고, 잘못된 예측에 벌점을 주거나 가중치를 높이며 오류를 개선해가며 학습하는 머신러닝 기법

약한 기법을 여러 개 순서대로 사용하면서 단점을 보강해 점차 강하게 만드는 앙상블 기법

에이다부스트(Ada Boost)

이전 단계 학습에서 과소적합(Underfitting)한 훈련 데이터 샘플의 가중치를 더 높에서 다음 단계 학습 진행

학습하기 어려운 데이터 샘플을 더 잘 학습하도록 함

그레디언트 부스팅 머신(GBM)

다양한 분야에서 인기가 많은 머신러닝 기법

에이다부스트처럼 머신러닝 기법을 순차적으로 학습하고 예측하며 잘못된 부분을 수정하여 점차 강화

그러나 과소적합 데이터 샘플의 가중치를 증가시켜 훈련에 사용하는 대신, 이전 예측기의 잔여 오차(Residential error)에 머신 러닝 기법을 재학습시킴

GBRT(Gradient Boosting Regression Tree)

GBM 중에서도 많이 사용되는 기법

의사결정나무를 기반 예측기로 사용해 회귀문제 해결하는 머신 러닝 모델

주어진 훈련 데이터셋으로 의사 결정 나무 훈련

훈련을 통해 만든 첫번째 의사결정나무 예측기로 예측

예측값과 실젯값의 차이인 잔여 오차 구하고 이를 다음 단계의 훈련 데이터셋으로 사용

이 과정을 반복함으로서 성능 높임

 

스태킹 또는 블렌딩 기법

스태킹(Stacking)

여러 머신러닝 기법으로 만든 예측기들의 예측을 취합

메타 러너, 블렌더

이전 레이어 모델이 만든 결과들을 훈련 데이터로 입력받아 만들어지는 모델

 

중요

1. 머신러닝을 이론으로 시작하지 않는다

2. 머신러닝의 모든 것을 공부하지 않는다

3. 머신러닝 알고리즘에 깊이 빠져들지 않는다

4. 처음부터 모든 것을 만들려고 하지 않는다

5. 머신러닝을 위한 도구를 자주 바꾸지 않는다

 

알고리즘의 시초인 기본 논문 혹은 논문에 대한 해설을 찾아서 공부해보기