Programmēšana

Izbaudiet mašīnmācīšanos kopā ar Mahout Hadoop

"Mahout" ir hindi valodas termins personai, kura brauc ar ziloņu. Šajā gadījumā zilonis ir Hadoop - un Mahout ir viens no daudzajiem projektiem, kas var sēdēt virs Hadoop, lai gan jums ne vienmēr ir nepieciešams MapReduce, lai to palaistu.

Mahout nodod spēcīgus matemātiskos rīkus tikai mirstīgo izstrādātāju rokās, kuri raksta InterWebs. Tā ir vispopulārāko un svarīgāko mašīnmācīšanās algoritmu ieviešanas pakete, un lielākā daļa realizāciju ir īpaši izstrādātas Hadoop izmantošanai, lai iespējotu milzīgu datu kopu mērogojamu apstrādi. Daži algoritmi algoritma rakstura dēļ ir pieejami tikai neparalalizējamā "sērijas" formā, taču visi var izmantot HDFS priekšrocības, lai ērti piekļūtu datiem jūsu Hadoop apstrādes cauruļvadā.

[Zināt to šobrīd par Hadoopu Strādājiet gudrāk, nevis grūtāk - lejupielādējiet izstrādātāju izdzīvošanas rokasgrāmatu, lai uzzinātu visus padomus un tendences, kas programmētājiem jāzina. | Atklājiet jaunumus biznesa lietojumprogrammās, izmantojot jaunumu biļetenu Technology: Applications. ]

Mašīnmācība, iespējams, ir praktiskākā mākslīgā intelekta (AI) apakškopa, koncentrējoties uz varbūtības un statistikas mācīšanās paņēmieniem. Visiem jūsu AI geeks šeit ir daži no mašīnmācīšanās algoritmiem, kas iekļauti Mahout: K nozīmē klasterizāciju, neskaidru K nozīmē klasteru izveidi, K nozīmē, latentu Dirichlet sadalījumu, vienskaitļa vērtību sadalīšanu, loģistisko regresiju, naivus Bayes un nejaušus meži. Mahout piedāvā arī augstāka līmeņa abstrakcijas "ieteikumu" ģenerēšanai (populāras e-komercijas vietnes vai sociālie tīkli).

Es zinu, kad kāds sāk runāt ar mašīnmācīšanos, AI un Tanimoto koeficientiem, jūs, iespējams, gatavojat popkornu un uzmundrināt, vai ne? ES arī nē. Dīvaini, neraugoties uz matemātikas sarežģītību, Mahoutam ir viegli lietojama API. Šeit ir garša:

// kaut kā ielādējiet mūsu datu failu

DataModel model = new FileDataModel (new File ("data.txt"));

ItemSimilarity sim = jauns LogLikelihoodSimilarity (modelis);

GenericItemBasedRecommender r = jauns GenericItemBasedRecommender (modelis, sim);

LongPrimitiveIterator items = dm.getItemIDs ();

while (items.hasNext ()) {

long itemId = items.nextLong ();

Saraksta ieteikumi = r.mostSimilarItems (itemId, 10);

// dariet kaut ko ar šiem ieteikumiem

}

Tas, ko šis mazais fragments darītu, ir ielādēt datu failu, nolādēt priekšmetus, pēc tam iegūt 10 ieteicamos vienumus, pamatojoties uz to līdzību. Tas ir izplatīts e-komercijas uzdevums. Tomēr tas, ka divi priekšmeti ir līdzīgi, nenozīmē, ka es gribu tos abus. Faktiski daudzos gadījumos es, iespējams, nevēlos iegādāties divas līdzīgas preces. Es domāju, ka es nesen nopirku velosipēdu - es nevēlos līdzīgāko priekšmetu, kas būtu cits velosipēds. Tomēr citi lietotāji, kuri iegādājās velosipēdus, iegādājās arī riepu sūkņus, tāpēc Mahout piedāvā arī lietotāju ieteikumus.

Abi piemēri ir ļoti vienkārši ieteikēji, un Mahout piedāvā progresīvākus ieteikumus, kas ņem vērā vairāk nekā dažus faktorus un var līdzsvarot lietotāju gaumi ar produkta īpašībām. Nevienam no tiem nav nepieciešama uzlabota sadalītā skaitļošana, taču Mahoutam ir citi algoritmi, kas to prasa.

Papildus ieteikumiem

Mahout ir daudz kas vairāk par iedomātu e-komercijas API. Faktiski citi algoritmi veic prognozes, klasifikācijas (piemēram, slēptos Markova modeļus, kas nodrošina lielāko daļu runas un valodas atpazīšanas internetā). Tas pat var palīdzēt atrast kopas vai drīzāk grupēt lietas, piemēram, cilvēku šūnas ... vai kaut ko citu, lai jūs varētu nosūtīt viņiem .... dāvanu grozus uz vienu adresi.

Protams, velns ir detaļās, un es esmu pārdomājis patiešām svarīgo daļu, kas ir pati pirmā līnija:

DataModel model = new FileDataModel (new File ("data.txt"));

Hei, ja jūs varētu iegūt dažus matemātikas geekus, kas paveiktu visu darbu un samazinātu visu skaitļošanu līdz aptuveni 10 rindām, kas veido algoritmu, mums visiem nebūtu darba. Tomēr kā šie dati nonāca tādā formātā, kāds mums bija vajadzīgs ieteikumiem? Spēja izstrādāt šī algoritma ieviešanu ir iemesls, kāpēc izstrādātāji nopelna lielus dolārus, un pat tad, ja Mahoutam nav nepieciešams Hadoop, lai ieviestu daudzus mašīnmācīšanās algoritmus, jums var būt nepieciešams Hadoop, lai datus ievietotu trīs kolonnās. nepieciešams ieteikums.

Mahout ir lielisks veids, kā izmantot vairākas funkcijas, sākot no ieteikumu dzinējiem līdz modeļu atpazīšanai un datu ieguvei. Kad mēs kā nozare būsim galā ar lielu, treknu Hadoop izvietošanu, interese par mašīnmācīšanos un, iespējams, arī AI vispār palielināsies, kā novēroja viens ieskatīgs komentārs manam Hadoop rakstam. Mahout būs klāt, lai palīdzētu.

Šis raksts "Izbaudiet mašīnmācīšanos kopā ar Mahoutu Hadoopā" sākotnēji tika publicēts vietnē .com. Sekojiet jaunākajām lietojumprogrammu izstrādes jaunumiem un lasiet vairāk Endrjū Olivera Stratēģiskā izstrādātāja emuāra vietnē .com. Jaunākās biznesa tehnoloģiju ziņas sekojiet .com vietnē Twitter.

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