[파이썬] 데이터변형 | 정규화와 표준화
2020. 4. 14. 11:08ㆍ노트/Python : 프로그래밍
- 변수들 간 척도가 다른 경우 데이터 표준화
- 모집단 : 전체집단, 모집단에서 표본을 추출
- 표본집단 : 평균, 표준편차, ... -> 통계량
- 모수적 방법 :
중심극한정리 : 무작위로 복원추출하면, 연속형 자료의 평균에 대한 분포는 정규분포를 띈다.
- 가정 : 30개 이상의 표본의 경우에 정규분포를 따른다.
- 비모수적 방법 :
- 10개 미만의 표본의 경우에는 모수적 방법을 사용하지 못함.
- 자료를 크기로 나열 -> 순위 매김 -> 차이 비교
표준화 = $ {(각 데이터-평균(각 열)) \over 표준편차(각 열)}$
평균까지의 거리로, 2개 이상의 대상이 단위가 다를때, 대상 데이터를 같은 기준으로 볼수있게 해줌
모집단이 정규분포를 따르는 경우에 $N(0,1)$ 인 표준정규분포로 표준화 하는 작업
1) numpy
2) scipy.stats. zscore
3) sckit-learn preprocessing
예제 데이터 생성
import numpy as np
from numpy import *
data=np.random.randint(30 , size=(6,5))
data
>>> array([[ 4, 18, 4, 12, 17],
[ 1, 26, 15, 28, 21],
[ 6, 19, 28, 27, 18],
[ 9, 13, 27, 8, 20],
[18, 8, 3, 13, 13],
[ 4, 26, 11, 19, 0]])
1. numpy를 이용한 표준화
print(data)
print("="*30)
std_data = (data - np.mean(data,axis = 0))/ np.std(data,axis = 0)
print(std_data)
2. zscore을 이용한 표준화
import scipy.stats as ss
data_ss=ss.zscore(data)
print(data_ss)
3. sckit-learn preprocessing 을 이용한 표준화
import sklearn
from sklearn.preprocessing import *
ss_data=StandardScaler().fit_transform(data)
print(ss_data)
정규화 = $ {(각 데이터-최솟값(각열) ) \over (최댓값(각열) - 최솟값(각열)}$
전체구간을 0~100으로 설정하여 데이터를 관찰하는방법,
특정데이터의위치를확인할수있게해줌
0~1사이의 범위로 데이터를 표준화
1) 수식 입력
2) 객체 생성 MinMaxScaler()
1. 수식을 통한 정규화
data_mm = (data - data.min(axis = 0)) / (data.max(axis = 0) - data.min(axis = 0))
print(data_mm)
2. sklearn.preprocessing 을 통한 정규화
data_ms=MinMaxScaler().fit_transform(data)
print(data_ms)
'노트 > Python : 프로그래밍' 카테고리의 다른 글
[텐서플로우] 로지스틱 회귀(Logistic Regression) 분류 파이썬 코드 (0) | 2020.04.16 |
---|---|
[텐서플로우] 선형회귀분석(Linear Regression) 기본 구조 파이썬 코드 (0) | 2020.04.14 |
[파이썬기초] 데이터 합치기(병합) (0) | 2020.04.13 |
[파이썬기초] 문자열(str) 데이터 다루기 (0) | 2020.04.13 |
[파이썬기초] 시계열 데이터 생성하기 (0) | 2020.04.13 |