scikitlearn中多类问题的级联分类器

2024-09-30 01:32:58 发布

您现在位置:Python中文网/ 问答频道 /正文

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

├── edible
│   ├── nutritious
│   └── ~nutritious
└── ~edible

虽然使用支持多类分类的分类器或对不支持多类分类的分类器使用one-vs-one/all方案可以获得合理的性能,但是在每个级别分别训练分类器并将其串联起来,这样分类为“可食”的实例可以被分类为nutritious或不分类。在

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

@ogrisel以前在邮件列表http://sourceforge.net/mailarchive/message.php?msg_id=31417048上提到过这个问题,我想知道是否有人对此有什么见解或建议。在


Tags: 实例层次结构分类器方案分类scikitall性能
1条回答
网友
1楼 · 发布于 2024-09-30 01:32:58

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

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

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

相关问题 更多 >

    热门问题