1. 데이터 전처리를 하는 이유는?
1) 불완전(incomplete) : 데이터가 비어 있는 경우가 있을 수 있다. 속성에 값이 Null 인 경우
2) 잡음(Noisy) : 에러 또는 잡음이 포함된 경우 예) 나이 : -10
3) 모순된(Inconsistent) : 생년월일과 나이가 맞지 않는 경우, 복사된 레코드의 불일치
2. 데이터 전처리가 중요한 이유는?
- 질 좋지 않는 데이터는 질 좋지 않은 마이닝 결과를 낸다.
- 결과는 데이터에 의존적이기 때문이며, 데이터 웨어하우스는 질 좋은 데이터의 완전한 통합이 필요하다
3. 전처리의 주요 작업
1) Data Cleaning : 없는 데이터는 채우고, 잡음은 제거하며, 모순된 데이터를 해결
2) Data Integration : 여러개의 데이터베이스를 통합함
3) Data Transformation : 정규화(Normalization) 과 집합화?(Aggregation)
4) Data Reduction :
5) Data Discretization :
- 데이터 요약(descriptive data summarization)
동기 : 데이터를 좀 더 쉽게 이해하기 위해서
Mean : 평균 구하기
가중치를 사용하여 평균을 구하는 방법도 잇음( Trimmed mean -> 이렇게 표현하는것 같음)
Median : 중값값을 구하는 것으로 만약 홀수라면 정렬한 뒤 가운데 있는 값을 추출하고 짝수라면 중간의 두개의 평균을 Median 값으로 함
Mode : 가장 발생 빈도가 높은 수를 추출
mean-mode= 3*(mean-median) -> 경험적인 수식이라는데, 이 의미는 좀 더 생각할 필요가 잇음
참고 : 가우시안 분포 함수에서 평균- 3시그마 ~ 평균+3시그마 -> 전체의 99.7%를 포함한다.( 통계학)
- 데이터 클리닝
중요성 : 데이터 클리닝은 데이터웨어하우스에서 가장 큰 3개의 문제중 하나이다(by Ralph Kimball)
해야할 작업
- missing value 채우기
- outliers 를 확인하고, 잡음 데이터는 스무딩 처리
- 불완전한, 일관성이 없는 데이터는 수정
- 데이터 통합으로 인한 과잉, 쓸데없는 반복 데이터를 해결
missing data 처리 방법
- 무시
- 수동으로 채우기
- 자동으로 채우기
- 전역 상수로 정의 , 예) "unknown"으로 새로운 클래스 할당
- 속성의 평균값으로 채우기
- decision-tree 또는 Bayesian fomula를 이용하여 채우기
Noisy Data 처리방법
- Binning
- 먼저 정렬하고, 같은 범위로 빈을 분할( numeric 데이터의 경우를 얘기하는 것 같음)
- 각 빈 안에 속한 데이터는 평균, 중간값, 경계값으로 스무딩 할 수 있음
예제) 4, 8, 9, 15, 21, 21, 24, 25, 26, 28, 29, 34
Partition into equal-frequency (equi-depth) bins:
- Bin 1: 4, 8, 9, 15
- Bin 2: 21, 21, 24, 25
- Bin 3: 26, 28, 29, 34
* Smoothing by bin means:
- Bin 1: 9, 9, 9, 9
- Bin 2: 23, 23, 23, 23
- Bin 3: 29, 29, 29, 29
* Smoothing by bin boundaries:
- Bin 1: 4, 4, 4, 15
- Bin 2: 21, 21, 25, 25
- Bin 3: 26, 26, 26, 34
-> 그럼 중간값은 어떻게 할까? 아마도 Mean 방법과 동일하게 빈에서 중간값을 찾아서 빈에 속한 모든 데이터를 중간값으로 교체 하는 것 같다.
- 빈을 나누는 방법
- 같은 범위가 되도록 나누는 방법 ( W = (manX - minX)/N -> N개의 빈으로 나눌때 범위는 W임)
- N개의 단계로 나누고, 각 빈에는 같은 수의 샘플이 포함되도록 나누는 방법
- 회귀(Regression)
- outlier를 검출 할 수 있음.
ㅇ 데이터 통합
- 같의 의미를 갖는 속성 데이터의 표현법이 다른 경우 하나의 규칙으로 저장
ㅇ 데이터 통합 시 중복 제어
- 객체 또는 속성은 다른 데이터베이스 안에서 다른 이름을 갖을 수 있다.
- 어떤 속성은 다른 속성으로부터 유도된 속성 값 일 수 있다.
- > 예) 판매 수량 * 판매 가격 = 매출( 이 "매출" 속성은 유도된 것이지 않을까?)
-> 이 중복이라는 의미를 레코드로 생각했었는데, 읽어보니 각 속성을 의미하는 것 같음.
데이터의 필요없이 중복된 속성을 찾는 방법은 Correlation analysis
장점 : 안정적인 데이터 통합은 불필요한 중복과 데이터의 불일치를 줄이거나 피하며, 마이닝 속도와 질을 향상 시킨다.
Correlation Analysis ( Numerical Data)
n : 데이터 레코드 쌍의 수
R_ab가 0보다 크면 A와 B는 양의 상관관계를 갖으며, 크면 클 수록 강하다
반대로 0이면 독립이며, 0보다 작으면 음의 상관관계를 갖는다
ㅇ 데이터 변환
- 정규화 : 이건 다 아는 거잖아요 그냥 패스
- Z-Score
즉 일반적인 정규화가 0~ 1 사이로 만든다면, 이 방법은 평균을 기준으로 -1~1 사이로 대부분 나올 듯? 약간은 넘겟지.
- Normalization by decimal scaling
여기서 v의 범위 중에서 가장 큰 값의 10진수 값? 을 j로 놓고 하면 될듯
예를 들어 987, 90, 10, 29, 300 데이터가 있다면 j를 3으로 두면 0.987, 0.01, 0.029, 0.3으로 변환
ㅇ Data Reduction
- 일반적으로 마이닝에서 사용하는 데이터베이스는 엄청 크다. 따라서 복잡한 분석 및 데이터 마이닝을 완벽한 데이터 셋에서 분석을 수행하면 많은 시간이 걸리기 때문에 이 작업이 필요하다.
- 단, 데이터를 줄여 재표현하여 생성한 데이터 셋에서 마이닝 분석을 해도 이전 결과와 유사한, 거의 비슷한 결과가 나와야 한다.
ㅇ 데이터 압축
- 웨이블릿 변환
- PCA
ㅇ 데이터 샘플링
- 이것은 속성값을 줄이는게 아니라 수 많은 데이터에서 통계학적으로 몇개의 데이터만을 뽑아서 분석함으로써 속도를 높이기 위한 방법
샘플 추출 방법
1. SRSWOR( simple random sample without replacement )
- 데이터 셋에서 한번 뽑앗으면 그 뽑은 데이터는 다시 뽑지 못한다.
2. SRSWR ( simple random sample with replacement )
- 데이터 셋에서 한번 랜덤으로 뽑고 다시 그것을 뽑을 수 있도록 완전 제거하지는 않음
속성의 3가지 형태
ㅇ Nominal - 정렬되지 않는 값 ( 예, 색상, 직업)
ㅇ Ordinal - 정렬되는 값, 군인의 계급, 학벌(초 중 고, 전문대, 대학교, 대학원)
ㅇ Continuous - 실제 숫자 (integer, real numbers)
본 게시물이 도움이 되었다면, 꾸~욱~ 눌러주세요.
포스팅 하는데 많은 힘이 됩니다~~~
'Study > 데이터 마이닝' 카테고리의 다른 글
[데이터 마이닝5] Cluster Analysis #2 (1) | 2012.06.15 |
---|---|
[데이터 마이닝5] Cluster Analysis #1 (0) | 2012.06.15 |
[데이터 마이닝 4] Classification And Prediction (0) | 2012.06.13 |
[데이터 마이닝 3] 마이닝 관련 알고리즘 (1) | 2012.04.23 |
[데이터 마이닝 2] 데이터 웨어 하우스 & OLAP (data warehouse & Online Analytical Processing) (0) | 2012.04.22 |