머신러닝 기반 분석 모형 선정
분류(Classification)
지도학습의 대표적인 유형인 분류는 학습 데이터로 주어진 데이터의 피처와 레이블값을 머신러닝 알고리즘으로 학습해 모델을 생성하고, 이렇게 생성된 모델에 새로운 데이터 값이 주어졌을 때 미지의 레이블 값을 예측하는 것이다.
즉, 기존 데이터가 어떤 레이블에 속하는지 패턴을 알고리즘으로 인지한 뒤에 새롭게 관측된 데이터에 대한 레이블을 판별하는 것이다.
[분류와 관련된 머신러닝 알고리즘]
- 베이즈 통계와 생성 모델에 기반한 나이브 베이즈(Naive Bayes)
- 독립변수와 종속변수의 선형 관계성에 기반한 로지스틱 회귀(Logistic Regression)
- 데이터 균일도에 따른 규칙 기반의 결정 트리(Decision Tree)
- 개별 클래스 간의 최대 분류 마진을 효과적으로 찾아주는 서포트 벡터 머신(SVM; Support Vector Machine)
- 근접 거리를 기준으로 하는 최소 근접(Nearest Neighbor) 알고리즘
- 심층 연결 기반의 신경망(Neural Network)
- 서로 다른 머신러닝 알고리즘을 결합한 앙상블(Ensemble)
결정 트리
결정 트리는 매우 쉽고 유연하게 적용될 수 있는 알고리즘이다. 데이터에 있는 규칙을 학습을 통해 자동으로 찾아내 트리 기반의분류 규칙을 만든다. (일반적으로 if/else 기반으로 나타낼 수 있다.)
결정 트리는 데이터의 어떤 기준을 바탕으로 규칙을 만들어야 가장 효율적인 분류가 될 것인가가 알고리즘의 성능을 크게 좌우한다.
또한 결정 트리는 데이터의 스케일링이나 정규화 등의 사전 가공의 영향이 매우 적다. 그러나 예측 성능을 향상시키기 위해 복잡한 규칙 구조를 가져야 하며, 이로 인한 과적합이 발생해 반대로 예측 성능이 저하될 수도 있다.
앙상블 기법
- 앙상블: 여러 가지 동일한 종류 또는 서로 상이한 모형들의 예측/분류 결과를 종합하여 최종적인 의사결정에 활용하는 기법 (앙상블 - 통일, 조화)
- 보다 높은 신뢰성 확보, 정확도 상승
- 모형의 투명성이 떨어지게 되어 정확한 현상의 원인 분석에 부적합
(1) 앙상블 알고리즘
- 주어진 자료로부터 여러 개의 예측 모형을 만든 후 예측 모형들을 조합하여 하나의 최종 예측 모형을 만드는 방법
- 여러 개의 학습 모델을 훈련하고 투표를 통해 최적화된 예측을 수행하고 결정
- 절차: 도출 및 생성 → 집합별 모델 학습 → 결과 조합 → 최적 의견 도출
- 다중 모델 조합
- 분류기 조합
(2) 앙상블 기법의 종류
1) 배깅 (Bagging; Bootstrap Aggregating)
- 훈련 데이터에서 다수의 부트스트랩 자료를 생성하고, 각 자료를 모델링한 후 결합하여 최종 예측 모형을 만드는 알고리즘
- 부트스트랩은 주어진 자료에서 동일한 크기의 표본을 랜덤 복원추출로 뽑은 자료를 의미
- 절차: 부트스트랩 데이터 추출 → 단일 분류기 생성 → 최종 모델 결정
- 보팅: 여러 개의 모형으로부터 산출된 결과를 다수결에 의해서 최종 결과를 선정하는 과정
- 최적의 의사결정나무를 결정할 때 가지치기를 하지 않고 최대한 성장한 의사결정나무들을 활용
- 실제 현실에서는 훈련자료를 모집단으로 생각하고 평균 예측 모형을 구하여 분산을 줄이고 예측력을 향상
- 목표: 전반적으로 분류를 잘할 수 있도록 유도 (분산감소)
- 주요 알고리즘은 랜덤 포레스트
2) 부스팅(Boosting)
- 잘못 분류된 개체들에 가중치를 적용, 새로운 분류 규칙을 만들고, 이 과정을 반복해 최종 모형을 만드는 알고리즘
- 예측력이 약한 모형을 결합하여 강한 예측 모형을 만드는 방법
- 절차: 동일 가중치 분류기 생성 → 가중치 변경 통한 분류기 생성 → 최종 분류기 결정
- 목표: 분류하기 힘든 관측값들에 대해서 정확하게 분류를 잘하도록 유도 (예측력 향상)
- 주요 알고리즘은 AdaBoost, GBM
3) 랜덤 포레스트
- 의사결정나무의 특징인 분산이 크다는 점을 고려하여 배깅과 부스팅보다 더 많은 무작위성을 주어 약한 학습기들을 생성한 후 이를 선형 결합하여 최종 학습기를 만드는 방법
- 훈련을 통해 구성해 놓은 다수의 나무들로부터 투표를 통해 분류 결과를 도출
- 분류기를 여러 개 쓸수록 성능 향상
- 트리의 개수가 많을수록 과대적합 문제 회피
- 여러 개의 의사결정 트리가 모여 랜덤 포레스트 구조가 됨
- 절차: 데이터 추출 → 대표 변수 샘플 도출 → Leaf Node로 분류 → 최종 모델 결정
- 수천 개의 변수를 통해 변수 제거 없이 실행되므로 정확도 측면에서 좋은 성과 보임 (예측력 매우 높음)
- 이론적 설명이나 최종 결과에 대한 해석 어려움
- 주요기법: 배깅을 이요한 포레스트 구성, 임의노드 최적화
- 주요 초매개변수: 포레스트 크기, 최대 허용 깊이, 임의성 정도
나이브 베이즈
분류기를 만들 수 있는 간단한 기술로 단일 알고리즘을 통한 훈련이 아닌 일반적인 원칙에 근거한 여러 알고리즘들을 이용하여 훈련된다.
나이브 베이즈 분류의 장점으로 분류에 필요한 파라미터를 추정하기 위한 트레이닝 데이터의 양이 매우 적다.
나이브 베이즈 분류는 베이즈 정리를 적용한 확률 분류기를 지칭한다.
나이브 베이즈 분류기는 공통적으로 모든 특성 값은 서로 독립임을 가정한다.
로지스틱 회귀 분석
독립변수가 수치형이고 종속변수가 범주형인 경우 적용되는 회귀 분석 모형.
새로운 설명변수의 값이 주어질 때 반응변수의 각 범주에 속할 확률이 얼마인지를 추정하여 추정 확률을 기준치에 따라 분류하는 목적으로 사용한다.
※ 사후 확률: 모형의 적합을 통해 추정된 확률
◆ 원리
분석 대상이 되는 이항 변수인 0, 1인 로짓을 이용해서 연속변수인 것처럼 바꿔줌으로써 활용하나, 바로 로짓으로 변환하지 못하고 먼저 오즈, 오즈비를 거쳐서 로짓으로 변환해야 한다.
※ 오즈(=승산): 특정 사건이 발생할 확률과 그 사건이 발생하지 않을 확률의 비
※ 로짓 변환: 오즈에 로그를 취한 함수
※ 시그모이드 함수: S자형 곡선 (시그모이드 곡선)을 갖는 수학 함수. 로짓 함수에 역함수를 취하면 시그모이드 함수가 됨
서포트 벡터 머신(SVM; Support Vector Machine)
- 벡터 공간에서 훈련 데이터가 속한 2개의 그룹을 분류하는 선형 분리자를 찾는 기하학적 모델
- 데이터를 분리하는 초평면 중에서 데이틀과 거리가 가장 먼 초평면을 선택하여 분리하는 지도 학습 기반의 이진 선형 분류 모델
- 최대 마진을 가지는 비확률적 선형 판별 분석에 기초한 이진 분류기
- 공간상에서 최적의 분리 초평면을 찾아서 분류 및 회귀 수행
- 변수 속성 간의 의존성은 고려하지 않으며 모든 속성을 활용하는 기법
- 훈련 시간이 상대적으로 느리지만, 정확성이 뛰어나며 다른 방법보다 과대 적합의 가능성이 낮은 모델
(1) 구성요소
- 결정 경계: 데이터 분류의 기준이 되는 경계
- 초평면: n 차원의 공간의 (n-1) 차원 평면
- 마진: 결정 경계에서 서포트 벡터까지의 거리
- 서포트 벡터: 훈련 데이터 중에서 결정 경계와 가장 가까이에 있는 데이터들의 집합
- 슬랙 변수: 완벽한 분리가 불가능할 때 선형적으로 분류를 위해 허용된 오차를 위한 변수
(2) 종류
- 하드 마진 SVM: 마진의 안쪽이나 바깥쪽에 절대로 잘못 분류된 오 분류를 불허
- 소프트 마진 SVM: 오 분류 허용
(3) 적용 기준
선형으로 분리 가능 | 최적의 결정 경계 (또는 초평면)를 기준으로 1과 -1로 구분하여 분류 모형으로 사용 |
선형으로 분리 불가능 | - 저차원 공간을 고차원 공간으로 매핑할 경우에 발생하는 연산의 복잡성은 커널 트릭을 통하여 해결 가능 * 커털 트릭: 저차원에서 함수의 계산만으로 원하는 풀이가 가능한 커널 함수를 이용하여 고차원 공간으로 매핑할 경우에 증가하는 연산량의 문제를 해결하는 기법 |
※ 커널함수: 맵핑 공간에서의 내적과 동등한 함수
- 선형(Linear) 커널: 기본 유형의 커널이며, 1차원이고 다른 함수보다 빠름 (텍스트 분류 문제에 주로 사용)
- 다항(Polynomial) 커널: 선형 커널의 일반화된 공식, 효과성과 정확도 측면에서 효율이 적어 비선호
- RBF (=가우시안 커널): 2차원의 점을 무한한 차원의 점으로 변환 (가장 많이 사용하는 커널, 비선형 데이터가 있는 경우에 일반적으로 활용)
- 시그모이드 커널: 인공신경망에서 선호되는 커널 (다층 퍼셉트론 모델과 유사)
(4) 장단점
장점 | 단점 |
- 데이터가 적을 때 효과적 - 새로운 데이터가 입력되어도 연산량 최소화 - 정확성이 뛰어남 - 커널 트릭을 활용하여 비선형 모델 분류 가능 - 다른 모형보다 과대 적합의 가능성 낮음 - 노이즈의 영향이 적음 |
- 데이터 전처리 과정 중요 - 데이터 세트의 크기가 클 경우 모델링에 많은 시간 소요 - 데이터가 많아질수록 다른 모형에 비해 속도 느림 - 커널과 모델의 매개변수를 조절하기 위해 많은 테스트 필요 |
신경망 (인공신경망 (ANN; Artificial Neural Network)
(1) 개념 및 역사
- 사람 두뇌의 신경세포인 뉴런이 전기신호를 전달하는 모습을 모방한 기계학습 모델
- 입력값을 받아서 출력값을 만들기 위해 활성화 함수 사용
- 목적: 가중치를 알아내는 것
- 1세대: 1943 ~ 1986년 (퍼셉트론 제안 / XOR 선형 분리 불가 문제 발생)
- 2세대: 1986 ~ 2006년 (다층 퍼셉트론과 역전파 알고리즘 등장 / 은닉층을 통해 XOR 문제 해결 / 과적합 문제, 사라지는 경사 현장 문제 발생)
- 3세대: 2006년 ~ 현재 (알파고와 이세돌 바둑 대결로 부각 / 딥러닝 활용 / 과적합 문제 및 기울기 소실 문제 해결)
(2) 구조
1) 퍼셉트론
- 인간의 신경망에 있는 뉴런의 모델을 모방하여 입력층, 출력층으로 구성한 인공신경망 모델
- 구성요소: 입력값, 가중치, 순 입력함수, 활성화 함수, 예측값(출력값)
- 문제점: XOR 선형 분리 할 수 없음 (다층 퍼셉트론으로 해결)
2) 다층 퍼셉트론(MLP; Multi-Layer Perceptrons)
- 입력층과 출력층 사이에 하나 이상의 은닉층을 두어 비선형적으로 분리되는 데이터에 대해 학습이 가능한 퍼셉트론
- 입력층, 은닉층, 출력층으로 구성하고 역전파 알고리즘을 통해 다층으로 만들어진 퍼셉트론의 학습 가능
- 활성화 함수로 시그모이드 함수 사용
- 문제점: 과대 적합, 기울기 소실
(3) 뉴런의 활성화 함수
- 순 입력함수로부터 전달받은 값을 출력값으로 변환해 주는 함수
- 계단함수, 부호함수, 선형함수, 시그모이드 함수, tanh 함수, ReLU 함수 등
(4) 인공신경망의 학습
정리
- 대부분의 앙상블 기법은 결정 트리 기반의 다수의 약한 학습기(Weak Learner)를 결합해 변동성을 줄여 예측 오류를 줄이고 성능을 개선하고 있다
- 결정 트리 알고리즘은 정보의 균일도에 기반한 규칙 트리를 만들어서 예측을 수행한다
- 결정 트리는 다른 알고리즘에 비해 비교적 직관적이어서 어떻게 예측 결과가 도출되었는지 그 과정을 쉽게 알 수 있다.
- 결정 트리의 단점으로는 균일한 최종 예측 결과를 도출하기 위해 결정 트리가 깊어지고 복잡해지면서 과적합이 쉽게 발생하는 것이다.
- 앙상블 기법은 대표적으로 배깅과 부스팅으로 구분될 수 있다.
- 배깅 방식은 학습 데이터를 중복을 허용하면서 다수의 세트로 샘플링하여 이를 다수의 약한 학습기가 학습한 뒤 최종 결과를 결합해 예측하는 방식이며, 대표적인 방식은 랜덤 포레스트이다.
- 랜덤 포레스트는 수행시간이 빠르고 비교적 안정적인 예측 성능을 제공하는 머신러닝 알고리즘이다.
- 현대의 앙상블 기법은 부스팅이 더 주류를 이루고 있는데, 부스팅은 학습기들이 순차적으로 학습을 진행하면서 예측이 틀린 데이터에 대해서는 가중치를 부여해 다음번 학습기가 학습할 때에는 이전에 예측이 틀린 데이터에 대해서는 보다 높은 정확도로 예측할 수 있도록 해준다.
- 부스팅의 효시격인 GBM은 뛰어난 예측 성능을 가졌으나, 수행 시가닝 너무 오래 걸린다는 단점이 있다.
- XGBoost와 LightGBM은 현재 가장 각광을 받고 있는 부스팅 기반 머신러닝 패키지이며, LightGBM의 경우 XGBoost보다 빠른 학습 수행 시간에도 불구하고 XGBoost에 버금가는 예측 성능을 보유히고 있다.
- XGBoost와 LightGBM 개발 그룹은 사이킷런과 두 패지키가 쉽게 연동할 수 있도록 사이킷런 래퍼 클래스를 제공하고 있으며, 이들 래퍼 클래스를 이용하면 사이킷런의 여타 다른 Estimator 클래스와 동일한 방식으로 사이킷런 기반의 머신러닝 애플리케이션을 더 쉽게 개발할 수 있다.
- 스태킹은 여러 개의 개별 모델들이 생성한 예측 데이터를 기반으로 최종 메타 모델이 학습할 별도의 학습 데이터 세트와 에측할 데이터 세트를 재 생성하는 기법이다.
- 스태킹 모델의 핵심은 바로 메타 모델이 사용할 학습 데이터 예측 세트와 예측 데이터 세트를 개별 모델의 예측 값들을 스태킹 형태로 결합해 생성하는 데 있다.
[관련 상세 글 및 프로젝트]
[머신러닝] 결정트리 - 사용자 행동 인식 데이터 세트
다음 내용
[출처]
파이썬 머신러닝 완벽 가이드
'[파이썬 Projects] > <파이썬 머신러닝>' 카테고리의 다른 글
[머신러닝] 결정 트리 - 2 (0) | 2024.06.23 |
---|---|
[머신러닝] 결정 트리 (+시각화) (0) | 2024.06.23 |
[머신러닝] 피마 인디언 당뇨병 예측 (0) | 2024.06.11 |
[머신러닝] 성능 평가 지표 - 3 (F1 스코어, ROC 곡선, AUC) (1) | 2024.06.10 |
[머신러닝] 성능 평가 지표 - 2 (정밀도, 재현율) (0) | 2024.06.10 |