Python scikit学习中多类问题的级联分类器

Python scikit学习中多类问题的级联分类器,python,machine-learning,data-mining,scikit-learn,Python,Machine Learning,Data Mining,Scikit Learn,假设我有一个分类问题,它是多类的,并且具有典型的层次性,例如“可食用”、“营养”和“营养”—因此可以这样表示 ├── edible │ ├── nutritious │ └── ~nutritious └── ~edible 虽然可以通过支持多类分类的分类器获得合理的性能,或者对不支持多类分类的分类器使用一对一/所有方案,在每一级分别训练分类器并将它们连接起来,这样分类为“可食用”的实例就可以分类为营养类或非营养类 我想使用scikit lean估计器作为构建块,我想知道我是否可以让管

假设我有一个分类问题,它是多类的,并且具有典型的层次性,例如“可食用”、“营养”和“营养”—因此可以这样表示

├── edible
│   ├── nutritious
│   └── ~nutritious
└── ~edible
虽然可以通过支持多类分类的分类器获得合理的性能,或者对不支持多类分类的分类器使用一对一/所有方案,在每一级分别训练分类器并将它们连接起来,这样分类为“可食用”的实例就可以分类为营养类或非营养类

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


之前@ogrisel在邮件列表中提到过它,我想知道是否有人对如何进行这项工作有见解或建议。

您可以通过提供构造函数参数
base\u estimator
和要级联的目标类的列表顺序列表,将自己的类作为元估计器编写。在该元分类器的拟合方法中,您基于这些类对该数据进行子切片,并为每个级别拟合
base_估计器的克隆,并将结果子分类器存储在元分类器的属性中

在predict方法中,您再次迭代级联结构,这次调用底层子分类器上的predict来切片您的预测并递归地将其传递到下一级。您将需要大量的numpy花式索引;)


你可以
git grep base\u estimator
在源代码中找到代码库中现有的元估计器示例(如Bagging、AdaBoost、GridSearchCV…)。

你最终做了什么?点击这篇旧文章,看看是否有人有关于如何做的好教程。