Для некоторой предыстории я работал над двоичной классификацией заявлений на медицинское страхование и внедряю FeatureHasher в sklearn для векторизации категориальных функций, многие из которых имеют особенно высокий уровень мощности с большим количеством уникальных уровней факторов и FeatureHasher в sklearn. был полезным инструментом для кодирования всей этой информации.
Я обучил классификатор XGBoost на моем начальном обучающем наборе, который был преобразован таким образом, что каждая категориальная функция была хэширована в измерения log (x) (x - это число уникальных уровней факторов в каждой функции). Я планирую использовать обученную модель для прогнозирования новых / невидимых данных о претензиях, которые будут оцениваться ежедневно. Я буду хэшировать ежедневный экстракт данных заявок с идентичными размерами хэширования, используемыми в обучающем наборе, чтобы не было различий между количеством функций, на которых была обучена модель, и количеством функций в ежедневном экстракте, что позволяет мне использовать обученная модель для прогнозирования поступающих данных о претензиях.
Мне интересно, как FeatureHasher в sklearn кодирует невидимые данные. Например, если у меня было десять уровней факторов в определенной категориальной функции c в моем исходном обучающем наборе, и только три уровня факторов в одной и той же категориальной функции во входящей ежедневной выборке данных о претензиях (вероятно, объем претензий будет намного меньше) данные по сравнению с обучающим набором), кодирует ли FeatureHasher эту информацию таким же образом, чтобы каждый уровень фактора можно было идентифицировать и сопоставить с его исходным значением? И наоборот, будет ли хеширование кодировать уровни факторов в категориальных признаках по-разному между обучающими и тестовыми наборами, если число уровней факторов в рамках данной функции не равно тому, на котором обучалась модель? Если это так, это вызовет проблемы с тем, как модель интерпретирует уровни факторов данного категориального признака в ежедневном экстракте утверждений, что приводит к тому, что модель путает или неверно истолковывает уровни факторов по сравнению с тем, как они были изначально закодированы в обучающем наборе?
Любая обратная связь будет принята с благодарностью!
PS Я рассмотрел использование повышения градиента CatBoost (catboost.ai/docs/concepts/python-installation.html) в качестве альтернативы, но, к сожалению, использую платформа, которая не поддерживает это и, следовательно, не будет выбором для меня