머신러닝

[머신러닝] scaling

전감자(◔◡◔) 2022. 10. 22. 22:38

https://vinyee.tistory.com/81

 

[머신러닝] 사이킷런(sklearn) 내장데이터 샘플 가져오기 붓꽃데이터

df_setosa=df[df['species_name']=='setosa'] df_versicolor=df[df['species_name']=='versicolor'] df_virginica=df[df['species_name']=='virginica'] df_setosa df_virginica df_versicolor​ iris.feature_nam..

vinyee.tistory.com

 

 

지난 글에서 머신러닝 sklearn 패키지에 내장된 붓꽃 데이터를 데이터 프레임으로 가져오는 

실습을 했었다. (위 링크 참고)

이번 글에서는 scaling 이라는 개념에 대해서 알아보자 

 

 

Scaling 

단위 변환



Scaling 이란 쉽게말하자면 단위 변환같은 개념이라 할 수 있다. 

머신 러닝에서는 주어진 x 값과 y 값의 상관관계를 그래프에 나타내어 

다양한 알고리즘 모델을 적용해 회귀, 분류 등의 지도학습이 이루어지는데 이 때 학습된 데이터를 

바탕으로 새로운 데이터에 대한 예측, 평가를한다. 

 

 

이것을 가장 잘 보여주는 대표적인 예시로 K-NN 알고리즘 모델을 살펴보자 

k-NN 알고리즘 모델이란 기술적으로 예측을 위해 모델을 훈련하지 않고 대신 가장 가까운 k 개의 샘플에서 다수의 클래스를 그 샘플의 클래스로 예측한다. 즉, 어떤 데이터가 주어지면 그 주변(이웃)의 데이터를 살펴본 뒤 더 많은 데이터가 포함 되어 있는 범주로 분류하는 방식이다.

 

 

문제는 y 좌표의 단위가 다를 때 다음과 같이 결과가 다를 수 있다는 거다

출처 : 엔코아 플레이데이터

 

따라서 모델에 데이터를 적용시 서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작업인 Scaling 이란 것이 

필요한 것이다 . 

Scaling 에는 평균이 0, 표준편차가 1인 정규분포를 따르게 만드는 표준화,

0~1 사이 값만을 가지게 하는 정규화 2가지가 있다. 

 

 

 

붓꽃 데이터프레임에 적용한 표준화 전 데이터의 평균과 분산은 다음과 같다 

 

표준화, 정규화 후 평균과 분산, 최대, 최소값