对于顺序无关紧要的字符串功能,get dummies 或 oneHotEncoder 哪个更好?
例如,在这个 pandas 数据框上:
df_with_cat = pd.DataFrame({'A': ['ios', 'android', 'web', 'NaN', 'ios','ios', 'NaN', 'android'], 'B' : [4, 4, 'NaN', 2, 'NaN', 3, 3, 'NaN']})
df_with_cat.head()
A B
---------------
0 ios 4
1 android 4
2 web NaN
3 NaN 2
4 ios NaN
5 ios 3
6 NaN 3
7 android NaN
我知道现在为了处理它们(输入缺失值等),我必须对它们进行编码,如下所示:
from sklearn.preprocessing import LabelEncoder
df_with_cat_orig = df_with_cat.copy()
la_encoder = LabelEncoder()
df_with_cat['A'] = la_encoder.fit_transform(df_with_cat.A)
输出:
df_with_cat.head(10)
A B
-----------
0 2 4
1 1 4
2 3 NaN
3 0 2
4 2 NaN
5 2 3
6 0 3
7 1 NaN
但现在似乎有一些顺序 0-3 但事实并非如此......'ios' ->2
不一定大于'android' ->1