AI con Python - Machine Learning
L'apprendimento significa l'acquisizione di conoscenze o abilità attraverso lo studio o l'esperienza. Sulla base di ciò, possiamo definire l'apprendimento automatico (ML) come segue:
Può essere definito come il campo dell'informatica, più specificamente un'applicazione dell'intelligenza artificiale, che fornisce ai sistemi informatici la capacità di apprendere con i dati e migliorare dall'esperienza senza essere esplicitamente programmato.
Fondamentalmente, l'obiettivo principale dell'apprendimento automatico è consentire ai computer di apprendere automaticamente senza l'intervento umano. Ora sorge la domanda: come si può iniziare e fare tale apprendimento? Può essere avviato con le osservazioni dei dati. I dati possono essere alcuni esempi, istruzioni o anche alcune esperienze dirette. Quindi, sulla base di questo input, la macchina prende una decisione migliore cercando alcuni modelli nei dati.
Tipi di machine learning (ML)
Gli algoritmi di apprendimento automatico aiutano il sistema informatico ad apprendere senza essere programmato esplicitamente. Questi algoritmi sono classificati in supervisionati o non supervisionati. Vediamo ora alcuni algoritmi:
Algoritmi di machine learning supervisionati
Questo è l'algoritmo di apprendimento automatico più comunemente utilizzato. Si chiama supervisionato perché il processo di apprendimento dell'algoritmo dal set di dati di formazione può essere pensato come un insegnante che supervisiona il processo di apprendimento. In questo tipo di algoritmo ML, i possibili risultati sono già noti e anche i dati di addestramento sono etichettati con risposte corrette. Può essere inteso come segue:
Supponiamo di avere variabili di input x e una variabile di output y e abbiamo applicato un algoritmo per apprendere la funzione di mappatura dall'input all'output come -
Y = f(x)
Ora, l'obiettivo principale è approssimare la funzione di mappatura così bene che quando abbiamo nuovi dati di input (x), possiamo prevedere la variabile di output (Y) per quei dati.
I problemi di inclinazione principalmente supervisionati possono essere suddivisi nei seguenti due tipi di problemi:
Classification - Un problema è chiamato problema di classificazione quando abbiamo l'output classificato come "nero", "insegnamento", "non insegnamento", ecc.
Regression - Un problema è chiamato problema di regressione quando abbiamo l'output del valore reale come "distanza", "chilogrammo", ecc.
Albero decisionale, foresta casuale, knn, regressione logistica sono gli esempi di algoritmi di apprendimento automatico supervisionato.
Algoritmi di apprendimento automatico non supervisionati
Come suggerisce il nome, questi tipi di algoritmi di apprendimento automatico non hanno alcun supervisore che fornisca alcun tipo di guida. Questo è il motivo per cui gli algoritmi di apprendimento automatico non supervisionati sono strettamente allineati a ciò che alcuni chiamano la vera intelligenza artificiale. Può essere inteso come segue:
Supponiamo di avere la variabile di input x, quindi non ci saranno variabili di output corrispondenti come negli algoritmi di apprendimento supervisionato.
In parole semplici, possiamo dire che nell'apprendimento senza supervisione non ci sarà alcuna risposta corretta e nessun insegnante per la guida. Gli algoritmi aiutano a scoprire modelli interessanti nei dati.
I problemi di apprendimento senza supervisione possono essere suddivisi nei seguenti due tipi di problemi:
Clustering- Nei problemi di clustering, dobbiamo scoprire i raggruppamenti intrinseci nei dati. Ad esempio, raggruppando i clienti in base al loro comportamento di acquisto.
Association- Un problema è chiamato problema di associazione perché questo tipo di problema richiede la scoperta delle regole che descrivono grandi porzioni dei nostri dati. Ad esempio, trovare i clienti che acquistano entrambix e y.
K-means per il clustering, l'algoritmo Apriori per l'associazione sono gli esempi di algoritmi di apprendimento automatico non supervisionati.
Algoritmi di apprendimento automatico di rinforzo
Questi tipi di algoritmi di apprendimento automatico vengono utilizzati molto meno. Questi algoritmi addestrano i sistemi a prendere decisioni specifiche. Fondamentalmente, la macchina è esposta a un ambiente in cui si allena continuamente utilizzando il metodo per tentativi ed errori. Questi algoritmi apprendono dall'esperienza passata e cercano di acquisire la migliore conoscenza possibile per prendere decisioni accurate. Il processo decisionale di Markov è un esempio di algoritmi di apprendimento automatico di rinforzo.
Algoritmi di machine learning più comuni
In questa sezione, impareremo gli algoritmi di apprendimento automatico più comuni. Gli algoritmi sono descritti di seguito:
Regressione lineare
È uno degli algoritmi più noti in statistica e apprendimento automatico.
Concetto di base - Principalmente la regressione lineare è un modello lineare che presuppone una relazione lineare tra le variabili di input diciamo x e la variabile di output singola diciamo y. In altre parole, possiamo dire che y può essere calcolato da una combinazione lineare delle variabili di input x. La relazione tra le variabili può essere stabilita adattando una linea migliore.
Tipi di regressione lineare
La regressione lineare è dei seguenti due tipi:
Simple linear regression - Un algoritmo di regressione lineare è chiamato regressione lineare semplice se ha una sola variabile indipendente.
Multiple linear regression - Un algoritmo di regressione lineare è chiamato regressione lineare multipla se ha più di una variabile indipendente.
La regressione lineare viene utilizzata principalmente per stimare i valori reali in base a variabili continue. Ad esempio, la vendita totale di un negozio in un giorno, basata su valori reali, può essere stimata mediante regressione lineare.
Regressione logistica
È un algoritmo di classificazione e noto anche come logit regressione.
Principalmente la regressione logistica è un algoritmo di classificazione utilizzato per stimare i valori discreti come 0 o 1, vero o falso, sì o no sulla base di un dato insieme di variabili indipendenti. Fondamentalmente, prevede la probabilità, quindi il suo output è compreso tra 0 e 1.
Albero decisionale
L'albero decisionale è un algoritmo di apprendimento supervisionato utilizzato principalmente per problemi di classificazione.
Fondamentalmente è un classificatore espresso come partizione ricorsiva basata sulle variabili indipendenti. L'albero decisionale ha nodi che formano l'albero radicato. L'albero radicato è un albero diretto con un nodo chiamato "radice". La radice non ha bordi in entrata e tutti gli altri nodi hanno un bordo in entrata. Questi nodi sono chiamati foglie o nodi decisionali. Ad esempio, considera il seguente albero decisionale per vedere se una persona è adatta o meno.
Support Vector Machine (SVM)
Viene utilizzato sia per la classificazione che per i problemi di regressione. Ma principalmente è usato per problemi di classificazione. Il concetto principale di SVM è quello di tracciare ciascun elemento di dati come un punto nello spazio n-dimensionale con il valore di ciascuna caratteristica che è il valore di una particolare coordinata. Qui n sarebbero le caratteristiche che avremmo. Di seguito è riportata una semplice rappresentazione grafica per comprendere il concetto di SVM -
Nel diagramma sopra, abbiamo due caratteristiche, quindi dobbiamo prima tracciare queste due variabili in uno spazio bidimensionale in cui ogni punto ha due coordinate, chiamate vettori di supporto. La linea divide i dati in due diversi gruppi classificati. Questa linea sarebbe il classificatore.
Naïve Bayes
È anche una tecnica di classificazione. La logica alla base di questa tecnica di classificazione consiste nell'usare il teorema di Bayes per la costruzione di classificatori. Il presupposto è che i predittori siano indipendenti. In parole semplici, si presume che la presenza di una particolare caratteristica in una classe non sia correlata alla presenza di qualsiasi altra caratteristica. Di seguito è riportata l'equazione per il teorema di Bayes:
$$ P \ sinistra (\ frac {A} {B} \ destra) = \ frac {P \ sinistra (\ frac {B} {A} \ destra) P \ sinistra (A \ destra)} {P \ sinistra ( B \ right)} $$
Il modello Naïve Bayes è facile da costruire e particolarmente utile per grandi set di dati.
K-Nearest Neighbors (KNN)
Viene utilizzato sia per la classificazione che per la regressione dei problemi. È ampiamente utilizzato per risolvere problemi di classificazione. Il concetto principale di questo algoritmo è che viene utilizzato per memorizzare tutti i casi disponibili e classifica i nuovi casi con la maggioranza dei voti dei suoi vicini k. Il caso viene quindi assegnato alla classe che è la più comune tra i suoi vicini più vicini K, misurata da una funzione di distanza. La funzione distanza può essere euclidea, Minkowski e distanza di Hamming. Considera quanto segue per usare KNN:
A livello computazionale le KNN sono costose rispetto ad altri algoritmi utilizzati per problemi di classificazione.
La normalizzazione delle variabili necessarie, altrimenti variabili di intervallo più elevato, possono influenzarla.
In KNN, dobbiamo lavorare sulla fase di pre-elaborazione come la rimozione del rumore.
K-Means Clustering
Come suggerisce il nome, viene utilizzato per risolvere i problemi di clustering. È fondamentalmente un tipo di apprendimento senza supervisione. La logica principale dell'algoritmo di clustering K-Means consiste nel classificare il set di dati attraverso una serie di cluster. Segui questi passaggi per formare cluster con K-means:
K-means sceglie k numero di punti per ogni cluster noto come centroidi.
Ora ogni punto dati forma un cluster con i centroidi più vicini, cioè k cluster.
Ora troverà i centroidi di ciascun cluster in base ai membri del cluster esistenti.
Dobbiamo ripetere questi passaggi finché non si verifica la convergenza.
Foresta casuale
È un algoritmo di classificazione supervisionato. Il vantaggio dell'algoritmo di foresta casuale è che può essere utilizzato sia per la classificazione che per i problemi di regressione. Fondamentalmente è la raccolta di alberi decisionali (cioè foresta) o si può dire insieme degli alberi decisionali. Il concetto di base della foresta casuale è che ogni albero fornisce una classificazione e la foresta sceglie le migliori classificazioni da loro. I seguenti sono i vantaggi dell'algoritmo Random Forest:
Il classificatore di foresta casuale può essere utilizzato sia per le attività di classificazione che per quelle di regressione.
Possono gestire i valori mancanti.
Non si adatterà eccessivamente al modello anche se abbiamo più alberi nella foresta.