728x90
- 결정 트리 학습(Decision tree)
- 결과에 대한 설명이 중요할 때 사용
- 훈련 데이터에 있는 변수, 즉 특성을 기반으로 새로운 샘플의 클래스 레이블을 추정할 수 있도록 일련의 질문 학습
- 범주형 변수, 실수형 변수
- 트리의 루트(root)에서부터 시작해 정보 이득(Information Gain, IG)이란 값이 최대가 되는 특성으로 데이터를 나눔
- 위의 과정을 리프 노드(leaf node)가 순수해질 때까지(불순도가 0에 수렴할 때 까지, 하나의 클래스만을 가진 노드가 될 때까지) 모든 자식 노드에서 분할 작업 반복
- 분할 작업을 계속 반복하여 깊은 트리가 만들어지는데, 이는 과적합 우려 → 트리 최대의 깊이 제한(트리 가지치기 - pruning)
- 목적함수의 목적 : 가장 정보가 풍부한 특성으로 노드를 나누기 위함, 트리 알고리즘으로 최적화 → 정보이득 최대화
- 구현을 간단히 하고 탐색공간을 줄이기 위해 '이진 결정 트리' 사용 : 부모 노드를 D left, D right로 나눔
- 불순도 지표
- 지니 불순도(Gini impurity)
- 잘못 분류될 확률을 최소화하기 위한 기준
- 클래스가 완벽하게 섞여있을 때, 최댓값
- 가지 치기 수준을 바꿔가며 튜닝
- 엔트로피(entropy)
- 한 노드의 모든 데이터가 같은 클래스라면 엔트로피는 0
- 반대로 클래스 분포가 균등하다면 엔트로피는 1
- 트리의 상호 의존 정보 최대화
- 분류 오차(classification error)
- 두 클래스가 같은 비율일 때, 최댓값 0.5
- 노드의 클래스 확률 변화에 둔감
- 지니 불순도(Gini impurity)
- 지니 불순도 활용하여 정보 이득 계산해보기
- K-근접 이웃(K-Nearest Neighbor, KNN)
- 지금까지의 알고리즘은 올바른 매개변수를 찾기 위한 학습과정, KNN은 훈련과정을 진행하지 않음
- 학습을 진행하는 알고리즘의 경우
- 데이터 정제
- 모델 학습 과정 진행
- 최종 하이퍼 파라미터 수정
- 하지만 KNN은 위와 같은 과정을 거치지 않으며 거대한 용량의 학습 데이터가 필요하지 않음
- 학습이라는 개념이 없기 때문에 알고리즘을 실행할 때마다 모든 학습 데이터를 통해 분류 진행 → 매번 실행할 때 마다 학습 데이터 필요
- 고차원의 데이터로 실험을 진행한다면 계산 복잡도가 훈련 데이터의 개수에 비례하여 증가
- 데이터 정제만 잘해준다면 학습과정이 없기 때문에 빠르게 결과를 살펴볼 수 있다는 장점이 존재
- KNN 알고리즘 수행 과정
- 숫자 K와 거리 측정 기준을 선택(일반적으로 유클리디안 거리 측정 방식)
- 분류하려는 미지의 데이터에서 K개의 최근접 이웃을 찾음
- 다수결 투표를 진행, 투표 결과에 따라 미지의 데이터 클래스 레이블을 할당
- 과적합과 과소적합 사이의 올바른 균형을 잡기 위한 K값 설정이 매우 중요!
- 차원의 저주 : 고정된 크기의 훈련 데이터셋 차원이 늘어남에 따라 특성 공간이 점점 희소해지는 현상 → 해결을 위해 올바른 변수의 선택, 차원 축소 기법 사용
728x90
'AI > Machine Learning' 카테고리의 다른 글
[ML] 군집분석(계층 군집, 밀집도 기반 군집) (0) | 2021.05.12 |
---|---|
[ML] 군집분석(K-means, K-means++) (0) | 2021.05.11 |
[ML] 머신러닝 모델(퍼셉트론, 로지스틱 회귀, 서포트 벡터 머신) (0) | 2021.05.11 |
[ML] 경사하강법 - 편미분 (0) | 2021.05.10 |
[ML] 경사하강법- 미분 (0) | 2021.05.10 |
댓글