https://www.w3schools.com/python/python_ml_scale.asp

 

Python Machine Learning Scaling

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

Scale Features

앞서 배웠던 Multiple Regression (다중 회귀)에서 사용한 차종의 크기와 무게에 따른 CO2 배출량 파일을 또 이용합니다.

cars2.csv
0.00MB

Scale은 서로 단위가 전혀 다른 두가지 수치 즉 크기값과 무게값을 CO2 배출량에 영향을 주는 정도의 기준에 따라 둘을 비교할 수 있도록 동일한 단위값으로 바꿔주는 것입니다.

다양한 방법이 있지만 여기서는 standardization(표준화) 방법을 사용합니다.

표준화의 공식은 다음과 같습니다.

 

z = ( x - u ) / s

z는 결과값이고 x는 입력값입니다. u는 평균값이고 s는 표준편차값입니다.

 

그래서 위 표의 무게 값에 대한 표준화 값을 찾아보면 다음과 같습니다.

(790 - 1292.23) / 238.74 = -2.1

 

그리고 마찬가지로 크기 열의 처음 1.0 역시 표준화 값을 찾아보면,

(1.0 - 1.61) / 0.38 = -1.59

 

이제 CO2 배출량에 대해서 크기와 무게를 비교할 수 있습니다.

 

파이썬의 sklearn 라이브러리에는 StandardScaler() 함수는 이러한 작업을 수행해 줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()
 
df = pandas.read_csv("cars2.csv")
 
= df[['Weight''Volume']]
 
scaledX = scale.fit_transform(X)
 
print(scaledX)
cs

위의 코드에 대해서 간단히 설명을 하면 csv파일을 불러온 크기와 무게 열에 대해서 X라는 변수로 pandas의 data frame화를 한 다음, 이를 StandardScaler()함수의 fit_transform(X)를 적용하여 출력하면 모든 크기 열과 무게 열에 대해서 표준화 수치를 알려줍니다.

 

Predict CO2 Values

앞서 Multiple Regression(다중 회귀) 챕터에서도 이를 이용하여 임의의 크기/무게 값을 입력하면 CO2 배출량을 확인할 수 있지만 이번 챕터의 Standardization을 이용해도 임의의 크기/무게 값에 따라 CO2배출량을 예측할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()
 
df = pandas.read_csv("cars2.csv")
 
= df[['Weight''Volume']]
= df['CO2']
 
scaledX = scale.fit_transform(X)
 
regr = linear_model.LinearRegression()
regr.fit(scaledX, y)
 
scaled = scale.transform([[23001.3]])
 
predictedCO2 = regr.predict([scaled[0]])
print(predictedCO2)
cs

실제 동일한 방법입니다. 실제 크기/무게값을 입력하든 표준화된 값을 입력하든 결과는 동일합니다.

 

+ Recent posts