tia*_*iao 6 python machine-learning data-mining scikit-learn
假设我有一个多类别和特征层次的分类问题,例如"可食用","营养"和"营养丰富" - 所以它可以像这样表示
??? edible
? ??? nutritious
? ??? ~nutritious
??? ~edible
Run Code Online (Sandbox Code Playgroud)
虽然可以使用支持多类分类的分类器或者对于那些不支持多分类的分类器来获得合理的性能,但是在每个级别单独训练分类器并将它们连接起来以便将实例分类为'食用'可以归类为nutritious
或不归类.
我想使用scikit-lean
估算器作为构建块,我想知道我是否可以Pipeline
提供支持,或者我是否需要编写自己的估算器来实现基本估算器并可能BaseEnsemble
这样做.
@ogrisel之前已经在邮件列表http://sourceforge.net/mailarchive/message.php?msg_id=31417048上提到过,我想知道是否有人对如何进行此操作有任何见解或建议.
您可以通过提供构造函数参数 abase_estimator
和要级联的目标类的列表有序列表来编写自己的类作为元估计器。在此元分类器的拟合方法中,您根据这些类对数据base_estimators
进行细分,并为每个级别拟合克隆,并将生成的子分类器存储在元分类器的属性中。
在 predict 方法中,您再次迭代级联结构,这次在底层子分类器上调用 predict 来切片您的预测并将它们递归地传递到下一个级别。您将需要大量的 numpy 花式索引;)
您可以git grep base_estimator
在源代码中找到代码库中元估计器的现有示例(如 Bagging、AdaBoost、GridSearchCV...)。