【问题标题】:Scikit-Learn, Custom Transformer: ColumnSelectTransformerScikit-Learn,自定义转换器:ColumnSelectTransformer
【发布时间】:2020-02-04 20:15:03
【问题描述】:

给定数据来自

%%bash
mkdir data
wget http://dataincubator-wqu.s3.amazonaws.com/mldata/providers-train.csv -nc -P ./ml-data
wget http://dataincubator-wqu.s3.amazonaws.com/mldata/providers-metadata.csv -nc -P ./ml-data

我的任务是完成以下代码 sn-ps。

simple_cols = ['BEDCERT', 'RESTOT', 'INHOSP', 'CCRC_FACIL', 'SFF', 'CHOW_LAST_12MOS', 'SPRINKLER_STATUS', 'EXP_TOTAL', 'ADJ_TOTAL']

class ColumnSelectTransformer(BaseEstimator, TransformerMixin):
    def __init__(self, columns):
        self.columns = columns

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

    def transform(self, X):
        if not isinstance(X, pd.DataFrame):
            X = pd.DataFrame(X)
        return X[self.columns]

simple_features = Pipeline([
    ('cst', ColumnSelectTransformer(simple_cols)),
])

assert data['RESTOT'].isnull().sum() > 0
assert not np.isnan(simple_features.fit_transform(data)).any()

完成这个断言检查

assert data['RESTOT'].isnull().sum() > 0
assert not np.isnan(simple_features.fit_transform(data)).any()

但我无法通过断言测试。下面附上我的尝试:

simple_cols = ['BEDCERT', 'RESTOT', 'INHOSP', 'CCRC_FACIL', 'SFF', 'CHOW_LAST_12MOS', 'SPRINKLER_STATUS', 'EXP_TOTAL', 'ADJ_TOTAL']

class ColumnSelectTransformer(BaseEstimator, TransformerMixin):
    def __init__(self, columns):
        self.columns = columns

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

    def transform(self, X):
        if not isinstance(X, pd.DataFrame):
            X = pd.DataFrame(X)
        X.dropna(inplace=True)
        return X[self.columns].values()

simple_features = Pipeline([
    ('cst', ColumnSelectTransformer(simple_cols)),
])

如果我能得到任何帮助,我将不胜感激,谢谢!

【问题讨论】:

    标签: python pandas dataframe machine-learning scikit-learn


    【解决方案1】:

    问题出在

    return X[self.columns].values()
    

    正确的返回语句应该是

    return X[self.columns].values
    

    【讨论】:

      猜你喜欢
      • 2021-10-25
      • 2020-02-03
      • 2019-02-06
      • 2016-04-16
      • 2019-11-20
      • 2020-02-05
      • 1970-01-01
      • 2018-06-25
      • 2014-08-09
      相关资源
      最近更新 更多