Programovanie

Užite si strojové učenie s Mahoutom na Hadoope

„Mahout“ je hindský výraz pre osobu, ktorá jazdí na slonovi. Slon je v tomto prípade Hadoop - a Mahout je jedným z mnohých projektov, ktoré môžu sedieť na vrchu Hadoop, aj keď na jeho spustenie nie vždy potrebujete MapReduce.

Mahout dáva mocné matematické nástroje do rúk obyčajných smrteľných vývojárov, ktorí píšu InterWebs. Je to balík implementácií najpopulárnejších a najdôležitejších algoritmov strojového učenia, pričom väčšina implementácií je navrhnutá špeciálne na použitie Hadoopu na umožnenie škálovateľného spracovania obrovských množín údajov. Niektoré algoritmy sú vzhľadom na povahu algoritmu dostupné iba v neporovnateľnej „sériovej“ podobe, ale všetky môžu využívať výhody HDFS na pohodlný prístup k údajom vo vašom spracovateľskom potrubí Hadoop.

[Teraz o Hadoop | Pracujte inteligentnejšie, nie ťažšie - stiahnite si Sprievodcu prežitím pre vývojárov, kde nájdete všetky tipy a trendy, ktoré programátori potrebujú vedieť. | Objavte, čo je nové v obchodných aplikáciách, pomocou informačného bulletinu Technology: Applications. ]

Strojové učenie je pravdepodobne najpraktickejšou podmnožinou umelej inteligencie (AI) so zameraním na pravdepodobnostné a štatistické techniky učenia. Pre všetkých geekov z oblasti AI sú tu niektoré algoritmy strojového učenia, ktoré sú súčasťou Mahouta: zhlukovanie K-prostriedkov, fuzzy zhlukovanie K-prostriedkov, K-prostriedky, latentná Dirichletova alokácia, rozklad singulárnych hodnôt, logistická regresia, naivný Bayes a náhodný lesy. Mahout tiež ponúka abstrakcie vyššej úrovne na generovanie „odporúčaní“ (à la populárne stránky elektronického obchodu alebo sociálne siete).

Viem, že keď niekto začne rozprávať o strojovom učení, AI a Tanimotových koeficientoch, pravdepodobne vyrobíte pukance a vylepšujete to, však? Ja tiež nie. Zvláštne je, že napriek zložitosti matematiky má Mahout ľahko použiteľné API. Tu je ochutnávka:

// nejako načítame náš dátový súbor

Model DataModel = nový FileDataModel (nový súbor ("data.txt"));

ItemSimilarity sim = nový LogLikelihoodSimilarity (model);

GenericItemBasedRecommender r = nový GenericItemBasedRecommender (model, sim);

LongPrimitiveIterator items = dm.getItemIDs ();

while (items.hasNext ()) {

long itemId = items.nextLong ();

Zoznam odporúčaní = r.mostSimilarItems (itemId, 10);

// urobte niečo s týmito odporúčaniami

}

Čo by tento malý útržok urobil, je načítať dátový súbor, preklínať položky a potom získať 10 odporúčaných položiek na základe ich podobnosti. Toto je bežná úloha elektronického obchodu. To, že sú si dve veci podobné, však neznamená, že ich chcem obidve. V skutočnosti sa mi v mnohých prípadoch asi nechce kúpiť dva podobné predmety. Myslím, že som si nedávno kúpil bicykel - nechcem najpodobnejšiu položku, ktorou by bol iný bicykel. Ostatní používatelia, ktorí si kúpili bicykle, si však kúpili aj pumpy na pneumatiky, takže Mahout ponúka aj odporúčateľov založených na používateľoch.

Oba príklady sú veľmi jednoduchými odporúčateľmi a spoločnosť Mahout ponúka pokročilejších odporúčateľov, ktorí zohľadňujú viac ako niekoľko faktorov a dokážu vyvážiť vkus používateľov a funkcií produktu. Žiadne z nich nevyžadujú pokročilé distribuované výpočty, ale Mahout má iné algoritmy, ktoré to vyžadujú.

Nad rámec odporúčaní

Mahout je oveľa viac ako vymyšlené rozhranie API pre elektronický obchod. V skutočnosti iné algoritmy vytvárajú predpovede a klasifikácie (napríklad skryté Markovove modely, ktoré umožňujú väčšinu rozpoznávania reči a jazyka na internete). Môže vám dokonca pomôcť nájsť zhluky alebo skôr zoskupiť veci, napríklad bunky ... ľudí alebo niečoho, aby ste im mohli posielať .... darčekové koše na jednu adresu.

Samozrejme, diabol je v detailoch a ja som sa zmienil o skutočne dôležitej časti, ktorou je ten prvý riadok:

Model DataModel = nový FileDataModel (nový súbor ("data.txt"));

Hej, ak by si mohol prinútiť matematických geekov, aby vykonali všetku prácu a znížili všetky výpočty na zhruba 10 riadkov, ktoré tvoria algoritmus, všetci by sme boli bez práce. Ako sa však tieto údaje dostali do formátu, ktorý sme potrebovali na vykonanie odporúčaní? Pretože vývojári dokážu navrhnúť implementáciu tohto algoritmu, zarábajú veľké peniaze. Aj keď Mahout nepotrebuje program Hadoop na implementáciu mnohých svojich algoritmov strojového učenia, možno budete potrebovať program Hadoop na vloženie údajov do troch stĺpcov. vyžaduje sa odporúčateľ.

Mahout je vynikajúci spôsob, ako využiť množstvo funkcií, od odporúčacích motorov cez rozpoznávanie vzorov až po dolovanie dát. Keď už ako priemysel skončíme s veľkým a tučným nasadením Hadoopu, záujem o strojové učenie a pravdepodobne aj o AI všeobecne exploduje, čo si všimol jeden bystrý komentátor môjho článku o Hadoop. Bude tam pomáhať Mahout.

Tento článok „Vychutnajte si strojové učenie s Mahoutom na Hadoop“ bol pôvodne publikovaný na .com. Držte krok s najnovšími správami vo vývoji aplikácií a prečítajte si viac z blogu Strategic Developer Andrewa Olivera na .com. Najnovšie správy o obchodných technológiách nájdete na Twitteri na serveri .com.

$config[zx-auto] not found$config[zx-overlay] not found