Implementierung neuronaler Netze von Grund auf neu mit Python [mit Beispielen]
Veröffentlicht: 2020-12-07In diesem Artikel lernen wir, wie man ein neuronales Netzwerk von Grund auf trainiert und aufbaut.
Wir werden den Churn-Datensatz verwenden, um unser neuronales Netzwerk zu trainieren. Das Training eines neuronalen Netzes ist nicht kompliziert. Wir müssen unsere Daten vorverarbeiten, damit unser Modell unsere Daten problemlos aufnehmen und sich ohne Hindernisse selbst trainieren kann. Sie werden wie folgt vorgehen:
- Tensorflow installieren
- Bibliotheken importieren
- Importieren Sie den Datensatz
- Transformieren Sie die Eingabedaten
- Teilen Sie die Daten auf
- Initialisieren Sie das Modell
- Bauen Sie das Modell
- Trainieren Sie das Modell
- Bewerten Sie das Modell
Die Abwanderungsrate ist das Maß für die Abonnenten eines Unternehmens oder eine Partei, die dazu neigen, in einem bestimmten Zeitraum abzubrechen. Diese Rate spielt eine wesentliche Rolle bei der Entscheidung über die Gewinne und bildet Pläne, um neue Kunden zu gewinnen. Einfach ausgedrückt können wir sagen, dass das Unternehmenswachstum an der Churn-Rate gemessen werden kann.
In diesem Dataset haben wir dreizehn Features, aber wir verwenden nur wenige Features, die unsere Anforderungen erfüllen, um die Wahrscheinlichkeit vorherzusagen, dass ein Benutzer die Nutzung beendet.
Lernen Sie den Online-Kurs für maschinelles Lernen von den besten Universitäten der Welt. Erwerben Sie Master-, Executive PGP- oder Advanced Certificate-Programme, um Ihre Karriere zu beschleunigen.
Inhaltsverzeichnis
Installieren Sie TensorFlow
Wir können entweder Google Colab verwenden, wenn Ihr PC oder Laptop keine GPU hat, oder Sie können Jupyter Notebooks verwenden. Wenn Sie Ihr System verwenden, aktualisieren Sie Pip und installieren Sie dann TensorFlow wie folgt.

Bildquelle
Bibliotheken importieren
In den obigen Codezeilen habe ich einfach alle Bibliotheken importiert, die ich dabei benötige.
Numpy → Es ist eine Bibliothek, die verwendet wird, um mathematische Operationen an Arrays durchzuführen.
Pandas → Um die Datendatei als Pandas-Datenrahmen zu laden und die Daten zu analysieren.
Matplotlib → Ich habe ein Pyplot importiert, um Diagramme der Daten zu zeichnen .
Datensatz importieren
Unser Datensatz liegt im CSV-Format vor, daher laden wir den Datensatz mithilfe von Pandas-Operationen. Dann teilen wir den Datensatz in abhängige und unabhängige Variablen auf, wobei X als unabhängig und Y als abhängig betrachtet wird.
Transformieren Sie die Daten
In unserem Datensatz haben wir zwei kategoriale Merkmale, Geografie und Geschlecht. Wir müssen Dummies für diese beiden Features erstellen, also verwenden wir die Methode get_dummies und hängen sie dann an unsere Independent Feature Data an.
Sobald wir mit der Erstellung von Dummies und deren Verkettung mit unseren Daten fertig sind, entfernen wir die ursprünglichen Merkmale, dh Geschlecht und Geographie, aus unseren Zugdaten.
Lesen Sie: Maschinelles Lernen vs. neuronale Netze
Daten aufteilen
Aus Sklearn, Unterbibliothek model_selection, importieren wir train_test_split, das zum Aufteilen von Zug- und Testsätzen verwendet wird. Wir können die Funktion train_test_split verwenden, um die Aufteilung durchzuführen. test_size = 0,3 gibt den Prozentsatz der Daten an, die zum Testen zurückgehalten werden sollen.

Normalisieren Sie die Daten
Es ist unbedingt darauf zu achten, dass alle Merkmalswerte im gleichen Bereich liegen. Es wäre für das Modell schwierig, die zugrunde liegenden Muster zwischen den Merkmalen zu lernen und zu lernen, wie man Entscheidungen trifft, also normalisieren wir unsere Daten mit der StandardScaler - Methode auf denselben Bereich.
Abhängigkeiten importieren
Jetzt werden wir Funktionalitäten importieren, die zum Aufbau eines tiefen neuronalen Netzwerks erforderlich sind.
Erstellen Sie das Modell
Es ist Zeit, unser Modell zu bauen!. Lassen Sie uns nun unser sequentielles Modell initialisieren. Mit der sequentiellen API können Sie für die meisten Probleme Modelle Schicht für Schicht erstellen.
Das erste, was wir tun müssen, bevor wir ein Modell erstellen, ist, ein Modellobjekt selbst zu erstellen. Dieses Objekt wird eine Instanz der Klasse Sequential sein.
Hinzufügen der ersten vollständig verbundenen Schicht
Wenn Sie die Ebenentypen und ihre Funktionalität nicht kennen, empfehle ich Ihnen, meinen Blog zur Einführung in neuronale Netze zu lesen, in dem Sie die meisten Konzepte kennenlernen, die Sie kennen sollten.
Das bedeutet, dass die Ausgabe dieser Operation sechs Neuronen haben sollte, in denen wir die ReLU-Aktivierungsfunktion anwenden, um die Linearität zu brechen, und die Anzahl der Eingabeneuronen 11 ist. Wir fügen alle diese Hyperparameter mit der Methode .add() hinzu .
Wir werden eine verborgene Schicht mit derselben Konfiguration hinzufügen, wobei die Ausgabe dieser verborgenen Schicht sechs Knoten haben wird.
Ausgabeschicht
Die Ausgabe dieser Schicht hat nur einen Knoten, der angibt, ob der Benutzer das Abonnement behält oder verlässt. In dieser Schicht verwenden wir Sigmoid als unsere Aktivierungsfunktion.
Erfahren Sie mehr über: Deep Learning vs. neuronale Netze
Kompilieren
Jetzt müssen wir unser Netzwerk mit einem Optimierer verbinden. Ein Optimierer aktualisiert die Gewichte unseres Netzwerks basierend auf dem Fehler. Dieser Vorgang wird als Backpropagation bezeichnet.
Hier verwenden wir Adam als unseren Optimierer. Da unser Ergebnis binär ist, verwenden wir die binäre Kreuzentropie, und die Metrik, die wir verwenden, ist die Genauigkeit .
Trainieren des Modells
Diese Phase ist der entscheidende Weg, auf dem wir unser Modell trainieren müssen, um die zugrunde liegenden Muster und Beziehungen zwischen den Daten zu lernen und das neue Ergebnis basierend auf seinem Wissen vorherzusagen.
Wir verwenden die Methode model.fit() , um das Modell zu trainieren. Wir übergeben drei Argumente innerhalb der Methode, nämlich
input → x_train ist der Eingang, der in das Netzwerk eingespeist wird
Ausgabe → diese enthält die richtigen Antworten für den x_Zug, dh y_Zug

no.of.epochs → Es bedeutet, wie oft Sie das Netzwerk mit dem Datensatz trainieren werden.
Auswerten
Sie können die Leistung des Modells bewerten, indem Sie precision_score aus der sklearn-Bibliothek importieren, in der Sie zwei Argumente übergeben müssen. Einer ist die tatsächliche Ausgabe und der andere sind die vorhergesagten Ausgaben.
Lesen Sie auch : Neuronale Netzwerkanwendungen in der realen Welt
Fazit
Das ist alles für jetzt. Ich hoffe, es hat Ihnen Spaß gemacht, Ihr erstes neuronales Netzwerk zu erstellen. Viel Spaß beim Lernen!
Wenn Sie mehr über maschinelles Lernen erfahren möchten, sehen Sie sich das Executive PG Program in Machine Learning & AI von IIIT-B & upGrad an, das für Berufstätige konzipiert ist und mehr als 450 Stunden strenge Schulungen, mehr als 30 Fallstudien und Aufgaben, IIIT, bietet -B Alumni-Status, mehr als 5 praktische Schlusssteinprojekte und Arbeitsunterstützung bei Top-Unternehmen.