반응형
#데이터마이닝 : https://msdn.microsoft.com/ko-kr/library/ms174949.aspx
개요
데이터 마이닝이란 큰 데이터 집합에서 의미있는 정보를 찾는 것이며 이러한 정보를 찾는데에는 수학적 분석을 이용하여 데이터에 있는 패턴과 추세를 읽는 것이다. 일반적으로 관계가 너무 복잡하거나, 데이터가 너무 많은 경우, 전통적인 데이터 탐색패턴으로는 이러한 패턴을 찾을 수가 없기 때문에 데이터 마이닝이라는 개념이 나오게 됐다.
데이터 마이닝이 적용가능한 사례
- 예측 (Frecasting) : 서버 부하 또는 서버 가동 중지 시간을 예측하기
- 군집화(Clustering) : 구체적인 특성을 공유하는 군집을 찾는다. 군집화는 미리 정의된 특성에 대한 정보를 가지지 않는다는 점에서 분류와 다르다 (예 : 유사 행동 집단의 구분)
- 분류(classification) : 집단 또는 범주형 변수로 반응을 한다. 안한다. 혹은 안전이다. 위험이다. 등 값을 예측하여 분류하는 기법
- 연관성(Association) : 동시에 발생한 사건간의 관계를 정의한다. (예: 장바구니안의 동시에 들어 가는 상품들의 관계 규명)
- 연속성(Sequencing) : 특정 기간에 걸쳐 발생하는 관계를 규명한다. 기간의 특성을 제외하면 연관성 분석과 유사하다 (예: 슈퍼마켓과 금융상품 사용에 대한 반복 방문)
- 예측(Forecasting) : 대용량 데이터집합내의 패턴을 기반으로 미래를 예측한다 (예: 수요예측, 위험 및 확률 예측)
데이터 마이닝의 기본 프로세스
- 문제 정의
- 데이터 준비
- 데이터 탐색
- 모델 작성
- 모델 탐색 및 유효성 검사
- 모델 배포 및 업데이트
1단계. 문제 정의
- 찾으려는 것은 무엇인지, 찾을 관계의 유형은 무엇인지
- 해결할 문제가 비즈니스의 정책 또는 프로세스를 반영하는지
- 데이터 마이닝 모델을 사용하여 예측을 할 것인지, 아니면 패턴만 찾을 것인지
- 예측할 결과 또는 특성은 무엇인지
- 어떤 종류의 데이터를 가지고 있으며, 각 열에는 어떠한 정보의 종류가 들어가 있는지,
테이블이 여러개인 경우 해당 테이블들과의 관계는 어떻게 구성되어있고
데이터를 사용가능한 데이터로 만들기 위해서 해야할 정리, 집계가 필요한지 - 데이터가 어떻게 쌓인 것인지, 주기적인 데이터들인지 아니면 비즈니스 로직을 모두 담고 있는지
이러한 질문들을 통해서 데이터 가용성 및 사용 가능한 데이터에 대한 요구 사항을 조사해야 한다.
데이터가 사용자의 요구사항에 부합하지 않는다면 프로젝트를 다시 구성해야 한다. Ex) KPI같은 목표를 설정한다면 더 좋다.
2단계. 데이터 준비
데이터가 회사의 여러부서에 흩어져 서로 다른 형식으로 저장되기도 하고 항목이 잘못되었거나 누락되는 등의 데이터 불일치가 있을 수 있다. 데이터 정리는 단지 잘못된 데이터를 제거하거나 누락된 값을 보정하는 것만아니라 데이터의 숨겨진 상관 관계를 찾아내고 가장 정확한 데이터 원본을 식별하고 분석에 사용할 가장 적절한 열을 확인하는 것이다. 즉, 불완전한 데이터와 잘못된 데이터 등은 결과에 예상치 않은 영향을 줄 수가 있다.
따라서, 마이닝 모델을 실행하기 전에는 이러한 문제를 파악하고 수정 방법을 확인해야 한다. 데이터 마이닝의 경우 일반적으로 매우 큰 데이터 집합으로 작업하므로 모든 트랜잭션의 데이터 품질을 검사할 수 없다. 그러므로 데이터를 탐색하고 불일치하는 사항을 찾아내기 위해서 특정한 데이터 형태의 데이터 프로파일링 도구와 자동 데이터 정리 및 필터링 도구를 사용하여 정리한다.
3단계. 데이터 탐색
마이닝 모델을 만들 때 적절한 결정을 내리기 위해서는 데이터를 이해해야 한다. 탐색기술에는 최소값 및 최대값 계산, 평균 및 표준 편차, 데이터 배포 검토 등이 포함된다. 예를 들어 최대값, 최소값 및 평균 값을 검토하여 데이터가 고객 또는 비즈니스 프로세스를 대표하지 않는지 확인하고, 그러한 경우 보다 균형있는 데이터를 가져오거나 예상의 기초가 된 가정을 검토해야 하는지 확인할 수 있다. 표준 편차가 크면 다른 데이터를 추가하여 모델을 개선할 수도 있다. 표준 분포에서 지나치게 벗어나는 데이터는 왜곡된 것일 수도 있고, 실제 문제를 정확히 나타낸 것일 수도 있지만 이러한 데이터가 있으면 데이터에 맞는 모델을 만들기가 어려워진다. 비즈니스 문제를 정확히 이해하고 데이터를 탐색하면 데이터 집합에 결함이 있는 데이터가 있는지 확인한 다음 문제를 해결할 수 있는 전략을 고안하거나 비즈니스의 일반적인 동작을 보다 깊이 있게 이해할 수 있다.
4단계. 모델 작성
마이닝 구조를 만들어 사용할 데이터 열을 정의한다. 마이닝 구조는 데이터 원본에 링크되지만 처리되기 전까지는 실제로 데이터가 포함되지 않는다. 마이닝 구조를 처리하면 Analysis Services 에서는 분석에 사용할 수 있는 집계 및 기타 통계 정보를 생성한다. 이 정보는 해당 구조를 기반으로 하는 마이닝 모델에서 사용할 수 있다. (마이닝 구조와 마이닝 모델의 관계에 대한 내용은 이곳을 참고하기)
구조 및 모델이 처리되기 전에는 데이터 마이닝 모델 역시 단지 입력에 사용되는 열, 예측할 특성 및 알고리즘에 데이터 처리 방식을 알려주는 매개 변수를 지정하는 컨테이너이다. 모델을 처리하는 작업을 학습이라고도 하는데 학습은 패턴을 추출하기 위해 구조의 데이터에 특정 수학적 알고리즘을 적용하는 프로세스다. 학습 프로세스에서 찾은 패턴은 선택한 학습 데이터, 선택한 알고리즘 및 알고리즘 구성 방식에 따라 달라진다. (sql server 2016에서 제공되는 알고리즘 목록은 이곳을 참고하기)
매개 변수를 사용하여 각 알고리즘을 조정하고 일부 데이터만 사용하도록 학습 데이터에 필터를 적용하여 다른 결과를 만들 수도 있다. 데이터가 변경될 때 마다 마이닝 구조와 마이닝 모델을 모두 업데이트해야하며 마이닝 구조를 다시 처리하여 업데이트하면 Analysis Services에서는 원본 데이터를 검색하고 마이닝 구조를 다시 채운다.
원본이 동적으로 업데이트된 경우에는 검색 시 새 데이터도 포함된다. 해당 구조를 기반으로 하는 모델이 있는 경우 모델을 업데이트하여 새 데이터에 대해 다시 학습되도록 할 수 있고 모델을 그대로 둘 수 도 있다.
5단계. 모델 탐색 및 유효성 검사
모델을 프로덕션 환경에 배포하기 전에 모델의 효율성을 테스트 해야 한다. 또한 모델을 작성할 때는 일반적으로 각기 다른 구성으로 여러 모델을 만들고 모든 모델을 테스트하여 어떤 모델에서 문제 및 데이터에 대한 최상의 결과가 얻어지는지 확인해야 한다. 모델 작성 단계에서 만든 모델의 효율성이 모두 떨어지는 경우 프로세스의 이전 단계로 돌아가서 다시 문제를 정의하거나 원래 데이터 집합의 데이터를 다시 조시 해야 할 수 도 있다.
모델을 사용하여 예측하여 비즈니스 의사결정이 가능할 수 있다.
데이터 마이닝의 과정
- 문제 정의 > 데이터 준비 > 데이터 탐색 > 데이터 정제 > 데이터 모델 (알고리즘 등 분석 방법 & 데이터 분할) > 데이터 유효성 검사 > 데이터 추출 > 데이터 시각화 > 데이터 분할 > 결과 도출 > 예측 > 새로운 데이터(변수) 추가 & 업데이트 > 반복
참고 링크
- [위키-데이터마이닝] https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EB%A7%88%EC%9D%B4%EB%8B%9D
'◼︎ 개발 > 머신러닝 관련 문서' 카테고리의 다른 글
초평면과 퍼셉트론 이론 (0) | 2017.04.14 |
---|---|
파이썬(Python)에서 hdf5 파일 형식으로 데이터 읽고 쓰기 (0) | 2017.04.14 |
hdf5 파일 형식이란? (0) | 2017.04.14 |
데이터마이닝 분석 방법 및 알고리즘 (0) | 2017.02.06 |