끄적이는 기록일지

[머신러닝] 02.데이터 전처리_(3) 수치형 자료 본문

AI실무

[머신러닝] 02.데이터 전처리_(3) 수치형 자료

시시나브로 2021. 9. 14. 15:39
728x90
 

[머신러닝] 1.자료형태_(3) 수치형 자료

[머신러닝] 1.자료형태_(2) 범주형 자료 [머신러닝] 1.자료형태_(1) * 머신러닝 : 데이터 자료를 바탕으로 수행하는 분석방식 → 자료의 형태를 파악하는 것은 머신러닝의 필수 과정이라 할 수 있습

kcy51156.tistory.com

지난 글에서 수치형 자료에 대해 알아보았습니다. 이번 시간에는 수치형 자료를 어떻게 하면 더 좋은 데이터를 만들 수 있는지에 대해 알아보겠습니다.

1. 수치형 자료

- 크기를 갖는 수치형 값으로 이루어진 데이터

- 바로 사용이 가능하나 모델 성능을 높이기 위해서 데이터 변환이 필요

2. 수치형 자료 변환 방식

1) 스케일링(Scaling): 정규화, 표준화

- 변수 값의 범위 및 크기를 변환하는 방식

- 변수 간의 범위 차이가 나면 사용

 

① 정규화(Normalization) : 변수 X를 정규화하면 값 X'

0과 1 사이의 값으로 변함

- 0~100사이라면, 1-0 / 100-0 = 0.01

② 표준화(Standardization) : 변수 X를 표준화한 값 X'

평균u = 0 표준편차σ = 1
약 -2~ 2사이로 변환된 걸 볼 수 있다.

2) 범주화

- 대표적으로 회귀분석에서 분류 분서그로 문제를 변형하고 싶을 때 사용

점수 예측이 아닌 평균을 넘었는지 못 넘었는지 판단

3. 실습

titanic.csv
0.06MB

* 수치형 자료 : 다른 수치형 자료와 범위를 맞추기 위해 정규화 또는 표준화를 수행


1. normal 함수를 완성하고 Fare 데이터를 정규화하여 Fare에 저장합니다.

import pandas as pd

"""
1. 정규화를 수행하는 함수를 구현
min(), max() 메서드 이용
"""
def normal(data):
    
    data = (data-data.min())/(data.max()-data.min())
    
    return data

# 데이터를 읽어옵니다.
titanic = pd.read_csv('titanic.csv')
print('변환 전: \n',titanic['Fare'].head())

# normal 함수를 사용하여 정규화합니다.
Fare = normal(titanic['Fare'])

# 변환한 Fare 데이터를 출력합니다.
print('\n변환 후: \n',Fare.head())



>>> 변환 전: 
 0     7.2500
1    71.2833
2     7.9250
3    53.1000
4     8.0500
Name: Fare, dtype: float64

변환 후: 
 0    0.014151
1    0.139136
2    0.015469
3    0.103644
4    0.015713
Name: Fare, dtype: float64

2. standard 함수를 완성하고 Fare 데이터를 표준화하여 Fare에 저장합니다.

import pandas as pd

"""
1. 표준화를 수행하는 함수를 구현
mean()평균, std()표준편차 메서드를 사용
"""
def standard(data):
    
    data = (data-data.mean())/data.std()
    
    return data
    
# 데이터를 읽어옵니다.
titanic = pd.read_csv('titanic.csv')
print('변환 전: \n',titanic['Fare'].head())

# standard 함수를 사용하여 표준화합니다.
Fare = standard(titanic['Fare'])

# 변환한 Fare 데이터를 출력합니다.
print('\n변환 후: \n',Fare.head())



>>> 변환 전: 
 0     7.2500
1    71.2833
2     7.9250
3    53.1000
4     8.0500
Name: Fare, dtype: float64

변환 후: 
 0   -0.502163
1    0.786404
2   -0.488580
3    0.420494
4   -0.486064
Name: Fare, dtype: float64

 

728x90
Comments