Přejít k navigační liště

Zdroják » Různé » Na strojové učení snadno s PredictionIO

Na strojové učení snadno s PredictionIO

Články Různé

Chcete ve vaší webové aplikaci použít strojové učení a nevíte, jak na to? PredictionIO je nástroj, který vám může pomoci a vše důležité obstarat za vás.

Tento text je zkráceným překladem článku Introducing PredictionIO, který napsal Donald Szeto pod licencí CC BY-SA 3.0.

PredictionIO je open source server pro strojové učení určený vývojářům, kteří chtějí vytvářet prediktivní vlastnosti typu personalizace, doporučení a objevování obsahu (content discovery). Vytvoření kvalitního enginu, který by předpovídal preference uživatele a na jejich základě mu personalizoval obsah, bylo časově dost náročné. Bylo. Dokud tu ještě nebyl Prediction v0.7.

Ukážeme vám, jak pracovat s PredictionIO na příkladu doporučování filmů. Každému uživateli budeme chtít doporučit žebříček 10 filmů. A k tomu přidáme funkci „Pokud se ti líbí tenhle film, může se ti líbit i tahle desítka dalších.“

Terminologie

Napřed vysvětlíme několik termínů, které budeme při práci s PredictionIO potřebovat.

Aplikace

Aplikacemi v PredictionIO myslíme softwarové aplikace, které PredictionIO používají. Můžeme s nimi zacházet jako s logickou separací odlišných množin dat. Aplikace může mít několik enginů, ovšem každý engine může být asociován jen s jednou aplikací.

Engine

Enginy jsou logické entity, se kterými externí aplikace interaguje skrze API. Aktuálně existují dva typy enginů: item-recommendation a item-similarity. Každý engine nabízí jedinečné nastavení podle aktuálních potřeb. Engine může používat v jedné chvílí jen jeden algoritmus.

Algoritmus

Algoritmy jsou programátorským kódem, který generuje predikční modely. Každý engine obsahuje svůj výchozí univerzální algoritmus. Pokud to potřebujete, můžete ho nahradit jiným algoritmem anebo měnit parametry algoritmu univerzálního.

Instalace

Podrobný popis instalace, který zahrnuje instalaci Java 7, MongoDB a PredictionIO najdete v původním článku v části „Getting Hands-on“.

Vytváříme aplikaci v PredictionIO

Přihlásíme se přes webové rozhraní na portu 9000 našeho serveru.

Na následujícím obrázku je první obrazovka, kterou uvidíte po přihlášení a kliknutí na tlačítko „Add an App“. Pro přidání aplikace stačí zadat její jméno a kliknout na „Add“.

predictionio-image00

Imporujeme data do PredictionIO

Před importem dat budeme potřebovat aplikační klíč naší aplikace. Získáme ho kliknutím na volbu „Develop“ hned vedle aplikace. Zobrazí se vám následující obrazovka.

predictionio-image01

Aplikační klíč pro naši aplikaci „ml100k“ je NO5FpSnGh1F3PUi7xiSGc910q63z6rxZ4BcYe039Jjf2sTrqyjOc1PmQ3MJowNwM. Ve vašem případě bude aplikační klíč jiný.

K parsování datasetu z MovieLens a jeho import do PredictionIO použijeme skript import_ml.rb. Vyžaduje Ruby gem PredictionIO, který nainstalujeme příkazem  sudo gem install predictionio.

Vlastní import je jednoduchý:

ruby import_ml.rb NO5FpSnGh1F3PUi7xiSGc910q63z6rxZ4BcYe039Jjf2sTrqyjOc1PmQ3MJowNwM u.data

Kde u.data je dataset MovieLens 100k (obsahuje 100 tisíc filmových hodnocení od tisícovky uživatelů), který získáme z webu GroupLens.

Přidáváme enginy

Engine přidáme jednoduše kliknutím na tlačítko „Add an Engine“. V našem případě jsme přidali dva „itemrec“ a „itemsim“. Jakmile jsou enginy přidané, začnou automaticky s tréninkem podle rozvrhu.

predictionio-image01

Přístup k výsledkům

Nyní můžete přistupovat k výsledkům pomocí následujících URL (API server je na portu 8000).

Perzonalizované doporučení Top 10 filmů:

http://localhost:8000/engines/itemrec/itemrec/topn.json?pio_appkey=NO5FpSnGh1F3PUi7xiSGc910q63z6rxZ4BcYe039Jjf2sTrqyjOc1PmQ3MJowNwM&pio_n=10&pio_uid=1

Pokud se ti líbí tenhle film, může se ti líbit i tahle desítka dalších:

http://localhost:8000/engines/itemsim/itemsim/topn.json?pio_appkey=NO5FpSnGh1F3PUi7xiSGc910q63z6rxZ4BcYe039Jjf2sTrqyjOc1PmQ3MJowNwM&pio_n=10&pio_iid=1

Můžete v nich měnit parametry pio_uid (id uživatele) a pio_iid (id položky, tj. filmu).

Další informace

Komentáře

Odebírat
Upozornit na
guest
1 Komentář
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
Zobrazit všechny komentáře
cpt-nemo

Tedy praktické, ne z „zkusil jsem to a odložil“. Pokud ano, bude k tomu nějaké pokračování?

Přístupnost není jen o splnění norem: nový pohled na inkluzivní design

Přístupnost a inkluze možná nepatří mezi nejžhavější témata digitálního světa – dokud o nich nezačne mluvit Vitaly Friedman. Na WebExpo 2024 předvedl, že inkluzivní design není jen o splněných checkboxech, ale hlavně o lidech. S energií sobě vlastní obrátil zažité přístupy naruby a ukázal, že skutečně přístupný web je nejen možný, ale i nezbytný.

Efektivnější vývoj UI nebo API: Co si odnést z WebExpo 2025?

Různé
Komentáře: 0
Jak snadno implementovat moderní uživatelské rozhraní? Které funkce brzdí rychlost vašeho webu? A kdy raději sami přibrzdit, abychom využitím AI nepřekročili etické principy? Debatu aktuálních dev témat rozdmýchá sedmnáctý ročník technologické konference WebExpo, která proběhne v Praze od 28. do 30. května. Který talk či workshop si rozhodně nenechat ujít? Toto je náš redakční výběr z vývojářských hroznů.

Zapřáhněte AI jako nikdy předtím. Květnová konference WebExpo přivítá hvězdy technologického světa

Od 28. do 30. května 2025 promění pražský Palác Lucerna na tři dny technologická konference WebExpo. Na programu je více než 80 přednášek a workshopů od expertů z celého světa. WebExpo tradičně propojuje vývojáře, designéry, marketéry i byznysové lídry a nabízí praktické dovednosti, strategické myšlení a přináší nejnovější trendy nejen v oblasti AI.