sklearn 中的编码功能

数据挖掘 机器学习 scikit-学习 特征工程 编码 一热编码
2022-02-10 09:38:36

假设我有一个大小为 (10000, 45) 的数据集。数据集中的特征之一是 activity_type ,其中值从 1 到 15 不等,如下所示:

df = pd.read_csv('actTrain.csv')
df['activity_type'].head()

上述代码的输出如下:

0    1
1    1
2    2
3    1
4    3
Name: activity_type, dtype: int64

无论如何,使用 sklearn 中的 OneHotEncoder 对上述代码中的 activity_type 进行编码会改进模型吗?是否有必要对该功能进行编码?如果是,我应该选择哪一个:LabelEncoder 或 OneHotEnocder?

1个回答

LabelEncoder将字符串转换为整数,但您已经有了整数。因此,LabelEncoder 无论如何都不会帮助您。

Wenn,您正在使用带有整数的列,sklearn将其视为数字。这意味着,例如,1 和 2 之间的距离是 1,1 和 4 之间的距离是 3。你能对你的活动说同样的话吗(如果你知道整数的含义)?例如,“锻炼”、“工作”、“休息”、“休闲”之间的成对距离是多少?

如果您认为任何一对活动之间的成对距离为 1,因为它们只是不同的活动,那么OneHotEncoder您可以选择。