14. 데이터마이닝, 분류 알고리즘
- 데이터 마이닝 : 대용량의 데이터에서 의사 결정에 가치 있는 정보를 선별하는 것.
선별을 위해 데이터 간의 숨겨진 패턴과 관계를 찾기 위해 데이터를 수식으로 정리하여 추상화된 모델로 정의해야 함.
- 분류(Classification) : 데이터가 어떤 클래스에 속하는지 결정하는 문제
< 분류 알고리즘 >
- 나이브 베이즈 분류기 (Naive Bayes) - 통계기반
- 조건부 확률을 사용 : 어떤 사건의 조건이 주어졌을 때, 그 조건 아래에서 다른 사건이 발생할 확률
- 베이즈 정리는 주어진 데이터가 어떤 조건을 만족할 때 확률을 계산해주는 방법.
- ‘나이브’라는 이름은 각각의 변수가 서로 독립적이라는 가정에 기반하여 붙여짐
- 현실과 완벽하게 일치하지는 않지만, 간단하고 빠른 계산이 가능해 분류에서 많이 사용되는 방법.
⇒ 분류를 할 때, 각 그룹에 가능한 확률을 계산할 때, 나이브 베이즈 정리를 활용할 수 있고
이를 나이브 베이즈 분류라고 함.
⇒ 나이브 베이즈 정리는 확률 계산을 쉽게 하기 위한 수학적인 방법으로 학습 데이터에서 각 클래스에 대한 사전 확률과 클래스에 속한 각각의 특성이 서로 독립이라는 가정을 기반으로 함.
이러한 가정으로 나이브 베이즈 분류는 간단하고 계산이 빨라 대용량 데이터에도 적용이 가능하나, 가정이 단순해 현실 문제를 완벽히 반영하기 어렵다는 단점이 존재함.
2. KNN(K - Nearest Neighbors) - 가장 가까운 k개 이웃들 값을 참조하여 분류하는 알고리즘
- 데이터를 나타내는 벡터 공간에서, 분류하려는 데이터와 가장 가까운 k개의 데이터를 찾아, 다수결 방식으로 해당 데이터의 클래스를 결정하는 알고리즘.
- KNN은 K를 어떻게 정하냐에 따라 결과 값이 바뀔 수 있음.
- K가 너무 작아서도 안되고, 너무 커서도 안 됨. 또한 K가 짝수면 동점이 될 수 있으니 통상적으로 홀수로 설정함.
- KNN에서 가장 중요한 것은 가까운 정도인 거리를 판단하는 거리측정임.
→ 거리 측정 기법은 데이터의 종류에 따라 다양하게 사용될 수 있음.
< 특징 >
- 구현이 간단하고 대규모 데이터셋에서도 잘 작동함.
- 거리 측정 방식에 따라 결과가 매우 다르게 나타남.
- 데이터가 많아지면 속도가 느려짐.
⇒
데이터가 적거나 클래스간 구분이 명확한 경우에 사용하는 가장 기본적인 분류모델.
3. 의사결정나무 - 데이터 특징을 트리 구조로 나타내어 특징들을
가장 잘 구분할 수 있는 기준으로 찾아 분류하는 알고리즘.
- 각 노드에서 특정 조건에 따라 가지를 뻗어가며 분류함.
- 노드에서 조건을 선택할 때는, 정보 이득이 최대가 되도록 선택해야 함.
→ 정보 이득이란? 분류 이전과 이후의 불확실성 차이를 의미함. 정보이득이 높은 조건을 선택할 수록, 불확실성이 줄어들어 분류 성능이 개선됨.
- 정보 이득을 계산할 때는, 각 클래스별로 데이터가 얼마나 분포하는지를 고려하여 계산함.
- 노드에서는 분류가 이루어지고, 리프 노드에서는 분류 결과가 결정됨.
< 특징 >
- 직관적이고 해석이 용이함.
- 대용량 데이터에도 적용 가능함.
- 너무 크고 복잡하게 구성되면 학습 데이터에만 잘 맞아 새로운 데이터에 대해 잘 작동하지 않는 과적합 문제가 발생할 수 있음.
→ 과적합 문제를 방지하기 위해 크기를 제한하거나, 가지치기를 수행하여 트리의 크기를 줄이는 것이 좋음.
4. 랜덤포레스트 - 의사결정나무 확장 버전으로, 다수의 의사결정나무를 생성하여
각 의사결정나무에서 분류한 결과를 취합하여 다수결로 분류하는 방법.
- 작동 방식
- 원본 데이터셋에서 랜덤하게 일부 데이터를 추출함.
- 추출한 데이터로 의사결정나무를 만듦.
- 이 과정을 반복해 의사결정나무를 여러개 생성함.
- 생성된 의사결정나무는 모두 동시에 분류 작업을 수행하며, 결과를 취합함.
- 최종적으로 다수결 방식으로 분류 결과를 도출함.
⇒ 의사결정나무의 과적합 문제를 방지하기 위해, 여러 개의 결정 나무 트리를 만들고 그 결과를 다수결로 사용하기 때문에 과적합 문제를 해결함.
< 특징 >
- 여러 개의 결정나무를 만들어 부분적으로 학습을 시키기 때문에
대용량 데이터셋에서도 빠르고 효율적으로 작동 가능함.
5. SVM(Support Vector Machine) - 주어진 데이터가 어느 카테고리에 속할지 판단하는 이진 선형 분류 모델.
- Margin이란? 선과 가장 가까운 양 옆 데이터와의 거리.
- SVM은 선과 가장 가까이 있는 데이터 포인트들을 찾아내는데, 이를 Support Vector라고 부름.
- 즉, Margin은 구분하는 선과 서포트 벡터와의 거리. 또한 이렇게 두 데이터를 구분하는 선을 Decision Boundary라고 함.
⇒ SVM은 Support Vector들과 Decision Boundary 사이의 거리(Margin)을 최대화하는 방식으로 작동함.
⇒ 그래야 두 데이터가 어느 한쪽으로 치우치지 않고 분류가 됨.
< SVM 특징 >
- 대규모 데이터셋에서도 잘 작동함.
- 노이즈가 있는 데이터 처리 가능.
- 계산 비용이 큼.