분류(Classification)는 주어진 데이터를 미리 정의된 카테고리나 클래스로 나누는 작업입니다. 이 과정은 머신러닝의 지도 학습(Supervised Learning) 방식에 속하며, 입력 데이터와 그에 대한 정답(레이블)을 학습한 후 새로운 데이터를 분류하는 데 사용됩니다. 분류는 두 가지 주요 유형으로 나뉩니다:
- 이진 분류(Binary Classification): 두 가지 클래스로 분류하는 문제.
- 예: 이메일이 스팸인지 아닌지 분류하는 문제.
- 다중 클래스 분류(Multi-class Classification): 세 가지 이상의 클래스로 분류하는 문제.
- 예: 이미지가 개, 고양이, 자동차 중 하나로 분류되는 문제.
주요 분류 알고리즘
- 로지스틱 회귀(Logistic Regression):
- 이진 분류를 위한 확률 기반 모델로, 데이터가 특정 클래스에 속할 확률을 예측합니다.
- 시그모이드 함수를 사용하여 출력 값을 0과 1 사이의 값으로 변환하여 클래스 레이블을 예측합니다.
- 예시: 이메일이 스팸인지 아닌지 이진 분류.
- 서포트 벡터 머신(SVM, Support Vector Machine):
- 최대 마진 분류기로, 두 클래스 사이의 경계를 가장 멀리 떨어진 데이터 포인트 사이에 그립니다.
- 고차원 공간에서도 분류할 수 있는 커널 기법을 사용하여 비선형 데이터를 다룹니다.
- 예시: 얼굴 인식, 텍스트 분류.
- k-최근접 이웃(K-NN, K-Nearest Neighbors):
- 새로운 데이터 포인트가 입력되면, 가장 가까운 k개의 이웃을 참조하여 다수결로 분류합니다.
- 단순하고 직관적인 방법이지만, 큰 데이터셋에서는 계산 비용이 높아질 수 있습니다.
- 예시: 이미지 분류.
- 결정 트리(Decision Tree):
- 데이터를 특성(feature)에 따라 나누어 트리 구조를 형성하여 분류합니다.
- 각 노드는 데이터의 특정 속성에 따라 분리되며, 최종 노드는 특정 클래스에 대한 예측 값을 제공합니다.
- 예시: 질병 진단에서 환자의 증상을 기반으로 질병 예측.
- 랜덤 포레스트(Random Forest):
- 다수의 결정 트리를 학습한 후 그 결과를 종합하여 분류하는 앙상블 기법입니다.
- 개별 트리들이 과적합에 빠질 수 있지만, 랜덤 포레스트는 이를 방지하면서 더 높은 정확도를 제공합니다.
- 예시: 금융 사기 탐지.
- 나이브 베이즈(Naive Bayes):
나이브 베이즈(Naive Bayes)는 조건부 확률을 기반으로 한 분류 알고리즘입니다. 모든 특성(feature) 간의 독립성을 가정하고, 베이즈 정리를 활용해 데이터를 분류합니다. 나이브(naive)라는 이름은 각 특성이 독립적이라는 가정에서 유래합니다.
베이즈 정리
베이즈 정리는 다음과 같이 표현됩니다:
여기서:
- P(A∣B)는 사후 확률로, 사건 B가 발생한 후 사건 A가 일어날 확률입니다.
- P(B∣A)는 우도로, 사건 A가 발생한 경우 사건 B가 일어날 확률입니다.
- P(A)는 사전 확률로, 사건 A가 일어날 확률입니다.
- P(B)는 사건 B가 일어날 확률입니다.
나이브 베이즈 알고리즘에서의 사용
- P(A)는 특정 클래스가 나타날 확률(사전 확률).
- P(B|A)는 특정 클래스일 때 데이터의 특성(우도).
- P(B)는 모든 클래스에서 데이터의 특성(증거).
이 수식을 각 클래스에 대해 계산한 후, 사후 확률이 가장 높은 클래스를 선택하여 분류합니다.
베이즈 정리에 맞는 데이터 분포
나이브 베이즈는 각 특성 간의 독립성이 유지되는 데이터를 다룰 때 성능이 높습니다. 베르누이 분포, 다항 분포 또는 가우시안 분포의 특성을 가진 데이터에서 잘 작동합니다.
- 가우시안 나이브 베이즈(Gaussian Naive Bayes): 연속적인 데이터에서 정규분포를 따르는 특성들을 다룹니다.
- 베르누이 나이브 베이즈(Bernoulli Naive Bayes): 이진 데이터를 처리할 때 적합.
- 다항 나이브 베이즈(Multinomial Naive Bayes): 텍스트 데이터처럼 특성이 빈도에 따라 분포할 때 사용합니다.
주로 사용되는 상황
나이브 베이즈는 계산 속도가 빠르고 효율적이기 때문에, 텍스트 분류와 자연어 처리(NLP)에서 많이 사용됩니다. 또한 특성 간의 상관관계가 크지 않거나, 클래스 간의 분포가 단순할 때 매우 유용합니다.
- 스팸 필터링: 이메일의 단어나 문장의 빈도를 분석해 스팸 여부를 예측.
- 감정 분석: 텍스트의 긍정/부정을 예측.
- 질병 진단: 증상을 기반으로 질병의 가능성을 추정.
나이브 베이즈는 특성 간 독립성을 가정하지만, 실제 데이터에서 이 가정이 완전히 맞지 않더라도 여전히 좋은 성능을 보이는 경우가 많습니다.
분류의 평가 지표
- 정확도(Accuracy):
- 전체 예측에서 맞춘 비율.
- 문제점: 데이터가 불균형할 경우, 정확도만으로 성능을 판단하기 어려울 수 있습니다.
- 정밀도(Precision):
- 모델이 양성으로 예측한 것 중 실제 양성의 비율.
- 예시: 스팸 필터에서 실제 스팸으로 분류된 이메일 중에서 진짜 스팸 이메일의 비율.
- 재현율(Recall):
- 실제 양성 중에서 모델이 양성으로 예측한 비율.
- 예시: 암 진단에서 실제 암 환자를 암으로 정확히 예측한 비율.
- F1 Score:
- 정밀도와 재현율의 조화 평균으로, 불균형 데이터셋에서 유용하게 사용됩니다.
- 예시: 스팸 필터에서 정밀도와 재현율 간 균형을 맞추기 위한 지표.
- ROC-AUC:
- ROC 곡선(True Positive Rate 대 False Positive Rate)의 아래 면적을 측정하여 분류기의 성능을 평가합니다.
- 1에 가까울수록 성능이 좋은 모델을 의미합니다.
- 예시: 질병 진단에서 암 환자와 비암 환자를 구분하는 모델의 성능 평가.
분류의 실생활 활용 사례
- 이메일 스팸 필터링: 이메일을 분석하여 스팸인지 아닌지를 분류.
- 질병 진단: 환자의 증상과 의료 기록을 기반으로 질병 여부를 예측.
- 신용 점수 예측: 고객의 금융 기록을 기반으로 대출 상환 가능성을 예측.
- 이미지 분류: 개, 고양이, 자동차와 같은 다중 클래스 이미지를 분류.
- 텍스트 감정 분석: 소셜 미디어 게시글의 긍정/부정 감정을 분류.
결론
분류(Classification)는 지도 학습의 중요한 부분으로, 여러 가지 분류 알고리즘을 통해 데이터를 특정 카테고리로 구분하는 작업입니다. 각각의 알고리즘은 문제의 특성에 따라 선택될 수 있으며, 정밀도, 재현율, F1 Score, ROC-AUC와 같은 다양한 성능 평가 지표를 통해 모델의 품질을 평가합니다.
'Data Science > machine learning' 카테고리의 다른 글
차원 축소(Dimensionality Reduction)의 정의 (0) | 2024.09.28 |
---|---|
클러스터링의 정의와 주요 방법들 (0) | 2024.09.28 |
회귀(Regression)의 정의 (3) | 2024.09.27 |
머신러닝의 정의와 기초 개념 (1) | 2024.09.26 |
LLM(대형 언어 모델) 개요 및 주요 모델 비교: BERT, GPT, GENNMINI, LLaMA (2) | 2024.09.23 |