Невозможно пройти проверку утверждения [создание собственного преобразователя, scikit-learn] - PullRequest
0 голосов
/ 08 октября 2019

Данные из

%%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

И из этого контекста: «Мы начнем со столбцов в нашем DataFrame, содержащих числовые и логические функции. Некоторые строки содержат нулевые значения; оценщики не могут обрабатывать нулевые значения, поэтому онидолжен быть вменен или отброшен. Мы создадим конвейер, содержащий преобразователи, которые обрабатывают эти функции, а затем оценщик.

Примечание. Когда грейдер проверяет ваш ответ, он передает список словарей в метод предиката илиgnett_proba. вашей оценки, а не DataFrame. Это означает, что ваша модель должна работать с обоими типами данных. По этой причине мы предоставили вам собственный ColumnSelectTransformer, чтобы вы могли использовать вместо него собственный ColumnTransformer scikit-learn. "

IМне было поручено выполнить следующие фрагменты кода. Но я не смог пройти проверку утверждения. Ниже приведена моя попытка:

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)),
])

выполнить эту проверку утверждения

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

Буду признателен за любую помощь, которую я могу получить, спасибо!

1 Ответ

0 голосов
/ 10 октября 2019

Мне не удалось пройти проверку утверждения из-за

 return X[self.columns].values()

Правильный оператор возврата должен был быть

return X[self.columns].values
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...