如何使用具有不同特征维度的数据集训练 sklearn 分类器?

How to train a sklearn classifier with a dataset that has varying feature dimension?

我有一个这种类型的数据集。

Ingredient_A | Ingredient_B | Ingredient_C | Ingredient_D | Meal
------------------------------------------------------------------
   Bread     |   Butter     |       -      |       -      | buttered bread
   Avocado   |   Tomato     |     Garlic   |       -      | Guacamloe

我想用它训练一个 sklearn 决策树分类器,但我不知道如何处理我的数据集的不同特征维度。理想情况下,我希望忽略空单元格。我考虑过用 nan 替换空单元格,但 sklearn 不接受 nan。有没有办法在 sklearn 中使用这样的数据集?

您应该将数据编码为这样的向量:

(Avocado, Bread, Butter, Garlic, Tomato)
(0,1,1,0,0) = 'Buttered Bread'
(1,0,0,1,1) = 'Guacamloe'

向量中的每个元素代表特定成分的存在。您可以将这种格式的数据直接输入任何分类器,并且您不会遇到隐式排序问题。