Computing Indicator/Dummy Variables - get_dummies()
왜 더미 데이터를 만들까요?
머신러닝에 데이터를 넣기 위해서는 수치화가 필수입니다.
머신러닝은 월요일, 화요일 같은 문자열을 모르기 때문입니다.
만약에 월요일이 1이고, 화요일이 2, 수요일이 3이라고 가정해봅시다.
월요일과 화요일, 수요일은 그 어떤 연관성도 없지만, 이를 수치화하면 1 + 2 = 3이라는 연관성이 생기게 됩니다.
월요일 + 화요일 = 수요일? 원래 데이터는 전혀 연관성이 없는데도 불구하고, 이를 수치화 시키면 연관성이 생겨버리게 됩니다.
이때 더미 데이터를 만듬으로써 그러한 문제를 방지해줍니다.
즉 One-Hot Encoding을 하는 것과 마찬가지라고 보면 될 것 같습니다.
df = pd.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'b'],
'data1': range(6)})
pd.get_dummies(df['key'])
a b c
0 0 1 0
1 0 1 0
2 1 0 0
3 0 0 1
4 1 0 0
5 0 1 0
이처럼 a는 100, b는 010, c는 001이 됩니다.
이때 df는
df
key data1
0 b 0
1 b 1
2 a 2
3 c 3
4 a 4
5 b 5
dummies = pd.get_dummies(df['key'], prefix='key')
df_with_dummy = df[['data1']].join(dummies)
df_with_dummy
data1 key_a key_b key_c
0 0 0 1 0
1 1 0 1 0
2 2 1 0 0
3 3 0 0 1
4 4 1 0 0
5 5 0 1 0
쉽게 이해가 되시나요?