Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 名称';数据帧选择器';没有定义_Python_Scikit Learn_Pipeline - Fatal编程技术网

Python 名称';数据帧选择器';没有定义

Python 名称';数据帧选择器';没有定义,python,scikit-learn,pipeline,Python,Scikit Learn,Pipeline,我目前正在阅读“使用Scikit学习和TensorFlow进行机器学习”。我在尝试重新创建转换管道代码时出错。我怎样才能解决这个问题 代码: 错误: --------------------------------------------------------------------------- NameError回溯(最近一次呼叫上次) 在() 43 44 num_管道=管道([ --->45('selector',DataFrameSelector(num_attribs)), 46(“

我目前正在阅读“使用Scikit学习和TensorFlow进行机器学习”。我在尝试重新创建转换管道代码时出错。我怎样才能解决这个问题

代码: 错误:
---------------------------------------------------------------------------
NameError回溯(最近一次呼叫上次)
在()
43
44 num_管道=管道([
--->45('selector',DataFrameSelector(num_attribs)),
46(“插补器”,插补器(策略=“中值”),
47('attribs_adder',CombinedAttributesAdder()),
NameError:未定义名称“DataFrameSelector”

DataFrameSelector
找不到,需要导入。它不是
sklearn
的一部分,但在以下位置可以使用相同名称的内容:

()

这应该行得通

from sklearn.pipeline import FeatureUnion
class DataFrameSelector(BaseEstimator, TransformerMixin):
    def __init__(self, attribute_names):
        self.attribute_names = attribute_names
    def fit(self, X, y=None):
        return self
    def transform(self, X):
        return X[self.attribute_names].values

它可能会起作用。

如果您使用Sklearn和Tensorflow进行机器学习, 它就在下一页,一个定制的数据帧生成器

from sklearn.pipeline import FeatureUnion
class DataFrameSelector(BaseEstimator, TransformerMixin):
    def __init__(self, attribute_names):
        self.attribute_names = attribute_names
    def fit(self, X, y=None):
        return self
    def transform(self, X):
        return X[self.attribute_names].values

嘿,谢谢你的回复。当我读得更深入一点时,作者定义了一个DataFrameSelector类。当我把它放在我上面写的代码上面时,它似乎可以工作。但是,我得到了一个新的错误:有时参考源代码是好的:使用Scikit学习和TensorFlow进行机器学习第97页,你必须在这里添加适当的BaseStim导入转化子和转化子。
from sklearn_features.transformers import DataFrameSelector
from sklearn.base import BaseEstimator, TransformerMixin

class DataFrameSelector(BaseEstimator, TransformerMixin):
    def __init__(self, attribute_names):
        self.attribute_names=attribute_names
    def fit(self, X, y=None):
        return self
    def transform(self, X):
        return X[self.attribute_names].values
from sklearn.pipeline import FeatureUnion
class DataFrameSelector(BaseEstimator, TransformerMixin):
    def __init__(self, attribute_names):
        self.attribute_names = attribute_names
    def fit(self, X, y=None):
        return self
    def transform(self, X):
        return X[self.attribute_names].values
from sklearn.pipeline import FeatureUnion
class DataFrameSelector(BaseEstimator, TransformerMixin):
    def __init__(self, attribute_names):
        self.attribute_names = attribute_names
    def fit(self, X, y=None):
        return self
    def transform(self, X):
        return X[self.attribute_names].values