Я пытаюсь использовать Patsy (со sklearn, pandas) для создания простой модели регрессии. Создание формулы в стиле R является главной ничьей.
Мои данные содержат поле под названием «ship_city», в котором может быть любой город из Индии. Поскольку я разбиваю данные на обучающие и тестовые наборы, есть несколько городов, которые появляются только в одном из наборов. Фрагмент кода приведен ниже:
df_train_Y, df_train_X = dmatrices(formula, data=df_train, return_type='dataframe')
df_train_Y_design_info, df_train_X_design_info = df_train_Y.design_info, df_train_X.design_info
df_test_Y, df_test_X = build_design_matrices([df_train_Y_design_info.builder, df_train_X_design_info.builder], df_test, return_type='dataframe')
Последняя строка выдает следующую ошибку:
patsy.PatsyError: ошибка преобразования данных в категориальные: наблюдение со значением «Kolkata» не соответствует ни одному из ожидаемых уровней.
Я считаю, что это очень распространенный вариант использования, когда обучающие данные не будут иметь всех уровней всех категориальных полей. Sklearn DictVectorizer справляется с этим очень хорошо.
Могу ли я как-то заставить это работать с Пэтси?