http://www.slideshare.net/kwnam4u/presentations?order=latest
Data Mining 01 - 개요
- (p11) Data Mining 기법의 분류
- 발견할 지식의 종류에 따라
- Association(연관성 발견)
- Characterization(특성발견)
- Classification(분류)
- Summarization(요약)
- Clustering(군집화)
- Sequential Pattern Discovery(연속패턴발견)
- Trend(경향 발견)
- Deviation Detection(추세변화발견)
- (p22) 집단지성이란? Collective Intelligence(集團知性)
- 다양한 사고활동을 하는 개인들이 서로 협업하거나 경쟁을 통하여 얻게 되는 집단적 지적 능력
- 미국의 곤충학자 윌리엄 모턴 휠러(William Morton Wheeler)가 1910년 출간한 《개미:그들의 구조·발달·행동 Ants:Their Structure, Development, and Behavior》에서 처음 제시
- 개체로는 미미한 개미가 공동체로서 협업(協業)하여 거대한 개미집을 만들어내는 것을 관찰하였고, 이를 근거로 개미는 개체로서는 미미하지만 군집(群集)하여서는 높은 지능체계를 형성한다고 설명 22
- google, Netflix, Amazon 추천 시스템 등. 개체가 그것을 인식하는 지는 중요하지 않음
Data Mining 02 - 추천 시스템 만들기
- (p3) 추천 시스템의 개요
- 협업 필터링(Collaborative Filtering)
- 많은 사용자들로부터 얻은 기호정보(taste information)에 따라 사용자들의 관심사들을 자동적으로 예측하게 해주는 방법(wiki)
- 정보 과잉 문제를 해결하기 위한 정보 필터링의 주요 기법
- 큰 무리의 사람들을 검색해서 유사한 취향을 가진 작은 집합을 발견하는 알고리즘
- User Activity Repository --> Collaborative Filtering --> 후 보 --> 선택 --> Active User
|------------------------- 영향 또는 반영-----------------------------------|
- (p4) 추천 시스템의 개요
- Collaborative filtering의 방법
- 아이템 기반의 필터링(amazon)
- Step 1 : Rating Process • 아이템 간의 상관관계를 결정하는 아이템 매트릭스(item-item matrix)를 만든다.
- Step 2 : Predicion Process • 매트릭스를 사용하여 최신 사용자의 데이터를 기반으로 그 사용자의 기호를 유추한다.
- (p6) 선호 정보(preferences)의 수집
- Preference 정보의 범위와 Rating 방법의 예
- Recommendations.py
- 영화 평론가 평점 Preferences를 0과 1사이의 실수로 표현 – Python을 이용한 Preference 정보의 접근 구현
- (p7) 유사 사용자 찾기(Finding Similar User)
- Similar User
- 각각의 사람을 다른 모든 사람들과 비교하여 유사한 취향을 갖는 사용자를 계산
- Euclidean distance score와 Peason correlation score
- 유클리디안 거리 점수(Euclidean Distance Score)
- Euclidean 공간
- 우리 머리속에서 상상하는 이상적인 평면 • 평행선 사이의 거리는 항상 일정하며 한직선에 대해서 어떤 한점을 지나는 평행선은 하나밖에 없는 평면
- 즉, 공간상에 전혀 구부러짐이 없고 반듯하다고 생각되는 평면, 하지만 실제 공간상에서는 이러한 평면은 존재하지 않는다고 알려져있음
- 공간은 중력에 의해 구부러진채로 존재 <영화 Snakes와 Dupree 점수로 본 평론가들간의 유사성 계산
- (p10) 유사 사용자 찾기(Finding Similar User)
- 피어슨 상관 점수(Pearson Correlation Score)
- 두 개의 데이터 집합이 한 직선으로 얼마나 잘 표현되는가를 나타내는 측정값
- 잘 정규화되지 않은 데이터의 경우에 좋은 결과를 제공, 두 변수간의 연관 강도 측정용 지표로서 1과 -1사이의 값
- 1은 완전히 연관되어 있음, 0은 전혀 연관 없음, -1은 완전 반대로 연관되어 있음
- Best-fit -차트내의 모든 항목들과 가장 가까운 직선
- - 두 평론가가 모든 영화에 동일하게 평가했다면 대각선이 되며, 모든 영화 는 직선상에 존재 Seymour와 Lasalle간의 피 어슨 상관 점수는 0.4정도 <낮은 상관 점수를 갖는 평론가의 예>
- (p19) 항목 추천(Recommending Items)
- 유사성 판단을 통한 추천 방법
- 나와 가장 유사한 패턴을 갖는 평점을 기준으로 다른 영화를 추천할 수 있음
- TopMatches 함수를 이용하여 Similarity 판단
- (p23) delicious.com 링크 추천 만들기
Data Mining 03 - 군집 발견
- (p2) 데이터 클러스터링(군집화,Data Clustering) 개요
- 군집 분석(Clustering Analysis)
- 모집단 또는 범주에 대한 사전 정보가 없는 경우, 주어진 관측값들 사이의 거리 또는 유사성 을 이용하여, 전체를 몇 개의 집단으로 그룹화 하는 분석법
- 각 집단의 성격을 파악함으로써 데이터 전체의 구조에 대한 이해를 돕고자 하는 분석법
- 분류 분석(Classification Analysis,9장)과는 달리 목표 변수를 설정하지 않음.
- 따라서, 분류는 supervised learning[감독학습]이라고 하고, 군집분석은 unsupervised learning[무감독학습]이라고도 함
- 활용 예: 문서 분류, 고객세분화를 통한 타겟 마케팅 등
- (p3) 데이터 클러스터링(군집화,Data Clustering) 개요
- 데이터 군집화를 위한 변수의 예
- 인구통계적 변수 (성별, 나이, 거주지, 직업, 소득, 교육, 종교 등)
- 구매패턴 변수 (상품, 주기, 거래액 등)
- 생활패턴 변수 (라이프스타일, 성격, 취미, 가치관 등)
- 변수간의 거리 또는 유사성으로 군집화
- 주요 군집 분석 알고리즘
- K-Means - 꽃받침과 꽃잎 너비 변수를 이용한 군집화 K-Mean을 이용
- EM(Expectation Maximization) - EM 군집 (백화점 고객 데이터)
- 군집분석의 특징
- 군집분석은 자료의 사전정보 없이 자료를 파악하는 방법으로, 분석자의 주관에 결과가 달라질 수 있음
- 특이값을 갖는 개체의 발견, 결측값의 보정 등에 사용될 수 있음
- 변수의 선택이 중요
- (p7) 블로거 군집화 : 단어 벡터
- 각 블로그안에 출현하는 특정단어들의 횟수
- 생성해야 할 데이터의 예 : 블로거와 블로그 단어의 빈도수 데이터
- (P8) 블로거 군집화 : 단어 벡터
- 블로그 군집화의 단계 URL의 데이터를 가져와서 Word Count blogdata.txt
- 데이터마이닝 : Collective Intelligence 8 Feedlist.txt Rss url 목록 파일
- 고빈도/저빈도 단어 필터링 Web RSS 블로그-단어 행렬을 저장 블로그
- 단어벡터 데이터 generatefeedvector.py 계층적 군집화 알고리즘 clusters.py 적용
- (p13) 블로거 군집화 : 피드 내 단어 수 세기
- 고빈도/저빈도 단어 필터링 - 단어 필터링의 이유
- 고빈도 단어 : the, a 등 • 모든 블로그에 거의 공통적으로 나타나는 단어는 군집화 변수가 되기 어려움
- 저빈도 단어 : slang 또는 특수어
- 거의 한두번의 출현 빈도를 갖는 단어들은 다른 블로그와 유사성을 판단하기 어려움
- 필터링 factor – 다음 예제에서는 10%이상 50%이하로 주고 있으나, 환경에 따라 변경 가능
- (p15) 블로거 군집화 : 계층적 군집화
- 계층적 군집화란 - 가장 유사한 그룹을 계속 병합하여 그룹 계층을 만드는 방법
- 가까운 관측값들 끼리 묶는 병합(agglomeration)방법과 먼 관측값들을 나누어가는 분할(division) 방법이 존재
- 계층적 군집에서는 주로 병합 방법이 사용됨
- (p18) 블로거 군집화 : 계층적 군집화
- 유사성 거리 계산
- Pearson 계수를 이용한 상관 점수 계산 – 1.0이면 완전 유사, 0이면 전혀 관계없음, -1.0이면 완전 반대
- (p26) 블로거 군집화 : 세로줄 군집화(Column Clustering)
- 세로줄 군집화
- 예 : 함께 구매하는 물건 전시 선반 찾기
- 예 : 블로그간 군집화가 아니라, 블로그-단어간 군집화
- (p29) -평균 군집화(k-means clustering)
- 계층적 군집화의 문제점
- 트리 형태로 계층을 구성하긴 하나, 뚜렷한 그룹으로 분할하진 못함
- 매우 느리게 동작. 모든 항목마다 계산이 필요하고 항목들이 병합될 때에 재계산 필요
- K-평균 군집화의 특징 (wiki)주어진 데이터를 특정 성질에 기초해서 k개의 묶음(cluster)로 나누는 방법중 하나
- K개의 사전에 지정된 군집의 개수를 지정하고 군집화하므로 계층적 군집화 보다 빠름
- 단점 – 전역 최적값을 보장하지 않음
- 맨 처음 나눈 방법에 상당히 의존한 결과를 생성하므로 최적값에 비해 매우 나쁜 값을 얻을 수 있음
- 알고리즘이 빠르기 때문에 서로 다른 초기값으로 여러 번 시도하여 좋은 클러스터를 선택
- 알고리즘을 시작할때 사전 지식없이 k값을 정해주어야 하므로, 데이터가 자연스럽지 않게 분포되는 결과를 얻을 수 있음
- (p30) 평균 군집화(k-means clustering)
- 알고리즘
- 무작위로 선정된 k개의 중심점(centroid)을 선정
- 이 중심점에서 각 객체들의 거리를 계산하여 결정
- 최소 거리를 갖는 객체에 기반하여 그룹화
- (p35) 2차원으로 데이터 보기
- 다차원 비례 축소법(multidimensional scaling)
- 데이터의 유사성이나 비유사성을 탐색하기 위하여 자료와의 적합도가 유지되는 한도내에서 2-3차원의 도표로 차원을 낮추어 보여주기위한 테크닉들의 집합(wiki)
- 군집화 변수 등은 여러 개의 요소에 의해 결정되므로 사람이 쉽게 인식가능한 2-3차원 도표로 표현하기 어려움
- 정보 가시화(information visualization)에서 사용되며, 다차원 비례 축소법에 의해 그려지는 지도를 다차원 인식지도(perceptual map)이라고 함
- 다차원 비례 축소법(multidimensional scaling)의 예
- 상품과 상품 간의 관계 factor => 날씨, 일자, 온도, 고객 성향 등 다양 => 가시화 문제 발생
- 주요 factor를 단순화하여 2-3차원으로 변환하여 visualization
Data Mining 04 - 검색과 Ranking
- (p3) 검색엔진
- 검색엔진의 동작 순서
- 웹 크롤링(Web crawling) – 웹 로봇
- 인덱싱(Indexing)
- 검색(Searching)
- (p4) 검색엔진 : 웹로봇
- 웹 로봇의 정의
- 지정된 URL 리스트에서 시작하여 웹 문서를 수집하고, 수집된 웹 문서에 포함된 URL들의 추출과정과 새롭게 발견된 URL에 대한 웹 문서 수집 과정을 반복하는 소프트 웨어
- 웹 Web Robot, Spider, Crawler, Wanderer
- (p9) 단순 Crawler 구현
- urllib2를 이용한 구현
- 지정한 url을 다운로드하여 저장할 수 있도록 해주는 라이브러리
- (p13) 색인하기
- 색인 데이터의 저장
- SQLite를 이용하여 저장 – Pysqlite
- 스키마 설정하기
- (p19) 검색하기
- (p23) 내용기반 랭킹
- 내용기반 랭킹의 점수 지표(traditional approach)
- 단어빈도 – 검색어 안에 있는 단어들이 문서에 출현하는 횟수 – 문서의 적합도를 결정
- 문서내 위치 – 다양한 단어의 위치에 대한 가정을 이용
- 한 문서의 핵심주제는 문서 도입부에 있을 가능섶이 높다
- 중요한 단어일수록 글자체가 크다
- Keyword 또는 head에 사용된 단어는 중요하다
- 단어거리 – 검색어 안에 여러 단어가 있을 경우 문서에서 근접해서 출현해야 한다
- (p25) 내용기반 랭킹 : 정규화 함수
- 숫자 점수의 정규화
- 랭킹을 위해 다양한 점수화 factor를 도입
- 다양한 factor들간의 통합을 위해 모든 점수를 동일한 범위와 방향으로 정규화함
- 단어빈도, 문서내위치, 단어거리 등등의 factor 각각을 0..1의 값으로 변환
- 정규화 방법- 최적 결과를 1로 가정하고 정규화
- (p34) 유입링크 사용하기 : 페이지랭크 알고리즘
- 페이지랭크(PageRank)의 의미
- PageRank 알고리즘을 이용하여 웹 페이지의 랭킹을 부여(래리 페이지)
- 웹 페이지의 중요성을 외부에서 그 웹 페이지를 가르키는 링크(역링크)를 기반으로 계산하는 알고리즘
- 즉, 역링크를 많이 가지고 있는 웹페이지 일수록 중요하다는 전제하에 페이지의 순위를 계산
- 페이지의 중요도
- 그 페이지에 대한 링크를 가진 다른 페이지의 중요도와 각각의 다른 페이지들이 가지고 있는 링크 수로 계산
- (p41) 클릭 학습 : 클릭 추적 네트워크의 설계
- 사용자 선택의 Feedback
- 검색엔진이 제공한 검색결과에 대한 선호도 정보(검색 결과중 어떤 것을 클릭했는가?)를 이용하여 검색엔진의 검색결과 ranking에 이용
- Perception Network 기반의 클릭추적 네트워크
- MLP(MultiLayer Perception) : 다층적 인식망 – 은닉층(hidden layer)과 쿼리층(query layer) Query layer hidden layer output layer
- (p47) 클릭 학습 : 전방전파
- 전방 전파
- 단어를 입력으로 취해 네트워크 내에 연결들을 활성화 시키고 URL에 대한 출력 집합을 제공하는 함수
- 각 노드가 입력에 반응하는 정도를 표시하는 함수 선택 • 쌍곡선 탄젠트(hyperbolic tangent) 함수 사용 Tangent 함
- (p50) 클릭 학습 : 전방전파
- 전방전파 알고리즘
- 은닉층에 있는 모든 노드들마다 루프를 돌면서 입력층의 모든 출력들과 링크들의 연결강도를 곱한후 더하며 동작
Data Mining 05 - 문서 filtering