빅데이터분석 필기[2과목]빅데이터 탐색 1.데이터전처리
1. 데이터 전처리
* 데이터 전처리
- 데이터 전처리에는 데이터를 정제하는 과정과 분석 변수를 처리하는 과정, 반드시 거쳐야하는과정이고 반복적인 전처리 수행이 필요, 데이터 분석단계중 가장많은 시간이 소요됨
* 데이터 전처리 순서
데이터 정제 -> 결측값 처리 -> 이상값 처리 -> 분석 변수 처리
* 데이터 정제
- 분석전단계에 수행하며 결측값, 잡음 , 이상값 등을 제거하는 것을 말함
- 결측값(Missing Value): 누락된 값(입력 X, NA, NaN, NULL, inf, 999999)
- 처리 방법: 평균값, 중앙값, 최빈값 등의 중심 경향값 넣기, 분포 기반 처리
- 노이즈(Noise): 잘못 판단된 값(입력되지 않았는데, 입력되었다고 판단됨)
- 처리 방법: 일정 간격으로 이동하면서 평균값 대체, 일정 범위 중간값 대체
- 이상값(Outlier): 범위에서 많이 벗어난 값(지나치게 작은 값 or 큰값 )
- 처리 방법: 하한보다 낮으면 하한값, 상한보다 높으면 상한값 대체
* 데이터 일관성 유지를 위한 정제
- 다른 시스템에서 들어온 데이터에 일관성 부여
* 변환(Transform): 다양한 형태로 표현된값을 일관된 형태로 변환 ex) YYYYMMDD → YY/MM/DD
* 파싱(Parsing): 유의미한 최소 단위로 분할(정제 규칙을 적용하기 위함) ex) 주민등록번호 → 생년월일, 성별
* 보강(Enhancement): 변환, 파싱, 수정, 표준화 등을 통한 추가 정보를 반영 ex) 주민등록번호 → 성별 추출 후 반영
데이터 정제 기술
* 분산 처리 시스템을 기반으로 정제
- 성능 보장을 위해 인메모리 기반 기술을 사용하기도 함, 정제된 후, 데이터 변경(분석)에 활용됨
- ETL: 데이터를 추출 → 가공 → 데이터 웨어하우스, 데이터 마트에 저장
- 맵리듀스: 대용량 데이터셋을 분산, 병렬 컴퓨팅 처리 , 모든 데이터를 키-값 쌍으로 구성, (맵: 데이터 추출) + (리듀스: 중복 없게 처리), 배치 형태 같은 많은 데이터 처리 시 성능 느림
- 스파크/스톰: 인메모리 기반 데이터 처리 방식
- 스파크: 맵리듀스 기반으로 성능 개선, 실시간, 배치 처리 둘다 가능
- CEP(Complex Event Processing): 실시간 이벤트 처리에 대한 결괏값 수집, 처리 , 실시간 데이터(IoT 센싱 데이터, 로그, 음성 데이터 등)
- 피그(Pig): 대용량 데이터 집합을 분석하기 위한 플랫폼, 피그 라틴이라는 자체 언어 제공
- 플럼(Flume): 로그 데이터를 수집, 처리하는 기법, 실시간에 근접하게 처리함
* 데이터 세분화(Data Segmentation):
- 데이터를 기준에 따라 나누고, 선택한 매개변수를 기반으로 유사한 데이터를 그룹화
- 군집화 - 이질적인 집단을 몇개의 동질적인 소집단으로 세분화 (계층적방법, 비계층적방법)
계층적 방법: 군집 개수 정하지 않는다 | 비 계층적 방법: 군집 개수 를 사전에 정한다 | ||
응집분석법 | 분할분석법 | 인공신경망 모델 | K-평균 군집화 |
각 객체를 하나의 소집단으로 간주→유사한소집단합침 | 전체 집단→유사성이 떨어지는 객체를 분리 | 생물학적 신경망으로 부터 영감을 받은 통계학적 학습모델 | K개 군집의걱 각 객체간 거리를 계산해서 중심좌표 업데이트 |
* 데이터 결측값 종류
1.완전무작위 결측 (MCAR) - 다른변수와 무관하게 발생한결측, 설문조사에서 특정항목에 대답을하지않음
2.무작위결측(MAR) - 다른변수와 연관 있지만 , 결과에 영향을 미치지 않는 경우 , 성별에 따라 응답확률이 달라서 생기는 결측
3.비무작위결측(MNAR) - 다른변수와 연관있고, 결과에 영향을 미치는 결측값 , 임금을 조사할때 임금이 낮은 사람이 임금에대해 응답할 확률이 낮아서 생기는 결측.
* 데이터 결측값 처리 절차
식별 - 컴퓨터가 처리 가능한 형태로 부호화 - 알고리즘을 통해 결측값 처리(대체 )
* 부호화
- NA(Not Available) - 기록되지않은값
- NAN(Not a Number) - 수학적으로 정의도지않은값
- inf (infinite)- 무한대
- NULL 값이 없음
* 데이터 결측값 처리방법
- 단순대치법 : 결측값을 그럴듯한 값으로 대체하는 통계적 기법(완전분석법, 평균대치법, 단순확률대치법)
- 다중대치법 : 단순대치법을 1번이상, N 번대치 하여 완전한 자료로 생성(대치 - 분석 - 결합 )
* 단순 대치법 종류
- 완전 분석법: 불완전 자료는 완전 무시, 완전하게 관측된 자료만 사용 → 효율성 상실, 통계적 추론의 타당성 문제 발생
- 평균 대치법: 얻어진 자료의 평균값으로 결측값을 대치
- 비 조건부 평균 대치법: 평균값으로 대치
- 조건부 평규 대치법: 회귀분석을 활용하여 결측값 대치
- 단순 활률 대치법: 확률값을 부여한 후 대치
- 핫덱 대체(Hot-Deck): 현재 진행 중인 연구에서 비슷한 성향을 가진 응답자의 자료로 무응답을 대체, 표본조사에 흔히 사용
- 골드덱 대체(Cold-Deck): 외부 출처, 이전의 비슷한 연구에서 가져온 자료로 대체
- 혼합 방법: 몇 가지 다른 방법을 혼합, 회기 대체를 이용해서 예측값을 얻고, 핫덱방법을 잉용해서 잔차를 얻어 두값을 더하는 경우
* 이상값의 원인 : 표본 추출 오류 , 고의적인 이상값, 데이터 입력오류, 실험오류, 측정오류,자연오류등
* 이상값 검출 방법
1. 통계기법
- ESD(Extreme Studentized Deviation): 평균에서 3표준편차 떨어진 값은 이상값 ⇒ μ - 3σ < data < μ + 3σ
- 기하평균 활용: 기하평균에서 2.5표준편차 떨어진 값은 이상값 ⇒ 기하평균 - 2.5σ < data < 기하평균 + 2.5σ
- 사분위 수 활용:제 1사분위, 제 3사분위 를 기준으로 사분위간 범위의 1.5배이상 떨어진 값을 이상값으로 판단 Q₁ - 1.5(Q₃ - Q₁) < data < Q₃ + 1.5(Q₃ - Q₁)
- 표준화 점수(Z-score) 활용: 정규분포를 따르는 관측치들이 평균에서 얼마나 떨어져 있는지 나타내어 이상값 검출
- 딕슨의 Q 검정: 오름차순 정렬 → 범위에 대한 관측치 간의 차이의 비율을 활용(데이터 30개 미만인 경우 적절함)
- 그럽스 T-검정: 정규분포를 만족하는 단변량 자료에서 이상값 검정
- 카이제곱 검정: 정규분포를 만족하나, 자료 수가 적은 경우
2. 개별 데이터 관찰 -전체 데이터 추이 특이사항, 무작위 추출
3. 시각화 -확률밀도 함수 , 히스토그램 ,시계열차트
* 사분위수
* 4등분하는 위치의 수
* 전체 데이터를 순위별로 4등분하는 위치의 수 3개 Q1, Q2, Q3 가 있다
* 제1 사분위수 (Q1) - 누적 백분율이 25%에 해당하는 값
* 제2 사분위수 (Q2) - 누적 백분율이 50 %에 해당하는 값 , 중위수 (Median) 과 같음
* 제3 사분위수 (Q3) - 누적 백분율이 75% 에 해당하는값
4. 데이터 군집/분류를 이용한 데이터 이상값 검출
- K - 평균 군집 (K-Means)
* 주어진 데이터를 K개의 클러스터 로 묶는 알고리즘
* 각 클러스터와 거리 차이의 분산을 최소화 하는 방식
* 머신러닝 기법을 이용한 데이터 군집화 시키는 기법 등을 활용하여 이상값 검출
- LOF(Local Outlier Factor)
* 관측지 주변의 밀도와 근접한 관측지 주변의 밀도의 상대적 비교를 통해 이상값 탐색
* LOF 값이 클수록 이상값 정도가 크다
- iForest(Isolation Forest)
* 관측지 사이의 거리 또는 밀도에 의존하지 않고 데이터 마이닝 기법인 의사결정 나무를 이용하여 이상값 탐지하는 방법
* 의사결정 나무 기법으로 분류 모형을 생성하여 모든 관측치를 고립 시켜 나가면서 분할 횟수로 이상값 탐색
* 의사결정 나무 기법
- 데이터들이 가진속성들로 부터 분할 기준속성을 판별하고, 분할 기준속성에따라 트리형태로 분류
- 의사결정 나무 기법 에서는 적은 횟수로 잎(leaf)노드에 도달하는 관측지 일수록 이상값일 가능성이 크다
5. 마할라 노비스 기법
* 데이터 분포 고려한 거리 측도
* 관측지가 평균으로 부터 벗어난 정도를 측정
* 모든 편수간 선형관계 만족 & 각 변수들이 정규 분포를 따르는 경우에 적용 할수 있음
* 이상값 처리 방법
방법 | 삭제 : 절단/ 조정 | 대체법 : 상/하한값 | 변환 : 자연로그 | 박스플롯 해석 : 수염 | 분류하여 처리 |
특징 | - 추정치의 분산이 작아짐 - 양극단 값을 절단 - 기하평균 이용 - 절단보다 극단값 조정활용해야 데이터 손실율이 줄어듬 |
- 하한값보다 작으면 하한값 대체 - 상한값보다 크면 상한값 대체 |
- 자연로그를 취해 데이터값 감소 -> 실제값을 변형 - 오른쪽 꼬리 긴 분포는 평균중심 대칭형태로변환 |
-수염(Whiskers) 밖 이상값으로 판단 -수염:사분위수 = Q3 - Q1의 1.5배 내에있는 가장멀리떨어진 데이터까지 이어진 선 |
-이상값이 많은 경우 - 서로 다른 그룹으로 묶고 그룹별 통계모형을 생성해서 결과 결합 |
* 변수
- 변수(Feature): 데이터 모델에서 예측에 사용되는 입력변수
- RDBMS에서 속성/열 = 머신러닝에서 변수
- 변수 유형: 알려진 값 & 예측값
알려진 값: 변수, 속성, 예측변수, 차원, 관측치, 독립변수( 종속변수에 영향 주는 변수 (의도적으로 변화시킴))
예측 값: 라벨, 클래스, 목푯값, 반응, 종속변수(독립변수로부터 영향 받는 변수 (연구대상))
* 변수속성
- 명목형: 이름만 의미 부여, 크가와 순서는 상관 없음, 명사형
- 순서형: 순서에 의미 부여 가능
- 이산형: 하나하나 셀 수 있음
- 연속형: 구간 안의 모든 값을 가질 수 있음
* 변수 간 관계
- 독립변수, 종속변수 둘 다 연속형, 범주형 자료로 분석 가능
- 연속형 자료에서 원인은 공변량(Covariate)
- 범주형 자료에서 원인은 요인(Factor) 이라고 부름
* 변수 선택 (Feature Selection)
- 종속변수와 가장 관련성 높은 독립변수만 선정하는 방법
* 변수 선택 특징
- 해석하기 쉽도록 모델 단순화
- 훈련 시간 축소
- 차원의 저주 방지(차원이 증가할수록, 필요한 샘플 데이터가 기하급수적으로 증가하는 현상)
- 과적합 줄이고 일반화
- 모델 정확도, 성능 향상 기대
* 변수 선택 방식 분류
- 비지도 방식: 분류를 참고하지 않고 변수들만으로 선택 수행
- 지도 방식: 분류를 참고하여 변수 선택
방법 | < 필터 기법 (Filter Method)> 통계적 특성으로부터 변수 선택 |
< 래퍼 기법 (Wrapper Method) > 변수의 일부만으로 모델링 반복 |
< 임베디드 기법 (Embedded Method)> 모델 자체에 변수 선택 포함 |
|||
특징 | -통계적측정방법으로 변수들의 상관관계를 알아냄 -계산속도가 빠름 - 래퍼 기버 사용전에 전처리에 사용 |
-예측정확도 성능이 가장좋은 하위집합을 선택 -그리디 알고리즘 - 하위집합을 반복선택 -일반적으로 필터 기법보다 예측정확도 높음 -시간오래걸리고 과적합 위험있음 - 전진선택법 - 빈모델 -> 변수하나씩 추가 (모델을 가장많이 향상시키는 변수) - 후진제거법 - 풀모델 -> 변수 하나씩 제거 (모델에 가장적은 영향을 주는 변수 - 단계적방법 - 아무것도 적합하지않은 모형에서 변수를 하니씩 적합하면서 그전단계에서 적합된 변수들의 유의미성을 다시 한번더 검증하는 방법 |
모델 정확도에 기여하는 변수 학습 더적은 계수를 가지는 회귀식을 찾는 방향으로 제어 |
|||
종류 |
정보 소득 | 가장 높은 속성선택 | RFE | SVM사용-재귀적제거 | 라쏘 LASSO | 가중치절댓값합 최소화 L1 (L1-norm) |
카이제곱 검정 (Chi-Square Test) |
관찰-기대빈도비교차이가 유의한가 검정 | SFS | 그리디알고리즘- 빈모델에 하나씩 추가 | 릿지 Lidge | 가중치제곱합 최소화 L2(L2-norm) | |
피셔 스코어 (Fisher Score) |
최대 가능성방정식을 풀기위한 뉴턴의 방법 | 유전 알고리즘 | 전역 최적화기법 | 엘라스틱넷 | 가중치 절댓값 합과 제곱합을 동시에 제약 라쏘-릿지 선형결합 |
|
상관 계수 (Correlation Coefficient) |
두변수간 상관관계정도를 나타내기 위한 계수 | 단변량 선택 | 각 속성 개별검사- 변수와 반응변수간 관계 강도 결정 | SelectFromModel | 의사결정나무 기반으로 변수 선택 | |
mRMR | 중복성 최소화 |
* 노드(Node) - 컴퓨터 과학에 쓰이는 기초적인 단위이며,대형 네트워크에선 장치나 데이터 지점(포인트)를 의미한다.
예를 들면 개인용 컴퓨터, 휴대전화, 프린터, 서버 같은 장치들을 말함
* Norm - 벡터의 크기(길이)를 측정하는 방법
L1-norm - 벡터 p, q 각 원소간 차이의 절댓값의 합
L2-norm - 유클리디안 거리(직선 거리)
* 차원축소(Dimensionality Reduction)
- 분석대상인 여러 변수의 정보를 최대한 유지하면서 변수 개수를 최대한 줄이는 탐색적 분석기법
- 특성변수(설명변수)만 사용함 → 비지도 학습 머신러닝 기법
* 차원축소 특징
- 축약된 변수세트: 원래 전체 변수들의 정보를 최대한 유지해야함
- 결합변수: 변수간 내재된 특성, 관계를 분석 → 선형/비선형 결합변수 → 결합변수만으로 전체변수 설명 가능하도록
- 차원축소의 목적: 다른 분석 전 단계, 분석 후 개선, 효과적인 시각화 등
- 장점: 고차원보다 저차원으로 학습하면 머신러닝 알고리즘이 더 잘 작동함, 가시적인 시각화 쉬움
- 차원축소 방법 :변수 선택과 변수 추출로 나눈다.
- 차원축소 기법 주요 활용분야
- 탐색적 데이터 분석
- 주요 특정(변수)을 추출하여 타 분석기법의 설명변수로 활용
- 텍스트에서 주제, 개념 추출
- 비정형 데이터(이미지, 사운드 등)에서 특징 패턴 추출
- 상품 추천시스템 알고리즘 구현 및 개선
- 다차원 공간 정보를 저차원으로 시각화
- 공통 요인을 추출하여 잠재된 데이터 규칙 발견
주성분분석 (PCA) Principal Component Analysis |
특이값분해 (SVD) Singular Value Decomposition |
요인분석 Factor Analysis |
독립성분분석(ICA) Independent Component Analysis |
다차원척도법(MDS) Multi-Dimensional Scaling |
변수들의 공분산행렬 이나 상관행렬 이용 정방행렬(N*N)만사용 (행개수 = 열개수) |
차원 행렬데이터에서특이값 추출 (MxN 행렬) |
잠재적인 변수가 존재한다고 가정함 |
다변량 신호를 독립적 하부성분 분리 |
개체들 간의 유사성/비유사성 측정 |
선형연관성 없는 저차원공간으로 축소 변환 (서로 직교하도록) |
데이터셋을 효과적으로 축약 행렬분해 |
잠재요인을 도출하여 데이터안의 구조해석 |
독립성분의 분포는 비정규 분포를 따름 |
점으로 표현하여 집단화를 시각화 (저차원으로 사상) |
* 파생변수 (Derived Variable)
기존 변수에 특정 조건/함수 등을 사용하여 새롭게 재정의한 변수
* 파생변수 생성방법 - 복제는 하지않는다
단위 변환/ 표현형식 변환/ 요약통계량 변환/ 변수 결합(수학적 결합)
- 하나의 변수에서 정보를 추출해 새로운 변수 생성
- 한 레코드의 값을 결합하여 파생변수 생성 - 조건문을 이용해 파생변수 생성
* 변수 변환
-불필요한 변수 제거/ 반환/ 새로운 변수 생성 -> 선형관계로 만들면 분석하기 쉬워짐
* 변수 변환 방법
방법 | 단순 기능 변환 | 비닝 Binning | 정규화 | 표준화 |
한쪽으로 치우친 변수를 변환 | 연속형데이터를 범주화 | 특정 구간으로 바꿈 | 0을 중심으로 양쪽 분포 | |
우측 꼬리 길 때: 루트, 로그 좌측 꼬리 길 때: 제곱 |
비즈니스 도메인 지식이 필요함 데이터값을 몇개의 Bin 으로 분할하여 계산 |
최소-최대 정규화 Z-스코어 정규화 |
Z = (x - x_bar) / s |
- 매출, 판매수량, 가격, 가구소득: 로그
- 지리적 거리: 역수, 로그
- 효용에 근거한 시장점유율, 선호점유율: e^x / (1+e^x)
- 우측으로 꼬리가 긴 분포 → 루트, 로그
- 좌측으로 꼬리가 긴 분포 → 제곱
* 불균형 데이터 처리
- 타겟 데이터 매우 극소수인 경우, 정밀도 향상을 위함
- 처리 기법: 언더샘플링/ 오버샘플링/ 임곗값이동/ 앙상블기법
- 임곗값 이동: 데이터 많은 쪽으로 임곗값(귀무가설 기각여부를 결정하는 값)을 이동시킴( 변화없이 학습 하고 테스트단계에서 임계값 이동 )
- 앙상블 기법: 서로 같거나 다른 여러 모형들의 예측/분류 결과를 종합
방법 | < 언더 샘플링 - 과소표집> 무작위로 다수 클래스 데이터를 일부만 선택하여 비율을 맞춤 데이터 소실가능성이큼 |
< 오버 샘플링 - 과대 표집> 무작위로 소수 클래스 데이터를 복제/생성하여 비율을 맞춤 정보손실 없음, 과적합 가능성이 있음, 검증성능이 나빠질수있음 |
||
랜덤 언더 샘플링 | 무작위로 일부 선택 | 랜덤 오버 샘플링 | 무작위로 복제 | |
토멕 링크 방법 | 클래스구분 경계선 가까이 존재하는 토멕 링크를 제거함 |
SMOTE | 가상의 직선 위에 데이터 추가 |
|
ENN | 소수 클래스 주위에 인접한 다수 클래스 데이터 제거 |
Borderline-SMOTE | 다수 클래스와 소수 클래스의 경계선에서 SMOTE 적용 |
|
CNN | 다수 클래스에 밀집된 데이터가 없을 때까지 제거(데표적 데이터만 남김) |
ADASYN | 모든 소수 클래스에서 다수 클래스의 관측비율 계산 → SMOTE 적용 |
|
OSS | 토멕 링크 + CNN |