Sommario:
- Filtro collaborativo
- Clustering
- Gli algoritmi di classificazione fanno uso di insiemi di dati di addestramento con etichetta umana, in cui la classificazione e classificazione di tutti gli input futuri è regolata da queste etichette note. Questi classificatori implementano ciò che è noto come
Video: Introduction to Apache Mahout 2024
Apprendimento automatico si riferisce a una branca di tecniche di intelligenza artificiale che fornisce strumenti che consentono ai computer di migliorare la propria analisi in base agli eventi precedenti. Questi sistemi informatici sfruttano i dati storici di precedenti tentativi di risoluzione di un compito al fine di migliorare le prestazioni di futuri tentativi in attività simili.
In termini di risultati attesi, l'apprendimento automatico può sembrare molto simile a quell'altra parola d'ordine "data mining"; tuttavia, il primo si concentra sulla previsione attraverso l'analisi dei dati di addestramento preparati , il secondo riguarda la scoperta della conoscenza da dati grezzi non elaborati. Per questo motivo, l'apprendimento automatico dipende in gran parte dalle tecniche di modellizzazione statistica e attinge dalle aree della teoria della probabilità e del riconoscimento del modello.
Mahout è un progetto open source di Apache che offre librerie Java per algoritmi di apprendimento automatico distribuiti o altrimenti scalabili.
Questi algoritmi coprono attività di apprendimento automatico classiche come classificazione, clustering, analisi delle regole di associazione e raccomandazioni. Sebbene le librerie Mahout siano progettate per funzionare all'interno di un contesto Apache Hadoop, sono anche compatibili con qualsiasi sistema che supporti il framework MapReduce. Ad esempio, Mahout fornisce librerie Java per raccolte Java e operazioni matematiche comuni (algebra lineare e statistiche) che possono essere utilizzate senza Hadoop.
Come puoi vedere, le librerie Mahout sono implementate in Java MapReduce ed eseguite sul tuo cluster come raccolte di lavori MapReduce su YARN (con MapReduce v2) o MapReduce v1.
Mahout è un progetto in evoluzione con più contributori. Al momento della stesura di questo libro, la raccolta di algoritmi disponibili nelle librerie Mahout non è affatto completa; tuttavia, la raccolta di algoritmi implementati per l'uso continua ad espandersi nel tempo.
Esistono tre categorie principali di algoritmi di Mahout per supportare l'analisi statistica: filtraggio collaborativo, clustering e classificazione.
Filtro collaborativo
Mahout è stato specificamente progettato per servire come motore di raccomandazione, utilizzando il cosiddetto algoritmo di filtro di collaborazione . Mahout combina la ricchezza degli algoritmi di clustering e di classificazione a sua disposizione per produrre raccomandazioni più precise basate sui dati di input.
Questi consigli vengono spesso applicati contro le preferenze dell'utente, tenendo conto del comportamento dell'utente. Confrontando le selezioni precedenti di un utente, è possibile identificare i vicini più vicini (persone con una storia di decisione simile) a quell'utente e prevedere le selezioni future in base al comportamento dei vicini.
Prendi in considerazione un motore di "profilo di gusto" come Netflix, un motore che raccomanda valutazioni basate sul precedente punteggio e sulle abitudini di visualizzazione dell'utente. In questo esempio, i modelli comportamentali per un utente vengono confrontati con la cronologia dell'utente e le tendenze degli utenti con gusti simili appartenenti alla stessa comunità Netflix per generare una raccomandazione per il contenuto non ancora visualizzato dall'utente in questione.
Clustering
Diversamente dal metodo di apprendimento supervisionato per la funzione del motore di raccomandazione di Mahout, il clustering è una forma di apprendimento non supervisionato - dove le etichette per i punti dati sono sconosciute in anticipo e devono essere dedotte dai dati senza input umano (la parte supervisionata ). Generalmente, gli oggetti all'interno di un cluster dovrebbero essere simili; gli oggetti provenienti da diversi cluster dovrebbero essere dissimili. Le decisioni prese in anticipo sul numero di cluster da generare, i criteri per misurare la "somiglianza" e la rappresentazione degli oggetti avranno un impatto sull'etichettatura prodotta dagli algoritmi di clustering.
Ad esempio, un motore di cluster che viene fornito un elenco di articoli di notizie dovrebbe essere in grado di definire gruppi di articoli all'interno di quella raccolta che discutono argomenti simili.
Supponiamo che una serie di articoli su Canada, Francia, Cina, silvicoltura, petrolio e vino debbano essere raggruppati. Se il numero massimo di cluster era impostato su 2, il tuo algoritmo potrebbe produrre categorie come "regioni" e "industrie". "Le modifiche al numero di cluster produrranno diverse categorizzazioni; ad esempio, la selezione per 3 cluster può comportare raggruppamenti a coppie delle categorie dell'industria nazionale.
Classificazioni
Gli algoritmi di classificazione fanno uso di insiemi di dati di addestramento con etichetta umana, in cui la classificazione e classificazione di tutti gli input futuri è regolata da queste etichette note. Questi classificatori implementano ciò che è noto come
apprendimento supervisionato nel mondo del machine learning. Le regole di classificazione, impostate dai dati di addestramento, che sono state precedentemente etichettate dagli esperti di dominio, vengono quindi applicate a dati grezzi e non elaborati per determinare al meglio la loro etichettatura appropriata.
Queste tecniche sono spesso utilizzate dai servizi di posta elettronica che tentano di classificare la posta indesiderata prima che attraversino la posta in arrivo. Specificamente, dato un messaggio di posta elettronica contenente un insieme di frasi note per verificarsi comunemente insieme in una certa classe di posta spam - fornita da un indirizzo appartenente a una botnet conosciuta - l'algoritmo di classificazione è in grado di identificare in modo affidabile l'e-mail come dannosa.
Oltre alla ricchezza di algoritmi statistici forniti da Mahout in modo nativo, è disponibile anche un modulo
User Defined Algorithms (UDA) di supporto. Gli utenti possono sovrascrivere gli algoritmi esistenti o implementarne di propri tramite il modulo UDA. Questa solida personalizzazione consente la regolazione delle prestazioni degli algoritmi di Mahout nativi e la flessibilità nell'affrontare sfide uniche di analisi statistica. Se Mahout può essere visto come un'estensione statistica analitica per Hadoop, l'UDA dovrebbe essere vista come un'estensione delle capacità statistiche di Mahout.
Le tradizionali applicazioni di analisi statistica (come SAS, SPSS e R) sono dotate di potenti strumenti per generare flussi di lavoro. Queste applicazioni utilizzano interfacce utente grafiche intuitive che consentono una migliore visualizzazione dei dati. Gli script di Mahout seguono uno schema simile a questi altri strumenti per generare flussi di lavoro di analisi statistica.
Durante la fase finale di esplorazione e visualizzazione dei dati, gli utenti possono esportare in formati leggibili dall'uomo (JSON, CSV) o sfruttare gli strumenti di visualizzazione come Tableau Desktop.
L'architettura di Mahout si trova in cima alla piattaforma Hadoop. Hadoop alleggerisce il programmatore separando il compito di programmare i lavori MapReduce dalla complessa contabilità necessaria per gestire il parallelismo tra i file system distribuiti. Nello stesso spirito, Mahout fornisce astrazioni facili da programmare di complessi algoritmi statistici, pronti per l'implementazione con il framework Hadoop.