정보공간_1

[6기 신촌 김상훈] 텍스트 마이닝 #2 본문

IT 놀이터/Elite Member Tech & Talk

[6기 신촌 김상훈] 텍스트 마이닝 #2

알 수 없는 사용자 2014. 11. 10. 05:25

안녕하세요. 신촌멤버십 22-2기 김상훈입니다.

이번 포스팅에서는 의사결정 트리를 이용한 텍스트 마이닝에 대해 알아보겠습니다.



# 소개

의사 결정 트리는 분류화(Classification) 기법 중 가장 일반적으로 사용되는 기법으로 텍스트 마이닝, 기계학습(Machine Learning), 통계 등 다양한 곳에서 활용 되고 있습니다. 의사 결정 트리는 스무 고개를 생각하면 이해하기 쉽습니다. 스무 고개는 20개의 질문을 하면서 '예', '아니오' 답변을 통해 출제자가 생각하고 있는 물건을 추측하는 게임입니다. 의사 결정 트리는 이와 흡사한 구조를 띄고 있습니다. 질문에 해당하는 것이 의사결정 영역(decision block)이고, 추측한 답이 단말 영역(terminationg block)입니다. 아래 그림은 의사 결정 트리가 무엇인지 직관적으로 알 수 있는 예시입니다.

빨간색 직사각형은 의사결정 영역이고, 파란색 타원형 사각형은 단말 영역 입니다. 최 상단 의사결정 영역에서 '원자가 전자가 1개이다' 라는 질문을 통해 알칼리 금속인지 또는 아닌지를 구분해 낼 수 있습니다. 그리고 다음 질문인 '불꽃 반응 시 보라색 빛을 낸다' 라는 질문을 통해 칼륨이라는 것을 결정할 수 있습니다. 이렇듯 여러 의사 결정 대안과 발생 가능한 사건 간의 주요한 상호작용을 보여주는 다이어그램(또는 플로우차트)를 그려 분류를 할 수 있도록 만든 시스템을 의사 결정 트리라고 합니다.



# 의사 결정 트리를 만드는 방법

이제 의사 결정 트리를 어떻게 만드는가에 대해 알아봅시다. 정확도가 높은 의사 결정 트리를 만들기 위해서는 데이터를 분할하기 위하여 어떤 속성을 사용할 것인지가 제일 중요합니다. 먼저 하나의 최초 의사 결정을 만들어야 합니다. 여러 가지 속성을 가지고 최초 분류를 해보고 가장 좋은 분류 결과를 가지는 속성을 최초 의사 결정으로 정합니다. 이 최초 의사 결정에 따라 하위집합을 나누고 하위집합에 대해 분할 절차를 반복하여 의사 결정 트리를 만들 수 있습니다. 분류를 평가하는 평가지수에는 Entropy, 카이제곱, F검정, 분산의 차이 등이 있고 이 평가지수에 따라 ID3, C4.5, C5.0, CHAID, CART 등의 알고리즘으로 나뉩니다.



# 적용 예시

블로그를 크롤링하여 어떤 여행지에 대한 리뷰 데이터를 모은다고 가정해 봅시다. 이 때 여행지 이름을 키워드로 검색하여 나온 블로그들은 정말로 여행지에 대한 리뷰글 일수도 있지만, 근처 맛집에 대한 리뷰일 수도 있고, 또는 그 여행지는 잠깐 언급되었을 뿐 그 여행지가 주가 아닌 내용일 수도 있습니다. 수집하는 데이터의 정확도 향상을 위해 의사 결정 트리를 사용하여 여행지에 대한 글이 맞는지 판단해 봅시다.

위의 예시 트리 구성을 통해 크롤링한 블로그가 여행지에 대한 리뷰 글이 맞는지 아닌지 판단할 수 있습니다. 이처럼 의사 결정 트리를 통해 본 데이터 마이닝에 앞서 필터 개념의 텍스트 마이닝을 할 수 있습니다.



# 의사 결정 트리의 장단점

의사 결정 트리 분석의 장점은 만든 모델(트리)를 사람이 보기에도 이해하기 쉽고, 분류 결과도 어떠한 원인으로 분류가 되었는지 이해하고 설명하기에 용이하다는 것입니다. 하지만 데이터의 특성이 수직/수평적으로 구분되지 못할 때 분류 정확도가 떨어지고 트리가 복잡해지는 문제가 발생하는 단점이 있습니다. 분류 정확도가 낮을 수 있는 단점이 있지만 이해하고 설명하기 쉽다는 장점 때문에 간단한 데이터 마이닝 또는 전처리 과정으로 많이 사용되고 있습니다.



다음 포스팅에서는 Naive Bayes를 이용한 텍스트 마이닝에 대해 알아보겠습니다.