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

Опитвам се да създам модел за прогнозиране, използвайки данни на потребител. Входът на модела е метаданните на документите (дата на публикуване, заглавие и т.н.), а етикетът на документа е предпочитанието на потребителя (харесва ми/не харесва). Бих искал да задам няколко въпроса, на които се натъкнах с надеждата да получа отговор:

  1. Има много повече харесвани документи, отколкото нехаресвани. Четох някъде, че ако някой обучи модел, използващ много повече входни данни от единия етикет, отколкото от другия, това се отразява на производителността по лош начин (моделът има тенденция да класифицира всичко към етикета/резултата, който има повечето входни данни
  2. Възможно ли е да има вход към алгоритъм за ML, например логистичната регресия да бъде хибридна по отношение на числа и думи и как това може да се направи, нещо като:

    вход = [18,23,1,0,'cryptography'] с етикет = ['Like']

    Също така можем ли да използваме вектор (който представлява дума, използвайки 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