Обучение предсказателя машинного обучения

Я пытался построить модель прогнозирования, используя данные пользователя. Ввод модели — это метаданные документов (дата публикации, название и т. д.), а метка документа — предпочтения этого пользователя (нравится/не нравится). Я хотел бы задать несколько вопросов, с которыми я столкнулся в надежде получить ответы:

  1. Любимых документов гораздо больше, чем нелюбимых. Я где-то читал, что если кто-то обучает модель, используя больше входных данных одной метки, чем другой, это плохо влияет на производительность (модель имеет тенденцию классифицировать все по метке/результату, которая имеет большинство входных данных
  2. Возможно ли внести данные в алгоритм ML, например, логистическая регрессия может быть гибридной с точки зрения чисел и слов, и как это можно сделать, например:

    ввод = [18,23,1,0,'криптография'] с меткой = ['Нравится']

    Также можем ли мы использовать вектор (который представляет слово, используя tfidf и т. д.) в качестве входной функции (например, 50-мерный вектор)?

  3. Чтобы построить модель прогнозирования с использованием текстовых данных, единственный способ сделать это — получить словарь из каждого слова, упомянутого в наших документах, а затем создать двоичный ввод, который будет определять, упоминается термин или нет? Используя такую ​​версию, мы теряем вес термина в коллекции, верно? Можем ли мы использовать что-то вроде вектора word2vec в качестве единого входа в модели контролируемого обучения?

Спасибо за ваше время.


person Swan87    schedule 02.12.2014    source источник


Ответы (1)


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

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

Теперь у вас, вероятно, больше столбцов, чем строк, а это означает, что вы получите сингулярность с алгоритмами на основе матриц, и в этом случае вам нужно что-то вроде SVM или Naive Bayes.

person Neil McGuigan    schedule 02.12.2014
comment
Спасибо за понимание дружище! Отличный совет! - person Swan87; 03.12.2014