【发布时间】:2020-10-30 14:43:36
【问题描述】:
我有多个类别的分类问题,比如 A、B、C 和 D。我的数据有以下 y 标签:
y0 = [['A'], ['B'], ['A','D'], ['A'], ['A','C','D'], ['D'], ..., ['C'], ['A','B','C','D'] , ['B']]
我想在这些标签上训练一个随机森林分类器。首先,我需要对标签进行编码。我第一次尝试LabelEncoder:
from sklearn.preprocessing import OneHotEncoder, LabelEncoder
le = LabelEncoder()
le.fit_transform(y0)
# encoded labels: array([0, 1, 2, 0, 3, 4, ... 5, 6, 1], dtype=int64)
我也试过OneHotEncoder,但显然LabelEncoder 和OneHotEncoder 都不能在这里工作。问题是我无法使用多个类标签(例如['A','B','C'])对数据进行编码。我想这些琐碎的编码方法不是这里的方法,那么编码我的类标签的最佳方法是什么?为了澄清,我不想对待例如['A','B'] 与 ['A'] 或 ['B'] 完全不同。我希望它是一个不同的类,但同时仍继承 A 类和 B 类的特性。
【问题讨论】:
标签: python machine-learning encoding scikit-learn one-hot-encoding