데이터 마이닝 - SEMMA
※ SEMMA
데이터 마이닝을 위한 SAS에서 제공하는 일련의 과정
S: Sampling
- 분석비용과 시간 절약
- 효과적인 Modeling 작업을 위해
- Data가 대량일 경우에 적합
- 언제나 필수적인것은 아님
1. Simple random sampling (단순무작위추출)
- 하드위에와 소프트웨어에 의해 관리될 수 있는 크기로 데이터의 일부를 랜덤하게 선택
2. Stratified random sampling (층화추출)
- 데이터를 특정한 범주(층)으로 나눈 후, 각 범주에서 랜덤하게 뽑음
3. Oversampling
- 관심있는 범주에서 많이 뽑음
- 타겟변수의 비율이 불균형하면 분류의 정확도에 안좋은 영향을 줌 → 너무 적은 비율의 데이터를 복원추출해서 큰 비율에 맞춰주는 것 → 정확도에 편향이 생길수도 있기 때문에 사용
■ Data Splitting
- 모형 선택과 진오차 추정이 동시에 되어야할 때, 데이터는 3가지로 분리되어야 함
- Training set
- 모수를 적합시키기 위해
- Validation set
- 모수를 부드럽게 하기 위해
- Test set
- 퍼포먼스를 평가하기 위해
절차
- 데이터를 Training, Validation, Test set으로 나눔
- architecture와 training parameter 선택
- Training set을 이용하여 모델을 train 시킴
- Validation set을 이용하여 모델을 평가함
- 다른 architecture와 training parameter를 사용하여 2~4번을 반복함
- 그 중 베스트 모델을 선택
- Test set을 이용하여 최종 모델을 평가
■ 왜 Validation Set과 Test Set을 분리시킬까?
- Validation data에서 최종모델의 오차비율추정은 편향되어 있다.(진오차비율보다 작음)
- Validation set은 최종모델 선택에 사용되므로.
- Test set으로 최종모델을 평가 후, 다시는 모델을 tune 하지 말 것
■ Overfitting
- too flexible.
- 샘플데이터에 너무 정확하게 적합되어 있어, 샘플데이터로 판단을 하면 n의 100% 정확도임. 다른 새로운 데이터를 넣으면 정확도가 급격히 감소됨
- 과거데이터는 잘 맞추나, 미래데이터는 잘 맞추지 못함
E: Explore
- 데이터 탐색
- EDA(Exploratory Data Analysis): 탐색적 데이터 분석
EDA
- 여러 통계량과 시각화를 사용하여 데이터를 탐색하고 변수 간 잠재적 관계(인사이트)를 찾아내는 프로세스
데이터셋 본연의 의미를 파악하고 문제를 구체화하는 과정
- 데이터 크기 확인
- 데이터 분포 확인
- 데이터 변동의 패턴 발견: 자료의 재표현(로그), 상호작용 효과 발견
- 이상치 발견: 이상체 지거
- 모델링 전략 수립 방향 설정: 어떤 변수로 어떤 분석을 할 것인지
- 분석결과의 발견: 분석 결과에 대한 설명 근거
EDA 방법
- 히스토그램 (Hisogram)
- 연속형 변수 분포 파악
- 대칭 - 대칭, 단봉, 쌍봉
- 쏠림 - 좌로 쏠림, 우로 쏠림
- 연속형 변수 분포 파악
- 상자그림 (Boxplot)
- 연속형 자료의 기술통계량을 갖고 만듦
- 산점도 (Scatter plot)
- 두 연속형 변수간의 관계를 파악
→ 3개 이상: 행렬산점도 (Matrix plot 이용)
- 두 연속형 변수간의 관계를 파악
- Parallel plot
- 다차원 자료에서 변수에 따른 개체들의 변화를 파악
→ cluster, outlier 확인 가능
- 다차원 자료에서 변수에 따른 개체들의 변화를 파악
- Boxplot 나열
- 범주형 변수와 연속형 변수간의 관계를 파악
→ 범주에 따른 연속형 변수의 분포의 변화를 파악
- 범주형 변수와 연속형 변수간의 관계를 파악
- Smoothing spline plot
- Scatter plot에 곡선을 추가
→ 변수간의 경향 파악
- Scatter plot에 곡선을 추가
- Bar chart
- 범주 도수 비교
- Pie chart
- 범주가 차지하는 비율 파악
- Mosaic plot
- 두 범주형 변수 간의 관계 파악
→ 한 범주가 다른 범주에 어떤 영향을 주는지
- 두 범주형 변수 간의 관계 파악
- Bining continuous variables
- Correlation Matrix
■ Outlier
- 탐지
- histogram, scatter plot, boxplot 등
- 고차원에서는 principal component, clustering을 통해
- 모형적합 후, 잔차그림을 통해
- 해결
- 수정: 입력 시, 체계적인 오류일 경우 수정
- 변수변환
- 그냥 놔두기: 변수변환으로도 해결이 안될경우
- 제거
- 합치기: 범주형일 때, 패턴이 비슷한 범주로 합침
M: Modify
연속형 변수
- 표준화
- 변동(variation)에 따른 변수의 영향력을 줄이기 위해
- transformation for standardization
- Min-Max normalization
\(Z = \cfrac{x-\min}{\max-\min}, \quad (0<Z<1)\) - Normalization
\(Z = \cfrac{x-\mu}{\sigma}, \quad \mathtt{\sim}N(0,~1)\) - ranking ~Uniform
\(Z = \cfrac{i}{n} \quad \text{($x$가 $i$번째로 작은 값일 때)}\)
- Min-Max normalization
- transformation for symmetry
- Box-Cox transformation
\(Z = \begin{cases} \cfrac{(x+c)^\lambda}{\lambda} \quad \text {, if $\lambda$ $\ne$ 0} \\ log(x+c) \quad \text {, if $\lambda$ = 0} \end{cases}\)
- Box-Cox transformation
- Smoothing
- remove noise
- remove noise
- aggregation
- summarization
- data cube construction
- 왜도 수정
- transformation for standardization
- 변동(variation)에 따른 변수의 영향력을 줄이기 위해
범주형 변수
- 차원 줄이기
- 쉽게 해석하기
- 범주의 통합
- 빈도가 낮은건 통합
- 패턴이 비슷하면 통합
- 모형은 간단해지지만 underfitting의 가능성 있음
- 범주의 생성
- 범주형 변수간 교호작용이 있는 경우 새로운 범주를 생성
연속형 변수를 범주화 하기
- 연속형 변수를 구간으로 나눔
→ 각 구간에 범주를 할당
→ 설명이 쉬워짐
but, 차원이 증가함, 구간 안의 특징이 사라짐, decision tree를 사용해서 범주를 찾을 수 있음
M: Modeling
모델링 기법
- 전통적인 통계 기법
- 선형회귀
- 로지스틱회귀
- discriminant analysis
- GLM
- factor analysis
- Data Mining
- Classification
- decision tree
- neural nets
- 더 복잡한 곳에서 사용 가능
- 더 정확함
→ 데이터 overfit 가능성, random noise에서 패턴 발견 가능
- linear regression
- Nearest neighbor
- Clustering
- Rule induction
- Classification
A: Assess
- 분류정확도, 오분류확률 분석
- 만들어진 Model들 중 어느것이 가장 좋은지 비교, 분석하는 과정
- 정확도, 향상도 등
댓글남기기