1. 개요
Classification(분류)?
- Supervised learning(지도학습)의 일종으로 기존 데이터의 카테고리 관계를 파악하고, 새롭게 관측된 데이터의 카테고리를 스스로 판별하는 과정
- 예시로 문자를 판별할 때, 스팸인지 아닌지 분류하는 것과 같은 단일분류 그리고 수능 점수가 몇 등급에 속하는지 판별하는 다중분류가 있음
* cf) 비지도 학습의 clustering : 다중분류와 유사하지만, 다중분류는 카테고리의 도메인이 정의되어있다는 점에서 큰 차이점을 지닌다
Classification(분류) 알고리즘
- 일련의 데이터가 포함되는 기존 카테고리들을 학습하고, 이것을 기반으로 컴퓨터는 데이터의 범주를 구분하여 경계를 나누는 것을 학습
2. 나이브 베이즈 (Naive Bayes)
개요
머신러닝 기법 중 하나이며 전통적으로 텍스트 분류를 위해 사용되었던 알고리즘이다. 기본 원리는 조건부 확률에 베이즈 정리(Baye’s theorem)를 적용한 원리이다.
베이즈 정리?
이는 조건부 확률을 계산하는 방법인데 식은 다음과 같다.
P(A ¦ B) = (P(A ∩ B)) / (P(B))
- 전제: 두 사건 A, B가 있고, 사건 B가 발생한 이후에 사건 A가 발생한다고 가정
- 정의: 사건 B가 일어난 후 사건 A가 일어날 확률
- P(A): 사건 A가 일어날 확률
- P(B): 사건 B가 일어날 확률 = 사건 A가 발생하기 전 사건 B가 일어날 확률 = 사전확률
- P(A¦B): 사건 B가 일어난 후 사건 A가 일어날 확률 = 조건부 확률
- P(B¦A): 사건 A가 일어났을 때 사건 B가 앞서 일어났을 확률 = 사후확률
텍스트 분류
문서나 데이터를 구성하는 각 각의 요소들이 등장할 확률에 대한 독립성을 가정하여 입력 벡터를 확률적으로 분류한다.
이러한 분류를 수행하는 연산에 대해 자세히 알아보자.
첫 번째 식은 베이즈 정리를 활용하여 새로운 자료를 각 분류에 속할 것인지 확률을 계산하는 식이다.
두 번째 식은 만약 데이터 간의 모든 변수의 독립성 가정을 하지 않고 이를 계산하기 위한 식인데, 이는 변수간의 영향을 고려하기 때문에 매우 복잡한 연산을 수행해야 한다.
세 번째 식은 독립성 가정을 통해 각 특성의 확률에 대한 곱으로 표현한 식이다. 나이브 베이즈 분류기가 두 번째 식의 복잡함을 덜어내고 간단히 계산할 수 있도록 보완한 것이다.
텍스트 분류 이외에 사용되는 사례
가장 대표적인 예는 넷플릭스에서 비슷한 성향을 보인 사람들에게 영화를 추천해줄 때 사용되는 것이다. 세세한 과정을 살펴보면 다음과 같다.
- 특정한 영화를 보고 A라는 사람이 좋아요를 누르고, B라는 사람도 좋아요를 눌렀다면 A와 B는 비슷한 성향을 가진 사람이라고 일차적으로 볼 수 있다.
- 하지만 다른 영화를 보고는 서로 다른 결론들을 보였다면, 복잡해진다.
- 확률적으로 A와 B가 좋아한다고 표현한 영화들, 별로라고 표현한 영화들의 데이터와 단순 영화 리스트뿐 아니라, 그 영화들에 출연한 배우들, 영화 장르, 스타일 등의 다양한 분석 데이터들을 감안하게 되면, 각각 A라는 사람과 B라는 사람이 특정 영화를 좋아할 만한 확률을 구하는 것은 매우 복잡한 다차원의 문제가 된다.
- 이것을 나이브 베이즈 분류기 알고리즘을 써서 각각의 영화, 배우, 장르, 스타일 등의 각 요소들에 대해 A, B 뿐 아니라 수많은 사람들이 지속적인 좋아할 확률값을 계산하고, 비슷한 성향의 사람들을 분류한다.
- 결론적으로 새로운 C라는 사람이 넷플릭스에 가입해 새로운 영화를 추천 받을 때, 기존에 가장 가까운 성향을 보이는 사람에게 좋은 평가를 받았던 영화를 제공하면 성공할 확률이 가장 높을 것이란 계산이 나온다
이러한 방식으로 콘텐츠나 상품추천에 쓰이거나 기타 이메일 스팸 분류, 보안 분야에서의 이상징후 탐지, 암이나 심장병 등 의학데이터를 통한 질병진단, 문서 분류 등에 아주 다양하게 쓰인다.
나이브 베이즈 알고리즘의 장점과 단점
가장 큰 장점은 소량의 데이터로 작업이 이루어지고 여러 개의 분류 항목을 다를 수 있다는 점 그리고 특히 독립변수의 차원수가 증가할 경우, 모형의 설명력을 유지하기 위해 필요한 데이터 수가 기하급수적으로 많아지는 차원의 저주 문제를 완화할 수 있다는 점이다.
하지만 모든 독립변수는 동등하게 중요하고 독립적이라는 가정에 의존하는 단점을 갖고 있다.
3. KNN(k-nearest neighbor)
개요
가장 간단한 머신러닝 알고리즘으로 비슷한 특성을 가진 데이터는 비슷한 범주에 속하는 경향이 있다는 가정하에 사용된다.
위와 같이 데이터가 주어졌을 때, 빨간색 세모 데이터는 초록색 그룹과 노란색 그룹 중 어디에 속할까?
주변에 가까운 데이터들이 모두 노란색이기에 "노락색 그룹에 속할 것이다"라고 추측할 수 있다.
이처럼 주변의 가장 가까운 K개의 데이터를 보고 데이터가 속할 그룹을 판단하는 알고리즘이 K-NN 알고리즘이다.
간단한 원리이지만, 실제로 이미지 처리, 글자/얼굴 인식, 추천 알고리즘, 의료 분야 등에서 많이 사용된다.
NN(nearest neighbor)
K-NN에서 NN은 무엇일까.
이는 최근접 이웃을 사용한 분류이다. 범주를 알지 못하는 개체의 범주를 분류되어 있는 가장 유사한 개체의 범주로 지정하는 방법이다. 즉, 이에 K개의 가장 가까운, 최근접 이웃을 이용하여 훈련 데이터 집합에 있는 표본 간 유사도에 따라 라벨이 지정되지 않은 표본들을 매우 직관적인 방법으로 분류한다면 K-NN 분류기가 되는 것이다.
유사도 측정 방법
유사도를 측정하는 데는 다양한 방법이 있는데 주로 유클리드 거리(Euclidean distance)를 사용한다.
하지만 무조건 유클리드 거리 측정 방식을 사용하는 것을 자제해야 하는데, 모든 데이터 열을 이처럼 같은 방식으로 처리하면 생각하지 못한 변수에 의해 오류가 생길 수 있다. 따라서 거리의 제곱을 합산하기 전 각 카테고리에 대한 평균 거리를 빼고 계산하는 방식과 같은 다양한 거리 계산 알고리즘에 대한 논의가 필요하다.
예시로 실수 데이터의 경우 유클리드 거리 측정 방식 을 사용하고, 범주형 혹은 이진 데이터와 같은 유형의 데이터는 해밍 거리 측정 방식 을 사용한다.
K-NN 알고리즘의 특징
주요 특징으로는 이는 K의 값에 민감하고 K에 따라 분류의 결과가 달라질 수 있다는 점이다.
예시로 위와 같은 상황을 보면 k=1인 경우, 빨간색 세모는 초록색 그룹이라고 판단 그리고 k=3인 경우는 이를 노란색 그룹이라고 판단하기 때문이다.
따라서 최적의 k값을 결정하는 것이 매우 중요한데, 이는 데이터에 기반하여 결정하는데 일반적으로는 총 데이터 수의 제곱근 값을 사용하기도 한다. 또한 항상 분류가 가능하도록 K는 홀수로 설정하는 것이 좋다.
K의 값을 크게 줄 경우, 데이터의 구조를 파악하기 어려워지고, 기존에 더 많이 분류되어 있는 쪽으로 편향된다. K의 값이 작은 경우는 극단적으로 K=1 로, 이 경우 이상치 데이터에 영향을 많이 받는다.
K-NN의 장점과 단점
장점으로는 단순하기에 다른 알고리즘에 비해 구현하기 쉽다. 또 훈련 데이터를 그대로 갖고 있어 특별한 훈련을 하지 않기에 훈련 단계가 매우 빠르게 수행된다.
하지만 단점으로는 모델을 생성하지 않기에 특징과 클래스 간 관계를 이해하는데 제한적이다.
모델의 결과를 가지고 해석하는 것이 아니라, 미리 변수와 클래스 간의 관계를 파악하여 이를 알고리즘에 적용해야 원하는 결과를 얻을 수 있기 때문이다.
또, 적절한 K의 선택이 필요하고, 훈련 단계가 빠른 대신 데이터가 많아지면 분류 단계가 느리다
출처
나이브 베이즈 관련
- https://zdnet.co.kr/view/?no=20220725093548
- 강성관, 권봉경, 권철우, 박상민 and 윤일수. (2018). 나이브 베이즈 분류기를 이용한 돌발상황 검지 알고리즘 개발. 한국ITS학회 논문지, 17(6), 25-39.
KNN 관련
- 원치훈. "KNN에서 변수의 중요도에 관한 고찰." 국내석사학위논문 고려대학교 대학원, 2019. 서울
- https://bangu4.tistory.com/99
'WIDA > DACON 분류-회귀' 카테고리의 다른 글
[DACON/조아영] 분류 모델 뜯어보기, 분류모델 평가방식 (svm 모델도 추가할 예정) (0) | 2023.03.30 |
---|---|
[DACON/김민혜] 분류 모델 뜯어보기, 분류모델 평가방식 (0) | 2023.03.30 |
[DACON/조아영] 분류 모델 알아보기 (0) | 2023.03.24 |
[DACON/최다예] 분류 모델 알아보기 (0) | 2023.03.23 |
[DACON/김세연] 분류 모델 알아보기 (0) | 2023.03.23 |