데이터 변환 - 구간화, 정규화

hisungmi·2024년 8월 16일
0

KT Aivle

목록 보기
11/23
post-thumbnail

데이터 변환(Transformation)

  • 여러 형태로 표현된 데이터 값을 다양한 분석 방법론에 적용하기 위해 원시 형태에서 다른 형식으로 바꾸는 과정

    주어진 목적 기반의 올바른 결과 획득을 위하여 원시 데이터를 데이터 분석에 용이하도록 형태 변환

변환 목적 및 특징

빠른 특성 파악분석 알고리즘 적용
데이터의 특성을 빠르게 파악 가능변수 간 범위가 다를 경우 알고리즘 적용 시 영향력의 차이가 발생함
파생 변수 생성 및 단순화를 통한 결과 리포팅 등 활용올바른 학습을 위해 다른 범위를 지닌 변수들의 변환 필요

구간화(Binning)

  • 연속형 데이터를 구간으로 구별하여 범주화 형태 변환
지정 길이 기반 구간 정의분포 기반 구간 정의
사용자 기준으로 데이터 범위의 간격을 구분하여 관측치를 나누는 방안관측치가 각 구간 내 동일한 개수로 구분되도록 나누는 방안

정규화(Normalization)

  • 데이터 탐색 및 기계학습 적용을 위한 연속형 변수 변환
최대-최소 정규화Z-점수 정규화
- 데이터 구간을 0~1사이로 변환
- 특정 데이터의 위치 파악
- 0을 중심으로 양쪽으로 데이터 분포시킴
- 특정 데이터가 평균과 얼마나 떨어져 있는지 파악

구간화

구간화 방안
1. 지정 길이 기반 구간
2. 분포 기반 구간
click_copy.descrie() #데이터 기술통계량 확인
#지정 길이 기반 구간화
#클릭 수 기반으로 기사 관심도 정의 기반 범주형 변환 - 3개구간설정

#cut 함수
bins = [0, 100, 500, np.max(click_copy['num_click'])]
names=[ , , ]
click_copy['pref'] = pd.cut(click_copy['num_click'], bins, labels=names)

#구간결과확인
click_copy['pref'].value_cunts()
click_copy.head(15)

#분포 기반 구간화
#qcut 함수 - 동일한구간 분할, 구간수로 나누게됨 / 구간수 = n
n = 3
click_copy['pref_qcut'] = pd.qcut(click_copy['num_clik'], n, labels=names)
print(click_copy['pref_qcut'].value_counts())
qcut 실행시 발생하는 오류
- 데이터가 극단치의 Skewed한 경우 발생
- 데이터의 각 구간은 동일할 수 없을때
- qcut 보다 사용자 기준 기반 범주화 or 구간 개수 변화 고려

정규화

기계학습 알고리즘의 각 변수 별 영향력의 차이를 조정할 필요 존재함
- 각 변수 별 범위가 다를 경우 학습 안정성이 떨어질 수 있으므로 간격 조정 필요
1. 최대-최소 정규화
2. z-score 정규화
#최대-최소 정규화
#변수 값을 0~1의 값으로 변환 - sklearn 라이브러리

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()

#데이터 copy
#변환
click_copy['minmax_values'] = scaler.fit_transform(click_copy[['num_click']])
click_copy.head(15)
#요약
click_copy.describe()

#z-score 정규화
#변수를 평균이 0, 표준편자 1인 표준정규분포로 변환 - sklearn 라이브러리
from sklearn.preprocessing import StandardScaler
std_scaler = StandardScaler()

#변환
click_copy['std_values'] = std_scaler.fit_transform(click_copy[['num_click']])
click_copy.head(15)

어느 방안이 더 나은가?

  • 상황에 따라 다름, 정규화 수행과 수행하지 않은 결과의 차이가 큰 것이 중요함
  • 연속형 데이터를 기계학습 모델링에 적용하기 위해서 변수 간의 상대적 크기 차이를 제거할 필요가 존재함
profile
난 성미다.

0개의 댓글