alteryx / alteryx/evalml

`PerColumnImputer` can raise `woodwork.exceptions.TypeConversionError` if float values are imputed into `Int64` data

Aberta
#4,150 0 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Python
Estrelas
850
Forks
96
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

The `PerColumnImputer` can impute floating point values into integer data with the `mean` or `median` numeric impute strategies. When this happens, we cannot simply reinitialize the original data's woodwork schema via `X_t.ww.init(schema=original_schema.get_subset_schema(X_t.columns))` like we currently do, since it would try to use `Int64` on floating point data, which results in an error.

We'll need to use `_get_new_logical_types_for_imputed_data` similar to how other imputers do in order to use the correct logical types for imputed data. Note that because the per-column imputer can have different strategies for different columns, we'll need to either change `_get_new_logical_types_for_imputed_data` to allow per column strategies, or call it individually for every column.

below is a test that produces the type conversion error

```python
def test_per_column_imputer_float_imputed_into_int(imputer_test_data):
X = imputer_test_data.ww[["int with nan"]]
strategies = {
"int with nan": {"impute_strategy": "mean"},
}
transformer = PerColumnImputer(impute_strategies=strategies)
transformer.fit(X)
transformer.transform(X)
```

Guia de contribuição

Abrir o guia de contribuição

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.