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í?

Product Engineer: supermani, nebo falešná efektivita?

Stále více firem propouští produktové týmy a sází na jednu roli, která to zvládne celé sama. Product Engineer je člověk, který vymyslí produkt, implementuje ho a vyhodnotí výsledky. S ekosystémem AI agentů místo kolegů. Efektivita? Na první pohled určitě. Ale je rozdíl mezi tím dodávat víc a rychleji a skutečně být efektivní. Tenhle rozdíl firmy zatím moc neřeší.

EU AI Act: co musí vývojářské týmy vědět do 2. srpna 2026

Druhého srpna začnou v EU platit povinnosti pro poskytovatele i provozovatele high-risk AI systémů: posouzení shody, technická dokumentace a quality management na straně providerů, uchovávání logů a dohled nad provozem na straně deployerů. Samostatně vstupují v platnost transparentní pravidla pro chatboty, generativní AI a deepfaky, a ta se týkají všech, nejen high-risk systémů. Kdo nasazuje AI v recruitmentu, credit scoringu nebo HR hodnocení, je v zóně. Čekání na odklad přes Digital Omnibus je sázka na legislativní proces, který ještě neskončil. A kdo si myslí, že se ho to netýká, protože „jen používá ChatGPT" v use casu z Annexu III, pravděpodobně špatně přečetl nařízení.

Vibe coding a skutečná cena kódu, který nikdo nečte

AI
Komentáře: 1
Andrej Karpathy pojmenoval vibe coding v únoru 2025 jako víkendový experiment, kdy vývojář nečte kód a nechá AI dělat všechno. Collins Dictionary z toho udělal slovo roku, startupy kolem toho vyrostly na desítky miliard dolarů. Jenže nejrigoróznější nezávislá studie zjistila, že AI nástroje zkušené vývojáře zpomalují o 19 %, přestože si oni sami mysleli, že zrychlili o 20 %. Mezi tím, co o vibe codingu věříme, a tím, co o něm víme, zeje díra – a je načase se do ní podívat.