카테고리 없음

데이터 마이닝

은행털이 2024. 10. 14. 05:36

데이터

- 이론을 세우는 데 기초가 되는 사실, 또는 바탕이 되는 자료

- 관찰이나 실험, 조사로 얻은 사실이나 자료

- 문자, 숫자, 소리, 그림 따위의 형태로 된 자료

- 데이터는 정보가 아니고 데이터를 가공해 얻는것이 곧 정보

 

 

데이터셋(Dataset)

- 데이터 모음
- 하나의 데이터베이스 테이블의 내용이나, 하나의 통계적 자료 행렬과 일치

- 열(column) : 특정 변수를 대표, 속성

- 행(row) : 주어진 변수에 일치하는 값, 데이터 개체

- 각각의 값은 데이터

 

 

데이터의 형태

실험 데이터(Experimental Data) 관측 데이터(Observational Data)
- 생물학 실험, 약물 실험, 물리학 실험 등 설정된 실험 환경에서 수집된 데이터
- 미리 가설을 설정 후 가설에 따른 실험을 설계
- 가설 검증 또는 탐색적 분석
- 실험과정이 설계되지 않은 환경에서 관측되어 수집된 데이터
- 센서 데이터, 유전체 데이터, 웹 로그, 거래 데이터, 트래픽 데이터 등
- 주된 데이터 마이닝 대상

 

질적 자료(정성적 자료, Categorical) 양적자료(정량적 자료, Numerical)
- 범주 또는 순서 형태의 속성을 가지는 자료
- 범주형 : 사람의 피부색, 성별 등
- 순서형 : 제품의 품질, 등급, 순위 등
- 관측된 값이 수치 형태의 속성을 가지는 자료
- 범위형 : 화씨, 섭씨와 같이 숯치간 차이가 의미를 가지는 것
- 비율 : 무게와 같이 수치의 차이 뿐 아니라 비율 또한 의미를 가지는 것

 

 

 

정형 데이터

- 일정한 구조 보유
- 데이터베이스 테이블, 시장바구니 데이터 등

 

 

비정형 데이터

- 구조가 일정하지 않은 데이터

- 텍스트, 스트림, 서열, 클릭, 로그, 그래프 데이터 등

 

 

반정형 데이터

- 구조화 되어있지만, 관계형 데이터베이스의 테이블과 같은 형태로는 저장되기 곤란한 데이터

- XML, JSON 등

 

 

 

 

데이터의 종류

  • 레코드 데이터
    - 데이터 마이닝에서 가장 많이 사용되는 형태
    - 대개 flat 파일로 저장됨
    - 레코드의 모음과 고정된 수의 속성으로 구성
  • 트랜잭션 데이터
    - 구매자와 구매 물품 목록 형태로 이루어진 데이터셋
    - 장바구니 데이터라고도 불림
  • 데이터 행렬
    - 모든 속성이 수치 형태의 값을 가지는 행렬 형태의 데이터셋
    - 행은 개체, 열은 속성
    - 패턴 행렬이라고도 불림
  • 희박한 데이터 행렬
    - 데이터 행렬의 특별한 경우
    - 대부분이 0으로 이루어진 행렬
    - ex. 각 문서에서 용어가 출현하는 빈도 수
  • 그래프 데이터
    - 데이터 개체 간의 관계나 데이터 자체를 그래프로 표현하는 경우에 사용하는 데이터셋
  • 순서데이터 : 데이터 개체의 속성이 시간 또는 공간적인 순서와 연관되어있는 데이터셋
    - 연속데이터 : 트랜잭션 데이터에서 시간 성분을 추가적으로 고려한 것
    - 서열데이터: 대이터 개체 사이에 순서가 존재(DNA 서열)
    - 시계열 데이터 : 연속 데이터의 특수한 경우로, 시간에 따른 속성의 변화를 관찰한 데이터 집합
    - 공간 데이터 : 공간 상의 위치 정보와 연관되는 데이터 집합

 

 

 

데이터 마이닝

- 각종 DB속 내재된 의미있는 결과를 분석하고 이를 현실에 적용하는 것

  • 예측 결정
    - 회귀 분석 : 하나 이상의 변수간 영향이나 관계를 분석
    - 예측: 방대한 양의 데이터 집합의 패턴을 기반으로 미래 예측
    - 분류 : 일정 집단에서 특정한 정의를 사용하여 분류 및 구분을 추론
    - 시계열 분석 : 시간의 변화에 따라 일정한 간격으로 연속된 통계 숫자를 저장한 시계열 데이터에 바탕을 둔 분석방법
  • 표현
    - 군집화 : 구체적은 특성을 공유하는 군집을 찾음. 군집화는 미리 정의된 특성의 정보가 없다는 점에서 분류와 다름
    - 연관 규칙 : 동시에 발생한 사건 간의 관계를 정의
    - 연속성 : 시간에 따라 순차적으로 나타나는 사건의 종속성
    - 요약 : 데이터의 일반적 특성이나 특징의 요점을 간략히 정리하는 기술

 

 

연관 규칙(Association Rule)

  • 시장바구니 데이터에 내재된 항목 출현의 연관성을 찾아 표현한 규칙
  • 항목 집합(item set) : 한 개 이상의 항목들의 모음
  • k - 항목집합(k-item set) : k개의 항목을 포함하는 항목 집합(ex. 2-item set : {맥주, 치킨}
  • 지지 회수(support count) : 항목 집합이 나타난 거래 데이터의 수
  • 지지도(support) : 전체 데이터에 대한 항목 집합을 포함한 거래 데이터의 비율(항목집합 A의 지지회수 / 전체 거래 데이터 수)
  • 빈발 항목집합(frequant item set) : 미리 지정된 값 이상의 지지도를 갖는 항목 집합
  • 연관 규칙 A -> B의 신뢰도(confidence) c(A -> B) = s(AB) / s(A)
  • Apriori 알고리즘
    - 대표적인 연관규칙 마이닝 알고리즘
    - 빈발 항목 집합들을 선택 -> 이들로부터 신뢰도가 높은 연관 규칙을 생성
    - 빈발 항목집합을 점진적으로 생성
  • 응용 분야
    - 비즈니스 분야 : 카탈로그 설계, 끼워팔기 전략, 상품 배치, 쿠폰 설계, 구매 패턴에 따른 고객 세분화
    - 통신 서비스 : 고객의 사용 패턴 추출, 장애 발생 패턴 분석
    - 사회 안전 : 범죄 및 테러 모의, 불법 유통, 범죄 네트워크 식별, 범죄 추적 등

 

 

 

텍스트 마이닝(text mining)

- 대규모 텍스트 데이터로부터 의미 있는 정보를 추출하는 것
- 비정형인 텍스트 데이터를 자연어 처리 기법으로 문장 분석
- 의미 요소를 추출하고 구조화된 정형 데이터로 변환
- 변환된 정형 데이터에 데이터 마이닝 기법을 적용하여 의미있는 패턴을 추출

 

데이터 마이닝 절차

  • 정보 수집 : 비, 반정형의 텍스트 데이터를 수집하는 단계
  • 정보 처리 : 대용량 데이터에서 특정 키워드나 의미있는 요소를 추출하려고 전처리를 하는 단계
  • 정보 추출 
    - 수학적 모델이나 알고리즘을 이용하여 유용한 정보 추출
    - 텍스트 마이닝을 위한 정보추출법에는 다양한 목적, 조건, 환경 등이 존재
    - 수많은 수학적 알고리즘이 있으며, 그중 간단하면서 강력한 방법인 TF-IDF 방식을 많이 사용
  • 정보 분석 : 최종 키워드나 의미 있는 요소의 우선순위를 도출하는 단계

텍스트 마이닝 대상

  • 텍스트 분류
  • 텍스트 군집화
  • 개념 추출
  • 개체 관계 모델
  • 문서 요약
  • 토픽 모델링(Topic modeling)
    - 문서들에서 어떤 주제들을 다루고 있는지 비지도적 학습으로 찾아내는 작업
    - LDA 알고리즘 사용
        - 주제(topic) ø 의 표현
        - 다항 분포로 표현된다고 가정
        - 하이퍼 파라미터 β : 디리쉬리 분포(다항 분포들에 대한 확률분포)의 특성을 지정하는 파라미터
        - θ : 문서의 주제 분포를 나타내는 확률변수
        - 확률변수 Z : 문서의 주제 분포에서 표본 추출된 주제 하나를 표현, 깁슨 표본추출을 이용하여 결
        - W : 실제 문서에 나타나는 언어
        -> Z가 가리키는 주제 ø의 단어 분포로부터 표본추출하여 단어 W가 결정된다고 가정
  • 감성 분석(Opinion Mining)
    1. 특징 추출 : 감성을 사전 구축(긍정, 부정)
    2. 긍정, 부정 의견 분류 단계
        - 문장 단위로 세부 평가 요소와 긍정, 부정 표현 식별
        - 해당 문장이 긍정적인 의견인지 부정적인 의견인지 결정
    3. 오피니언 요약 및 전달 단계
        - 각 세부 평가 요소별 긍정, 부정 표현의 차이 비교
        - 긍정, 부정의 평가 정도 표현
        - 평가 요소별로 오피니언에 대한 요약 정보를 문장으로 표현
    감성 분석 기술
    - 긍정 및 부정을 표현하는 단어 정보 추출
    - 세부 평가 요소와 그것이 가리키는 오피니언의 연결 관계를 포함한 문장 인식(나이브 베이즈, ME, SVM)
    - 긍정, 부정 표현의 수 및 유용한 문장을 추출하여 리뷰 요약 생성
    - SNS에는 사람들의 관계와 대화 내용 속에 오피니언이 포함되며 주제나 대상, 인물이 특정부분에 국한되지 않고 다양한 오피니언이 많기때문에 활용하기 좋음

 

 

 

그래프 마이닝(Graph mining)

- 그래프 데이터들로부터 의미있는 패턴을 추출하는 것

  • 빈발 부분 그래프(frequent subgraph) 마이닝
    - 그래프 데이터들의 집단에서 자주 나타나는 부분 그래프(subgraph)를 찾는 것
    - 부분 그래프 : 원래 그래프에 속하는(즉, 노드와 링크가 포함되는) 그래프
    - 동형(isomorphism)
        - 한 그래프의 노드들의 이름을 다른 그래프 노드들의 이름으로 변환하여 같은 그래프로 만들 수 있는 것
        - 동형 확인은 NP-hard 문제로서 비용이 많이 드는 연산
    - 후보 부분그래프를 만들어가면서, 후보 부분그래프가 각 그래프 데이터에 포함되는지 동형 확인을 통해 빈발한 것을 찾는 것 -> 대표적 알고리즘 = FSG, gSpan

 

그래프 검색(graph search)

  • 그래프 데이터베이스와 질의 그래프가 주어질 때, 질의 그래프를 부분그래프로 포함하는 그래프들을 모두 찾는 문제
  • 검색 문제를 효과적으로 다루기 위해 인덱싱(indexing)기법 사용
    - 인덱싱 : 어떤 대상을 쉽게 찾을 수 있도록 기준이 되는 특징으로 대상위 위치를 쉽게 찾을 수 있게 하는 기법
    - 인덱싱에 사용할 수 있는 특징 : 경로, 부분구조, 노드, 링크의 이름, 부분 그래프, 주로 빈발 부분그래프 사용

 

유사도 검색(similarity search)

  • 인덱싱을 할 때 여러가지 특징을 사용하여 각 그래프데이터를 특징 벡터로 표현
  • 질의 그래프에 대해서 인덱싱 시 사용한 특징을 추출하여 벡터로 표현
  • 질의그래프의 특징벡터와 유사도가 일정 값 이상인 그래프들을 후보로 선택

 

 

그래프 분류(classification)

  • 주어진 그래프에 대해서 학습 데이터를 사용하여 라벨(label)을 모르는 노드의 라벨을 결정하는 문제
  • 그래프 데이터에 대한 부류(class)를 결정하는 문제
    - ex. 화합물을 나타내는 그래프들이 주어질 때, 특정한 성질의 유무를 결정하는 문제

 

 

그래프 군집화(graph clustering)

  • 하나의 그래프에서 특정 성질을 만족하는 부분그래프들을 찾거나, 많은 그래프 데이터들에서 비슷한 것들을 군집으로 묶는 것
    - 밀집 군집 식별 : 커뮤니티(관심사나, 관계에 의해 만들어지는 집단)을 찾는 문제
         - 커뮤니티 소속 그래프 : 노드와 커뮤니티의 소속 관계를 확률적으로 표현하는 그래프
         - 커뮤니티 소속 그래프 모델이 주어진 그래프를 생성할 확률이 최대가 되도록 파라미터를 결정
    - 그래프 분할
         - 하나의 그래프를 몇 개의 부분 그래프로 분할하는 문제
         - 분할될 때 제거되는 링크의 수나 링크의 가중치 합이 최소가 되도록 만드는 것과 같은 요건을 만족

 

 

그래프 데이터 문제

  • 작은 문제, 간단한 문제도 규모가 커지면 곤란
    - 최단 경로 찾기, 허브 찾기, 최소 신장 트리 찾기
  • 허브 찾기, 클리크(clique, 모든 노드 쌍 사이에 링크가 존재하는 부분그래프)찾기, 최소 비용 그래프 절단(graph cut)
    - 클리크에 속하는 노드들은 서로간 링크가 존재
    - 준-클리크(quasi-clique)을 찾는 것에 더 관심 요소

 

 

군집화 상수와 구조 유사도

  • 군집화 상수 : 그래프에서 노드들이 뭉쳐있는 정도의 척도, 값이 높을수록 높은 응집도
  • 구조 유사도 : 노드 쌍에 대해서 측정하며 값이 높을수록 해당 노드들이 동일한 클리크나 커뮤니티에 속할 가능성이 높음

 

 

 

 

추천(Recommendation)

- 개인별로 맞춤형 정보를 제공하려는 기술

- 사용자에게 맞춤형 정보를 제공하여 정보 검색의 부하를 줄여주는 역할

- 등수 매기기(ranking)방법 사용

 

 

page rank 알고리즘
- 구글 CEO인 Larry Page가 스탠포드 대학 박사과정에서 개발

- 웹 페이지의 중요도를 평가하는 알고리즘

- 무작위 서퍼(random surfer)개념 사용
    - 무작위로 웹 페이지를 돌아다니는 이 서퍼가 각 페이지를 방문하는 비율만큼 중요도가 높다고 가정
    - 특정 페이지에서 다음 페이지로 갈 때, 똑같은 확률로 다른 페이지를 방문

 

 

추천 데이터

- 희소 행렬의 형태(Sparse matrix)로서 많은 원소가 비어있으며, 기존 데이터를 활용해 빈 부분을 채우는 것이 곧 추천에 해당함

 

 

내용 기반 추천
- 고객이 이전에 높게 평가했던 것과 유사한 내용을 갖는 대상을 추천
- 항목 프로필(item profile) : 추천 대상 항목에 대한 특징 기술(영화를 예시로 장르, 시대, 지역, 역사적 배경, 배우와 같은 특징 정보)
- 사용자 프로필(user profile) : 고객별로 선호 대상에 대한 정보를 기술
- 추천방법 : 사용자 프로필과 항목 프로필이 유사하면 해당 항목에 대한 사용자의 선호도가 높은것으로 추천

 

 

협력 필터링

  • 사용자간 협력 필터링
    - 추천 대상 사용자와 비슷한 평가를 한 사용자 집합을 이용
    - 추천 데이터 행렬의 열이 비슷한 것을 선택(유사도 평가는 코사인 거리 이용)
    - 빈 원소의 추천 정도는 유사 사용지 집단의 평균값, 가중평균을 사용
  • 항목간 협력 필터링
    - 항목간의 유사도를 구하여 유사 항목을 선택

 

 

Netflix 상(Netflix prize)

- Netflix : 미국의 DVD 대여와 비디오 스트리밍 서비스를 하는 회사

- 고객들의 취향을 반영하여 영화를 추천하는 시스템을 자체적으로 개발하여 활용

- 자사의 추천 시스템보다 10%이상 예측 성능이 뛰어난 시스템을 개발한 첫 번째 팀에게 백만 달러의 상금

- 2000 ~ 2005년사이 48만명의 고객에게서 1.7만여개의 영화에 대한 별점 평가를 모은 약 1억건의 데이터
- 2006.10.02에 시작하여 2009.09.21에 10.06%의 성능을 향상시킨 BellKor팀 우승

 

은닉 요소 모델(latent factor model)

  • 행렬 분해에 기반한 방법으로, Netflix상을 수상한 BellKor 팀이 사용함
    - 추천 데이터 행렬을 2개의 항렬 곱으로 표현할 수 있다고 가정
    - 추천 데이터 행렬에 주어진 값에 맞도록 분해된 행렬들의 원소를 결정
    - 분해된 행렬의 곱을 이용하여 추천 행렬의 빈 원소 결정
    - ALS 알고리즘