Bei der Klassifizierung großer Datenmengen ist die manuelle Verarbeitung dieser Daten eine sehr zeitaufwändige und schwierige Aufgabe. In diesem Fall kann die Klassifizierung mithilfe neuronaler Netze schnell und einfach erfolgen. Python ist eine gute Wahl, da es über viele ausgereifte und benutzerfreundliche Bibliotheken für neuronale Netzwerke verfügt. In diesem Artikel wird erläutert, wie Sie neuronale Netze zur Klassifizierung in Python verwenden.
Bevor wir erklären, wie neuronale Netze zur Klassifizierung verwendet werden, müssen wir das Konzept neuronaler Netze kurz verstehen. Ein neuronales Netzwerk ist ein Rechenmodell, das auf der Grundlage von Beziehungen zwischen großen Mengen an Eingabe- und Ausgabedaten ein Modell aufbaut, um bestimmte Eigenschaften unbekannter Daten vorherzusagen. Dieses Modell eignet sich sehr gut für Klassifizierungsprobleme und kann zur Klassifizierung verschiedener Datentypen wie Bilder, E-Mails und Stimmen verwendet werden.
Klassifizierung ist eine der Hauptanwendungen neuronaler Netze. Der Zweck von Klassifizierungsproblemen besteht darin, Daten in verschiedene Kategorien einzuteilen. Bei der Bilderkennung können neuronale Netze beispielsweise verschiedene Bilder in verschiedene Kategorien wie Katzen, Hunde oder Autos klassifizieren. In diesem Fall verwendet das neuronale Netzwerk Bilder als Eingabedaten und Klassifizierungen als Ausgabedaten. Bei der Klassifizierung werden Daten in verschiedene Kategorien unterteilt, wobei in der Regel Methoden des überwachten Lernens zum Einsatz kommen.
In Python stehen viele Bibliotheken für neuronale Netze zur Auswahl, z. B. TensorFlow, Keras, PyTorch usw. In diesem Artikel verwenden wir TensorFlow, eine Open-Source-Bibliothek für künstliche Intelligenz, die vom Google Brain-Team entwickelt wurde. TensorFlow ist ein sehr beliebtes Framework, das einfach zu erlernen und zu verwenden ist und in einer Vielzahl von maschinellen Lernprojekten verwendet wird.
Wenn Sie TensorFlow nicht installiert haben, können Sie ein Terminal oder eine Eingabeaufforderung öffnen und den folgenden Befehl eingeben:
pip install tensorflow
Nach Abschluss der Installation können Sie die TensorFlow-Bibliothek im Python-Code verwenden.
Die Datenvorbereitung ist ein entscheidender Schritt bei Klassifizierungsaufgaben. Die Daten müssen in ein numerisches Format umgewandelt werden, das vom neuronalen Netzwerk verstanden werden kann. Hier stellen wir einen sehr beliebten MNIST-Datensatz vor, der aus digitalen Bildern besteht und jedes Bild eine Zahl darstellt. Der MNIST-Datensatz ist in TensorFlow verfügbar. Sie können den folgenden Befehl direkt zum Laden der Daten verwenden:
from tensorflow.keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
Dieser Befehl lädt den MNIST-Datensatz in die Variablen x_train und y_train, die zum Trainieren des neuronalen Netzwerks verwendet werden. Testdaten werden in die Variablen x_test und y_test geladen und zum Testen des neuronalen Netzwerks verwendet. x_train und x_test enthalten die numerischen Bilddaten und y_train und y_test enthalten die Beschriftungen der numerischen Bilder.
Als nächstes werfen wir einen Blick auf den Datensatz, um mehr zu erfahren:
print('x_train shape:', x_train.shape)
print('y_train shape:', y_train.shape)
print(' x_test shape :', x_test.shape)
print('y_test shape:', y_test.shape)
In der Ausgabe sehen Sie die folgenden Informationen:
x_train shape: (60000, 28, 28)
y_train shape : (60000,)
x_test form: (10000, 28, 28)
y_test form: (10000,)
Dies zeigt, dass der Trainingsdatensatz 60000 digitale Bilder enthält, jedes Bild ist 28 Pixel x 28 Pixel groß. Der Testdatensatz umfasst 10.000 Bilder.
Nach der Vorbereitung der Daten müssen Sie ein neuronales Netzwerkmodell auswählen. Wir werden ein sehr einfaches neuronales Netzwerkmodell wählen, das aus zwei vollständig verbundenen Schichten (dicht) besteht. Die erste vollständig verbundene Schicht enthält 128 Neuronen und die zweite vollständig verbundene Schicht enthält 10 Neuronen. Der Code lautet wie folgt:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
model = Sequential()
model.add(Flatten(input_shape=(28, 28) ))
model.add(Dense(128, Aktivierung='relu'))
model.add(Dense(10, Aktivierung='softmax'))
model.compile(optimizer='adam',
loss=' sparse_categorical_crossentropy',
metrics=['accuracy'])
Hier erstellen wir zunächst ein sequentielles Modell und fügen dann eine Flatten-Ebene hinzu, die verwendet wird, um die 28x28-Bilddaten in ein eindimensionales Array zu reduzieren. Als nächstes fügten wir eine vollständig verbundene Schicht mit 128 Neuronen hinzu und verwendeten ReLU als Aktivierungsfunktion. Schließlich fügen wir eine weitere vollständig verbundene Schicht mit 10 Neuronen hinzu und verwenden die Softmax-Aktivierungsfunktion, um eine Wahrscheinlichkeitsverteilung für jede Zahl zu erhalten. Das Modell wird mit dem Adam-Optimierer und der spärlichen kategorialen Kreuzentropieverlustfunktion kompiliert.
Wir haben die Daten und das Modell vorbereitet, jetzt müssen wir die Trainingsdaten verwenden, um das Modell zu trainieren. Der folgende Befehl kann zum Trainieren des Modells verwendet werden:
history = model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))
Dieser Code verwendet 10 Epochen (Epochen), um das Modell zu trainieren while Verwenden Sie den Testsatz zur Überprüfung. Nachdem das Training abgeschlossen ist, können wir den folgenden Code verwenden, um das Modell auszuwerten:
test_loss, test_acc = model.evaluate(x_test, y_test)
print('Test precision:', test_acc)
In der Ausgabe sehen Sie die Testgenauigkeitsmetriken am Set.
Nachdem wir das Modell trainiert und ausgewertet haben, können wir das Modell verwenden, um unbekannte Daten vorherzusagen. Wir können den folgenden Code verwenden, um die Bezeichnung eines Bildes vorherzusagen:
import numpy as np
image_index = 7777 # Beginnend bei 0
img = x_test[image_index]
img = np.expand_dims(img, axis=0 )
predictions = model.predict(img)
print(predictions)
print("Predicted label:", np.argmax(predictions))
In der Ausgabe können wir sehen, dass das Bild vorhergesagt wird die Nummer 2.
In diesem Artikel haben wir vorgestellt, wie man neuronale Netze zur Klassifizierung in Python verwendet. Wir haben TensorFlow verwendet, um das neuronale Netzwerkmodell zu erstellen und zu trainieren, und den MNIST-Datensatz für Tests und Vorhersagen. Sie können dieses Modell für verschiedene Kategorien von Bildklassifizierungsaufgaben verwenden und die neuronalen Netzwerkschichten im Modell nach Bedarf anpassen. Die Klassifizierung mithilfe neuronaler Netze ist eine sehr effektive Methode, mit der große Datenmengen problemlos klassifiziert werden können, sodass wir Modellentwicklungs- und Klassifizierungsaufgaben schneller durchführen können.
Das obige ist der detaillierte Inhalt vonWie verwende ich neuronale Netze zur Klassifizierung in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!