У меня есть 2 набора данных, один с положительными экземплярами того, что я хотел бы обнаружить, и один с немечеными экземплярами. Какие методы я могу использовать?
В качестве примера, предположим, что мы хотим понять, обнаруживать спам по электронной почте на основе нескольких структурированных характеристик электронной почты. У нас есть один набор данных из 10000 электронных писем со спамом и один набор данных из 100000 электронных писем, для которых мы не знаем, являются ли они спамом или нет.
Как мы можем решить эту проблему (не помечая вручную любые немаркированные данные)?
Что мы можем сделать, если у нас есть дополнительная информация о доле спама в немаркированных данных (т. Е. Что если мы оценим, что от 20 до 40% из 100000 непомеченных писем являются спамом)?
источник
Ответы:
Мое предложение будет заключаться в том, чтобы попытаться создать некую кластеризацию на ваших немаркированных данных, которая в некоторой степени приближается к помеченному набору данных. Обоснование более или менее следующее:
Надеюсь, что это имеет смысл, если вы специально ищете алгоритмы кластеризации, некоторые из них, которые лично мне нравятся, которые могут быть хорошими в этом сценарии, это FLAME и TSNE . С другой стороны, если взглянуть на впечатляющую библиотеку gensim в python, вы проделаете долгий путь к кластеризации, которую вы ищете.
Надеюсь, что это помогает и имеет смысл, оставьте комментарий, если у вас есть какие-либо вопросы.
источник
Ваша задача состоит в рамках обучения ПУ (только позитивы, много немеченных).
Это также близко к более распространенным принципам обучения под наблюдением (мало положительных и отрицательных, много немаркированных).
Есть много обзорных работ, которые вы можете посмотреть на поле.
Классический метод в этой области, который также был протестирован на спам, как и в вашем случае, это совместное обучение. В процессе совместного обучения вы создаете двух независимых обучающихся (например, один на основе содержимого почты и один на основе схемы отправки), и вы используете результаты одного тренировать другого и наоборот.
источник
Обучите 2 генеративные модели, по одной для каждого набора данных (только спам, спам и ветчина), что даст вам вероятность того, что точка данных получена из того же распределения вероятности обучающих данных. Назначьте письма как спам или ветчину, на основании которых модель дает самую высокую вероятность документа, вытекающему из обучающих данных, используемых для подготовки его. Пример порождающие модели RBM в, автоассоциатор (в том случае, какая модель имеет самую низкую ошибку реконструкции). Вероятно, существуют также некоторые байесовские генеративные модели, которые назначают вероятность точке данных на основе некоторых обучающих данных.
Тем не менее, лучшим вариантом было бы выделить время для сбора второго набора данных, содержащего только ветчину. Это даст вам более высокую точность классификации. Предполагая, что доля нежелательной почты в спаме будет ниже, это не должно быть слишком сложным. Вы даже можете использовать механический турка, если у вас не хватает времени или ресурсов (или интернов \ выпускникам студентов или другой дешевой рабочей силы).
источник