[목차]
빅데이터 탐색 - 데이터 탐색
<분석 변수 처리>
1. 변수 선택
(1) 변수 개념
- 데이터 모델에서 사용하는 예측을 수행하는 데 사용되는 입력변수
- RDBMS에서 '속성(열)' 이라고 부르는 것을 머신러닝에서는 통계학의 영향으로 변수라고 지칭
(2) 유형 - 독립변수 / 종속변수
ㄱ. 독립변수
- 종속변수(결과변수)의 값에 영향을 미쳐 종속변수가 특정한 값을 갖게 되는 원인이 된다고 가정한 변수
- 연구자가 의도적으로 변화시키는 변수
- 기계 학습 혹은 패턴 인식에서는 변수라고도 함
- 예측변수, 회귀자, 통제변수, 조작변수, 노출변수, 리스크 팩터, 설명변수, 입력변수 라고도 불림
ㄴ. 종속변수
- 독립변수에 영향을 받아서 변화하는 종속적인 변수
- 독립변수(실험변수)의 영향을 받아 그 값이 변할 것이라고 가정한 변수
(3) 변수 선택
[개념]
데이터의 독립변수(x) 중 종속변수(y)에 가장 관련성이 높은 변수만을 선정하는 방법
[특징]
- 사용자가 해석하기 쉽게 모델을 단순화해주고 훈련 시간 축소, 차원의 저주 방지, 과적합을 줄여 일반화를 해줌
- 모델의 정확도 향상 및 성능 향상 기대
[기법]
필터 기법, 래퍼 기법, 임베디드 기법
- 필터 기법: 특정 모델링 기법에 의존하지 않고 데이터의 통계적 특성으로부터 변수를 선택하는 기법 (정보 이득, 카이제곱 검정, 피셔 스코어, 상관계수 등)
- 래퍼 기법: 변수의 일부만을 모델링에 사용하고 그 결과를 확인하는 작업을 반복하면서 변수를 선택해나가는 기법 (그리디 알고리즘에 속함)
- 임베디드 기법: 모델 자체에 변수 선택이 포함된 기법 (라쏘, 릿지, 엘라스틱 넷, SelectFromModel)
※ 그리디 알고리즘: 문제를 해결하는 과정에서 그 순간순간마다 최적이라고 생각되는 결정을 하는 방식으로 진행하여 최종 해답에 도달하는 문제 해결 방식
[변수선택을 위한 알고리즘 유형]
- 전진 선택법: 모형을 가장 많이 향상시키는 변수를 하나씩 점진적으로 추가하는 방법
- 후진 소거법: 모두 포함된 상태에서 시작하며 가장 적은 영향을 주는 변수부터 하나씩 제거 (더 이상 제거할 변수가 없다고 판단될 때 중단)
- 단계적 방법: 전진 선택과 후진 소거를 함께 사용하는 방법
엠베디드 기법 | 설명 |
라쏘(LASSO; Least Absolute Shrinkage and Selection Operator) | -가중치의 절댓값의 합을 최소화하는 것을 추가적인 제약조건으로 하는 방법 -L1 노름 규제를 통해 제약을 주는 방법 (두 점 간 차의 절댓값을 합한 값) |
릿지(Ridge) | - 가중치들의 제곱 합을 최소화하는 것을 추가적인 제약조건으로 하는 방법 - L2 노름 규제를 통해 제약을 주는 방법 (두 점 간 차를 제곱하여 모두 더 한 값의 양의 제곱근한 값) |
엘라스틱 넷(Elastic Net) | - 가중치의 절댓값의 합과 제곱 합을 동시에 추가적인 제약조건으로 하는 방법 - 라쏘와 릿지 두 개를 선형 결합한 방법 |
SelectFromModel | - 의사결정나무 기반 알고리즘에서 변수를 선택하는 방법 |
2. 차원축소
(1) 개념
- 분석대상이 되는 여러 변수의 정보를 최대한 유지하면서 데이터 세트 변수의 개수를 줄이는 탐색적 분석기법
- 원래의 데이터를 최대한 효가적으로 축약하기 위해 목표변수(y)는 사용하지 않고 특성 변수 (설명변수)만 사용하기 때문에 비지도 학습 머신러닝 기법
(2) 특징
- 정보유지: 차원축소를 수행할 때, 축약되는 변수 세트는 원래의 전체 데이터의 변수들의 정보를 최대한 유지
- 모델 학습의 용이: 고차원 변수보다 변환된 저차원으로 학습할 경우, 회귀나 분류, 클러스터링 등의 머신러닝 알고리즘이 더 잘 작동
- 결과 해석의 용이: 새로운 저차원 변수 공간에서 시각화하기도 쉬움
(3) 방법 - 변수 선택 / 변수 추출
- 변수 선택: 가지고 있는 변수들 중에 중요한 변수만 몇 개 고르고 나머지는 버리는 방법
- 변수 추출: 모든 변수를 조합하여 이 데이터를 잘 표현할 수 있는 중요 성분을 가진 새로운 변수 추출
(4) 기법
주성분 분석, 특이값 분해, 요인 분석, 독립 성분 분석, 다차원 척도법
- 주성분 분석: 원래 데이터 특징을 잘 설명해주는 성분을 추출하기 위하여 고차원 공간의 표본들을 선형 연관성이 없는 저차원 공간으로 변환하는 기법 (변수들의 공분산 행렬이나 상관행렬을 이용)
- 특이값 분해: M * N 차원의 행렬데이터에서 특이값을 추출하고 이를 통해 주어진 데이터 세트를 효과적으로 축약할 수 있는 기법
- 요인 분석: 모형을 세운 뒤 관찰 가능한 데이터를 이용하여 해당 잠재 요인을 도출하고 데이터 안의 구조를 해석하는 기법 (데이터 안에 관찰할 수 없는 잠재적인 변수가 존재한다고 가정, 주로 사회과학이나 설문 조사)
- 독립 성분 분석: 다변량의 신호를 통계적으로 독립적인 하부성분으로 분리하여 차원을 축소하는 기법
- 다차원 척도법: 개체들 사이의 유사성, 비유사성을 측정하여 2차원 또는 3차원 공간 상에 점으로 표현하여 개체들 사이의 집단화를 시각적으로 표현하는 분석 방법
(5) 주요 활용 분야
- 탐색적 데이터 분석
- 변수 집합에서 주요 특징을 추출하여 타 분석기법의 설명변수로 활용
- 텍스트 데이터에서 주제나 개념 추출
- 이미지 및 사운드 등의 비정형 데이터에서 특징 패턴 추출
- 기업의 판매데이터에서 상품 추천시스템 알고리즘 구현
- 다차원 공간의 정보를 저차원으로 시각화
- 공통 요인을 추출하여 잠재된 데이터 규칙 발견
3. 파생변수 생성
(1) 파생변수 개념
- 기존 변수에 특정 조건 혹은 함수 등을 사용하여 새롭게 재정의한 변수
- 데이터에 들어 있는 변수만 이용해서 분석할 수도 있지만, 변수를 조합하거나 함수를 적용해서 새 변수를 만들어 분석
- 변수를 생성할 때에는 논리적 타당성과 기준을 가지고 생성
(2) 생성 방법
단위 변환, 표현형식 변환, 요약 통계량 변환, 정보 추출, 변수 결합, 조건문 이용
- 단위 변환: 주어진 변수의 단위 혹은 척도를 변환하여 새로운 단위로 표현하는 방법
- 표현형식 변환: 단순한 표현 방법으로 변환하는 방법
- 요약 통계량 변환: 요약 통계량 등을 활용하여 생성하는 방법
- 정보 추출: 하나의 변수에서 정보를 추출해서 새로운 변수를 생성하는 방법
- 변수 결합: 다양한 함수 등 수학적 결합을 통해 새로운 변수를 정의하는 방법 (한 레코드의 값을 결합하여 파생변수 생성)
- 조건문 이용: 조건문을 이용해서 파생변수를 생성하는 방법
(3) 인코딩
- 문자열 값들을 숫자형으로 변경하는 방식
(4) 인코딩 종류
원-핫 인코딩, 레이블 인코딩, 카운트 인코딩, 대상 인코딩
- 원-핫 인코딩: 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 다른 인덱스에는 0을 부여하는 방식
- 레이블 인코딩: 범주형 변수의 문자열을 수치형으로 변환하는 방식
- 카운트 인코딩: 각 범주의 개수를 집계한 뒤 그 값을 인코딩하는 방식
- 대상 인코딩: 범주형 자료의 값들을 훈련 데이터에서 목표에 해당하는 값으로 바꿔주는 방식 (원-핫 인코딩의 변수의 값이 많아지는 문제를 해결)
4. 변수 변환 - 박스-콕스 변환 / 비닝 / 정규화
- 분석을 위해 불필요한 변수를 제거하고, 변수를 반환하며, 새로운 변수를 생성시키는 작업
- 변수들이 선형관계가 아닌 로그, 제곱, 지수 등의 모습을 보일 때 변수 변환을 통해 선형관계로 만들면 분석 용이
(1) 박스-콕스 변환 (Box-Cox Trasnforamtion)
- Box와 Cox에 의해 소개
- 데이터를 정규분포에 가갑게 만들기 위한 목적으로 사용하는 변환 방법
- 선형회귀모형에서 정규성 가정이 성립한다고 보기 어려울 경우에 종속변수를 정규분포에 가깝게 변환시키기 위하여 사용하는 기법
(2) 비닝(Binning)
- 데이터 값을 몇 개의 Bin(혹은 Bucket) 으로 분할하여 계산하는 방법
- 데이터 평활화에서도 사용되는 기술이며, 기존 데이터를 범주화하기 위해서도 사용
※ 데이터 평활화(Smoothing): 데이터로부터 잡음을 제거하기 위해 데이터 추세에 벗어나는 값들을 변환하는 기법
(3) 정규화
- 데이터를 특정 구간으로 바꾸는 척도법
- 최소-최대 정규화: 모든 변수에 대해 최솟값은 0, 최댓값은 1로, 최솟값 및 최댓값을 제외한 다른 값들은 0과 1 사이의 값으로 변환하는 방법 (모든 변수의 스케일이 같지만 이상값에 영향을 많이 받음)
- Z-점수 정규화: 변수의 값이 평균과 일치하면 0으로 정규화되고, 평균보다 작으면 음수, 크면 양수로 변환하는 방법 (이상값은 잘 처리하지만, 정확히 같은 척도로 정규화된 데이터를 생성하지 못함)
- 분위수 정규화: 여러 집단의 분포를 완전히 동일하게 만드는 방법 (비교하려는 샘플들의 분포를 완전히 동일하게 만들고 싶을 때 사용 / 고차원의 데이터를 분석할 때 사용 / 집단 간 같은 개수의 데이터를 가져야 함)
5. 불균형 데이터 처리 - 과소 표집 / 과대 표집 / 임곗값 이동 / 비용 민감 학습 / 앙상블 기법
- 탐색하는 타깃 데이터의 수가 매우 극소수인 경우 처리
- 클래스가 불균형한 훈련 데이터를 그대로 이용할 경우 과대 적합 문제 발생 가능
- 불균형 데이터 처리 기법: 과대 표집, 과소 표집, 임곗값 이동, 앙상블 기법 등
- 불균형한 데이터는 성능 평가를 위해 혼동 행렬의 정밀도, 재현율, F1 지표, AUC 를 활용
(1) 과소 표집 (Uunder-Sampling)
- 다수 클래스의 데이터를 일부만 선택하여 데이터의 비율을 맞추는 방법
- 데이터의 소실이 매우 크고, 때로는 중요한 정상 데이터를 잃을 수 있음
- 대표적인 기법: 랜덤 과소 표집, ENN, 토멕 링크 방법, CNN, OSS 등
기법 | 설명 |
랜덤 과소 표집 | 무작위로 클래스 데이터의 일부만 선택 |
ENN (Edited Nearest Neighbor) | 소수 클래스 주위에 인접한 다수 클래스 데이터를 제거하여 데이터의 비율을 맞추는 방법 |
토멕 링크 방법 | 다수 클래스에 속한 토멕 링크를 제거하는 방법 (토멕 링크: 클래스를 구분하는 경계선 가까이에 존재하는 데이터) |
CNN (Condensed Nearest Neighbor) | 다수 클래스에 밀집된 데이터가 없을 때까지 데이터를 제거하여 데이터 분포에서 대표적인 데이터만 남도록 하는 방법 |
OSS (One Sided Selection) | 토멕 링크 방법과 CNN 기법의 장점을 섞은 방법 (다수 클래스의 데이터를 토멕 링크 방법으로 제거한 후 CNN을 이용하여 밀집된 데이터 제거) |
(2) 과대 표집(Over-Sampling)
- 소수 클래스의 데이터를 복제 또는 생성하여 데이터의 비율을 맞추는 방법
- 정보가 손실되지 않는다는 장점 / 과적합을 초래할 수 있다는 단점
- 알고리즘의 성능은 높으나 검증의 성능은 나빠질 수 있음
- 대표적인 기법: 랜덤 과대 표집, SMOTE, Borderline-SMOTE, ADASYN 등
기법 | 설명 |
랜덤 과대 표집 | 무작위로 소수 클래스 데이터를 복제하여 데이터의 비율을 맞추는 방법 |
SMOTE (Synthetic Minority Over-Sampling Technique) | 소수 클래스에서 중심이 되는 데이터와 주변 데이터 사이에 가상의 직선을 만든 후, 그 위에 데이터를 추가하는 방법 |
Borderline-SMOTE | 다수 클래스와 소수 클래스의 경게선에서 SMOTE 를 적용하는 방법 |
ADASYN (ADAprtive SYNthetic) | 모든 소수 클래스에서 다수 클래스의 관측비율을 계산하여 SMOTE를 적용하는 방법 |
(3) 임곗값 이동
- 임곗값을 데이터가 많은 쪽으로 이동시키는 방법
- 학습 단계에서는 변화 없이 학습하고 테스트 단계에서 임곗값 이동
(4) 비용 민감 학습
- 소수 클래스에 높은 가중치를 부여하는 방법
- 과소 표집처럼 데이터를 일부만 선택하거나, 과대 표집처럼 데이터를 생성하지 않음
(5) 앙상블 기법
- 같거나 서로 다른 여러 가지 모형들의 예측/분류 결과를 종합하여 최종적인 의사 결정에 활용하는 기법
- 앙상블 알고리즘은 여러 개의 학습 모델을 훈련하고 투표 및 평균을 통해 최적화된 예측을 수행하고 결정
- 주어진 자료로부터 여러 개의 예측 모형을 만든 후 예측 모형들을 조합하여 하나의 최종 예측 모형을 만드는 방법
- 다중 모델 조합, 분류기 조합 등
- 과소 표집, 과대 표집, 임곗값 이동을 조합하여 앙상블 생성 가능
이전글
다음글
'자격증 > 빅데이터분석기사' 카테고리의 다른 글
[빅데이터 분석기사] 2과목 빅데이터 탐색(2-1-2) (0) | 2024.03.13 |
---|---|
[빅데이터 분석기사] 2과목 빅데이터 탐색(2-1-1) (0) | 2024.03.12 |
[빅데이터 분석기사] 2과목 빅데이터 탐색(1-1) (4) | 2024.03.12 |
[빅데이터 분석기사] 1과목 빅데이터 분석 기획 (3-2) (0) | 2024.03.12 |
[빅데이터 분석기사] 1과목 빅데이터 분석 기획 (3-1-3) (0) | 2024.03.12 |