Sklearn FeatureUnion与管道中实际特征联合的问题

时间:2018-04-03 20:37:28

标签: python pandas machine-learning scikit-learn

我在执行标准标量后运行了两个特征选择算法 一个是通过K Best获取信息,另一个是使用额外的树分类器来使用Select from Model获取要素重要性。

我做了一个管道。我使用Feature Union来组合kbest并从模型步骤中进行选择。当我看到最终结果时,实际上有最终模型中某些功能的副本。

回到文档,(http://scikit-learn.org/stable/modules/pipeline.html#feature-union)FeatureUnion,实际上是一个功能连接。

  

(FeatureUnion无法检查两个变换器是否可能产生相同的特征。当特征集不相交时,它只产生一个联合,并确保它们是调用者的责任。)

有没有办法创建一个管道结构,以便我可以获得我的信息增益选择的实际特征联合结果,然后是额外的树分类器?最简单的方法是什么,以确保我不会有重复的功能?

我正在尝试的一件事就是制作一个定制的Transfomer。

class RemoveDuplicateColumnsTransformer(TransformerMixin):
    def transform(self, X, **transform_params):
        X=X.loc[:,~X.columns.duplicated()]

    def fit(self, X, y=None, **fit_params):
        return self

但我最终得到了这个错误,因为我也使用标准标量,并且转换函数中的X被解释为ndarray而不是数据帧。所以它说没有loc属性。

0 个答案:

没有答案