PART02. 빅데이터 탐색 - CH01. 데이터 전처리
SECTION 02. 분석 변수 처리
1. 변수 선택
1) 회귀분석의 사례- 예를들어, 회귀모형에 의한 분석의 경우 최종 결과를 도출해 내기 위해서 사용된 독립 변수가 m개이고 이를 통해서 얻어진 설명력이 R제곱 = 89% 라고 했을 때, m보다 작은 n개만을 사용시 동일한 설명력이 나온다면 변수의 효율적 선택의 필요성이 증가함
2) 변수별 모형의 분류
- 전체 모형 : 모든 독립변수를 사용한 모형으로 정의함
- 축소 모형 : 전체 모형에서 사용된 변수의 개수를 줄여서 얻은 모형
- 영 모형 : 독립변수가 하나도 없는 모형
⭐3) 변수의 선택 방법
① 전진 선택법
- 영 모형에서 시작, 모든 독립변수 중 종속변수와 단순상관계수의 절댓값이 가장 큰 변수를 분석모형에 포함시키는 것
- 부분 F검정을 통해 유의성 검증을 시행, 유의한 경우는 가장 큰 F통계량을 가지는 모형을 선택하고 유의하지 않은 경우는 변수선택 없이 과정을 중단
- 한번 주가된 변수는 제거하지 않는 것이 원칙
② 후진 선택법
- 전체 모델에서 시작, 모든 독립변수 중 종속변수와 단순상관계수의 절댓값이 가장 작은 변수를 분석모형에서 제외시킴
- 부분 F검정을 통해 유의성 검증을 시행, 유의하지 않은 경우는 변수를 제거하고 유의한 경우는 변수제거 없이 과정을 중단함
- 한번 제거된 변수는 추가하지 않음
③ 단계적 선택법
- 전진 선택법과 후진 선택법의 보완방법
- 전진 선택법을 통해 가장 유의한 변수를 모형에 포함 후 나머지 변수들에 대해 후진 선택법을 적용하여 새롭게 유의하지 않은 변수들을 제거함
- 제거된 변수는 다시 모형에 포함하지 않으며 유의한 설명변수가 존재하지 않을떄까지 과정을 반복함
2. 차원 축소
1) 자료의 차원
- 분석하는 데이터의 종류의 수
2) 차원의 축소
- 차원의 축소는 어떤 목적에 따라서 변수(데이터의 종류)의 양을 줄이는 것
3) 차원 축소의 필요성
① 복잡도의 축소: 데이터를 분석하는 데 있어서 분석시간의 증가(시간복잡도)와 저장변수 양의 증가(공간복잡도)를 고려시 동일한 품질을 나타낼 수 있다면, 효율성 측면에서 데이터 종류의 수를 줄여야 함
② 과적합의 방지
- 차원의 증가는 분석모델 파라미터의 증가 및 파라미터 간의 복잡한 관계의 증가로 분석결과의 과적합 발생의 가능성이 커짐. 이것은 분석모형의 정확도(신뢰도) 저하를 발생시킬 수 있음
- 작은 차원만으로 안정적인 결과를 도출해 낼 수 있다면 많은 차원을 다루는 것보다 효율적임
③ 해석력의 확보
- 차원이 작은 간단한 분석모델일수록 내부구조 이해가 용이하고 해석이 쉬워짐
- 해석이 쉬워지면 명확한 결과도출에 많은 도움
4) 차원축소의 방법- 데이터 분석에 있어서 차원 축소의 필요성을 인지하고 실제적으로 차원을 축소하는 데 사용될 수 있는 방법
① 요인 분석(Factor Analysis)
- 개념 : 다수의 변수들간의 관계를 분석하여 공통차원을 축약하는 통계분석 과정- 목적
- 변수 축소 : 다수의 변수들의 정보손실을 억제하면서 소수의 요인으로 축약
- 변수 제거 : 요인에 대한 중요도 파악
- 변수특성 파악 : 관련된 변수들이 묶음으로써 요인 간의 상호 독립성 파악이 필요
- 타당성 평가 : 묶여지지 않는 변수의 독립성 여부를 판단
- 파생변수 : 요인점수를 이용한 새로운 변수 생성. 회귀분석, 판별분석 및 군집분석 등에 이용
- 요인 분석의 특징 : 독립변수, 종속변수 개념이 없음. 주로 기술 통계에 의한 방법 이용- 요인 분석의 종류
- 주성분 분석, 공통요인 분석 특이값 분해(SVD), 행렬과 음수미포함 행렬분해(NMF) 등
- 공통요인 분석은 분석대상 변수들의 기저를 이루는 구조를 정의하기 위한 요인분석 방법으로 변수들이 가지고 있는 공통분산만을 이용하여 공통요인만 추출하는 방법
⭐② 주성분분석(PCA : Principal Component Analysis)
- 개념
- 분포된 데이터들의 특성을 설명할 수 있는 하나 또는 복수개의 특징을 찾는것
- 서로 연관성이 있는 고차원공간의 데이터를 선형연관성이 없는 저차원으로 변환하는 과정을 거침
- 기존의 기본 변수들을 새로운 변수의 세트로 변환하여 차원을 줄이되 기존 변수들의 분포특성을 최대한 보존하여 이를 통한 분석결과의 신뢰성을 확보함
- PCA 방법의 이해
- 2차원 좌표평면에 n개의 점 데이터들이 타원형으로 분포되어 있을 때, 이 데이터들의 분포 특성을 2개의 벡터로 가장 잘 설명할 수 있는 방법은 그림에서와 같이 v1, v2 두 개의 벡터로 데이터분포를 설명하는 것
- v1의 방향과 크기, 그리고 v2의 방향과 크기를 알면 이 데이터분포가 어떤 형태인지를 가장 단순하면서도 효과적으로 파악가능
- PCA는 데이터 하나하나에 대한 성분을 분석하는 것이 아니라, 여러 데이터들이 모여 하나의 분포를 이룰때, 이 분포의 주성분을 분석해 주는 방법이라고 할 수 있음
- PCA의 특징
- 차원 축소에 폭넓게 사용되며, 어떠한 사전적 분포 가정의 요구가 없음
- 가장 큰 분산의 방향들이 주요 중심 관심으로 가정함
- 본래의 변수들의 선형결합으로만 고려함
- 차원의 축소는 본래의 변수들이 서로 상관이 있을때만 가능함
- 스케일에 대한 영향이 큼. 즉, PCA 수행을 위해선 변수들 간의 스케일링이 필수
③ 특이값 분해(SVD : Singular Value Decomposition)
- 특이값 분해 소개(선형대수)
- 데이터 공간을 나타내는 m x n 크기의 행렬 M에 대해, 다음과 같이 분해 가능
M = U∑V⊺
- 여기서 U는 m x n 크기의 직교행렬이고, 시그마는 m x n 크기의 대각행렬, Vt는 n x n 크기의 직교행렬임
- Orthogonal Matrix의 정의 : 행렬의 열벡터가 독립이라는 의미로 다음과 같은 관계가 성립
U가 직교행렬이면 UtU = Im (여기서 Im은 단위행렬)
즉, Ut = U-1 (역행렬이 됨)
- Diagonal Matrix의 정의 : 행렬의 대각성분을 제외한 나머지 행렬의 원소의 값이 모두 0인 행렬
- 특이값 분해의 차원 축소 원리
- 수학적 원리 : SVD 방법은 주어진 행렬 M을 여러개의 행렬M과 동일한 크기를 갖는 행렬로 분해할 수 있으며 각 행렬의 원소값의 크기는 Diagonal Matrix에서 대각성분의 크기에 의해 결정됨
- 데이터의 응용 : 기존의 전차원의 정보 A를 SVD에 의해서 3개의 행렬로 분해하며 적당한 k(특이값)만을 이용해 원래 행렬A와 비슷한 정보력을 가지는 차원을 만들어 낼 수 있음
- 즉, 큰 몇 개의 특이값을 가지고도 충분히 유용한 정보를 유지할 수 있는 차원을 생성해 낼 수 있음(차원축소)
④ 행렬과 음수 미포함 행렬분해(NMF : Non-negative Matrix Factorization)
- 음수 미포함 행렬분해는 음수를 포함하지 않은 행렬 V를 음수를 포함하지 않은 두 행렬의 곱으로 분해하는 알고리즘- - NMF의 이해
- 일반적으로 W의 열개수와 H의 행개수가 WH=V가 되도록 결정됨. 기존 행렬 V와 분해한 음수 미포함 행렬 W와 H의곱과의 차이를 오차 U라고 이야기함. V=WH+U, U의 원소들은 양수나 음수가 될 수 있음
- W와 H의 크기가 V보다 작기 때문에 저장하거나 다루기에 용이함. 또한 V를 원래 정보보다 상대적으로 적은 정보로 표현하여 분해한 행렬 하나가 전체 정보의 대략적인 정보를 제시할 수 있음
- NMF의 차원 축소
- 행렬 곱셈에서 행렬은 결과행렬보다 훨씬 적은 차원을 가지기 때문에 NMF가 차원을 축소할 수 있음
3. 파생변수 생성
- 데이터 마트는 데이터 웨어하우스로부터 복제 또는 자체 수집된 데이터 모임의 중간층이지만 분석을 위한 기본 단계변수가 모여지는 단계로 요약변수 파생변수들의 모임이라고 볼 수 있음
⭐1) 파생변수
- 사용자가 특정 조건을 만족하거나 특정 함수에 의해 값을 만들어 의미를 부여하는 변수로 매우 주관적일 수 있으므로 논리적 타당성을 갖출 필요성 有
- 세분화 고객행동예측, 캠페인반응예측 등에 활용할 수 있음
- 특정 상황에만 유의미하지 않게 대표성을 나타나게 할 필요가 있음
⭐2)요약변수
- 수집된 정보를 분석에 맞게 종합한 변수임
- 데이터 마트에서 가장 기본적인 변수임
- 많은 분석모델에서 공통으로 사용될 수 있어 재활용성이 높음
3) 요약변수 vs 파생변수
① 예시를 통한 요약변수와 파생변수의 이해
- 고객관계관리(CRM) 데이터를 통한 요약변수와 파생변수의 정리
요약변수(단순 종합 개념) | 파생변수(주관적 변수 개념) |
매장이용 횟수 | 주 구매매장 변수 |
구매상품품목 개수 | 구매상품 다양성 변수 |
기간별 구매금액/횟수 | 주 활동지역 변수 |
상품별 구매금액/횟수 | 주 구매상품 변수 |
② 요약변수 처리시의 유의점
- 처리(단어의 빈도 초기행동변수 트렌드변수 등) 방법에 따라 결측치의 처리 및 이상값 처리에 유의해야 함
- 연속형 변수의 구간화 적용과 고정된 구간화를 통한 의미 파악시 정구간이 아닌 의미 있는 구간을 찾도록 해야함
③ 파생변수 생성 및 처리의 유의점
- 특정 상황에만 의미성 부여가 아닌 보편적이고 전 데이터구간에 대표성을 가지는 파생변수 생성 필요
4. 변수 변환
1) 변수 변환의 개념
- 데이터를 분석하기 좋은 형태로 바꾸는 작업을 의미함. 수학적 의미로 변환은 기존의 변수 공간에서는 해결하거나 관찰할 수 없는 사실을, 변환해서 해석이 용이해지거나 취급이 단순해지는 장점을 가짐
- 데이터의 전처리 과정 중 하나로 간주됨
2) 변수 변환의 방법
① 범주형 변환
- 연속형 변수 중에서 변수자체로의 분석보다는 분석 결과의 명료성 및 정확성을 배가시키기 위해 범주형으로 바꾸는 것이 좋은 경우가 있음
'소득이 100만원 늘 때마다 사교육비의 지출이 10만원 증가한다', 보다는 상위 10% 소득가정의 사교육비 지출이 하위 10%보다 10배많다.' 식의 설명이 이해가 쉬움
- 이 경우 소득의 연속적 데이터를 그대로 사용하기 보다는 순위형 데이터로 범주를 나누어 상대비교를 하는 방법, 즉 연속형 데이터를 범주형 데이터로 나누는 설명이 효과적임을 알 수 있음
⭐② 정규화
- 분석을 정확히 하려면 원래 주어진 연속형(이산형) 데이터 값을 바로 사용하기 보다는 정규화를 이용하는 경우가 타당할 수 있음. 특히, 데이터가 가진 스케일이 심하게 차이나는 경우 그 차이를 그대로 반형하기 보다는 상대적 특성이 반영된 데이터로 변환하는것이 필요함
- 일반 정규화 : 수치로 된 값들을 여러 개 사용할 때 각 수치의 범위가 다르면 이를 같은 범위로 변환해서 사용하는데 이를 일반 정규화라고 함
두 과목의 시험을 가지고 평가하는데 과목 A의 시험은 10점만점이고, 다른 과목 B는 50점 만점이라고 하자. 만약 A에서는 8점, B에서는 20점을 받았을 때, 이것을 정규화하면 8/10=0.8점, 20/50=0.4점이 되고 평점은 0.6점이 됌
- 최소 - 최대 정규화 : 데이터를 정규화하는 가장 일반적인 방법
- 모든 feature에 대해 최소값 0, 최대값 1로, 그리고 다른 값들은 0과 1사이의 값으로 변환
- 만약 X라는 값에 대해 최소-최대 정규화를 한다면 아래와 같은 수식을 사용할 수 있음
Min-Max Normalization = (X-Min)/(Max-Min)
어떤 특성의 최소값이 20이고 최대값이 40인경우 30은 딱 중간이므로 0.5로 변환됌
- 최소-최대 정규화의 단점은 이상치의 영향을 많이 받는다는 것
- Z-Score 정규화 : 이상치 문제를 피하는 데이터 정규화 전략
Z score = (x -mean) / std. deviation
- 만약 데이터의 값이 평균과 일치하면 0으로 정규화되고, 평균보다 작으면 음수, 평균보다 크면 양수로 나타남. 이때 계산되는 음수와 양수의 크기는 그 데이터의 표준편차에 의해 결정됌. 따라서 만약 데이터의 표준편차가 크면(값이 넓게 퍼져있으면) 정규화 되는 값이 0에 가까워 짐
- 이상치는 잘 처리하지만 정확히 동일한 척도로 정규화된 데이터를 생성하지 않는다는 점에 유의
③ 로그변환
- 로그변환이란 어떤 수치값을 그대로 사용하지 않고 여기에 로그를 취한 값을 사용하는 것
- 데이터 분석에서 로그를 취하는 게 타당한 경우가 종종 있는데 먼저 로그를 취하면 그 분포가 정규분포에 가깝게 분포하는 경우가 있음. 이런 분포를 로그 정규분포를 가진다고 함.
X ~ ln(X)
- 로그변환분포를 사용하는 전형적 데이터
- 국가별 수출액, 사람의 통증 정도 수치화, 개별 주식의 가격이용 변동성 분석 등
- 데이터 분포의 형태가 우측으로 치우친 경우 정규분포화를 위해 로그변환을 사용함
④ 역수변환
- 어떤 변수를 데이터 분석에서 그대로 사용하지 않고 역수를 사용하면 오히려 선형적인 특성을 가지게되어 의미를 해석하기가 쉬워지는 경우
- 데이터분포의 형태로 보면 데이터의 분포형태가 극단적인 우측으로 치우친 경우 정규분포화를 위해 역수변환 사용
X ~ 1/X
⑤ 지수변환
- 어떤 변수를 데이터분석에 그대로 사용하지 않고 지수를 사용하면 오히려 선형적인 특성을 가지게 되어 의미를 해석하기가 쉬워지는 경우
- 데이터의 분포형태가 좌측으로 치우친 경우 정규분포화를 위해 지수변환을 사용함
X~Xⁿ
⑥ 제곱근변환
- 어떤 변수를 데이터 분석에 그대로 사용하지 않고 제곱근을 사용하면 오히려 선형적인 특성을 가지게 되어 의미를 해석하기가 쉬워지는 경우
- 데이터 분포의 형태로 보면 좌측으로 약간 치우친 경우 정규분포화를 위해 제곱근 변환을 사용함
X~√X
⑦ 분포 형태별 정규분포 변환
모집단의 분포형태별로 사용가능한 변수변환이 다름. 최종적으로 정규분포 형태를 지향
변수변환 전 분포 | 사용변수 변환식 | 변수변환 후 분포 |
좌로 치우침 | X³ | 정규분포화 |
좌측으로 약간 치우침 | X² | |
우측으로 약간 치우침 | √X | |
우측으로 치우침 | ln(X) | |
우측으로 극단적으로 치우침 | 1/X |
기본적으로 단일집단의 정규성 검정은 데이터 분포의 형태를 눈으로 확인할 수도 있지만, 샤피로테스트 또는 큐큐플롯을 이용해 확인 가능하며, 결과에 따라 적당한 변수변환식을 사용하여 정규분포 형태로 변환이 가능할 수 있음
5. 불균형 데이터 처리
어떤 데이터에서 각 클래스(주로 범주형 반응 변수)가 갖고 있는 데이터의 양에 차이가 큰 경우, 클래스 불균형이 있다고 말함.
병원에서 질병이 있는 사람과 없는 사람의 데이터를 수집했을때, 일반적으로 질병이 있는 사람이 질병이 없는 사람에 비해 적음. 병원 데이터뿐 아니라 대부부분의 '현실데이터'에 클래스 불균형 문제 有
⭐1) 불균형데이터의 문제점
- 데이터 클래스 비율이 너무 차이가 나면 단순히 우세한 클래스를 택하는 모형의 정확도가 높아지므로 모형의 성능판별이 어려워짐. 즉, 정확도가 높아도 데이터 개수가 적은 클래스의 재현율이 급격히 작아지는 현상 발생
결과 | |||
참 | 거짓 | ||
실험 | 참 | TP | FP |
거짓 | FN | TN |
- 정확도(Accuracy)
- 재현율(Recall) : T를 T라고 예측
2) 불균형 데이터의 처리 방법
① 가중치 균형방법
데이터에서 loss를 계산할 때 특정 클래스의 데이터에 더 큰 loss값을 갖도록 하는 방법. 즉, 데이터 클래스의 균형이 필요한 경우로 각 클래스별 특정 비율로 가중치를 주어서 분석하거나 결과를 도출하는 것으로 정의함.
- 고정 비율 이용 : 클래스의 비율에 따라 가중치를 두는 방법인데, 예를 들어 클래스의 비율이 1:5라면 가중치를 5:1로 줌으로써 적은 샘플 수를 가진 클래스를 전체 loss에 동일하게 기여하도록 할 수 있음.
- 최적 비율 이용 : 분야와 최종 성능을 고려해 가중치 비율의 최적 세팅을 찾으면서 비중치를 찾아가는 방법
② 언더 샘플링과 오버 샘플링
비대칭 데이터는 다수 클래스 데이터에서 일부만 사용하는 언더샘플링이나 소수 클래스 데이터를 증가시키는 오버샘플링을 사용하여 데이터 비율을 맞추면 정밀도가 향상됌.
- 언더샘플링 : 언더샘플링은 대표클래스의 일부만을 선택하고, 소수클래스는 최대한 많은 데이터를 사용하는 방법임. 이때 언더샘플링된 대표클래스 데이터가 원본 데이터와 비교해 대표성이 있어야함
- 오버샘플링 : 소수 클래스의 복사본을 만들어, 대표 클래스의 수만큼 데이터를 만들어 주는 것. 똑같은 데이터를 그대로 복사하는 것이기 때문에 새로운 데이터는 기존 데이터와 같은 성질을 갖게됌.
'자격증 > [2021]빅데이터분석기사' 카테고리의 다른 글
제 2회 빅데이터 분석기사 필기시험 합격후기 (0) | 2021.05.23 |
---|---|
[빅분기D-36] 2021 빅데이터 분석기사 필기 준비 #4. 데이터 탐색 - 고급 (1) | 2021.03.12 |
[빅분기D-44] 2021 빅데이터 분석기사 필기 준비 #3. 데이터 탐색 - 기초 (0) | 2021.03.04 |
[빅분기D-48] 2021 빅데이터 분석기사 필기 준비 #2. 데이터 전처리 - 데이터 정제 (1) | 2021.02.28 |
[빅분기D-48] 2021 빅데이터 분석기사 필기 준비 #1. 프롤로그 (0) | 2021.02.28 |