说我有一个分类问题,该分类问题是多类的并且具有特征性的层次结构,例如“可食用”,“营养丰富”和“〜营养丰富”-因此可以这样表示
├── edible
│ ├── nutritious
│ └── ~nutritious
└── ~edible
虽然使用支持多类分类的分类器可以获得合理的性能,或者对不支持分类器的分类器使用一对一/全方案,但在每个级别分别训练分类器并将其连接起来,将分类为“可食用的”可分为“可食用”nutritious
或“不可食用” 。
我想将scikit-lean
估算器用作构建基块,并且想知道是否可以Pipeline
为此提供支持,或者是否需要编写自己的估算器来实现基本估算器,并且可能BaseEnsemble
这样做。
@ogrisel之前已经在邮件列表http://sourceforge.net/mailarchive/message.php?msg_id=31417048上提到了它,我想知道是否有人对此有见解或建议。
您可以通过提供a作为构造函数参数base_estimator
和要层叠的目标类的列表顺序列表,来编写自己的类作为元估计器。在此元分类器的fit方法中,您可以基于这些类对数据base_estimators
进行细分,并为每个级别拟合的克隆,然后将结果子分类器存储在meta分类器的属性中。
在predict方法中,您再次遍历级联结构,这次在基础子分类器上调用predict,以切分您的预测并将其递归传递到下一个级别。您将需要大量的numpy花式索引;)
您可以git grep base_estimator
在源代码中找到代码库中现有的元估算器示例(例如Bagging,AdaBoost,GridSearchCV ...)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句