KNN für Data Science | Grundlagen des künstlichen neuronalen Netzes

Inhalt

Dieser Beitrag wurde im Rahmen der . veröffentlicht Data Science Blogathon

In diesem Beitrag, Ich werde die Grundkonzepte neuronaler Netze und deren Code erklären. Heutzutage, viele Studenten lernen einfach, neuronale Netze zu codieren, ohne die Grundlagen dahinter zu verstehen und wie es intern funktioniert. Zuerst, Was sind neuronale Netze??

Was ist das neuronale Netz?

Neuronale Netze sind eine Reihe von Algorithmen, die versuchen, das menschliche Gehirn nachzuahmen und die Verbindung zwischen Datensätzen zu finden. Es wird in verschiedenen Anwendungsfällen als Regression verwendet, Einstufung, Bildakkreditierung und vieles mehr.

Wie wir bereits gesagt haben, Neuronale Netze versuchen, das menschliche Gehirn nachzuahmen, dann könnte es Unterschiede und Ähnlichkeiten zwischen ihnen geben. Reden wir kurz darüber.

Algunas diferencias importantes entre ellos son que la rotes neuronales biológica realiza un procesamiento paralelo, während das künstliche neuronale Netz eine serielle Verarbeitung durchführt, auch im ersten, Verarbeitung ist langsamer (in Millisekunden), während in letzterem die Verarbeitung schneller ist (in einer Nanosekunde).

KNN-Architektur

Ein neuronales Netz hat viele Schichten und jede Schicht erfüllt eine bestimmte Funktion, und mit zunehmender Komplexität des Modells, die Anzahl der Schichten erhöht sich auch, deshalb ist es als mehrschichtiges Perzeptron bekannt.

Die reinste Form eines neuronalen Netzes hat drei Schichten: das Eingabeschicht, die verborgene Schicht und die Ausgabe-Layer. Die Eingangsschicht sammelt die Eingangssignale und übergibt sie an die nächste Schicht und, schließlich, la capa de salida da el pronóstico final y estas redes neuronales deben entrenarse con algunos datos de Ausbildung, sowie mit maschinellen Lernalgorithmen, bevor ein bestimmtes Hindernis bereitgestellt wird. Jetzt, Lass uns mehr über das Perzeptron verstehen.

Über Perceptron

Wie bereits besprochen, das mehrschichtige Perzeptron ist einfach die versteckte oder dichte Schicht. Sie bestehen aus vielen Neuronen und Neuronen sind die Haupteinheit, die zusammenarbeitet, um das Perzeptron zu bilden.. In einfachen Worten, wie auf dem bild oben zu sehen, cada círculo representa neuronas y una combinación vertical de neuronas representa perceptrones que es simplemente una dichte Schicht.

Jetzt, im Bild oben, Sie können die Detailansicht jedes Neurons sehen. Hier, jedes Neuron hat einige Gewichte (im Bild oben w1, w2, w3) und Vorurteile und, basierend auf diesen Berechnungen, werden durchgeführt als, Kombination = Voreingenommenheit + Pesos * Eintrag (F = w1 * x1 + w2 * x2 + w3 * x3) y por último se aplica la Weckfunktion Ausgang = Aktivierung (Kombination) im Bild oben, Aktivierung ist sigmoid dargestellt durch 1 / (1 + e-F). Es gibt einige andere Aktivierungsfunktionen, Was Lebenslauf, Undichte ReLU, so und vieles mehr.

ANN-Arbeit

Am Anfang, die Informationen werden der Eingabeschicht zugeführt, die sie später an die versteckten Schichten überträgt, und die Verbindung zwischen diesen beiden Schichten weist jedem Eingang zufällig am Anfangspunkt Gewichte zu. und später wird der Bias zu jedem Eingabeneuron hinzugefügt und danach, die gewichtete Summe, die eine Kombination aus Gewichtungen und Bias ist, wird durch die Aktivierungsfunktion geleitet. La función de activación tiene la responsabilidad de qué Knoten disparar para la extracción de características y por último se calcula la salida. Dieses gesamte Verfahren wird als Vorwärtsausbreitung bezeichnet.. Nachdem das Ausgabemodell mit der Originalausgabe verglichen wurde und der Fehler bekannt ist und schließlich, Gewichte werden in Rückwärtsausbreitung aktualisiert, um Fehler zu reduzieren, und dieses Verfahren wird für eine bestimmte Anzahl von Epochen fortgesetzt (Wiederholung). Zusammenfassend, die Modellgewichte werden aktualisiert und die Prognose durchgeführt.

Vorteil

  1. KNN hat die Fähigkeit, komplexe und nichtlineare Beziehungen zu lernen und zu modellieren, da viele Input-Output-Beziehungen nicht linear sind.
  2. Nach dem Training, KNN kann aus unsichtbaren Daten unsichtbare Beziehungen ableiten und, deshalb, es verallgemeinert.
  3. Im Gegensatz zu vielen Modellen für maschinelles Lernen, ANN hat keine Beschränkungen für Datensätze, da die Daten eine Gaußsche Verteilung oder keine andere Verteilung haben müssen.

Anwendungen

Es gibt viele Anwendungen von ANN. Einige von ihnen sind :

  1. Bildvorverarbeitung und Charakterakkreditierung.
  2. Vorhersage.
  3. Kreditbeurteilung.
  4. Entdeckung eines Betruges.
  5. Portfolio-Management.

KODIERUNGSTEIL

Lassen Sie uns nun codieren und die Konzepte verstehen, die es verwenden.

1. Verstehen und Laden Ihrer Datensätze

Zuerst Bibliotheken als NumPy importieren, Pandas und importieren auch sogenannte dichte sequentielle Klassen aus der Keras-Bibliothek.

numpy als np importieren
Pandas als pd importieren
von keras.models importieren Sequential
aus keras.layers importieren dicht

Jetzt, hier werde ich den Diabetes-Onset-Datensatz der Pima-Indianer verwenden, Dies ist ein Standard-Dataset für maschinelles Lernen aus dem UCI-Repository für maschinelles Lernen. Der Link ist unten zu finden. Dieser Datensatz berichtet über die Krankengeschichte des Patienten und ob er innerhalb von fünf Jahren an Diabetes erkrankt war, es ist auch ein binäres Klassifizierungshindernis.

Hier können Sie die Datensätze herunterladen:

Datensätze

Importieren Sie nun den Datensatz mit Pandas und später verstehen wir mehr über die Datensätze und teilen die Datensätze später in abhängige und unabhängige Variablen auf.

Datensatz = pd.read_csv('pima-indians-diabetes.csv')
X = Datensatz[:,0:8]
y = Datensatz[:,8]

2. Definition des Keras-Modells

Modelle in Keras sind definiert als eine Abfolge von Ebenen, in denen jede Ebene nacheinander hinzugefügt wird. Die Eingabe muss Eingabemerkmale enthalten und wird beim Erstellen des ersten Layers mit input_dims . angegeben Streit. Hier werden input_dims sein 8.

Nun stellt sich die Frage, wie wir die Anzahl der Schichten und die Anzahl der Neuronen in jeder Schicht wählen können.

Es ist ziemlich schwierig zu wissen, wie viele Schichten wir verwenden sollten. Im Allgemeinen dafür Keras-Tuner Gebraucht, die eine Reihe von Schichten hat, eine Reihe von Neuronen und einige Aktivierungsfunktionen. und folglich, durch Permutation und Kombination, versuche herauszufinden, was am besten geeignet ist. Aber ein Nachteil ist, dass es lange dauert. Sie können die Dokumentation überprüfen. Keras-Tuner für mehr Details.

In diesem Beispiel, Es wird ein vollständig verbundenes Netzwerk mit drei Schichten verwendet, das definiert mit dichter Klasse. Das erste Argument nimmt die Anzahl der Neuronen in dieser Schicht und, und Aktivierung Das Argument nimmt die Aktivierungsfunktion als Eingabe. Hier, ReLU wird als Aktivierungsfunktion in den ersten beiden Schichten und Sigmoid in der letzten Schicht verwendet, da es sich um ein binäres Klassifizierungshindernis handelt.

Modell = Sequentiell()
model.add(Dicht(12, input_dim=8, aktivierung='relu'))
model.add(Dicht(8, aktivierung='relu'))
model.add(Dicht(1, activation='sigmoid'))

3. Kompilieren Sie das Keras-Modell

Während der Kompilierung, debemos especificar la Verlust-Funktion para calcular los errores, der Optimierer zum Aktualisieren der Gewichtungen und Metriken.

Unter diesen Umständen, wir werden verwenden binäre_kreuzentropie Als die hat verloren Argument, da es sich um ein binäres Klassifizierungshindernis handelt.

Hier nehmen wir Optimierer Was „Adam„Da es sich automatisch abstimmt und bei einer Vielzahl von Problemen gut funktioniert und wir letztendlich die Genauigkeit des Rankings mithilfe von Metriken Streit.

model.compile(Verlust="binäre_kreuzentropie", Optimierer="Adam", Metriken=[Genauigkeit])

4. Passform des Keras-Modells.

Nun passen wir unser Modell durch Aufrufen an die geladenen Daten an hineinpassen() Funktion im Modell.

Die Trainingsprozedur wird für eine feste Anzahl von Iterationen durch den Datensatz ausgeführt, der durch die Epochen Streit. Die Anzahl der Zeilen im Datensatz muss aktualisiert werden und wird innerhalb jeder Epoche aktualisiert, und begleichen Sie mit Losgröße Streit.

Hier, wir werden ausführen 150 Epochen und einer Losgröße von 10.

model.fit(x, Ja, Epochen=150, batch_size=10)

5. Untersuchen Sie das Keras-Modell

Die Auswertung des Modells auf dem Datensatz kann mit dem untersuchen() Funktion. Zwei Argumente sind nötig, Mit anderen Worten, Ein- und Ausgang. Es generiert eine Vorhersage für jedes Eingabe- und Ausgabepaar und sammelt Punkte, einschließlich durchschnittlicher Verlust und alle Metriken, wie Präzision.

das untersuchen() Die Funktion gibt eine Liste mit zwei Werten zurück, der erste ist der Verlust des Modells und der zweite die Präzision des Modells im Datensatz. Wir sind nur daran interessiert, die Richtigkeit zu melden und, deshalb, wir ignorieren den Wert des Verlustes.

_, Genauigkeit = model.evaluate(x, Ja)
drucken('Accuracy: %.2f' % (Genauigkeit*100))

6.Voraussagen machen

Die Vorhersage kann telefonisch erfolgen Vorhersagen() Funktion im Modell. Hier wird die Sigmoid-Aktivierungsfunktion in der Ausgabeschicht verwendet, die Vorhersagen liegen also mit einer Wahrscheinlichkeit im Bereich zwischen 0 Ja 1.

Vorhersagen = model.predict(x)
gerundet = [runden(x[0]) für x in Vorhersagen]

Zusammenfassung des endgültigen Codes

Aquí hemos aprendido cómo crear su primer modelo de red neuronal usando la poderosa biblioteca Keras Python para el tiefes Lernen.

Es gibt sechs Hauptschritte bei der Verwendung von Keras, um ein neuronales Netzwerk oder ein Deep-Learning-Modell zu erstellen, das die Daten lädt., Definiere das neuronale Netz in Keras, später kompilieren, auswerten und schließlich Vorhersagen mit dem Modell treffen.

FAZIT

In diesem Beitrag haben wir die Grundkonzepte künstlicher neuronaler Netze und deren Code verstanden. Im Codierungsteil, Wir haben den Diabetes-Datensatz der Pima-Indianer verwendet. hier haben wir die sechs Hauptschritte zur Erstellung neuronaler Netze im Detail verstanden. Abgesehen davon, Viele Dinge wurden nicht in Blogs behandelt und, dann, Ich habe die Links zu anderen Blogs bereitgestellt, aus denen Sie die Themen konsultieren können.

  1. Verschiedene Arten von Kostenfunktionen und ihre Anwendungen.
  2. Acerca de Gradient Descent.
  3. Keras-Dokumentation

Die in diesem Beitrag gezeigten Medien sind nicht Eigentum von DataPeaker und werden nach Ermessen des Autors verwendet.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.

Datenlautsprecher