728x90
*Integer Encoding
머신러닝에 데이터를 inpur하기 전에, 컬럼의 값을 모두 int 값으로 변경 해 주는 것이 좋다.
따라서, Row Data 상에 object 형태의 값(str 값)이 있는경우 int 값으로 대응할 수 있도록 mapping 하는것이 좋다.
DataFrame의 .replace() 함수를 이용하여 컬럼의 값을 원하는 형태로 변경 가능하다
ex) 숫자형 값을 문자형으로, 숫자형 값을 다른 숫자로
#YES/No 값을 0,1로 변경
df['Column'].replace({'No' : 0, "YES" :1}, inplace=True)
ex) 변경 하고싶은 값을 변경 :.replace()함수는 원하는 값을 일괄적으로 변경 할 때 편리하다
# 값을 변경하고 싶을 때
df.replace({1:100, 2:200}) #Dataframe 내의 1값은 100을고 2값은 200으로 변경됨
df.replace({'Column1': 1 , 'Column2' : 2}, 100) #Column1의 1값과 Colume2의 2값이 모두 100으로 변경
df.replace({'Column1' : {0:100, 1:200}}) #Comlumn1의 0값은 100으로 1값은 200으로 변경됨
Integer Encoding은 머신러닝 알고리즘으로부터 잘못된 경향성을 학습하게 될 수도 있다. (연산이 가능한 것처럼 보임)
*One-hot Coding
: 범주형(Categorical)값을 이진화된 값(Binary)값으로 바꿔서 표현하는 것을 의미
- 범주형 데이터를 해당 레이블을 나타내는 인덱스만 1의 값을 가지고 나머지 부분은 0의 값을 가진 Binary Value로 표현
- 머신러닝 알고리즘을 구현할 때 타겟 데이터를 One-hot Coding 형태로 표현하는 것이 일반적
<One-hot Encoding 구현하기>
import pandas as pd
pd.get_dummies(df)
ex)
728x90
'Machine Learning' 카테고리의 다른 글
[머신러닝] Artificial Neural Network(인공신경망, ANN) / 다중퍼셉트론, MLP (0) | 2021.11.15 |
---|---|
[머신러닝] 최적화 알고리즘 - 경사하강법(Gradient Descent) (0) | 2021.10.20 |
[머신러닝] Random Forest(랜덤 포레스트) (0) | 2021.10.02 |
[머신 러닝] Regression 알고리즘 (0) | 2021.09.02 |
[머신 러닝] 머신러닝 성능향상 - Feature Engineering (0) | 2021.09.02 |