Mahout - Introduzione
Viviamo in un'epoca in cui le informazioni sono disponibili in abbondanza. Il sovraccarico di informazioni è cresciuto a tal punto che a volte diventa difficile gestire le nostre piccole cassette postali! Immagina il volume di dati e registrazioni che alcuni siti web popolari (come Facebook, Twitter e Youtube) devono raccogliere e gestire su base giornaliera. Non è raro che anche siti Web meno conosciuti ricevano grandi quantità di informazioni in blocco.
Normalmente ricorriamo ad algoritmi di data mining per analizzare i dati in blocco per identificare le tendenze e trarre conclusioni. Tuttavia, nessun algoritmo di data mining può essere abbastanza efficiente da elaborare set di dati di grandi dimensioni e fornire risultati in tempi rapidi, a meno che le attività di calcolo non vengano eseguite su più macchine distribuite sul cloud.
Ora disponiamo di nuovi framework che ci consentono di suddividere un'attività di calcolo in più segmenti ed eseguire ogni segmento su una macchina diversa. Mahout è un framework di data mining di questo tipo che normalmente viene eseguito insieme all'infrastruttura Hadoop in background per gestire enormi volumi di dati.
Cos'è Apache Mahout?
Un mahout è colui che guida un elefante come suo padrone. Il nome deriva dalla sua stretta associazione con Apache Hadoop che utilizza un elefante come logo.
Hadoop è un framework open-source di Apache che consente di archiviare ed elaborare big data in un ambiente distribuito su cluster di computer utilizzando semplici modelli di programmazione.
Apache Mahoutè un progetto open source utilizzato principalmente per la creazione di algoritmi di apprendimento automatico scalabili. Implementa le più diffuse tecniche di apprendimento automatico come:
- Recommendation
- Classification
- Clustering
Apache Mahout è iniziato come sottoprogetto di Lucene di Apache nel 2008. Nel 2010, Mahout è diventato un progetto di primo livello di Apache.
Caratteristiche di Mahout
Le caratteristiche primitive di Apache Mahout sono elencate di seguito.
Gli algoritmi di Mahout sono scritti sopra Hadoop, quindi funziona bene in ambiente distribuito. Mahout utilizza la libreria Apache Hadoop per scalare in modo efficace nel cloud.
Mahout offre al programmatore un framework pronto per l'uso per eseguire attività di data mining su grandi volumi di dati.
Mahout consente alle applicazioni di analizzare grandi insiemi di dati in modo efficace e rapido.
Include diverse implementazioni di cluster abilitate per MapReduce come k-means, fuzzy k-means, Canopy, Dirichlet e Mean-Shift.
Supporta le implementazioni di classificazione Naive Bayes distribuite e Naive Bayes complementari.
Viene fornito con funzionalità di funzione fitness distribuite per la programmazione evolutiva.
Include matrici e librerie vettoriali.
Applicazioni di Mahout
Aziende come Adobe, Facebook, LinkedIn, Foursquare, Twitter e Yahoo utilizzano Mahout internamente.
Foursquare ti aiuta a scoprire luoghi, cibo e intrattenimento disponibili in una particolare area. Utilizza il motore di raccomandazione di Mahout.
Twitter utilizza Mahout per la modellazione degli interessi degli utenti.
Yahoo! usa Mahout per il pattern mining.