Вопрос или проблема
Я строю иерархический текстовый классификатор, используя подход Local Classifier Per Parent Node (LCPN) с политикой ‘siblings’, как описано в обзоре иерархической классификации в различных областях применения:
Например, если у нас есть классы 1.1, 1.2, 2.1, 2.2, 2.3, то на первом уровне мы используем весь обучающий набор для обучения классификатора, чтобы различать между классами 1 (1.1, 1.2) и 2 (2.1, 2.2, 2.3), на втором уровне мы используем два многоклассовых классификатора: первый для классификации между 1.1 и 1.2, используя как обучающий набор только данные, принадлежащие этим классам, и второй классификатор для остальных.
Следует ли любую трансформацию данных (например, масштабирование, tf-idf), которую мы делаем с данными, выполнять на каждом уровне классификатора? То есть, поскольку на первом уровне tf-idf векторы создаются с помощью подгонки всего обучающего набора, можем ли мы использовать их на втором уровне, или следует подгонять к новым обучающим подмножествам?
Зависит от набора данных, но в общем случае следует подгонять снова
почему? Если вы не подгоняете снова на втором уровне при классификации 1.1 и 1.2, вы вводите уклон, полученный на первом уровне, когда классифицировали между классами 1 и 2.
почему зависит? если информация переплетена между всеми родительскими и дочерними классами, и вы будете использовать эти модели снова в будущем, вы можете потерять важную информацию при повторной подгонке, другими словами, вы будете лишь чрезмерно подгонять текущую тренировку (классифицировать 1.1 1.2)
В общем случае лучшей практикой является выполнение всех инженерий характеристик перед применением классификаторов.
Две основные причины:
-
Простота – Если инженерия характеристик зависит от производительности модели, то сложнее найти и устранить пограничные случаи.
-
Обработка проблем с выборкой – Особенно в текстах, существуют новые примеры (например, слова, которые появляются при предсказании, но не появляются при обучении). Применение инженерии характеристик как можно шире увеличивает надежность преобразований.
.
Ответ или решение
Теория
В процессе построения иерархического текстового классификатора с использованием подхода "Локальный классификатор для каждого узла-предка" (LCPN) возникает вопрос о необходимости применения трансформаций данных на каждом уровне иерархии. Основные трансформации включают масштабирование и вычисление tf-idf. Важно понимать, что игнорирование пересобирания трансформаций и применения их к новым подмножествам данных на отдельных уровнях может ввести систематическую ошибку, полученную на предыдущем уровне классификации.
Пример
Возьмём, например, иерархическую классификацию классов 1.1, 1.2, 2.1, 2.2 и 2.3. На первом уровне классификатор обучается различать классы 1 и 2, используя весь обучающий набор данных, в то время как на втором уровне создаются два многоуровневых классификатора: один для 1.1 и 1.2, и другой для 2.1, 2.2 и 2.3. Если не применять tf-idf повторно на новом уровне, то все изменения, сделанные на первом уровне, такие как tf-idf веса, могут привести к смещению и неточностям при классификации похожих по структуре классов на втором уровне.
Применение
Общепринятой практикой является выполнение всех этапов инженерии признаков перед обучением классификаторов. Это упрощает структуру моделей и позволяет легко устранять пограничные случаи. В случае с текстовыми данными вопрос об обработке новых примеров, которые отсутствовали на этапе обучения, становится критически важным. Повторная генерация tf-idf или других трансформаций на каждом уровне позволяет лучше учесть характеристики подмножества и повысить устойчивость модели к новизне данных.
Следовательно, учитывая сложность и многогранность иерархической классификации, рекомендуется проводить повторное обучение трансформаций данных на каждом уровне иерархии. Это помогает избежать предвзятости и потерь информации, что, в свою очередь, повышает общую точность иерархического классификатора. Однако, окончательное решение может зависеть от набора данных и специфики приложения.