Implementarea rețelelor neuronale de la zero cu Python [cu exemple]

Publicat: 2020-12-07

În acest articol, vom învăța cum să antrenăm și să construim o rețea neuronală de la zero.

Vom folosi setul de date Churn pentru a ne antrena rețeaua neuronală. Antrenarea unei rețele neuronale nu este complicată. Trebuie să ne preprocesăm datele, astfel încât modelul nostru să ne poată prelua cu ușurință datele și să ne antrenăm fără obstacole. Veți proceda după cum urmează:

  • Instalați Tensorflow
  • Import biblioteci
  • Importați setul de date
  • Transformați datele de intrare
  • Împărțiți datele
  • Inițializați modelul
  • Construiți modelul
  • Antrenează modelul
  • Evaluați modelul

Rata de abandon este măsura abonaților unei companii sau a unei părți care tinde să întrerupă activitatea într-o anumită perioadă de timp. Această rată joacă un rol esențial în deciderea profiturilor și a planurilor pentru a câștiga noi clienți. În termeni simpli, putem spune că creșterea companiei poate fi măsurată prin rata de abandon.

În acest set de date, avem treisprezece funcții, dar folosim doar câteva caracteristici care îndeplinesc cerințele noastre pentru a prezice șansa de a întrerupe un utilizator.

Învață curs online de învățare automată de la cele mai bune universități din lume. Câștigă programe de master, Executive PGP sau Advanced Certificate pentru a-ți accelera cariera.

Cuprins

Instalați TensorFlow

Putem folosi Google Colab dacă computerul sau laptopul dvs. nu are un GPU sau puteți utiliza notebook-uri Jupyter. Dacă utilizați sistemul, actualizați pip și apoi instalați TensorFlow după cum urmează.

Sursa imaginii

Import biblioteci

În liniile de cod de mai sus, tocmai am importat toate bibliotecile de care voi avea nevoie în acest proces.

Numpy Este o bibliotecă folosită pentru a efectua operații matematice pe tablouri.

Pandas Pentru a încărca fișierul de date ca un cadru de date Pandas și a analiza datele.

Matplotlib Am importat un pyplot pentru a reprezenta grafice ale datelor .

Importați set de date

Setul nostru de date este în format CSV, așa că încărcăm setul de date folosind operațiuni Pandas. Apoi împărțim setul de date în variabile dependente și independente, unde X este considerat independent și Y este considerat dependent.

Transformă datele

În setul nostru de date, avem două caracteristici categorice, Geografie și Gen. Trebuie să creăm manechine pentru aceste două caracteristici, așa că folosim metoda get_dummies și apoi le anexăm la datele noastre independente de caracteristici.

Odată ce am terminat de creat manechine și de concatenarea lor la datele noastre, vom elimina caracteristicile originale, adică Gen și Geografie, din datele noastre de tren.

Citiți: Învățare automată vs rețele neuronale

Împărțiți datele

Din Sklearn, sub-biblioteca model_selection, vom importa train_test_split, care este folosit pentru a împărți trenul și seturile de testare. Putem folosi funcția train_test_split pentru a face împărțirea. Dimensiunea testului = 0,3 indică procentul de date care ar trebui păstrat pentru testare.

Normalizați datele

Este esențial să vă asigurați că toate valorile caracteristicilor se află în același interval. Ar fi dificil pentru model să învețe modelele de bază dintre caracteristici și să învețe cum să ia decizii, așa că ne normalizăm datele în același interval folosind metoda StandardScaler .

Dependențe de import

Acum, vom importa funcționalitățile necesare pentru a construi o rețea neuronală profundă.

Construiește modelul

Este timpul să ne construim modelul!. Acum haideți să inițializam modelul nostru secvenţial. API-ul secvenţial vă permite să creaţi modele strat cu strat pentru majoritatea problemelor.

Primul lucru pe care trebuie să-l facem înainte de a construi un model este să creăm în sine un obiect model. Acest obiect va fi o instanță a clasei numită Sequential.

Adăugarea primului strat complet conectat

Dacă nu cunoașteți tipurile de straturi și funcționalitatea acestora, vă recomand să verificați blogul meu despre Introducere în rețelele neuronale, care vă permite să cunoașteți majoritatea conceptelor pe care ar trebui să le cunoașteți.

Înseamnă că ieșirea acestei operații ar trebui să aibă șase neuroni în care aplicăm funcția de activare ReLU pentru a rupe liniaritatea, iar numărul de neuroni de intrare este 11. Adăugăm toți acești hiperparametri folosind metoda .add() .

Vom adăuga un strat ascuns cu aceeași configurație în care rezultatul acestui strat ascuns va avea șase noduri.

Strat de ieșire

Ieșirea acestui strat va avea un singur nod, care spune dacă utilizatorul rămâne sau părăsește abonamentul. În acest strat, folosim sigmoid ca funcție de activare.

Aflați despre: Deep Learning vs Neural Networks

Compilarea

Acum trebuie să ne conectăm rețeaua cu un optimizator. Un optimizator va actualiza ponderile rețelei noastre în funcție de eroare. Acest proces este cunoscut sub numele de propagare inversă.

Aici îl vom folosi pe Adam ca optimizator. Deoarece rezultatul nostru este în termeni de binar, folosim entropia încrucișată binară, iar metrica pe care o folosim este acuratețea .

Antrenarea modelului

Această etapă este calea crucială în care trebuie să ne antrenăm modelul pentru a învăța modelele de bază, relațiile dintre date și pentru a prezice noul rezultat pe baza cunoștințelor sale.

Folosim metoda model.fit() pentru a antrena modelul. Trecem trei argumente în interiorul metodei, care sunt

input x_train este intrarea care este alimentată în rețea

ieșire aceasta conține răspunsurile corecte pentru x_train, adică, y_train

nr.of.epochs Înseamnă de câte ori urmează să antrenezi rețeaua cu setul de date.

A evalua

Puteți evalua performanța modelului importând accuracy_score din biblioteca sklearn în care trebuie să treceți două argumente. Unul este ieșirea reală, iar celălalt este ieșirile prezise.

Citește și : Aplicații de rețele neuronale în lumea reală

Concluzie

Asta este tot pentru acum. Sper că ți-a plăcut să construiești prima rețea neuronală. Învățare fericită!

Dacă sunteți interesat să aflați mai multe despre învățarea automată, consultați Programul Executive PG de la IIIT-B și upGrad în Învățare automată și IA, care este conceput pentru profesioniști care lucrează și oferă peste 450 de ore de formare riguroasă, peste 30 de studii de caz și sarcini, IIIT -B Statut de absolvenți, peste 5 proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Conduceți revoluția tehnologică condusă de inteligența artificială

Aplicați pentru Master of Science în învățare automată și inteligență artificială