我正在尝试使用带onehot标签的Python创建机器学习功能。原始数据假设元素_1,元素_2,元素3 ...的值像苹果,香蕉,猕猴桃...
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))
感谢您的评论。该项目的目标是预测如何通过混合元素及其单个量(%)(最少1个元素和最多4个元素)来获得某些特性。有四列元素输入和大约50种元素类型。假设需要RGB值(100,50,150),则需要输入5%的元素+ 8%的D元素。标签编码和onehot编码效果不佳。我正在整理数据,因此用于培训的输出如下所示。
apple banana kiwi
1. 1 2 1
2. 3 0 0
3. 0 1 5
4. 1 0 1
答案 0 :(得分:0)
尝试:
pd.get_dummies(df.stack(), prefix=None, prefix_sep=None).sum(level=0)
输出:
apple banana kiwi
1. 1 1 1
2. 1 0 0
3. 0 1 1
4. 1 0 1