Mahout - Apprendimento automatico

Apache Mahout è una libreria di machine learning altamente scalabile che consente agli sviluppatori di utilizzare algoritmi ottimizzati. Mahout implementa le più diffuse tecniche di machine learning come consigli, classificazione e clustering. Pertanto, è prudente avere una breve sezione sull'apprendimento automatico prima di andare oltre.

Cos'è l'apprendimento automatico?

L'apprendimento automatico è una branca della scienza che si occupa di programmare i sistemi in modo tale che imparino e migliorino automaticamente con l'esperienza. Qui apprendere significa riconoscere e comprendere i dati di input e prendere decisioni sagge sulla base dei dati forniti.

È molto difficile soddisfare tutte le decisioni basate su tutti i possibili input. Per affrontare questo problema, vengono sviluppati algoritmi. Questi algoritmi costruiscono la conoscenza da dati specifici e dall'esperienza passata con i principi di statistica, teoria della probabilità, logica, ottimizzazione combinatoria, ricerca, apprendimento per rinforzo e teoria del controllo.

Gli algoritmi sviluppati costituiscono la base di varie applicazioni come:

  • Elaborazione della visione
  • Elaborazione del linguaggio
  • Previsione (ad esempio, tendenze del mercato azionario)
  • Riconoscimento del modello
  • Games
  • Estrazione dei dati
  • Sistemi esperti
  • Robotics

L'apprendimento automatico è un'area vasta ed è ben oltre lo scopo di questo tutorial coprire tutte le sue funzionalità. Esistono diversi modi per implementare le tecniche di apprendimento automatico, tuttavia i più utilizzati sonosupervised e unsupervised learning.

Apprendimento supervisionato

L'apprendimento supervisionato si occupa di apprendere una funzione dai dati di formazione disponibili. Un algoritmo di apprendimento supervisionato analizza i dati di addestramento e produce una funzione dedotta, che può essere utilizzata per mappare nuovi esempi. Esempi comuni di apprendimento supervisionato includono:

  • classificare le e-mail come spam,
  • etichettare le pagine web in base al loro contenuto e
  • riconoscimento vocale.

Esistono molti algoritmi di apprendimento supervisionato come reti neurali, Support Vector Machines (SVM) e classificatori Naive Bayes. Mahout implementa il classificatore Naive Bayes.

Apprendimento senza supervisione

L'apprendimento senza supervisione ha senso per i dati senza etichetta senza avere alcun set di dati predefinito per la sua formazione. L'apprendimento senza supervisione è uno strumento estremamente potente per analizzare i dati disponibili e cercare modelli e tendenze. È più comunemente usato per raggruppare input simili in gruppi logici. Gli approcci comuni all'apprendimento senza supervisione includono:

  • k-means
  • mappe auto-organizzate e
  • raggruppamento gerarchico

Raccomandazione

Il consiglio è una tecnica diffusa che fornisce ottimi consigli basati sulle informazioni dell'utente come acquisti precedenti, clic e valutazioni.

  • Amazon utilizza questa tecnica per visualizzare un elenco di articoli consigliati che potrebbero interessarti, traendo informazioni dalle tue azioni passate. Esistono motori di raccomandazione che funzionano dietro Amazon per acquisire il comportamento degli utenti e consigliare gli articoli selezionati in base alle tue azioni precedenti.

  • Facebook utilizza la tecnica dei consiglieri per identificare e consigliare la "lista di persone che potresti conoscere".

Classificazione

Classificazione, nota anche come categorization, è una tecnica di apprendimento automatico che utilizza dati noti per determinare come classificare i nuovi dati in un insieme di categorie esistenti. La classificazione è una forma di apprendimento supervisionato.

  • Fornitori di servizi di posta come Yahoo! e Gmail utilizzano questa tecnica per decidere se un nuovo messaggio deve essere classificato come spam. L'algoritmo di categorizzazione si allena analizzando le abitudini degli utenti di contrassegnare determinati messaggi come spam. Sulla base di ciò, il classificatore decide se una futura posta debba essere depositata nella tua casella di posta o nella cartella spam.

  • L'applicazione iTunes utilizza la classificazione per preparare le playlist.

Clustering

Il clustering viene utilizzato per formare gruppi o cluster di dati simili basati su caratteristiche comuni. Il clustering è una forma di apprendimento senza supervisione.

  • Motori di ricerca come Google e Yahoo! utilizzare tecniche di clustering per raggruppare dati con caratteristiche simili.

  • I newsgroup utilizzano tecniche di clustering per raggruppare vari articoli in base ad argomenti correlati.

Il motore di clustering passa attraverso i dati di input completamente e in base alle caratteristiche dei dati, decide in quale cluster devono essere raggruppati. Dai un'occhiata al seguente esempio.

La nostra libreria di tutorial contiene argomenti su vari argomenti. Quando riceviamo un nuovo tutorial su TutorialsPoint, viene elaborato da un motore di clustering che decide, in base al suo contenuto, dove deve essere raggruppato.