본문 바로가기
빅데이터분석기사

[빅분기] 4.2. 분석 변수 처리

by Point-Nemo 2025. 8. 20.

1. 변수의 종류

1) 범주형

a. 명목형: 각 범주 간의 순위가 없는 변수 (남/녀, 양성/음성)

b. 순서형: 각 범주 간의 순위가 있는 변수 (1등급/2등급, 상/중/하)

 

2) 수치형

a. 연속형: 측정값들이 서로 연속된 값을 갖는 변수 (키, 몸무게) 

b. 이산형: 변수가 취할 수 있는 값들을 셀 수 있는 변수 (아파트의 층 수, 회사의 직원 수)


2. 변수 선택

- 분석 모형에 가장 적절한 변수를 선택하는 과정

- 일반적으로 원시(raw) 데이터는 여러 가지 변수들로 측정된 데이터들이 섞여있기 때문에 모델에서 얻고자 하는 결과값에 크게 영향을 미치지 않는 변수들도 포함되어 있음

 

1) 필터 방법

- 모델링 기법에 의존하지 않고 데이터에 대한 통계적 특징을 이용해 변수를 선택하는 방법

- ex) 상관계수로부터 변수를 선택

- 0에 가까운 분산: 0에 가까운 분산을 갖는 변수 제거 

- 큰 상관 계수: 상관 계수가 큰 변수들을 제거하거나 서로 독립된 차원으로 변환

 

2) 래퍼 방법

- 변수의 일부만을 사용해 모델링을 수행하고 그 결과를 확인하는 작업

- 최고 피처 집합을 찾아가기 위해선 모델링이 여러번 수반되기에 시간이 오래 걸리며 과적합 위험이 있음

 

a. 회귀모델에서의 변수 선택 알고리즘

Forward Selection (전진 선택) 변수가 없는 상태로 시작해, 성능 향상이 없을 때까지 중요한 변수를 추가함
Backward Elimination (후진 제거) 모든 변수를 포함한 상태에서 가장 덜 중요한 변수를 반복하며 제거
Stepwise Selection (단계별 선택) 전직 선택 + 후진 제거의 결합, 모든 변수/아무것도 없는 모델에서 삭제 및 추가를 반복
Best Subset (최적조합 선택) 모든 경우의 모델을 비교해 최선의 모형을 찾는 방법 (부분집합 회귀분석)

 

3) 임베디드 방법

- 모델링 기법 자체에 변수 선택이 포함되어 있는 방법

라쏘 회귀 - 가중치 절대값의 합을 최소화하는 것을 제약조건으로 추가하는 회귀분석 기법
- 중요하지 않다면 가중치를 0으로도 둘 수 있음
- 변수 간 상관관계가 높다면 릿지에 비해 예측 성능이 떨어짐
릿지 회귀 - 가중치들의 제곱합을 최소화하는 것을 제약조건으로 추가하는 회귀분석 기법
엘라스틱넷 - 라쏘, 릿지를 결합한 방식
- 상관 관계가 큰 변수를 동시에 선택하거나 배제하는 특징

 


3. 차원 축소

1) 차원 축소 개념

- 수많은 변수들로 구성된 다차원 데이터 셋에서 변수의 개수를 줄임으로서 차우너을 축소하여 새로운 차원의 데이터를 만드는 것

- 변수가 너무 많을 때는 상대적으로 작은 차원에서 생성된 모형에 비해 예측력이 떨어질 수 있으며, 각각의 피처들끼리 상관성을 갖고 있을 가능성이 높아짐 (다중 공선성)

 

2) 차원 축소 유형

피처 선택 - 여러 변수들 가운데서 데이터의 특징을 가장 잘 나타내는 주요 피처만 선택하는 것
피처 추출 - 기존 변수들 간의 관계를 파악하여 선형/비선형 결합을 활용해 새로운 피처를 추출하는 것
- 기존의 변수들을 함축하는 피처로 변수들을 요약하여 줄이는 방법 (파생 변수)

 

3) 차원 축소 방법

다차원 척도법
(MDS)
- 데이터 속에 잠재해 있는 패턴, 구조를 찾아내어 소수 차원의 공간에 객체간 근접성을 시각화하는 통계 기법
- 개체들 사이의 유사성/비유사성을 측정한 후 개체들을 2차원 또는 3차원 공간 상에 점으로 표현하여 개체들 사이의 집단화를 시각적으로 표현하는 분석 방법
주성분 분석
(PCA)
- 분석 변수들을 선형적으로 결합하여 데이터를 가장 잘 표현할 수 있는 축을 찾아내고, 그 축을 중심으로 데이터의 차원을 축소해서 표현해주는 기법
- 주성분이라는 새로운 변수를 만들고, 제1주성분이 데이터의 가장 많은 부분을 설명함
- 변수 사이에 강력한 선형 관계가 존재하는 경우 유용함
- 다중회귀분석 및 군집분석에서 자주 이용됨
- 데이터의 분산을 가장 잘 설명하는 축을 찾음
선형 판별분석
(LDA)
- PCA와 유사하게 데이터를 저차원 공간에 투영해 차원을 축소
- 데이터가 서로 다른 군집으로 구성되어 있을 때 군집을 최대한 잘 구분할 수 있는 축을 찾고, 그 축을 중심으로 데이터를 2차원이나 3차원으로 축소해서 서로 다른 군집을 얼마나 분류할 수 있는지 알아볼 수 있게 표현
- 지도 학습의 분류 문제에서 사용할 수 있도록 각 클래스를 구분하는 기준을 최대한 유지하며 차원 축소
- 예측 변수 클래스를 가장 잘 구분할 수 있는 축을 찾음
요인분석 - 변수들 간의 상관관계를 고려하여 서로 유사한 변수들을 묶어 새로운 잠재 요인을 추출해내는 분석
- 도출된 요인들은 중요성을 가릴 수 없는 대등한 관계
특이값 분해
(SVD)
- 실수 또는 복합 행렬의 인수분해
- 실수 공간에서 정의된 m x n 차원의 행렬에서 특이값을 추출해 차원을 축소
- m x n 행렬은 m 차원의 벡터를 n 차원으로 변환시키는 것으로, m > n이면 차원을 축소한다는 것
t-SNE - 데이터에서 지역 인접성을 보존하려고 시도하는 차원 축소 알고리즘
- 비선형적이며 비결정적
- 2D, 3D 투영을 계산할 때 이용 가능
- 다른 방법이 놓칠 수 있는 구조를 찾을 수 있지만 데이터셋이 매우 큰 경우 어려울 수 있음
서포트 벡터 머신
(SVM)
- 가로축의 분석 차원이 많더라도 차원 축소 기법을 활용해 2차원이나 3차원으로 축소시킨 후 분석 결과를 그래프로 제공하므로, 분류가 잘 되었는지 직관적으로 파악 가능
- 비선형 관계가 있는 변수 간에도 사용 가능

 

4) 차원 축소 장점

- 차원 축소를 수행하면 데이터의 양이 줄어 시간 복잡도와 공간 복잡도가 줄어듦

- 변수들 간의 상관성을 고려하여 데이터의 차우너을 줄이면 학습 모델이 간단해지고 안정적인 결과가 나옴

- 노이즈를 제거하고 메모리를 절약할 수 있음


4. 파생변수 생성

1) 파생변수

- 사용자가 특정 조건을 만족하거나 특정 함수에 의해 값을 만들어 의미를 부여한 변수

 

2) 요약변수

- 수집된 정보를 분석에 맞게 종합한 변수

- 쇼핑몰에서 기간별 구매 금액이 특정 금액 이상이면 구매한다고 분류할 수 있지만, 이 때 그 기준값인 금액에 대한 의미 해석은 애매할 수 있음


5. 변수 변환

1) 변수의 구간화

- 데이터에 개입된 노이즈를 제거하기 위해서는 연속형 변수를 다수의 구간으로 나누고, 동일한 구간에 속하는 변수 값들을 하나의 변수값으로 변환하는 구간화 기법이 사용될 수 있음

- 5개 구간으로 나누는 게 일반적

 

a. 의사결정나무

- 의사결정나무의 분리 기준값을 구간화 기준으로 삼을 수 있음

 

2) 정규분포화

- 데이터가 정규 분포를 따르지 않을 경우 변수 변환을 고려할 수 있음

- 로그 변환, 제곱근 변환, 역변환 등의 방법을 사용하여 데이터를 변환

- 제곱근 변환은 오른쪽으로 긴 꼬리를 갖는 분포에서 유용

- 박스-콕스 변환도 정규성을 요구하는 분석 방법 시에 변수 변환 용으로 사용 (람다 값에 따라 형태가 다름)


6. 불균형 데이터 처리

1) 데이터 불균형

- 분류 집단끼리의 데이터 수가 동일하지 않은 경우를 의미

 

2) 오버 샘플링

- 더 작은 수의 데이터를 가지고 있는 집단을 큰 수의 데이터를 가지고 있는 집단의 수와 맞추는 것

- 시간이 더 걸리거나 과적합 단점이 있음

 

a. Resampling

- 더 작은 수의 관측치를 가지고 있는 집단의 데이터를 복사하여 수를 늘리는 방법

- 똑같은 데이터를 그대로 복사하기 때문에 과적합 발생 가능성이 높음

 

b. SMOTE

- 더 작은 수의 관측치를 가지고 있는 집단의 데이터들과 일정한 거리를 가진 가상의 데이터를 생성하여 오버샘플링

- KNN 알고리즘을 사용

 

c. Boderline SMOTE

- 서로 다른 클래스 간의 경계선에서 SMOTE를 적용

- 특정 분포에만 중복적으로 데이터를 생성하는 SMOTE를 개선 (다른 클래스의 데이터 영역까지 데이터 생성)

 

d. ADASYN 

- Boderline SMOTE와 유사하지만, 데이터의 위치에 따라 샘플링 개수를 다르게 설정

 

3) 언더 샘플링

- 더 많은 수의 데이터를 가지고 있는 집단을 작은 수의 데이터를 가지고 있는 집단의 수와 맞추는 것

- 데이터를 잃거나 정보가 손실된다는 단점 (but, 계산 시간이 줄어드는 장점)

 

a. 랜덤 언더 샘플링

 

b. Tomek Links

- 클래스를 구분하는 경계선 가까이에 존재하는 데이터 즉, 서로 다르게 분류되지만 가까이에 붙어있어 유사한 한 쌍의 데이터를 제거하는 기법

 

c. CNN

- 더 많은 수의 데이터를 가지고 있는 관측치들 중 밀집된 데이터를 제거

 

d. OSS

- 토멕링크와 CNN의 장점을 섞은 방법, 토멕링크를 통해 분류 경계 근처에 있는 다수 집단의 데이터를 제거하고, CNN을 통해 다수 집단 내에서 근접한 데이터를 제거함