데이터 분석 준전문가/제4과목

제5장 비정형 데이터 마이닝

표독's 2016. 2. 19. 13:24

제5장 비정형 데이터 마이닝


학습목표

텍스트 마이닝 기법의 이해

감성분석의 이해

워드크라우드 기법 이해

사회연결망 분석 기법 이해

연결정도 중심성 이해

근접 중심성 이해

매개 중심성 이해

위세 중심성 이해

사회 연결망 분석을 이용한 마케팅활용방안 고안


제1절 텍스트 마이닝


텍스트로부터 고품질의 정보를 도출하는 과정으로, 입력된 텍스트를 구조화해 그 데이터에서 패턴을 도출한 후 결과를 평가 해석하는 일련의 과정을 통칭한다.


문서로부터 텍스트를 추출해 이를 하나의 레코드로 만들어 단어 구성에 따라 마트를 구성하고, 이들 간의 관계를 이용해 감성분석이나 워드 클라우드를 수행하고, 이 정보를 클러스터링이나 분류와 사회연결망 분석에 활용할 수 있다.


1. 텍스트 마이닝 기능 요약

문서 요약

문서 분류

문서 군집

특성 추출


해당 언어에 대한 깊이 있는 이해와 문화나 관습에 대한 이해도 필요하다.


2. 정보검색의 적절성

 정보검색이나 자연어 처리 분야에서 분석 결과를 평가하기 위해 사용하는 방법 가운데 대표적인 것은

정확도와 재현율이다.


정확도 : 분석 모델이 경과 중에서 정답과 일치하는 비율

재현율 : 실제 정답 중에서 분석 모델에서 정답이라고 내놓은 결과의 비율


ex) 트위터 감성분석 / 분석 모델 20개 트위트 메시지를 긍정, 그 중 9개가 실제로 긍정일 경우 정확도 9/20. 트위터에 존재하는 모든 긍정 메시지 수가 100개라면 재현율 9/100


두 개념은 반비례 관계.


가. Corpus


데이터 마이닝의 절차 중 데이터의 정제, 통합, 선택, 변환의 과정을 거친 구조화의 단계로서 더 이상 추가적인 절차 없이 데이터 마이닝 알고리즘 실험에서 화용될 수 있는 상태를 의미한다.


텍스트 마이닝 패키지인 TM에서 문서를 관리하는 기본 구조를 Corpus라 부르며, 이는 텍스트 문서들의 집합을 의미한ㄷ나.


메모리에서만 유지되는 VCorpus와 

R외부의 DB나 파일로 관리되는 PCorpus가 있다.


언어별 stop word : 한글에서 조사에 해당되며 띄어쓰기 등을 통해 확인할 수 있고, 영어의 경우도 띄어쓰기와 시제 등의 내용을 제거한다.


나 .Create Term-Document Matrix


읽어 들인 문서를  단순하게 처리한 다음 문서번호와 단어 간의 사용 여부 또는 빈도수를 이용해 matrix를 만드는 작업이다.


다. Dictionary

복수의 문자들의 집합으로 텍스트 마이닝에서 분석에 사용하고자 하는 단어들의 집합이다. 여기에 단어를 추가할 수 있는데 분석하고자 하는 단어들을 별도 사전으로 정의해서 해당 단어들에 대해서만 결과를 산출해서 보려고 할 때 사용한다. 


라. 감성분석

감성분석은 Opinion Mining 등으로 언급하는 내용이다. 긍정과 부정여부를 가진 단어에 따라 소스를 부여해 긍정 문장인지를 평가한다.


plyr은 Hadley 교수가 공개한 패키지로 R사용자들로부터 가장 사랑받는 패키지 가운데 하나다.

데이터를 분리(splitting), 적용(applying), 조합(combining)할 대 사용하는 패키지다.


마. 한글처리

한글 텍스트 마이닝 패키지는 KoNLP가 대표적이다. rJava 패키지 등을 추가로 설치해 주어야 한다. 또한 반드시 JRE를 설치해야 한다.


연관성 분석을 수행하는 대표적인 알고리즘


apriori와 FP-성장(Frequent Pattern)이 있다.


apriori 알고리즘에서 연관 분석을 수행하기 위해 빈발 아이템 집합과 연관 규칙이라고 하는 두 가지 형태로 관계를 표현한다. 

지지도 : 아이템의 빈발 정도 측정

신뢰도 : 연관 규칙 관계의 강도를 측정하기 위해


계산량을 많이 줄여주지만 유통사의 SKU 수준의 다양한 상품 데이터를 처리하기 위해서는 제약사항이 많다.


FP-성장(Frequent Pattern) 알고리즘은 apriori보다 빠르다. 빈발 아이템을 집합을 찾기 위해 FP-트리라는 특별한 데이터 구조를 사용해 데이터 집합을 저장한다.


바. 워드클라우드

gdata 라이브러리를 로드한다.

available.packages는 R에서 가용한 패키지 리스트를  출력하며, 각 패키지에 대한 상세 정보를 매트릭스 형태로 반환한다.


제2절 사회연결망 분석

igraph를 이용해 사회연결망 분석(SNA)를 하려고 한다.


1. 사회연결망 분석 정의

가. SNA 정의 

개인과 집단들 간의 관계를 노드와 링크로서 모델링해 그것의 위상구조와 확산 및 진화과정을 계량적으로 분석하는 방법론이다.


1) 집합론적 방법

객체들의 집합에서 각 개체들 간의 관계를 관계 쌍으로 표현한다.


2) 그래프 이론을 이용한 방법

객체는 점으로 표현된다. 두 객체 간의 연결망은 두 점을 연결하는 선으로 표현된다. 이때 점을 꼭지점 또는 노드라고 한다.


3) 행렬을 이용한 방법

각 객체를 행렬의 행과 열에 대칭적으로 배치하고, i번째 객채와 j번째 객체가 연결망으로 연결돼 있으면 행렬의 (i,j) 번째 칸에 1을 넣고, 연결망이 없으면 0을 넣는다..


** 사회연결망 분석에서는 분석하고자 하는 데이터는 행렬로 표현한다.


사회연결망 분석에서 네트워크 구조를 파악하기 위한 기법


1) 연결정도 중심성

한 점에 직접적으로 연결된 점들의 합으로 얻어진다. 한 점에 얼마나 많은 다른 점들이 관계를 맺고 있는지를 기준으로, 그 점이 중심에 위치하는 정도를 계량화한 것이다.

연결된 노드의 수가 많을수록 연결정도 중심성이 높아진다.


2) 근접 중심성

각 노드 간의 거리를 근거로 중심성을 측정하는 방법으로, 연결정도 중심성과는 달리 직접적으로 연결된 노드뿐 아니라 간접적으로 연결된 모든 노드 간의 거리를 합산해 중심성을 측정한다.

근접중심성이 높을 수록 네트워크 중앙에 위치하게 된다.


3) 매개 중심성

네트워크 내에서 한 점이 담당하는 매개자 혹은 중재자 역할의 정도로서 중심성을 측ㅈ벙하는 방법이다. 한 노드가 연결망 내의 다른 노드들 사이의 최다 경로 위에 위치하면 할수록 그 노드의 매개 중심성이 높다. 매개 중심성 또한 네트워크 간 비교를 위해 상대적 매개 중심성이 사용된다.


4) 위세 중심성

연결된 노드의 중요성에 가중치를 둬 노드의 중심성을 측정하는 방법이다.

위세 중심성의 일반적인 형태는 보나시치 권력지수로 불리며, 자신의 연결정도 중심성으로부터 발생하는 영향력과 자신과 연결된 타인의 영향력을 합해 위세 중심성을 결정한나. 


나. SNA 적용


소셜 네트워크는 노드 또는 점, 링크 또는 에지로 구성된 그래프다. 


링크 방향성이 있는지 없는지에 따라 방향 그래프와 무방향 그래프로 구분한다.


다. 단계

그래프를 생성하는 단계

이 그래프를 목적에 따라 가공해 분석하는 단계

커뮤니티를 탐지하고 각 객체 또는 노드의 롤을 정의해 어떠한 롤로 영향력을 보다 효율적으로 줄 수 있는지를 정의하는 단계

이를 데이터화해 다른 데이터 마이닝 기법과 연계하는 단계로 구분할 수 있다.


2. R을 이용한 SNA


가. 데이터 로딩

read.table() : 데이터를 읽어 들일 때 사용

setwd() : 로컬 디스크의 데이터를 읽을 때 


1) 그래프 로딩

as.undirected : 선이 깔끔하지 못할 때 이 명령어를 이용해 대칭적으로 정리


2) 그래프에 꼭지점 속성 추가


3) 네트워크 시각화

R에서는 한 번에 하나의 플롯만 보여주기 때문에 여러 플롯을 동시에 보기 위해서는 PDF나 이미지 형식으로 저장


레이아웃 알고리즘을 적용하면 레이아웃을 최적화할 수 있다. Fruchterman-Rheingold 알고리즘 사용


4) 그래프를 다양한 타입으로 저장


나. 데이터 로드


다. 노드 레벨 통계값

shortest.paths : 개인 간의 가장 짧은 거리를 알고 싶을 때


라. 네트워크 레벨 통계량


1) Degree

2) Shortest paths

3) Reachability

4) density

5) Reciprocity

6) Transitivity

7) Triad census


마. Clusters

바. community detection

커뮤니티를 그래프토 나타내는 다양한 방법 중

walktrap과 edge-betweenness


1) COMMUNITY DETECTION: WALKTRAP

walktrap 알고리즘은 일련의 random walk 과정을 통해 커뮤니티를 발견한다. 

이 알고리즘은 각 버텍스를 하나의 커뮤니티로 취급하면서 시작해, 점차 더 큰 그룹을 병합하면서 클러스터링을 한다. 


2) COMMUNITY DETECTION : EDGE BETWEENNESS METHOD

특정 에지의 edge-betweenness 점수는 그래프에 존재하는 최단거리 중 몇 개가 그 에지를 거쳐가는지로 측정 된다.

높은 edge-betweenness 점수를 갖는 에지가 클러스터를 분리하는 속성을 가진다고 가정

각 edge의 betweenness를 기반으로 군집화를 한다.


3. 활용방안


가. 단어 간 연관성을 이용한 소셜네트워크 분석

simplify함수는 loop나 multiple edge를 제거해서 단순하게 해준다. 0값이 가장 많은 이유는 sparcity에 의해 삭제된 경우이기 때문이다.


graph.incidence는 아래와 같은 형식으로 이분그래프를 생성할 수 있다.


나. 트위터 검색을 통한 사용자 간 소셜 네트워크














'데이터 분석 준전문가 > 제4과목' 카테고리의 다른 글

제6장 시뮬레이션 및 최적화  (0) 2016.02.19
제4장 정형 데이터 마이닝  (0) 2016.02.18
제3장 데이터 마트  (0) 2016.02.18
제2장 통계분석  (0) 2016.02.17
제1장 데이터 분석 개요  (0) 2016.02.16