Introduzione agli algoritmi di Machine Learning

L'apprendimento automatico è lo studio dell'analisi predittiva che si basa sul principio secondo cui i computer apprendono dai dati passati e quindi fanno previsioni sui nuovi dati. L'avvento degli algoritmi di Machine Learning risale a molto tempo fa quando i computer furono sviluppati. Tuttavia, il recente clamore è il risultato delle grandi quantità di dati che vengono generati e dell'enorme potere computazionale che i computer moderni possiedono. Ciò ha portato alla nascita di Deep Learning, un sottocampo di Machine Learning che prospera su più dati. Funziona come un cervello umano in cui i neuroni vengono utilizzati per prendere decisioni migliori. Allo stesso modo, nel Deep Learning, le reti neurali formano gli strati che seguono il principio dell'inoltro e della propagazione all'indietro per prendere decisioni migliori.

Categorie di algoritmi di apprendimento automatico

Il campo degli algoritmi di Machine Learning potrebbe essere classificato in -

  • Apprendimento supervisionato - Nell'apprendimento supervisionato, il set di dati è etichettato, ovvero per ogni caratteristica o variabile indipendente, vi sono dati target corrispondenti che utilizzeremmo per formare il modello.
  • Apprendimento supervisionato delle Nazioni Unite - A differenza dell'apprendimento supervisionato, il set di dati non è etichettato in questo caso. Pertanto, la tecnica di clustering viene utilizzata per raggruppare i dati in base alla loro somiglianza tra i punti di dati nello stesso gruppo.
  • Apprendimento per rinforzo - Un tipo speciale di Machine Learning in cui il modello apprende da ogni azione intrapresa. Il modello viene premiato per qualsiasi decisione corretta presa e penalizzato per qualsiasi decisione errata che gli consenta di apprendere gli schemi e prendere decisioni più accurate su dati sconosciuti.

Divisione di algoritmi di apprendimento automatico

I problemi negli algoritmi di Machine Learning potrebbero essere suddivisi in -

  • Regressione : esiste una relazione continua tra le variabili dipendenti e indipendenti. La variabile di destinazione è di natura numerica mentre le variabili indipendenti potrebbero essere numeriche o categoriche.
  • Classificazione - L'affermazione del problema più comune che potresti trovare nel mondo reale è classificare un punto dati in una classe binaria, multinomiale o ordinale. Nel problema di classificazione binaria, la variabile target ha solo due risultati (Sì / No, 0/1, Vero / Falso). Nel problema Classificazione multinomiale, ci sono più classi nella variabile target (Apple / Orange / Mango e così via). Nel problema della classificazione ordinale, viene ordinata la variabile target (ad es. Il grado degli studenti).

Ora, per risolvere questo tipo di problemi, programmatori e scienziati hanno sviluppato alcuni programmi o algoritmi che potrebbero essere utilizzati sui dati per fare previsioni. Questi algoritmi potrebbero essere suddivisi in algoritmi lineari e non lineari o basati su alberi. Gli algoritmi lineari come la regressione lineare, la regressione logistica sono generalmente utilizzati quando esiste una relazione lineare tra la caratteristica e la variabile target, mentre i dati che mostrano modelli non lineari, i metodi basati su alberi come Albero decisionale, Foresta casuale, Aumento gradiente, ecc., sono preferiti.

Finora abbiamo avuto una breve intuizione sull'apprendimento automatico. Ora impareresti alcuni dei suoi algoritmi pre-programmati che potresti usare nel tuo prossimo progetto.

algoritmi

Esistono numerosi algoritmi di Machine Learning attualmente sul mercato e aumenterà solo considerando la quantità di ricerche che vengono condotte in questo campo. La regressione lineare e logistica sono generalmente i primi algoritmi che apprendi come scienziato dei dati seguito da algoritmi più avanzati.

Di seguito sono riportati alcuni algoritmi di Machine Learning insieme a frammenti di codice di esempio in Python.

1. Regressione lineare

Come suggerisce il nome, questo algoritmo potrebbe essere usato nei casi in cui la variabile target di natura continua dipende linearmente dalle variabili dipendenti. È rappresentato da -

y = a * x + b + e, dove y è la variabile target che stiamo cercando di prevedere, a è l'intercettazione eb è la pendenza, x è la nostra variabile dipendente utilizzata per fare la previsione. Questa è una regressione lineare semplice in quanto esiste solo una variabile indipendente. Nel caso della regressione lineare multipla, l'equazione sarebbe stata -

y = a1*x1 + a2*x2 + …… + a(n)*x(n) + b + e

Qui, e è il termine di errore e a1, a2 .. a (n) sono il coefficiente delle variabili indipendenti.

Per valutare le prestazioni del modello, viene utilizzata una metrica che in questo caso potrebbe essere Errore quadratico medio radice che è la radice quadrata della media della somma della differenza tra i valori effettivi e quelli previsti.

L'obiettivo della regressione lineare è di trovare la linea più adatta che minimizzi la differenza tra i punti dati effettivi e quelli previsti.

La regressione lineare potrebbe essere scritta in Python come di seguito -

2. Regressione logistica

In termini di mantenimento di una relazione lineare, è la stessa della regressione lineare. Tuttavia, a differenza della regressione lineare, la variabile target nella regressione logistica è categorica, cioè binaria, multinomiale o ordinale. La scelta della funzione di attivazione è importante nella regressione logistica poiché per i problemi di classificazione binaria viene utilizzato il registro delle probabilità a favore, ovvero la funzione sigmoide.

Nel caso di un problema multi-classe, la funzione softmax è preferita in quanto una funzione sigmoide richiede molto tempo di calcolo.

La metrica utilizzata per valutare un problema di classificazione è generalmente Precisione o curva ROC. Più l'area è sotto il ROC, migliore è il modello. Un grafico casuale avrebbe un AUC di 0, 5. Il valore 1 indica la massima precisione, mentre 0 indica la minima precisione.

La regressione logistica potrebbe essere scritta nell'apprendimento come -


3. K-vicini più vicini

Gli algoritmi di Machine Learning potrebbero essere utilizzati sia per problemi di classificazione che di regressione. L'idea alla base del metodo KNN è che prevede il valore di un nuovo punto dati basato sui suoi vicini K più vicini. K è generalmente preferito come un numero dispari per evitare qualsiasi conflitto. Durante la classificazione di qualsiasi nuovo punto dati, viene presa in considerazione la classe con la modalità più alta all'interno dei vicini. Mentre per il problema di regressione, la media è considerata come il valore.

Ho imparato che il KNN è scritto come -


KNN viene utilizzato nella costruzione di un motore di raccomandazione.

4. Supportare macchine vettoriali

Un algoritmo di classificazione in cui un iperpiano separa le due classi. In un problema di classificazione binaria, due vettori di due classi distinte sono considerati noti come vettori di supporto e l'iperpiano viene disegnato alla massima distanza dai vettori di supporto.

Come puoi vedere, una singola riga separa le due classi. Tuttavia, nella maggior parte dei casi, i dati non sarebbero così perfetti e un semplice iperpiano non sarebbe in grado di separare le classi. Pertanto, è necessario ottimizzare parametri come regolarizzazione, kernel, gamma e così via.

Il kernel potrebbe essere lineare o polinomiale a seconda di come i dati sono separati. In questo caso, il kernel è di natura lineare. Nel caso della regolarizzazione, è necessario scegliere un valore ottimale di C, poiché l'alto valore potrebbe comportare un eccesso di adattamento mentre un valore ridotto potrebbe non essere adeguato al modello. L'influenza di un singolo esempio di allenamento è definita da Gamma. I punti vicini alla linea sono considerati in gamma alta e viceversa per gamma bassa.

In sklearn, SVM è scritto come -


5. Naive Bayes

Funziona secondo il principio del teorema di Bayes che trova la probabilità di un evento considerando alcune condizioni reali. Il teorema di Bayes è rappresentato come -

L'algoritmo si chiama Naive perché ritiene che tutte le variabili siano indipendenti e la presenza di una variabile non abbia alcuna relazione con le altre variabili, cosa che non accade nella vita reale. Naive Bayes potrebbe essere utilizzato nella classificazione Email Spam e nella classificazione testuale.

Codice Naive Bayes in Python -

6. Albero decisionale

Utilizzato sia per problemi di classificazione che di regressione, l'algoritmo Decision Tree è uno degli algoritmi di Machine Learning più semplici e facilmente interpretabili. Non è influenzato da valori anomali o valori mancanti nei dati e potrebbe acquisire relazioni non lineari tra le variabili dipendenti e indipendenti.

Per creare un albero decisionale, tutte le funzionalità vengono considerate all'inizio, ma la funzionalità con il massimo guadagno di informazioni viene considerata come nodo radice finale in base al quale viene eseguita la suddivisione successiva. Questa suddivisione continua sul nodo figlio in base ai criteri di informazioni massime e si interrompe fino a quando tutte le istanze non sono state classificate o non è stato possibile suddividere ulteriormente i dati. Gli alberi decisionali sono spesso inclini a un eccesso di adattamento e quindi è necessario ottimizzare l'iperparametro come profondità massima, nodi fogliari minimi, campioni minimi, caratteristiche massime e così via. Per ridurre il sovradimensionamento, esiste un approccio avido che fissa i vincoli in ogni fase e sceglie i migliori criteri possibili per quella divisione. Esiste un altro approccio migliore chiamato Potatura in cui l'albero viene prima costruito fino a una certa profondità predefinita e quindi a partire dal basso i nodi vengono rimossi se non migliora il modello.

In sklearn, gli alberi decisionali sono codificati come -



7. Foresta casuale

Per ridurre il sovradimensionamento nell'albero decisionale, è necessario ridurre la varianza del modello e quindi è entrato in vigore il concetto di insaccamento. Il bagging è una tecnica in cui l'output di diversi classificatori viene utilizzato per formare l'output finale. Foresta casuale è uno di questi metodi di insaccamento in cui il set di dati viene campionato in più set di dati e le funzionalità vengono selezionate in modo casuale per ogni set. Quindi su ogni dato campionato, l'algoritmo dell'albero decisionale viene applicato per ottenere l'output da ciascuna modalità. Nel caso di un problema di regressione, viene presa la media dell'output di tutti i modelli mentre, in caso di problema di classificazione, viene considerata la classe che ottiene il voto massimo per classificare il punto dati. La foresta casuale non è influenzata da valori anomali, valori mancanti nei dati e aiuta anche nella riduzione della dimensionalità. Tuttavia, non è interpretabile quale inconveniente di Random Forest. In Python, puoi codificare Random Forest come -


8. K significa clustering

Finora, abbiamo lavorato con problemi di apprendimento supervisionato in cui per ogni input esiste un output corrispondente. Ora, impareremmo sull'apprendimento senza supervisione in cui i dati non sono etichettati e devono essere raggruppati in gruppi specifici. Sono disponibili diverse tecniche di clustering. Tuttavia, il più comune di questi è il clustering di K-medie. Ink-significa, k si riferisce al numero di cluster che devono essere impostati prima di mantenere la massima varianza nel set di dati. Una volta impostato k, i centroidi vengono inizializzati. I centroidi vengono quindi regolati ripetutamente in modo tale che la distanza tra i punti dati all'interno di un centroide sia massima e la distanza tra due punti separati sia massima. La distanza euclidea, la distanza di Manhattan, ecc. Sono alcune delle formule della distanza utilizzate a questo scopo.

Il valore di k potrebbe essere trovato dal metodo del gomito.

Il clustering K-significa viene utilizzato nelle industrie di e-commerce in cui i clienti sono raggruppati in base ai loro modelli comportamentali. Potrebbe essere utilizzato anche in Risk Analytics. Di seguito è riportato il codice Python -


Conclusione: algoritmi di apprendimento automatico

Data Scientist è il lavoro più sexy del 21 ° secolo e Machine Learning è sicuramente una delle sue aree chiave di competenza. Per essere uno scienziato dei dati, è necessario possedere una conoscenza approfondita di tutti questi algoritmi e anche di molte altre nuove tecniche come il Deep Learning.

Articoli consigliati

Questa è stata una guida agli algoritmi di Machine Learning. Qui discutiamo il concetto, le categorie, i problemi e i diversi algoritmi del linguaggio macchina. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Tecniche di apprendimento automatico
  2. Che cos'è l'apprendimento profondo
  3. Data Scientist vs Machine Learning
  4. Apprendimento supervisionato vs apprendimento non supervisionato
  5. Apprendimento automatico iperparametro
  6. Che cos'è l'apprendimento per rinforzo?
  7. Tecniche più utilizzate per l'apprendimento degli ensemble
  8. Guida completa agli esempi di algoritmo C ++
  9. Guida alle fasi del ciclo di vita dell'apprendimento automatico

Categoria: