인공지능/머신러닝

[ML Algorithm] label encoding 과 one hot encoding

RosyPark 2019. 10. 6. 20:46

1.  label encoding

- 단순하게 레이블링 해주는 것 

- 하지만 머신러닝시 가중치로 되어 데이터 정확도에 혼선을 줄 수 있음 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from sklearn.preprocessing import LabelEncoder
import pandas as pd
import numpy as np
 
array = np.array([["paris","paris","seoul"],["newyork","paris","seoul"],["seoul","paris","paris"],["seoul","paris","paris"]])
df = pd.DataFrame(array, columns = ['A','B','C'])
print(df)
 
"""
         A      B      C
0    paris  paris  seoul
1  newyork  paris  seoul
2    seoul  paris  paris
3    seoul  paris  paris
"""
 
le = LabelEncoder().fit_transform(df['A'])
print(le)
 
"""
[1 0 2 2]
"""
 
cs

 

 

2. one-hot encoding 

- 1과 0으로 나타내는 방법 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from sklearn.preprocessing import OneHotEncoder
import pandas as pd
import numpy as np
 
array = np.array([["paris","paris","seoul"],["newyork","paris","seoul"],["seoul","paris","paris"],["seoul","paris","paris"]])
df = pd.DataFrame(array, columns = ['A','B','C'])
print(df)
 
"""
         A      B      C
0    paris  paris  seoul
1  newyork  paris  seoul
2    seoul  paris  paris
3    seoul  paris  paris
"""
data = np.array(df['A'])
data = data.reshape(-1,1)
le = OneHotEncoder().fit_transform(data)
print(le)
 
"""
  (0, 1)    1.0
  (1, 0)    1.0
  (2, 2)    1.0
  (3, 2)    1.0
 
"""
cs