분류(Classification)란 무엇인가?
분류(Classification)는 데이터 마이닝 기법의 하나로, 데이터 집합 내 요소들을 특정 범주에 할당함으로써 더 효율적인 예측과 분석을 돕는 방법입니다. 분류는 일반적으로 두 개의 목표 클래스가 존재하는 경우에 사용되며, 이를 이진 분류(binary classification)라고 합니다.
반면 두 개보다 많은 클래스를 예측해야 하는 경우, 특히 패턴 인식(pattern recognition) 문제에서는 다항 분류(multinomial classification)로 정의됩니다. 다항 분류는 범주형 반응 데이터에도 활용될 수 있는데, 이 경우 여러 요소 중 어떤 범주에 해당 인스턴스들이 속할 확률이 가장 높은지를 예측하는 작업을 수행합니다.
데이터 분류의 2단계 프로세스
데이터 분류는 크게 두 단계로 진행됩니다.
1단계: 학습(훈련) 단계 — 분류기 구축
첫 번째 단계에서는 미리 정의된 데이터 클래스 또는 개념의 집합을 정의하는 분류기(classifier)를 구축합니다. 이 단계를 학습 단계(learning phase) 또는 훈련 단계(training phase)라고 부르며, 분류 알고리즘이 데이터베이스 튜플과 해당 클래스 레이블로 구성된 훈련 집합(training set)을 분석하고 '학습'하는 과정을 통해 분류기를 만들어냅니다.
튜플(tuple) X는 n차원 속성 벡터 X = (x1, x2, …, xn)으로 표현됩니다. 여기서 n개의 측정값은 각각 데이터베이스 속성 A1, A2, …, An에서 얻어진 것입니다.
모든 튜플 X는 클래스 레이블 속성(class label attribute)이라 불리는 또 다른 데이터베이스 속성에 의해 결정된, 미리 정의된 클래스에 속하는 것으로 간주됩니다. 클래스 레이블 속성은 이산값(discrete-valued)을 가지며 순서가 없습니다. 각 값이 하나의 범주 또는 클래스 역할을 한다는 점에서 범주형(categorical) 속성입니다.
훈련 집합을 구성하는 개별 튜플들을 훈련 튜플(training tuple)이라고 하며, 이는 분석 대상 데이터베이스에서 추출됩니다. 분류의 맥락에서 데이터 튜플은 샘플(sample), 인스턴스(instance), 데이터 포인트(data point), 객체(object) 등으로 지칭될 수 있습니다.
모든 훈련 튜플의 클래스 레이블이 사전에 제공되기 때문에 이 단계를 지도 학습(supervised learning)이라고 합니다. 이는 각 훈련 튜플의 클래스 레이블을 알 수 없고, 학습해야 할 클래스의 수나 집합조차 사전에 알 수 없는 비지도 학습(unsupervised learning, 군집화/clustering)과 대비되는 개념입니다.
2단계: 분류 단계 — 모델의 정확도 평가
두 번째 단계에서는 구축된 모델을 실제 분류 작업에 활용합니다. 우선 분류기의 예측 정확도(predictive accuracy)를 평가해야 합니다. 만약 훈련 집합 자체를 사용해 분류기의 정확도를 계산한다면, 그 추정치는 지나치게 낙관적일 수 있습니다. 분류기는 학습 과정에서 훈련 데이터에 과적합(overfitting)되는 경향이 있어, 전체 데이터 집합에는 존재하지 않는 훈련 데이터만의 특수한 이상 패턴까지 학습해버릴 수 있기 때문입니다.
따라서 이러한 문제를 방지하기 위해 별도의 테스트 집합(test set)을 활용합니다. 테스트 집합은 테스트 튜플과 해당 클래스 레이블로 구성되며, 전체 데이터 집합에서 무작위로 선택됩니다. 이 튜플들은 훈련 튜플과 서로 독립적이어야 하며, 즉 분류기 생성 과정에 한 번도 사용되지 않은 데이터여야 합니다.