본문 바로가기
카테고리 없음

빅데이터 분석 실무 ④ 데이터 정제, 분석 변수 처리

by hey-min-eee 2024. 10. 7.

1. 데이터 정제

(1) 데이터 전처리(Preprocessing)

- 데이터 정제와 통합, 축소, 변환을 포함하는 광의의 개념이며 데이터를 분석 처리에 적합한 형태로 만드는 과정을 의미함

- 데이터 정제(Cleaning) 과정 + 분석 변수 처리 과정

- 전체 작업의 60~70% 소요

- 분석 결과의 신뢰도 제고를 위한 필수 과정

- 데이터 정제 : 데이터 실수화, 결측값 처리, 이상값 처리

- 분석 변수 처리 : 변수 선택, 차원 축소, 파생 변수 생성, 변수 변화, 불균형 데이터 처리

(2) 데이터 정제의 개념

- 데이터 전처리의 한 과정으로 결측값, 잡은, 이상값 등 데이터 오류를 일으킬 수 있는 요인을 제거하고 불일치를 해결하여 데이터의 신뢰를 높이는 과정

- 결측값 : 값이 존재하지 않고 비어있는 상태(미응답)

- 노이즈 : 측정된 변수에서 오류나 오차 값

- 이상값 : 데이터의 범위에서 많이 벗어난 작은 값이나 큰 값

- 아티팩트 : 어떠한 요인으로 인해 반복적으로 발생하는 왜곡이나 에러

- 모순 : 동일한 개체에 대한 측정 데이터가 다르게 나타나는 경우

- 중복 : 동일한 데이터가 여러번 저장되는 경우

(3) 데이터 결측값 처리

- Na, NaN, Inf, Null, 빈칸 등으로 표시되는 데이터

- 완전 무작위 결측(MCAR : Missing Completely At Random) : 다른 변수와 무관하게 랜덤으로 발생한 결측, 이상 Case, 원인으로는 전산 오류나 통신 오류

- 무작위 결측(MCR : Missing At Random) : 결측이 다른 변수와 연관이 있지만 얻고자 하는 결과와 상관이 없는 경우, 결혼과 독서량과의 상관 관계

- 비무작위 결측(NMAR : Not Missing At Random) : 결측값이 얻고자 하는 결과에 영향을 미치는 경우, 독서량과 학력과의 상관 관계

- 결측값 처리 절차 : 결측값 식별 > 결측값 부호화 > 결측값 처리

- 결측값 종류 : NA(Not Avaliable), NaN(Not a Number), Inf(Infinite), NULL : 빈 값

- 처리 기법 ① 삭제 : 특정 단일 값 삭제(목록 내 결측치만 삭제, 일관성이 부족), 목록 삭제(행/열 전체를 삭제, 정보 손실)

- 처리 기법 ② 대치 : 단순 대치(특정 대표값(평균 혹은 랜덤 등)으로 결측치 대체 혹은 보삽법(시계열 자료 중 누락된 시기의 데이터 제거 후 평균 계산 진행)), 다중 대치법(단순 대치법을 n번 수행하여 n개의 가상적 완전 자료를 만들어 분석, 대치>분석>결합), 완전 정보 최대 우도법(최대 우도(발생할 확률이 최대가 되는 확률값을 참으로 추정)로 대치)

- 처리 기법 그 외 : 수동으로 결측값 입력, 전역 상수(Global Constant) 사용 결측값 입력, 결측값 무시, 결측값 추정, 보간법(실측값과 실측값 사이의 결측값을 Gradation 기법으로 부드럽게 채워 나가는 방법)

(4) 데이터 이상값 처리

- 데이터의 나머지 부분과 상당히 다른 데이터 요소 집합

- 관측된 데이터의 범위에서 많이 벗어난 아주 작은 값이나 아주 큰 값

- 발생 원인 : 다른 클래스의 데이터, 자연 변형, 데이터 오류(실험 오류, 측정 오류), 고의적인 이상값

- 이상값 탐색 기법 : 분산, 우도(우도 함수의 우도 값 범위 가능성이 낮은 범위에서 발생되는 값), 근접 이웃(정상값들과 떨어진 거리로 탐색 유클리드 거리, 단순 일치 계수 등으로 확인), 밀도(밀도 있는 데이터에서 멀리 떨어져 위치한 데이터 LOF, DBSCAN 방법이 있음), 사분위수(Q1-1.5*IQR > x, Q3 + 1.5*IQR <x 일 경우 이상값)

- 상자 그림을 통해 이상값을 알아보는 방법 : 상위, 하위 경계(점선) 이후에는 아웃라이어

- 회귀 진단에서의 이상값을 알아보는 방법 : 레버리지(독립 변수에서 떨어진 정도 확인), 표준화 잔차(추정된 회귀 모델의 예측치와 실제 관측치의 차이)를 표준화한 통계량, 스튜던트 잔차(3~4 초과 시 이상), 쿡의 거리(1 이상 이상)

- 처리 기법 : 삭제와 극단치(극단치 기준 제거, 극단치 절단, 극단치 조정) 기준 적용, 대치(단순 대치, 다중 대치)

2. 분석 변수 처리

(1) 분석 변수 처리의 개념

- 확보한 데이터를 활용하여 정보를 추가하는 일련의 과정, 기존 데이터를 유용하게 만드는 과정

- 변수 : 관찰된 항목이나 대상의 특성을 수치화하기 위해 쓰이는 속성, 변하는 수나 값을 저장, 변수는 속성열이라고 하고 저장된 값을 행이라고 함

- 인과 관계 관점의 변수의 유형 : 독립 변수(다른 변수에 영향을 받지 않고 종속 변수에 영향을 줌 = 원인 = 설명 = 예측 = 입력 변수), 종속 변수(독립 변수로부터 영향을 받는 변수, = 반응 = 결과 = 출력 = 목적)

- 데이터 특성에 따른 변수의 유형 : 질적 변수(수치와 되지 않음, 범주로 나뉨), 양적 변수(측정하거나 평가되어 수치화된 자료)

- 범주형 변수 = 질적 변수 : 명목 변수(임의적으로 숫자 부여, 남1여2), 서열 변수(맛집 별점 등)

- 수치형 변수 = 양적 변수 : 이산형 변수, 연속형 변수

- 연속형 범수 : 등간 변수, 비율 변수(절대 영점을 가짐)

(2) 변수 선택

- 해결하고자 하는 문제에 대해 유의미한 변수를 선택해야 함

- 종속 변수에 유의미한 독립 변수를 선택

- 필터 기법(데이터 통계적 의미를 이용 분류, 정보 이득(크로스 엔트로피)/카이제곱 검정 등), 피셔 스코어(선택한 데이터 특징이 데이터 공간에서의 클래스의 거리를 크게하고 같은 데이터 포인트간의 데이터는 최대한 작게 하는 정도), 상관 계수

- 레퍼 기법 : 변수의 일부만을 사용해 모델링을 수행하고 결과를 확인하는 작업을 반복 수행하여 변구의 집합을 선택하는 방법, 반복 선택 중에 부분집합의 수가 기하급수적으로 늘어나 과적합 위험이 발생(단계적 변수 선택법 : 전진 선택법(가장 많은 영향을 미칠 것으로 확인되는 변수 차례로 선택), 후진 제거법(가장 영향이 없는 변수를 하나씩 제거), 단계적 선택법(전진 선택법 후 후진 선택법 진행, AIC 모델 점수로 확인)

- 임베디드 기법 : 필터 기법과 래퍼 기법을 결합하여 어떤 변수가 가장 크게 기여하는지 찾아내는 방법, 과적합을 줄이기 위해 내부적으로 규제를 가함, 파아미터가 0이 아닌 변수를 선택하여 낮은 복잡성으로 모델을 훈련, 래퍼 기법 과적합 문제 해결, 라쏘 회귀(가중치의 절대값 합을 최소화하는 규제를 추가하는 방법, L1 규제), 랏지 회귀(가중치의 제곱합을 최소화하는 규제를 추가하는 방법, L2 규제), 엘라스틴 넷(L1+L2), Select From Model(의사 결정 나무 트리 알고리즘을 이용한 변수 선택, 랜덤 포레스트나 Light GBM 알고리즘 사용)

(3) 차원 축소

- 분석 모델의 변수의 개수가 증가할수록 분석 비용과 시간 증가

- 분석 효율성, 효과성 증대를 위해 변수를 제거 필요

- 차원 축소는 분석 대상이 되는 여러 변수의 정보의 특성을 유지하면서 데이터 세트의 변수의 개수를 줄이는 과정

- 차원의 저주 : 데이터 학습을 위해 차원이 증가하며 차원이 증가할수록 개별 차원 내 학습할 데이터 수가 적어지는 현상

- 다중 공선성 : 회귀분석에서 독립변수 간 강한 상관관계가 나타나는 문제, VIF가 10 이상이면 문제 VIF=1/(1-r^2)

- PCA(Principle Component Anaysis) : 여러 변수간에 존재하는 상관 관계를 이용해 선형 연관성이 없는(=데이터의 분산을 최대한 보존하는) 저차원 공간으로 축소, 여러 변수 중 중요한 몇 개의 주성분으로 전체 변동의 대부분을 설명하는 알고리즘, 분산이 최대인 축 PC1 찾기 > PC1과 직요하면서 분산이 최대인 다음 축 찾기 > 다시 PC1 찾기

- 왜 분산을 최대한 보존하려고 하는가? : 원래 데이터에 대한 정보 패턴을 잘 보존하는 값이므로

- 요인 분석 : 모형을 세우고 관찰 가능한 데이터를 이용하여 잠재요인을 도출하고 데이터 구조를 해석하는 기법, 다수의 변수들 간의 상관 관계를 분석하여 공동 차원을 축약하는 통계 기법, 사회 과학, 설문 조사에 많이 활용됨

- 다차원 척도법 : 개체들 사이의 유사성, 비 유사성을 측정하여 2차원 또는 3차원 공간상의 점으로 표현하여 개체들 사이의 집단화를 시각적으로 표현

- 판별 분석 : 집단을 구분할 수 있는 설명 변수를 통하여 집단을 구분하는 기법, 판별식을 도출하여 데이터 예측

> LDA(선형 판별 분석, Linear Discriminat Anaysis) : 지도학습으로 제이터의 분포를 학습하여 결정 경계를 만들어 데이터 분류, 1차원 공간에 정돈, 주성분 분석은 분산을 가장 잘 설명하는 축을 찾는 것이고 LDA는 예측 변수 클라스를 잘 구분할 수 있는 축을 찾는 것

> SVD(특이값 분해, Singular Value Decomposition) : 행렬을 다른 여러개의 행렬곱으로 나눔. 특이값 분해는 m*n 크기의 임의의 사각 행렬 A를 특이 백터와 특이값으로 분해. 분해 이유 : 행렬 크기 감소, 정방행렬이 아닌 크기의 해를 도출, 데이터 크기 감소. 이미지 압축, 모델 차원 축소, 근사해 계산에 활용

> t-SNE(t-Stochastic Neighbor Embedding) : 고차원에 존재하는 데이터 간의 거리를 최대한 보전하면서 데이터 간의 관계를 저차원으로 축소, 시각화함. 높은 차원의 공간에서 비슷한 데이터 구조는 낮은 차원 공간에서 가깝게 대응하며 비슷하지 않은 데이터 구조는 멀리 떨어져 대응, 고차원 공간의 점들의 유사성과 그에 해당하는 저차원 공간의 점들의 유사성 계산

(4) 파생 변수 생성

- 기존 변수에 특정 조건 혹은 함수 등을 활용하여 새로운 변수를 만들거나 기존 변수를 조합하여 새롭게 만드는 변수

- 하나의 변수에서 정보를 추출하여 새로운 변수 생성 > 한 레코드의 값을 결합하여 파생 변수 생성 > 조건문을 이용해 파생 변수 생성

(5) 변수 변환

- 데이터 분석을 용이하게 하기 위해서 불필요한 변수를 제거하고 변수를 반환하여 새로운 변수를 생성시키는 방법

- 정규 변환 방법

 > 로그 변환 : 각 변수 x에 log를 취해 큰 수를 작게 만듬

 > 제곱근 변환 : 오른쪽으로 긴 꼬리를 갖는 좌로 치우친 분포를 정규분포로 만듬

 > 세제곱 변환 : 왼쪽으로 긴 꼬리를 갖는 우로 치우진 분포를 정규분포로 만듬

 > 박스-콕스 변환 : 데이터를 정규 분포를 가깝게 만들거나 데이터의 분산을 안정화 시킴

- 범주형 변수의 연속형 변수로 변환 : 선형 회귀/로지스틱 회귀 분석은 연속형 변수를 통해 예측 또는 분류를 수행하므로 범주현 변수를 연속형 변수로 변환하는 과정이 필요함.

- 더미 변수 : 각 고유의 값을 하나의 열로 바꾸어 값이 있으면 1, 없으면 0을 가지는 값으로 존재 여부 표시, 범주형 데이터 값의 범주가 n개면 기준이 되는 범주를 제외한 n-1개의 변수 도출, 기준이 되는 범주 값은 일반적으로 빈도수가 많은 범주값 선택

- 변수 구간화 : 연속형 변수를 다수의 구간으로 나누고 동일한 구간에 속하는 변수 값들을 하나의 변수로 변환(20대, 30대...)

- 스케일링을 이용한 변환 : 서로 다른 변수의 값의 범위를 일정한 수준으로 맞추는 과정. 표준화, 정규화(최소/최대 정규화, 최대 절대값 정규화)

(6) 불균형 데이터 처리

- 각 클래스에 속하는 데이터 수가 동일하지 않은 경우

- 데이터 클래스 간의 데이터 양의 차이는 데이터 학습 및 모델링에 부정적 영향을 미침

- 과소 표집 : 무작위로 정상 데이터의 일부만 선택하여 남기는 방법 > 데이터 손실

- 과대 표집 : 무작위로 소수 데이터를 복제하는 방법 > 과적합 문제

- SMOTE(Synthetic Miniority Oversampling Method) : 알고리즘을 통해 소수 클래스 데이터 주변 값을 기준으로 새로운 데이터 생성(K 최근접이웃 알고리즘 활용) > 과소 표집과 과대 표집을 보안해주는 방법