Introduzione al Machine Learning in Python

L'apprendimento automatico è l'atto di dare ai computer la possibilità di apprendere senza programmarli esplicitamente. Questo viene fatto dando dati ai computer e facendoli trasformare i dati in modelli decisionali che vengono poi utilizzati per previsioni future.

In questo tutorial parleremo dell'apprendimento automatico e di alcuni concetti fondamentali necessari per iniziare con l'apprendimento automatico. Creeremo anche alcuni esempi Python per prevedere determinati elementi o eventi.

Introduzione all'apprendimento automatico

L'apprendimento automatico è un tipo di tecnologia che mira a imparare dall'esperienza. Ad esempio, come umano, puoi imparare a giocare a scacchi semplicemente osservando le altre persone che giocano a scacchi. Allo stesso modo, i computer vengono programmati fornendo loro i dati da cui apprendono e sono quindi in grado di prevedere elementi o condizioni futuri.

Diciamo, per esempio, che vuoi scrivere un programma che sappia dire se un certo tipo di frutta è un'arancia o un limone. Potresti trovare facile scrivere un programma di questo tipo e fornirà i risultati richiesti, ma potresti anche scoprire che il programma non funziona in modo efficace per i set di dati di grandi dimensioni. È qui che entra in gioco l'apprendimento automatico.

Ci sono varie fasi coinvolte nell'apprendimento automatico:

  1. raccolta di dati
  2. filtraggio dei dati
  3. analisi dei dati
  4. addestramento algoritmo
  5. test dell'algoritmo
  6. utilizzando l'algoritmo per previsioni future

L'apprendimento automatico utilizza diversi tipi di algoritmi per trovare schemi e questi algoritmi sono classificati in due gruppi:

  • apprendimento supervisionato
  • apprendimento senza supervisione

Apprendimento supervisionato

L'apprendimento supervisionato è la scienza della formazione di un computer per riconoscere elementi fornendo dati di esempio. Il computer impara da esso ed è in grado di prevedere i set di dati futuri basati sui dati appresi.

Ad esempio, puoi addestrare un computer per filtrare i messaggi di spam in base alle informazioni passate.

L'apprendimento supervisionato è stato utilizzato in molte applicazioni, ad es. Facebook, per cercare immagini basate su una determinata descrizione. Ora puoi cercare immagini su Facebook con parole che descrivono il contenuto della foto. Dal momento che il sito di social networking ha già un database di immagini sottotitolate, è in grado di cercare e abbinare la descrizione alle caratteristiche delle foto con un certo grado di accuratezza.

Ci sono solo due passaggi coinvolti nell'apprendimento supervisionato:

  • formazione
  • analisi

Alcuni degli algoritmi di apprendimento supervisionati includono:

  • alberi decisionali
  • supporto macchine vettoriali
  • ingenuo Bayes
  • k-vicino più prossimo
  • regressione lineare

Esempio

Stiamo andando a scrivere un semplice programma per dimostrare come funziona l'apprendimento supervisionato usando la libreria Sklearn e il linguaggio Python. Sklearn è una libreria di apprendimento automatico per il linguaggio di programmazione Python con una gamma di funzioni come analisi multiple, regressione e algoritmi di clustering.

Sklearn interagisce bene anche con le librerie NumPy e SciPy.

Installa Sklearn

La guida all'installazione di Sklearn offre un modo molto semplice di installarlo per più piattaforme. Richiede diverse dipendenze:

  • Python (> = 2.7 o> = 3.3),
  • NumPy (> = 1.82)
  • SciPy (> = 0.13.3)

Se hai già queste dipendenze, puoi installare Sklearn semplicemente come:

pip install -U scikit-learn

Un modo più semplice è semplicemente installare Anaconda. Questo si prende cura di tutte le dipendenze in modo da non doverti preoccupare di installarle una per una.

Per verificare se Sklearn funziona correttamente, è sufficiente importarlo da un interprete Python come segue:

importa sklearn

Se non si verifica alcun errore, allora sei a posto.

Ora che abbiamo terminato l'installazione, torniamo al nostro problema. Vogliamo saper distinguere tra diversi animali. Quindi progetteremo un algoritmo in grado di dire in modo specifico se un dato animale è un cavallo o un pollo.

Per prima cosa dobbiamo raccogliere alcuni dati di esempio da ciascun tipo di animale. Alcuni dati di esempio sono mostrati nella tabella seguente.

Altezza (pollici) Peso (kg)
Temperatura (Celsius)
Etichetta
7
0.6
40 Pollo (0)
7
0.6 41
Pollo (0)
37
0.8 37
Cavallo (1)
37
0.8 38
Cavallo (1)

I dati di esempio che abbiamo ottenuto forniscono alcune delle caratteristiche comuni dei due animali e i dati di due animali. Più grandi sono i dati del campione, più accurati e meno distorti saranno i risultati.

Con questo tipo di dati, possiamo codificare un algoritmo e addestrarlo a riconoscere un animale in base ai valori addestrati e classificarlo come un cavallo o un pollo. Ora andremo avanti e scriveremo l'algoritmo che porterà a termine il lavoro.

Innanzitutto, importa il modulo dell'albero da Sklearn.

da albero di importazione sklearn

Definire le caratteristiche che si desidera utilizzare per classificare gli animali.

features = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]]

Definisci l'output che ciascun classificatore darà. Un pollo sarà rappresentato da 0, mentre un cavallo sarà rappresentato da 1.

#labels = [pollo, pollo, cavallo, cavallo] # usiamo 0 per rappresentare un pollo e 1 per rappresentare un cavallo etichette = [0, 0, 1, 1] 

Quindi definiamo il classificatore che sarà basato su un albero decisionale.

classifier = tree.DecisionTreeClassifier ()

Alimenta o adatta i tuoi dati al classificatore.

classifier.fit (caratteristiche, etichette) 

Il codice completo per l'algoritmo è mostrato sotto.

from sklearn import tree features = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]] #labels = [pollo, pollo, cavallo, cavallo ] labels = [0, 0, 1, 1] classif = tree.DecisionTreeClassifier () classif.fit (caratteristiche, etichette)

Ora possiamo prevedere un dato insieme di dati. Ecco come prevedere un animale con un'altezza di 7 pollici, un peso di 0,6 kg e una temperatura di 41:

from sklearn import tree features = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]] #labels = [pollo, pollo, cavallo, cavallo ] labels = [0, 0, 1, 1] classif = tree.DecisionTreeClassifier () classif.fit (funzioni, etichette) print classif.predict ([[7, 0.6, 41]]) #output # [0] o a pollo

Ecco come prevedere un animale con un'altezza di 38 pollici, un peso di 600 kg e una temperatura di 37,5:

from sklearn import tree features = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]] #labels = [pollo, pollo, cavallo, cavallo ] labels = [0, 0, 1, 1] classif = tree.DecisionTreeClassifier () classif.fit (funzioni, etichette) print classif.predict ([[38, 600, 37.5]]) # output # [1] o a Cavallo 

Come puoi vedere sopra, hai allenato l'algoritmo per apprendere tutte le caratteristiche e i nomi degli animali, e la conoscenza di questi dati è utilizzata per testare nuovi animali.

Apprendimento senza supervisione

L'apprendimento senza sorveglianza è quando si allena la macchina con solo una serie di input. La macchina sarà quindi in grado di trovare una relazione tra i dati di input e qualsiasi altra cosa che si potrebbe desiderare di prevedere. A differenza dell'apprendimento supervisionato, in cui si presenta una macchina con alcuni dati da addestrare, l'apprendimento senza supervisione è inteso a fare in modo che il computer trovi schemi o relazioni tra diversi dataset.

L'apprendimento senza supervisione può essere ulteriormente suddiviso in:

  • il clustering
  • associazione

Clustering: Clustering significa raggruppare i dati intrinsecamente. Ad esempio, è possibile classificare le abitudini di acquisto dei consumatori e utilizzarli per la pubblicità indirizzando i consumatori in base ai loro acquisti e alle loro abitudini di acquisto.

Associazione: L'associazione è il punto in cui si identificano le regole che descrivono grandi serie di dati. Questo tipo di apprendimento può essere applicabile nell'associazione di libri basati su autore o categoria, sia libri motivazionali, narrativi o educativi.

Alcuni dei popolari algoritmi di apprendimento non supervisionati includono:

  • k-significa clustering
  • clustering gerarchico

L'apprendimento senza supervisione sarà una tecnologia importante nel prossimo futuro. Ciò è dovuto al fatto che ci sono molti dati non filtrati che non sono ancora stati digitalizzati.

Conclusione

Spero che questo tutorial ti abbia aiutato a iniziare con l'apprendimento automatico. Questa è solo un'introduzione: l'apprendimento della macchina ha molto da coprire, e questa è solo una minima parte di ciò che l'apprendimento automatico può fare.

Inoltre, non esitate a vedere ciò che abbiamo a disposizione per la vendita e per studiare nel mercato Envato, e non esitate a fare domande e fornire il vostro prezioso feedback utilizzando il feed qui sotto.

La tua decisione di utilizzare un algoritmo di apprendimento automatico sorvegliato o non supervisionato dipenderà da vari fattori, come la struttura e la dimensione dei dati.

L'apprendimento automatico può essere applicato in quasi tutte le aree della nostra vita, ad es. nella prevenzione delle frodi, personalizzando i feed di notizie nei siti di social media per soddisfare le preferenze degli utenti, il filtraggio di e-mail e malware, le previsioni meteorologiche e persino nel settore dell'e-commerce per prevedere le abitudini di acquisto dei consumatori.