python sklearn.compose.columntransformer для обработки пропущенных столбцов - PullRequest
0 голосов
/ 04 марта 2019

Я использую columntransformer для своих данных машинного обучения. Когда я использую fit_transform, у меня есть набор данных, содержащий столбцы тегов, но когда я использую преобразование для прогнозирования, я получаю ошибку из-за отсутствующих столбцов тегов(даже если у преобразователя нет преобразования для этой колонки вообще.)

'positional indexers are out-of-bounds'}```

Есть ли сыворотка, чтобы справиться с этим более изящно?например, просто не преобразовывать отсутствующий столбец, который не имеет преобразований над ним для начала?Альтернативно, безопасно ли просто создать фиктивный столбец?Как я могу проверить, какие столбцы и порядок столбцов ожидает трансформатор?

пример case:

from sklearn.compose import ColumnTransformer
import pandas as pd
from sklearn.preprocessing import Normalizer

df = pd.DataFrame.from_records([[1,2,3], [4,5,6]], columns=[0, 1, 2])
c = ColumnTransformer(transformers=[("norm1", Normalizer(norm='l1'), [0, 1])], remainder="passthrough")
df1 = c.fit_transform(df)
df2 = df.drop(2, axis=1)
data = c.transform(df2)

дает

повышение IndexError («позиционные индексаторы вышли за пределы») IndexError: позиционные индексаторы вышли из

...