【发布时间】:2019-02-04 07:50:55
【问题描述】:
我正在尝试使用带有 onehot 标签的 Python 创建机器学习功能。原始数据假设为 element_1、element_2、element3... 的值如 apple、banana、kiwi...
element_1 element_2 element_3
1. apple banana kiwi
2. apple
3. banana kiwi
4. kiwi apple
我想要做的就是把这些新的功能变成一个热门的
apple banana kiwi
1. 1 1 1
2. 1 0 0
3. 0 1 1
4. 1 0 1
谢谢。
尝试过的方法会创建比需要更多的列,例如 element1_apple、element1_banana、...、element2_apple...
Y = TrainDF.loc[:,['ele_1','ele_2','ele_3','ele_4']] Y1 = pd.DataFrame(columns=Y.columns, data=le2.fit_transform(Y.values.flatten()).reshape(Y.shape))
Y2 = onehot1.fit_transform(Y1)
感谢您的评论。该项目的目标是预测如何通过混合元素及其单独数量 (%)(最少 1 个和最多 4 个元素)来获得某些特征。元素输入有四列和大约 50 种类型的元素。假设如果需要一个 RGB 值 (100,50,150),则需要 A 元素 5% + D 元素 8% 的输入。标签编码和onehot编码还没有很好的结果。我正在整理数据,以便训练的输出如下所示。
apple banana kiwi
1. 1 2 1
2. 3 0 0
3. 0 1 5
4. 1 0 1
【问题讨论】:
-
请向我们展示您最近尝试的代码。
-
这不完全是 one-hot 编码。 One-hot 编码采用分类信息,您实际上只是在说 TRUE FALSE TRUE,这很好,但如果您将其视为 one-hot 而不是布尔信息,您可能会根据您尝试拟合的模型得到意想不到的结果.
标签: python scikit-learn