Съвет за алгоритъм на Mahout

Това, от което се нуждая, всъщност е просто намек откъде мога да започна.

Донякъде съм запознат с Mahout, поне теоретично. Знам как работи, как да го настроя и т.н. и мога да създам проста система за препоръки, базирана на съвместно филтриране.

Сега обаче се опитвам да направя нещо по-сложно и дори след като прочетох доста за различни алгоритми, не съм сигурен в коя посока да тръгна.

Набързо това, което искам да направя е:

Крайната цел е да се дефинира един скалар ("резултат") за всеки един от набор от обекти въз основа на някои "известни" обекти. Субектите взаимодействат помежду си, известните резултати влияят и определят неизвестните. Можете да си представите със следния пример.

Имам много бели дрехи и няколко цветни дрехи; червени, сини, зелени... сложих ги в пералнята. Искам да знам какви цветове ще добият белите след прането.

Неща, които трябва да вземете предвид:

  • правим поредица от пране с различни "актьори"... някои дрехи се перат на 1-во и 3-то пране, някои от тях само на 2-ро, някои от тях се перат на всички
  • при последователни пранета дрехите, които преди са били бели, но сега цветни, също влияят върху останалите, но не толкова силно (тъй като не са толкова цветни)
  • някои цветове не "оцветяват" толкова много, колкото други. например червеното има силен ефект върху повечето дрехи, но зеленото не толкова
  • ефектът на оцветяване също зависи от това колко дрехи има при едно пране. Ако перете червена риза с бяла тениска, тя става много по-цветна, отколкото ако имаше 100 други бели тениски
  • дрехите не "губят" цвета си, когато влияят на другите

Можете да видите, че докато изчисляват, обектите всъщност имат 2 присвоени скалара:

  • оттенъкът на цвета (това също определя "силата на оцветяване", както е споменато по-горе). Нюансът може да бъде представен като число, да речем от 0 до 1. Кохерентността между силата на оцветяване и числото на цвета не е линейна. По-скоро краищата на скалата имат по-голяма сила на оцветяване (0 и 1), докато средата (0,5) има по-малко
  • цветът "лекота" (колко е оцветен обект, за оригинално оцветените дрехи е 1, за белите е 0), което в същото време определя и силата на оцветяване, независимо от нюанса

И така, отново това, което знам:

  • кои дрехи къде са изпрани при кое последователно пране
  • Знам оригиналния цвят на някои от тях, останалите са бели в началото

Какво искам да знам: - цвета на всички дрехи в края на прането

Проблемът е, че не знам с какъв (вид) алгоритъм да започна. Ако бяхте така добър да прочетете досега, моля, предложете ми нещо (или допълнително четене).

Очевидно не искам нищо подробно, отново само съвети.

Благодаря ти!


person gphilip    schedule 01.03.2012    source източник
comment
Това не звучи като проблем с машинно обучение; звучи така, сякаш можете просто да кодирате симулатор... Във всеки цикъл на пране актуализирате цвета и силата на оцветяване на белите дрехи въз основа на цвета и силата на оцветяване на другите дрехи. Това не е трудно за кодиране и звучи сякаш имате цялата информация за това, нали? Машинното обучение се използва за извеждане на вероятностни разпределения (мислете за тях като модели) от данни. Не виждам как това се прилага тук.   -  person Diego    schedule 02.03.2012
comment
AFAIK Mahout не е само за проблеми с машинното обучение. Мислех, че това е подходящ инструмент, защото работя с голям набор от данни и изходът има сходни характеристики с класическата работа на Mahout. Мисля, че проблемът по-горе може да бъде приложен с MapReduce, но не знам дали има съществуващ подобен алгоритъм. Имам нужда това да бъде мащабируемо, затова смятам, че Mahout върху мощността MapReduce на Hadoop може да бъде подходящо решение.   -  person gphilip    schedule 02.03.2012


Отговори (1)


Единственото нещо, за което се сещам, което звучи като този проблем, е PageRank. Изчислява се чрез нещо като итеративна симулация. Всяка страница има някакво влияние (цвят), което протича през нейните връзки (чорапи, с които се измива) и в даден момент влиянието на страницата достига стабилно състояние (краен цвят). Можете да потърсите PageRank алгоритми, но по същество това е въпрос на изчисляване на собствени вектори на голяма, ъъъъъъъъъъъъъъня, цветна матрица на чорапа.

person Sean Owen    schedule 03.03.2012