티스토리 뷰

머신러닝 알고리즘

지도 학습

- 정답지(Labeling)이 있는 데이터를 대상으로 학습하는 과정

분류(classification)

예측,회귀(Regression)

 

비지도 학습

- 정답지(Labeling)이 없는 데이터를 비슷한 특징끼리 군집화하여 새로운 결과를 예측하는 과정

- 답을 맞히는 용도로 사용하진 않음

차원축소(Dimension Reduction)

군집화(Clustering)

연관성 규칙 발견(Association Rule)

 

데이터 전처리

정규화(Normalization)

feature마다 스케일이 크게 다를 경우의 전처리 방법

 

 - Min-Max scaling

데이터의 최소값은 0, 최대값은 1로 변환

- 표준화(Standardization)

feature마다 해당 값의 단위가 다를 때, 대상 데이터를 같은 기준으로 볼 수 있게 함.

데이터의 평균은 0, 분산은 1에 가깝게 변환

- 원-핫 인코딩

머신러닝이나 딥러닝 프레임워크에서 범주형을 지원하지 않는 경우 사용

이진 특성을 만들어 해당 특성은 1, 해당하지 않는 특성은 0으로 만듬

pandas의 get_dummies 함수 사용

 

- 결측값 처리

데이터에 결측값이 있는 상태에서 모델을 생성하면 정확도가 떨어짐

결측값이 있는 데이터를 모두 삭제하거나 평균값, 최빈값, 중간값으로 대체

 

- 이상값 처리(Outlier treatment)

데이터와 동떨어진 관측치로, 모델을 왜곡할 가능성이 있는 관측치

데이터의 그래프화를 통해 확인 가능

단순 삭제, 평균 등 다른 값 대체, 이상값을 분리하여 분석 범위를 수정하는 방식으로 모델 제작, 이상값을 포함, 미포함 하는 두가지 모델을 만들어 분석

 

분류 알고리즘

Decision Tree

의사결정규칙을 나무구조로 도표화하여 분류와 예측을 수행

분할 : 나무의 가지를 생성하는 과정

가지치기 : 생성된 가지를 잘라 모형을 단순화하는 과정

 

분할 기준 방법(순도 측정)

(1)지니 지수

- 불순도를 측정하는 하나의 지수(불순도란 노드 내에 서로 다른 데이터가 얼마나 섞여 있는지를 의미함, 다양한 개체가 섞여 있을수록 불순도가 높음)

- 지니 지수를 최소로 감소시켜주는 예측변수와 그 때의 최적 분리에 의해서 자식노드를 선택

(2) 정보 획득량(Information Gain)

- 지니 지수를 구할 수 있다면 정보 획득량도 계산 가능

- 이전 단계 불순도 값에서 다음 단계 불순도 값의 합을 뺀 수치

ex)

부모노드 불순도 : 0.5, 자식 노드 불순도 : 0, 0.375, 0

0.5 - (0+0.375+0) = 0.125 => 정보 획득량

- 하위 데이터셋(자식 노드)의 불순도만으로 정보 획득량을 설명하기 부족함 -> 가중치 적용

- 가중치는 데이터 셋의 크기가 작으면 불순도의 영향력을 줄이기 위해 사용함

가중치를 계산한 정보 획득량 : 0.5 - ((0.5 * 2/10) + 0.48*(5/10) + 0.44*(3/10)) = 0.026

 

(3) 엔트로피 지수

 - 지니 지수와 비슷하지만 log를 취해서 정규화 과정을 거침

 - 분기 후 각 영역의 순수도 증가 / 불확실성 최대한 감소하도록 학습

p는 데이터 A에서 k 클래스에 속하는 관측 비율이다.

 

재귀적 분기(Recursive partitioning)

- 의사결정나무에서는 IG값이 큰 순서대로 질문을 배치

- 질문 속성에 따라 어떤 기준으로 나누는게 좋을지 반복적으로 적용 -> 최적의 트리를 검색

input 값을 2분할한 모든 조합에 대해 엔트로피/지니지수를 재귀적으로 측정

ex)

24개의 데이터 중 1/23, 2/22, 3/21, 4/20, ...., 23/1 로 모든 경우의 수에 대해 엔트로피/지니지수를 측정

그 중 엔트로피 값이 가장 낮은(순수도가 가장 높은) 지점(14/10)을 기준으로 데이터를 분리

분기된 노드들은 다시 재귀적 분기를 반복하면서 최종 트리 구조 생성

 

가지치기(Pruning)

재귀적 분기를 통해 모든 노드를 분리한 후 분기를 적절히 합치는 과정

분기가 많아질 경우 학습데이터에 과대적합이 발생할 수 있음

적절한 가지치기 수행이 요구됨

 

Random Forest

 - 분류, 회귀 분석 등에 사용되는 앙상블 학습의 일종

 - 훈련 과정에서 구성한 다수의 결정 트리들을 학습하는 방법

- 다양성

  - 여러 개의 훈련 데이터를 생성해 각 데이터마다 개별 decision tree 구축

- Random Subspace

- decision tree 구축 시 변수를 무작위로 선택

 

Bagging

- 다수의 붓스트랩 데이터를 생성하고 모델링한 후 결합하여 예측 모델 산출

- 붓스트랩 데이터는 랜덤 샘플링을 통해 raw data로부터 크기가 일정한 여러개의 표본 데이터를 의미함

- 여러 개의 결정트리를 활용함

- 각 트리마다 랜덤하게 데이터를 샘플링

 

XGBoost

부스팅

- 잘못 분류된 개체들에 집중해 새로운 분류 규칙을 만드는 단계를 반복하는 방법

1. raw data의 개체에는 동일한 가중치로 시작

2. 모델링을 통한 예측변수에 의해 잘못 분류된 개체들에게는 높은 가중치 부여

3. 제대로 분류된 개체들에는 낮은 가중치 부여

 

SVM

- 주어진 데이터가 어느 카테고리에 속할지 판단하는 이진 선형 분류

- 결정 경계(분류를 위한 기준 선)를 정의하는것이 중요

- feature가 3개일 경우 3차원으로 표현, 이 때 결정 경계는 평면

 

최적의 결정 경계

- 데이터 군으로부터 최대한 멀리 떨어져 있는 경계, 한 쪽에 치우치지 않고 멀리 떨어져 있는 경우

 

마진

- 결정 경계와 가장 가까운 데이터(Support Vectors) 사이의 거리를 의미

- 마진을 최대화 하는 결정 경계가 최적의 결정 경계

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함