首页 > 解决方案 > 缺少 1 个必需的位置参数:在此上下文中为“TransformerMixin”

问题描述

我正在使用有关泰坦尼克号的数据集。但是当我执行管道时,它是一个TypeError. 这是我的代码:

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]

from sklearn.pipeline import Pipeline
try:
    from sklearn.impute import SimpleImputer # Scikit-Learn 0.20+
except ImportError:
    from sklearn.preprocessing import Imputer as SimpleImputer

num_pipeline = Pipeline([
    ("select_numeric", DataFrameSelector(["Age", "SibSp", "Parch", "Fare"])),
    ("imputer", SimpleImputer(strategy="median")),
    ])

但是,我收到以下错误:

TypeError: Traceback (most recent call last)
<ipython-input-22-4cae5bb1ad60> in <module>()
      7 
      8 num_pipeline = Pipeline([
----> 9     (("select_numeric", DataFrameSelector(["Age", "SibSp", "Parch", "Fare"])),
     10      ('label_binarizer', MyLabelBinarizer())
     11         ("imputer", SimpleImputer(strategy="median")),)

TypeError: DataFrameSelector() missing 1 required positional argument: 'TransformerMixin'

标签: pythonscikit-learn

解决方案


推荐阅读