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)
      • 정보 과잉 문제를 해결하기 위한 정보 필터링의 주요 기법
      • 큰 무리의 사람들을 검색해서 유사한 취향을 가진 작은 집합을 발견하는 알고리즘 
        •                                                    Active User의 정보
        •                                                                |
        • 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) 블로거 군집화 : 단어 벡터
    • 블로거 데이터 상위 120명의 블로거
      • 각 블로그안에 출현하는 특정단어들의 횟수
      • 생성해야 할 데이터의 예 : 블로거와 블로그 단어의 빈도수 데이터
  • (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) 검색하기 
    • 검색어를 포함한 URL 찾기 
  • (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  

  • (p3) 검색엔진
    • 검색엔진의 동작 순서


Posted by Name_null