alteryx / alteryx/evalml

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

オープン
#4,150 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Python
スター
850
フォーク
96
PR マージ指標
30日以内にマージされた PR はありません

説明

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)
```

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。