Implementazione di reti neurali da zero con Python [con esempi]

Pubblicato: 2020-12-07

In questo articolo impareremo come addestrare e costruire una rete neurale da zero.

Useremo il set di dati Churn per addestrare la nostra rete neurale. L'addestramento di una rete neurale non è complicato. Abbiamo bisogno di pre-elaborare i nostri dati in modo che il nostro modello possa facilmente prendere i nostri dati e addestrarsi senza ostacoli. Procederai come segue:

  • Installa Tensorflow
  • Importa biblioteche
  • Importa il set di dati
  • Trasforma i dati di input
  • Dividi i dati
  • Inizializzare il modello
  • Costruisci il modello
  • Allena il modello
  • Valuta il modello

Il tasso di abbandono è la misura degli abbonati di un'azienda o di una parte che tende a interrompere l'attività in un determinato periodo di tempo. Questo tasso gioca un ruolo essenziale nel decidere i profitti e nella formazione di piani per acquisire nuovi clienti. In parole povere, possiamo dire che la crescita aziendale può essere misurata dal tasso di abbandono.

In questo set di dati abbiamo tredici funzionalità, ma utilizziamo solo alcune funzionalità che soddisfano i nostri requisiti per prevedere la possibilità di interrompere un utente.

Impara il corso online di machine learning dalle migliori università del mondo. Guadagna master, Executive PGP o programmi di certificazione avanzati per accelerare la tua carriera.

Sommario

Installa TensorFlow

Possiamo utilizzare Google Colab se il tuo PC o laptop non dispone di una GPU oppure puoi utilizzare i notebook Jupyter. Se stai utilizzando il tuo sistema, aggiorna pip, quindi installa TensorFlow come segue.

Fonte immagine

Importa biblioteche

Nelle righe di codice sopra, ho appena importato tutte le librerie di cui avrò bisogno nel processo.

Numpy È una libreria utilizzata per eseguire operazioni matematiche sugli array.

Panda Per caricare il file di dati come frame di dati Panda e analizzare i dati.

Matplotlib Ho importato un pyplot per tracciare i grafici dei dati .

Importa set di dati

Il nostro set di dati è in formato CSV, quindi carichiamo il set di dati utilizzando le operazioni dei panda. Quindi dividiamo il set di dati in variabili dipendenti e indipendenti, dove X è considerato indipendente e Y è considerato dipendente.

Trasforma i dati

Nel nostro set di dati, abbiamo due caratteristiche categoriali, Geografia e Genere. Abbiamo bisogno di creare manichini per queste due funzionalità, quindi utilizziamo il metodo get_dummies e quindi li aggiungiamo ai nostri dati sulle funzionalità indipendenti.

Una volta che avremo finito di creare i manichini e di concatenarli ai nostri dati, rimuoveremo le caratteristiche originali, ovvero Genere e Geografia, dai nostri dati del treno.

Leggi: Apprendimento automatico e reti neurali

Dividi i dati

Da Sklearn, sotto-libreria model_selection, importeremo train_test_split, che viene utilizzato per dividere i set di treni e test. Possiamo usare la funzione train_test_split per fare la divisione. Il test_size = 0.3 indica la percentuale dei dati che dovrebbe essere trattenuta per il test.

Normalizza i dati

È essenziale assicurarsi che tutti i valori delle funzioni rientrino nello stesso intervallo. Sarebbe difficile per il modello apprendere i modelli sottostanti tra le funzionalità e imparare a prendere decisioni, quindi normalizziamo i nostri dati nello stesso intervallo utilizzando il metodo StandardScaler .

Importa dipendenze

Ora importeremo le funzionalità necessarie per costruire una rete neurale profonda.

Costruisci il modello

È ora di costruire il nostro modello!. Inizializziamo ora il nostro modello sequenziale. L'API sequenziale consente di creare modelli strato per strato per la maggior parte dei problemi.

La prima cosa che dobbiamo fare prima di costruire un modello è creare un oggetto modello stesso. Questo oggetto sarà un'istanza della classe denominata Sequential.

Aggiunta del primo livello completamente connesso

Se non sei a conoscenza dei tipi di livelli e delle loro funzionalità, ti consiglio di controllare il mio blog su Introduzione alle reti neurali, che ti consente di conoscere la maggior parte dei concetti di cui dovresti essere a conoscenza.

Significa che l'output di questa operazione dovrebbe avere sei neuroni in cui applichiamo la funzione di attivazione ReLU per interrompere la linearità e il numero di neuroni di input è 11. Aggiungiamo tutti questi iperparametri usando il metodo .add() .

Aggiungeremo un livello nascosto con la stessa configurazione in cui l'output di questo livello nascosto avrà sei nodi.

Livello di uscita

L'output di questo livello avrà un solo nodo, che indica se l'utente rimane o lascia l'abbonamento. In questo livello, utilizziamo il sigmoide come funzione di attivazione.

Ulteriori informazioni su: apprendimento profondo e reti neurali

Compilazione

Ora dobbiamo connettere la nostra rete con un ottimizzatore. Un ottimizzatore aggiornerà i pesi della nostra rete in base all'errore. Questo processo è noto come back-propagation.

Qui useremo adam come nostro ottimizzatore. Poiché il nostro risultato è in termini di binario, utilizziamo l'entropia incrociata binaria e la metrica che utilizziamo è l' accuratezza .

Allenare il modello

Questa fase è il percorso cruciale in cui dobbiamo addestrare il nostro modello per apprendere i modelli sottostanti, le relazioni tra i dati e prevedere il nuovo risultato in base alla sua conoscenza.

Usiamo il metodo model.fit() per addestrare il modello. Passiamo tre argomenti all'interno del metodo, che sono

input x_train è l'input che viene inviato alla rete

output questo contiene le risposte corrette per x_train, cioè y_train

no.of.epochs Indica il numero di volte in cui si intende addestrare la rete con il set di dati.

Valutare

Puoi valutare le prestazioni del modello importando precision_score dalla libreria sklearn in cui devi passare due argomenti. Uno è l'output effettivo e l'altro è l'output previsto.

Leggi anche : Applicazioni di reti neurali nel mondo reale

Conclusione

È tutto per ora. Spero che ti sia piaciuto costruire la tua prima rete neurale. Buon apprendimento!

Se sei interessato a saperne di più sull'apprendimento automatico, dai un'occhiata al programma Executive PG di IIIT-B e upGrad in Machine Learning e AI, progettato per i professionisti che lavorano e offre oltre 450 ore di formazione rigorosa, oltre 30 casi di studio e incarichi, IIIT -B Status di Alumni, oltre 5 progetti pratici pratici e assistenza sul lavoro con le migliori aziende.

Guida la rivoluzione tecnologica guidata dall'intelligenza artificiale

Richiedi il Master of Science in Machine Learning e Intelligenza Artificiale