Example #1
0
def test_robust_transformer_desugar():
    """Should be able to "desugar" multiple things into a valid transformer pipeline"""  # noqa
    transformer = [
        None,
        IdentityTransformer(),
        lambda x: x,
        Feature('A', IdentityTransformer()),
        ('A', IdentityTransformer()),
        ('A', [None, IdentityTransformer()]),
    ]
    robust_transformer = make_robust_transformer(transformer)
    assert isinstance(robust_transformer, TransformerPipeline)
def get_target_encoder(income_col='PINCP', income_threshold=INCOME_THRESHOLD):
    """Get encoder for the prediction target

    Returns:
        transformer-like
    """

    # From Kaggle:
    # > The prediction task is to determine whether a person makes over $50K a
    # > year.
    # We adjust to 2018 dollars abovee.
    return make_robust_transformer([
        lambda y: y[income_col],
        lambda y: (y > income_threshold).astype(int),
    ])
Example #3
0
 def __init__(self,
              input,
              transformer,
              name=None,
              description=None,
              output=None,
              source=None,
              options=None):
     self.input = input
     self.transformer = make_robust_transformer(transformer)
     self.name = name
     self.description = description
     self.output = output  # unused
     self.source = source
     self.options = options if options is not None else {}
Example #4
0
 def __init__(self,
              input: FeatureInputType,
              transformer: FeatureTransformerType,
              name: Optional[str] = None,
              description: Optional[str] = None,
              output: Optional[OneOrMore[str]] = None,
              source: Optional[str] = None,
              options: Optional[dict] = None):
     self.input = input
     self.transformer = make_robust_transformer(transformer)
     self.name = name
     self.description = description
     self.output = (
         output
         or (slugify(self.name, separator='_') if self.name else None))
     self.source = source
     self.options = options or {}
Example #5
0
def test_get_transformer_primitives(transformer, expected):
    robust_transformer = make_robust_transformer(transformer)
    primitives = get_transformer_primitives(robust_transformer)
    assert primitives == expected
Example #6
0
        sklearn.preprocessing.StandardScaler,
        sklearn.preprocessing.Binarizer,
        sklearn.preprocessing.PolynomialFeatures,
    )
    # some of these input types are bad for sklearn.
    input_types = ('ser', 'df', 'arr1d')
    for Transformer in Transformers:
        robust_transformer = DelegatingRobustTransformer(Transformer())
        for input_type in input_types:
            X, y = sample_data[input_type]
            robust_transformer.fit_transform(X, y=y)


@pytest.mark.parametrize('robust_maker', [
    DelegatingRobustTransformer,
    lambda x: make_robust_transformer([x]),
])
def test_robust_str_repr(robust_maker):
    robust_transformer = robust_maker(IdentityTransformer())
    for func in [str, repr]:
        s = func(robust_transformer)
        assert len(s) > 0


@pytest.mark.parametrize(
    'transformer,expected',
    [(
        IdentityTransformer(),
        ['IdentityTransformer'],
    ),
     (