scikit-learn中多类问题的级联分类器



假设我有一个多类和典型的分层分类问题,例如"可食用"、"营养"和"~营养" - 所以它可以这样表示

├── edible
│   ├── nutritious
│   └── ~nutritious
└── ~edible
虽然使用支持多类分类的分类器

或对不支持多类分类的分类器使用一对一/所有方案可以获得合理的性能,但在每个级别单独训练分类器并连接它们也可能是有益的,以便分类为"可食用"的实例可以分类为nutritious或不分类。

我想使用 scikit-lean 估计器作为构建块,我想知道我是否可以让Pipeline支持这一点,或者我是否需要编写自己的估算器来实现基本估计器,并且可能需要BaseEnsemble这样做。

@ogrisel之前在邮件列表中提到过 http://sourceforge.net/mailarchive/message.php?msg_id=31417048,我想知道是否有人对如何做到这一点有见解或建议。

您可以通过提供构造函数参数作为构造函数参数来编写自己的类base_estimator和要级联的目标类的列表顺序列表。在此元分类器的 fit 方法中,您根据每个级别的base_estimators的类和拟合克隆对这些数据进行子切片,并将生成的子分类器存储在元分类器的属性中。

在预测方法中,再次迭代级联结构,这次在基础子分类器上调用 predict,以对预测进行切片,并以递归方式将其传递到下一个级别。您将需要相当多的花哨索引;)

您可以在源代码中git grep base_estimator以查找代码库中现有的元估计器示例(如Bagging,AdaBoost,GridSearchCV...)。

相关内容

  • 没有找到相关文章

最新更新