Как мне построить бинарный классификатор для тысяч положительных данных и миллионов размеченных данных?

Вопрос или проблема

Пока что я наткнулся на много советов и статей о PU-обучении и унарной классификации.

Короче говоря: есть ли у кого-нибудь предложения по конкретным алгоритмам или реализациям для размеченных данных только одного класса и разметки, которые могут принадлежать либо тем, либо другим классам? И я не уверен, какова пропорция класса A к классу B в неразмеченных данных.

Самый простой ответ, который я нашел, это SVM для одного класса (бинарная полусупервизируемая классификация с положительными только и неразмеченными данными), но у меня так много неразмеченных примеров по сравнению с тем, сколько размеченных я могу найти. И я не уверен, являются ли положительный класс или отрицательный класс достаточно редкими для обнаружения аномалий.

Один из других предложенных методов – это процесс в два этапа, где я могу определить набор надежных данных отрицательного класса, но я не могу на самом деле определить набор данных как надежно отрицательный (https://www.cs.uic.edu/~liub/publications/ICDM-03.pdf).

Еще один метод предполагает взвешенный SVM (http://users.csc.tntech.edu/~weberle/Spring2011/CSC6910/Papers/posonly.pdf), но я не уверен, могу ли я сделать то же предположение, что и авторы, о том, что мои положительные данные – это случайная подмножество всех положительных данных, так как я использовал критерий, чтобы определить, какие из них положительные, и, следовательно, предположительно, в размеченных данных есть предвзятость.

В целом, у меня много размеченных данных положительного класса, то есть данные о том, что я ищу, но у меня значительно больше неразмеченных данных. (Хотя в каком-то смысле размеченные данные также могут считаться данными отрицательного класса.) И я не уверен, какая пропорция положительных и отрицательных данных существует в неразмеченных данных, так как может быть равномерное распределение между двумя классами. Или кто знает, возможно, данные положительного класса могут быть редче, чем данные отрицательного класса.

Я думаю, что проблема, которую вы упомянули, иногда рассматривается как глубокая задача классификации одного класса. Вам может захотеться погуглить последние исследования в этой области.

Одна статья, которую я читал: Изучение глубоких признаков для классификации одного класса.

Доступно на ArXiv.

Ответ или решение

Создание бинарного классификатора на основе ограниченного объема положительных помеченных данных и значительного объема немаркированных данных представляет собой уникальную задачу, требующую внимательного выбора методов и алгоритмов. Вот несколько шагов и стратегий, которые могут помочь в этой ситуации.

1. Понимание задачи и выбор подхода

Ваша задача можно классифицировать как задачу «положительные и немаркированные (PU) данные». Основная проблема заключается в том, что у вас есть лишь ограниченное количество данных одного класса (положительного), в то время как множество немаркированных данных может содержать как положительные, так и отрицательные примеры.

В условиях нехватки данных для одного из классов и большого дисбаланса в размере наборов данных, важно использовать методы, которые могут извлечь максимальную пользу из имеющихся данных.

2. Выбор алгоритма

2.1. Метод One-Class SVM

Ваша идея использовать One-Class SVM может стать отправной точкой. Этот подход хорошо работает, когда известно лишь одно из классов. Он способен находить границы, которые определяют класс, основываясь на его положительных примерах. Но обратите внимание, что этот метод может быть неэффективен, если у вас слишком много немаркированных примеров по сравнению с положительными.

2.2. Методы PU Learning

Исследуйте методы PU Learning, такие как:

  • Мягкие маркеры (Soft Labeling), где вы можете использовать вероятностный подход к оценке классов исходя из немаркированных данных.
  • Методы активного обучения, которые помогают динамически выбирать наиболее информативные немаркированные примеры для мануальных пометок.

2.3. Генерация негативных примеров

Попробуйте использовать подход по генерации негативных примеров. Это можно сделать с помощью настройки различных алгоритмов, таких как случайный лес или градиентный бустинг, чтобы попытаться выделить наиболее вероятно негативные примеры среди немаркированных данных.

3. Обработка данных

Поскольку ваши положительные данные могут быть не случайной выборкой, важно учитывать возможность смещения в данных. Рассмотрите возможность применения методов предобработки данных:

  • Аугментация данных для положительного класса, чтобы увеличить объем данных.
  • Кросс-валидация с стратификацией, чтобы гарантировать, что каждый класс представлен в обучающем наборе.

4. Обучение и настройка модели

Используйте кросс-валидацию для оценки различных моделей и выбора наилучшей. Это поможет объективно сравнить производительность классификаторов с учетом возможных дисбалансов в обучающих данных.

4.1. Взвешенные алгоритмы

Использование взвешенных классификаторов, таких как взвешенные SVM или логистическая регрессия, может помочь вам лучше справиться с дисбалансом классов. Настройка весов для положительного класса может улучшить качество классификации.

5. Оценка и тестирование модели

Неверно интерпретированные негативные примеры могут исказить показатели качества вашей модели. Поэтому вам следует определить набор метрик, включая точность, полноту и F1-меру, для оценки производительности вашего классификатора.

Заключение

Строительство бинарного классификатора в условиях ограниченной информации о классах представляет собой сложную задачу, требующую применения ряда адаптивных методов. Методы PU Learning, One-Class SVM и активного обучения могут стать основными инструментами для достижения ваших целей. Успех будет зависеть от вашей способности экспериментировать и адаптировать подходы в зависимости от особенностей ваших данных. Таким образом, вы сможете не только создать надежный классификатор, но и повысить его качество за счет тщательной проработки каждого этапа разработки.

Оцените материал
Добавить комментарий

Капча загружается...