Apprendimento automatico con Python - Metodi

Esistono vari algoritmi, tecniche e metodi ML che possono essere utilizzati per creare modelli per la risoluzione di problemi della vita reale utilizzando i dati. In questo capitolo, discuteremo di questi diversi tipi di metodi.

Diversi tipi di metodi

Di seguito sono riportati vari metodi ML basati su alcune ampie categorie:

Basato sulla supervisione umana

Nel processo di apprendimento, alcuni dei metodi basati sulla supervisione umana sono i seguenti:

Supervised Learning

Gli algoritmi oi metodi di apprendimento supervisionato sono gli algoritmi ML più comunemente utilizzati. Questo metodo o algoritmo di apprendimento prende il campione di dati, ovvero i dati di addestramento e il relativo output associato, ovvero etichette o risposte con ciascun campione di dati durante il processo di addestramento.

L'obiettivo principale degli algoritmi di apprendimento supervisionato è apprendere un'associazione tra i campioni di dati di input e gli output corrispondenti dopo aver eseguito più istanze di dati di addestramento.

Ad esempio, abbiamo

x: Variabili di input e

Y: Variabile di output

Ora, applica un algoritmo per apprendere la funzione di mappatura dall'input all'output come segue:

Y = f (x)

Ora, l'obiettivo principale sarebbe approssimare la funzione di mappatura così bene che anche quando abbiamo nuovi dati di input (x), possiamo facilmente prevedere la variabile di output (Y) per quei nuovi dati di input.

Si chiama supervisionato perché l'intero processo di apprendimento può essere pensato mentre è supervisionato da un insegnante o supervisore. Esempi di algoritmi di apprendimento automatico supervisionato includonoDecision tree, Random Forest, KNN, Logistic Regression eccetera.

Sulla base delle attività di ML, gli algoritmi di apprendimento supervisionato possono essere suddivisi in due grandi classi:

  • Classification
  • Regression

Classification

L'obiettivo principale delle attività basate sulla classificazione è prevedere le etichette di output categoriali o le risposte per i dati di input forniti. L'output sarà basato su ciò che il modello ha appreso in fase di formazione. Come sappiamo, le risposte di output categoriali indicano valori non ordinati e discreti, quindi ogni risposta di output apparterrà a una classe o categoria specifica. Discuteremo anche la classificazione e gli algoritmi associati in dettaglio nei prossimi capitoli.

Regression

L'obiettivo principale delle attività basate sulla regressione è prevedere le etichette di output o le risposte che sono valori numerici continui, per i dati di input forniti. L'output sarà basato su ciò che il modello ha appreso nella sua fase di formazione. Fondamentalmente, i modelli di regressione utilizzano le caratteristiche dei dati di input (variabili indipendenti) ei loro corrispondenti valori numerici di output continui (variabili dipendenti o di risultato) per apprendere l'associazione specifica tra input e output corrispondenti. Discuteremo anche la regressione e gli algoritmi associati in dettaglio nei capitoli successivi.

Apprendimento senza supervisione

Come suggerisce il nome, è l'opposto dei metodi o degli algoritmi ML supervisionati, il che significa che negli algoritmi di apprendimento automatico non supervisionati non abbiamo alcun supervisore che fornisca alcun tipo di guida. Gli algoritmi di apprendimento senza supervisione sono utili nello scenario in cui non abbiamo la libertà, come negli algoritmi di apprendimento supervisionato, di avere dati di addestramento pre-etichettati e vogliamo estrarre pattern utili dai dati di input.

Ad esempio, può essere inteso come segue:

Supponiamo di avere -

x: Input variables, quindi non ci sarebbe alcuna variabile di output corrispondente e gli algoritmi devono scoprire il modello interessante nei dati per l'apprendimento.

Esempi di algoritmi di apprendimento automatico non supervisionati includono il clustering K-means, K-nearest neighbors eccetera.

Sulla base delle attività ML, gli algoritmi di apprendimento senza supervisione possono essere suddivisi nelle seguenti ampie classi:

  • Clustering
  • Association
  • Riduzione della dimensionalità

Clustering

I metodi di clustering sono uno dei metodi ML senza supervisione più utili. Questi algoritmi venivano utilizzati per trovare somiglianze e schemi di relazione tra campioni di dati e quindi raggruppare tali campioni in gruppi aventi somiglianza basata su caratteristiche. L'esempio reale di clustering è raggruppare i clienti in base al loro comportamento di acquisto.

Association

Un altro utile metodo ML senza supervisione è Associationche viene utilizzato per analizzare set di dati di grandi dimensioni per trovare modelli che rappresentano ulteriormente le relazioni interessanti tra i vari elementi. È anche definito comeAssociation Rule Mining o Market basket analysis che viene utilizzato principalmente per analizzare i modelli di acquisto dei clienti.

Dimensionality Reduction

Questo metodo ML senza supervisione viene utilizzato per ridurre il numero di variabili delle caratteristiche per ogni campione di dati selezionando un insieme di caratteristiche principali o rappresentative. Una domanda che sorge qui è: perché dobbiamo ridurre la dimensionalità? La ragione alla base è il problema della complessità dello spazio delle caratteristiche che sorge quando iniziamo ad analizzare ed estrarre milioni di caratteristiche da campioni di dati. Questo problema si riferisce generalmente alla "maledizione della dimensionalità". PCA (Principal Component Analysis), vicini K-più vicini e analisi discriminante sono alcuni degli algoritmi popolari per questo scopo.

Anomaly Detection

Questo metodo ML senza supervisione viene utilizzato per scoprire il verificarsi di eventi rari o osservazioni che generalmente non si verificano. Utilizzando le conoscenze apprese, i metodi di rilevamento delle anomalie sarebbero in grado di distinguere tra un punto dati anomalo o normale. Alcuni degli algoritmi non supervisionati come il clustering, KNN può rilevare anomalie in base ai dati e alle sue caratteristiche.

Apprendimento semi-supervisionato

Questo tipo di algoritmi o metodi non sono né completamente supervisionati né completamente non supervisionati. Fondamentalmente rientrano tra i due metodi di apprendimento supervisionati e non supervisionati. Questi tipi di algoritmi utilizzano generalmente una piccola componente di apprendimento supervisionato, ovvero una piccola quantità di dati annotati pre-etichettati e una grande componente di apprendimento non supervisionato, ovvero molti dati senza etichetta per l'addestramento. Possiamo seguire uno dei seguenti approcci per implementare metodi di apprendimento semi-supervisionati:

  • Il primo e semplice approccio consiste nel costruire il modello supervisionato sulla base di una piccola quantità di dati etichettati e annotati e quindi costruire il modello non supervisionato applicando lo stesso a grandi quantità di dati non etichettati per ottenere più campioni etichettati. Ora, allena il modello su di loro e ripeti il ​​processo.

  • Il secondo approccio richiede alcuni sforzi extra. In questo approccio, possiamo prima utilizzare i metodi non supervisionati per raggruppare campioni di dati simili, annotare questi gruppi e quindi utilizzare una combinazione di queste informazioni per addestrare il modello.

Insegnamento rafforzativo

Questi metodi sono diversi dai metodi studiati in precedenza e anche usati molto raramente. In questo tipo di algoritmi di apprendimento, ci sarebbe un agente che vogliamo addestrare per un periodo di tempo in modo che possa interagire con un ambiente specifico. L'agente seguirà una serie di strategie per interagire con l'ambiente e poi, dopo aver osservato l'ambiente, intraprenderà azioni riguardanti lo stato attuale dell'ambiente. Di seguito sono riportati i passaggi principali dei metodi di apprendimento per rinforzo:

  • Step 1 - Innanzitutto, dobbiamo preparare un agente con una serie iniziale di strategie.

  • Step 2 - Quindi osservare l'ambiente e il suo stato attuale.

  • Step 3 - Successivamente, selezionare la politica ottimale relativa allo stato attuale dell'ambiente ed eseguire un'azione importante.

  • Step 4 - Ora, l'agente può ottenere la corrispondente ricompensa o penalità in base all'azione da esso intrapresa nel passaggio precedente.

  • Step 5 - Ora possiamo aggiornare le strategie se necessario.

  • Step 6 - Infine, ripetere i passaggi 2-5 finché l'agente non ha imparato e adotta le politiche ottimali.

Attività adatte al machine learning

Il diagramma seguente mostra il tipo di attività appropriato per vari problemi di ML:

Basato sulla capacità di apprendimento

Nel processo di apprendimento, i seguenti sono alcuni metodi basati sulla capacità di apprendimento:

Batch Learning

In molti casi, abbiamo sistemi di machine learning end-to-end in cui dobbiamo addestrare il modello in una volta sola utilizzando tutti i dati di training disponibili. Questo tipo di metodo di apprendimento o algoritmo è chiamatoBatch or Offline learning. Si chiama apprendimento batch o offline perché è una procedura una tantum e il modello verrà addestrato con i dati in un unico batch. Di seguito sono riportati i passaggi principali dei metodi di apprendimento in batch:

  • Step 1 - Innanzitutto, dobbiamo raccogliere tutti i dati di addestramento per iniziare ad addestrare il modello.

  • Step 2 - Ora, inizia l'addestramento del modello fornendo tutti i dati di addestramento in una volta.

  • Step 3 - Successivamente, interrompi il processo di apprendimento / formazione una volta ottenuti risultati / prestazioni soddisfacenti.

  • Step 4- Infine, distribuisci questo modello addestrato nella produzione. Qui, predice l'output per un nuovo campione di dati.

Apprendimento online

È completamente opposto ai metodi di apprendimento batch o offline. In questi metodi di apprendimento, i dati di addestramento vengono forniti all'algoritmo in più batch incrementali, chiamati mini-batch. I seguenti sono i passaggi principali dei metodi di apprendimento online:

  • Step 1 - Innanzitutto, dobbiamo raccogliere tutti i dati di addestramento per iniziare l'addestramento del modello.

  • Step 2 - Ora, avvia l'addestramento del modello fornendo un mini-batch di dati di addestramento all'algoritmo.

  • Step 3 - Successivamente, dobbiamo fornire i mini-batch di dati di addestramento in più incrementi all'algoritmo.

  • Step 4 - Poiché non si fermerà come l'apprendimento in batch, quindi dopo aver fornito tutti i dati di addestramento in mini-batch, fornire anche nuovi campioni di dati.

  • Step 5 - Infine, continuerà ad apprendere per un periodo di tempo sulla base dei nuovi campioni di dati.

Basato sull'approccio di generalizzazione

Nel processo di apprendimento, i seguenti sono alcuni metodi basati su approcci di generalizzazione:

Apprendimento basato sull'istanza

Il metodo di apprendimento basato sull'istanza è uno dei metodi utili che costruiscono i modelli ML effettuando la generalizzazione basata sui dati di input. È l'opposto dei metodi di apprendimento studiati in precedenza nel modo in cui questo tipo di apprendimento coinvolge i sistemi ML, nonché i metodi che utilizzano i punti di dati grezzi stessi per disegnare i risultati per i campioni di dati più recenti senza costruire un modello esplicito sui dati di addestramento.

In parole semplici, l'apprendimento basato sull'istanza inizia fondamentalmente a funzionare guardando i punti dati di input e quindi utilizzando una metrica di somiglianza, generalizzerà e predirà i nuovi punti dati.

Apprendimento basato su modelli

Nei metodi di apprendimento basati su modelli, viene eseguito un processo iterativo sui modelli ML che sono costruiti sulla base di vari parametri del modello, chiamati iperparametri e in cui i dati di input vengono utilizzati per estrarre le funzionalità. In questo apprendimento, gli iperparametri vengono ottimizzati sulla base di varie tecniche di convalida del modello. Questo è il motivo per cui possiamo dire che i metodi di apprendimento basati su modelli utilizzano un approccio ML più tradizionale verso la generalizzazione.