Python 튜토리얼

Lv3 전처리 3/4 python 파이썬 수치형 데이터 정규화

2021.07.22 12:15 6,075 Views

이번 시간에는 “수치형 데이터 정규화”에 대해서 진행합니다.


의사결정 나무나, 랜덤포레스트 같은 “트리 기반의 모델”들은 대소 비교를 통해서 구분하기 때문에, 숫자의 단위에 크게 영향을 받지 않습니다.

하지만 Logistic Regression, Lasso 등과 같은 “평활 함수 모델”들은 숫자의 크기와 단위에 영향을 많이 받습니다.


따라서 우리는, 수치형 데이터 정규화를 통해 모든 모델에 잘 어울리는 데이터를 만들어주고자 합니다.


다양한 수치형 데이터 정규화 방법 중에서, "Min Max Scailing"기법은 상당히 간단합니다.

가장 작은 값은 0으로, 가장 큰 값은 1로 만들어주는 방법입니다.

그리고 그 사이의 값들은 비율에 따라서 0~1 사이에 분포하게 됩니다.


이제 실습을 해봅시다.


-------------------------------------------------------------------------------------------------------------------------

# describe를 통해 "fixed acidity"의 데이터의 분포가 어떻게 생겼는지 짐작해 보세요

train.describe()


# seaborn의 displot을 통해 "fixed acidity"의 distplot을 그려 봅시다.

sns.distplot(train['fixed acidity'])


# MinMaxScaler를 "scaler"라는 변수에 지정해 봅시다.

scaler = MinMaxScaler()


# "scaler"를 학습시켜주세요

scaler.fit(train[['fixed acidity']])


# "scaler"를 통해 train의 "fixed acidity"를 바꾸어 "Scaled fixed acidity"라는 column에 저장해주세요

train['Scaled fixed acidity'] = scaler.transform(train[['fixed acidity']])


# seaborn의 displot을 통해 "Scaled fixed acidity"의 distplot을 그려보세요

sns.distplot(train['Scaled fixed acidity'])

-------------------------------------------------------------------------------------------------------------------------


하지만, 오늘 다루었던 Min Max Scaling은 "이상치"에 민감합니다.

상대적으로 굉장히 큰 값이나, 작은 값을 1이나 0으로 만들기 때문에 문제가 발생할수도 있습니다.

이상치를 처리하는 방법은 이전 시간에 배웠으니, 직접 이상치가 있는 데이터는 제거하고 그림을 그려보는 실습도 해보세요 :)



[Colab 실습 링크]


↩️ 오늘의 파이썬 리스트

#데이콘_101 #AI #머신러닝 #딥러닝 #파이썬 #파이선  #데이터분석 #데이터사이언티스트 #코랩 #Python  #colab #kaggle #pandas #numpy #sckit-learn # read_csv #스케일링 #MinMaxScailing

로그인이 필요합니다
0 / 1000
세라자데
2021.09.02 16:28

done

그린티
2021.09.08 14:58

done

DSJY
2021.09.13 16:43

phu
2021.09.13 21:51

매미인턴
2021.09.15 15:57

다욤
2021.09.19 00:44

Holte
2021.09.30 16:07

changhyeon
2021.10.08 17:44

done

왼쪽눈썹왁싱
2021.10.31 09:53

coddinggoldfish
2021.11.17 17:36

yulia.
2021.11.24 16:31

moran
2021.12.27 16:20

도톤
2021.12.27 17:35

dbnoid
2022.01.18 19:26



hijihyo
2022.01.21 16:28

done

djffjdEndEkd
2022.01.28 18:59

done

호랭이띠
2022.01.29 19:07

done

하랴랴
2022.02.28 18:14

done

ChimChim
2022.03.05 23:48

acebed
2022.03.10 18:00

done

kimgugu
2022.03.27 10:55

비회원
2022.04.05 17:46

Kdata
2022.04.19 09:37

krooner
2022.05.19 15:13

khloee
2022.05.26 15:08

jaka
2022.06.19 01:53

48hour
2022.07.01 17:03

# "scaler"를 학습시켜주세요

scaler.fit(train[['fixed acidity']])

여기서 대괄호가 두번들어가는 이유는 무엇인가요??

sienna
2023.11.14 16:21

Series type을 DataFrame으로 변경해서 스케일링 해야 하기 때문입니다.

Y2J
2022.07.07 16:53

간지나는패션
2022.08.12 16:14

done

김시옷
2022.09.22 00:58

skanehfud279
2022.09.26 13:57

baeksh0330
2022.10.02 17:17

엿장수
2022.10.12 01:16

gnt0000
2022.10.30 21:18

done

sk100
2022.11.01 22:37

done

yun_
2022.11.14 20:05

done

savvyall
2022.11.30 15:41

done

히히로켓발사
2022.12.29 01:04

highllight
2023.01.16 15:48

김시옷
2023.05.29 00:22

done+