Побудуйте двійковий класифікатор із лише позитивними та немеченими даними


11

У мене є 2 набори даних, один із позитивними примірниками того, що я хотів би виявити, і один з неозначеними екземплярами. Які методи я можу використовувати?

Наприклад, припустимо, що ми хочемо зрозуміти, як виявити спам-електронну пошту на основі кількох структурованих характеристик електронної пошти. У нас є один набір даних 10000 спам-листів і один набір даних 100000 електронних листів, для яких ми не знаємо, чи є вони спамом чи ні.

Як ми можемо вирішити цю проблему (не маркуючи вручну жодного з маркованих даних)?

Що ми можемо зробити, якщо у нас є додаткова інформація про частку спаму в незазначених даних (тобто що робити, якщо ми підрахуємо, що 20-40% від 100000 незазначених електронних листів є спамом)?


1
До посади слід додати теги напівнагляду і пу-навчання. Ці теги досі не існують, і наразі я не можу їх створити.
DaL

@DanLevin Так, [тег: напівконтрольне навчання] має сенс. Додано :) Я не впевнений у частині навчальної програми (принаймні я про це не знаю), тому хтось ще може це зробити!
Світанок33

1
PU-навчання - це специфічний випадок напівконтрольного навчання. Рідше (результати 7K в Google), а потім напівпід контролем (результати 298K в Google), це питання є ПУ (мічений набір даних - лише позитивні). Поки тема обговорюється в академії (наприклад, cs.uic.edu/~liub/NSF/PSC-IIS-0307239.html ), можливо, це питання буде довгий час на самоті з цим тегом.
DaL

Відповіді:


7

Моя пропозиція - спробувати побудувати якусь кластеризацію ваших немечених даних, яка дещо наближає мічений набір даних. Обґрунтування є більш-менш наступним:

  • У вас є деякий вектор функції представлення ваших документів
  • Виходячи з цього вектора функцій, ви можете розробити декілька різних кластеризацій із нечіткими, грубими або кластерними методами кластеризації.
  • Знаючи, як виглядає позитивний приклад, ви можете швидко оцінити загальну схожість кластера з вашим позитивним кластером
  • Знаючи, що насправді мають бути лише два кластери, ви можете налаштувати гіперпараметри свого методу кластеризації, щоб вищевказані дві метрики були ближчими та ближче до задоволення
  • З двома кластерами у вас є, можливо, близьке наближення міченого набору даних, яке ви потім можете використовувати як срібний стандартний корпус для фактичного навчання вашої моделі

Сподіваюся, що це має сенс, якщо ви спеціально шукаєте алгоритми кластеризації, декілька, що мені особисто подобається, що може бути корисним у цьому сценарії, - FLAME та tsne . По черзі, дивлячись на ефектне бібліотеку gensim у python, ви отримаєте довгий шлях до кластеризації, яку ви шукаєте.

Сподіваємось, що це допоможе та має сенс, залиште коментар, якщо у вас виникли якісь питання.


Дякую за вашу відповідь. Я правильно розумію: ваша початкова точка - об'єднати два набори даних?
nassimhddd

@ cafe876 Це, безумовно, один із способів почати, а потім спробувати в основному відтворити кластеризацію, яка приблизно наближає оригінал.
indico

3

Ваша проблема належить до основ навчання ПУ (лише позитиви, багато без маркування).

Це також близько до більш поширених рамок напівконтрольного навчання (мало позитивів і негативів, багато без маркування).

Існує багато робіт з опитування, які можна шукати на полі.

Класичний метод у цій галузі, який також був перевірений на спам, як і у вашому випадку, - це спільне навчання. У ко-тренінгу ви будуєте двох незалежних учнів (наприклад, одного на основі вмісту пошти та одного на основі схеми відправки), і ви використовуєте результати одного тренувати іншого та навпаки.


2

Навчіть 2 генеративні моделі, по одній для кожного набору даних (лише спам, спам плюс шинка), що дасть вам ймовірність того, що точка даних буде виведена з того самого розподілу ймовірностей даних навчальних даних. Призначте електронні листи як спам або шинку на основі моделі, яка дає вам найбільшу ймовірність документа, що випливає з навчальних даних, що використовуються для його підготовки. Прикладами генеративних моделей є RBM, autoencoders (у тому випадку, яка модель має найменшу помилку відновлення). Ймовірно, існують також деякі байєсові генеративні моделі, які призначать ймовірність точці даних на основі деяких навчальних даних.

Найкращим варіантом, однак, буде витратити час, щоб вилікувати другий набір даних, що містить лише шинку. Це дасть вам більш високу точність класифікації. Якщо припустити меншу частку спаму для електронних листів, то це не повинно бути занадто важким. Ви навіть можете використовувати Механічний турк, якщо вам не вистачає часу або ресурсів (або стажистів \ випускників чи іншої дешевої робочої сили).


Дякую за вашу відповідь. Це прекрасний приклад того, що можуть робити генеративні моделі, що дискримінаційні моделі не можуть.
nassimhddd
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.