В моем наборе данных у меня есть категориальная функция , называемая product .
Допустим, в обучающем наборе его значения в {"apple", "banana", "durian", "orange",....}
.С другой стороны, в тестовом наборе значения теперь могут быть {"banana", "orange", pineapple"}
.Есть некоторые значения, которых нет в обучающем наборе (например, Ананас ).
Я знаю, что, если у нас есть все возможные значения заранее, мы можемсоздайте переменную Label Encoder и fit
со всеми значениями, которые может иметь функция.Но в этом случае я не могу гарантировать, что обучающий набор сможет охватить все значения в тестовом наборе (т. Е. Когда появятся некоторые новые продукты).
Это меня очень беспокоит, потому что я боюсь, что при использовании Label Encoding , обучающий набор может быть сопоставлен как {"apple": 1, "банан": 2, "дуриан": 3, "апельсин": 4, ... (еще тысячи) } , но когда дело доходит досопоставляя с тестовым набором 1039 *, мы получим {"банан": 1, "апельсин": 2, ананас ": 3} .
Мои вопросыявляются:
- Оказывает ли это негативное влияние на классификационную модель ? Например, если apple становится важным значением в
product
особенность, насколько мне известно, модель будет относиться к 1 (числовое значение apple ) с большей озабоченностью. Это вводит в заблуждение, когда 1 banana
в тестовом наборе ?
- Есть ли какой-нибудь способ, которым я могу справиться с проблемами кодировщика этикеток, у которых разные значения в обучении и наборе тестов?
Я нашел некоторые релевантнымиссылки вроде этой , но это не совсем моя проблема.
Обновление: обратите внимание, что product
может иметь тысяч значений , поэтому я использую метку Кодер здесь, а не One Hot Coding .