Classification
- Classification은 명확하게 구분되는 선택지(categorical class labels - descrete or nominal)를 예측하는 것이다.
- Training set으로 모델을 학습시키고 test set에 대해 분류를 진행한다.
- Regression의 경우, 연속적인 값에 대해 예측을 진행한다는 점이 classification과 다르다.
- 예를 들어, classification은 내일 날씨가 더울지 추울지 예측한다면, regression은 내일 온도가 몇 도일지 예측하는 것이다.
- Training data
- 각각의 데이터는 <feature1, feature2, ..., feature-n, class label> (feature / attribute)로 이루어져있다.
- Class label은 여러 class 중 하나에 속해있다고 가정한다.
- Model
- Class label이 없는 각각의 데이터 <feature1, feature2, ..., feature-n>를 특정 class label에 매핑(예측)한다.
- 이 매핑하는 과정에서 classification rule, decision tree, network, mathematical formula 등과 같은 여러 방법을 사용할 수 있다.
- 최종적으로 현실 세계의 데이터를 모델을 통해 분류하는 것이 목적이다.
Example: Spam Mail Detection
- 스팸 메일 탐지에 관한 예시이다.
- 최종 목표는 메일을 받았을 때, 스팸 메일 여부를 정확하게 판단하는 것이다.
- 각각의 데이터(메일)는 다음과 같은 feature를 가지고 있다.
<"발신자 정보", "이메일의 제목에 포함된 특정 키워드의 수", "이메일 본문에 포함된 특정 키워드의 수">
특정 키워드: '무료', '당첨', '로또' - 여러 데이터가 아래 표와 같다고 가정하자.
발신자 정보 | 이메일의 제목에 포함된 특정 키워드의 수 | 이메일 본문에 포함된 특정 키워드의 수 | 스팸 여부 |
a | 1 | 3 | O |
b | 0 | 1 | X |
c | 2 | 4 | O |
d | 2 | 3 | O |
- 전체 데이터에서 training set과 test set을 나눈다.
여기서는 75%(a, b, c)/25%(d)라고 가정한다. - Classification model에 75%의 데이터를 가지고 학습시킨다.
여기서는 이메일의 제목에 포함된 특정 키워드의 수가 1 이상이고, 본문에 포함된 특정 키워드의 수가 3 이상이면 스팸으로 분류한다. - Test set(d)에 대해 classification을 실행해본다.
올바르게 스팸으로 분류된다. - Good!
Supervised vs. Unsupervised Learning
Supervised Learning (classification)
- Supervised learning(지도 학습)은 학습 시, 훈련 데이터에 해당 데이터가 어떤 class label에 속해있는지와 같은 정보를 활용한다. 즉, 문제와 답지를 주고 공부하는 것.
Unsupervised Learning (clustering)
- Unsupervised learning(비지도 학습)은 위와 달리 데이터가 어떤 class label에 속해있는지 모르고 학습을 진행한다. 즉, 문제만 주고 공부하는 것. 답은 모른다...
- 데이터가 어떻게 분포되어 있는지 어떻게 생겨 먹었는지 확인하기 위한 용도로 주로 사용된다.
Issues in Classification: Data Preparation
- Classification을 잘 하려면 데이터의 품질이 상당히 중요하다. 아래는 데이터의 품질을 높이기 위한 전처리 방법에 대한 내용이다.
좋은 품질의 데이터 → 좋은 classifier
Data cleaning
- Outlier나 손실 값이 있는 데이터, 즉, 노이즈가 있는 데이터의 수를 줄여 전처리 과정을 진행한다.
- 예를 들어, 위의 스팸 메일 분류 과정에서 <"e", NONE, NONE, O>와 같은 데이터가 있다면 손실 값이 있는 데이터로 간주하여 제거하는 것이 좋다.
Relevance analysis (feature selection)
- 불필요하거나 중복되는 feature를 제거한다.
- 예를 들어, 위의 스팸 메일 분류 과정에서 "발신자 정보"와 같은 feature는 분류에 도움을 주지 않는다. 불필요한 feature로 간주하여 해당 feature에 대해 분류를 진행하지 않고 overhead를 줄일 수 있다. 이와 별개로 feature와 연봉과 월급이 같이 존재하면 중복되는 요소로 간주하고 하나를 제외할 수도 있다.
Data transformation
- 데이터의 분포를 표준화 또는 정규화 과정을 통해 데이터를 전처리 한다.
Issues in Classification: Evaluation Points
- Classification을 평가하기 위한 지표에 대한 내용이다.
Accuracy
- 전체 데이터 중 얼마나 정확하게 데이터를 분류했는지에 대한 지표이다.
- 정확도 = 정확하게 분류한 데이터의 수 / 전체 데이터의 수
Speed
- 모델을 학습시키는데 걸리는 시간 (training time)
- 모델을 사용하는데 걸리는 시간 (testing time)
- 둘 다 빠르면 좋다.
Robustness
- 노이즈가 있는 데이터에 대해 얼마나 잘 작동하는지에 대한 지표이다.
- 만약 모든 feature가 완벽하게 존재하는 pure data에 대해서는 잘 작동하지만, 노이즈가 있는 데이터에서 잘 작동하지 않는다면 robustness가 낮다고 할 수 있다.
Scalability
- 많은 데이터에 대해서 얼마나 잘 처리할 수 있는가에 대한 지표이다.
- Testing time이 O(n^2)이라 많은 양의 데이터에 대해 속도가 너무 오래걸리면 scalability가 낮다고 할 수 있다.
Interpretability
- 왜 데이터가 이렇게 분류/예측 되었는가에 대한 지표이다.
- 다른 모델에 비해 decision tree가 강점을 보인다.