Beispiele für neuronale Netzwerkalgorithmen in Python
Neuronales Netzwerk ist ein Modell der künstlichen Intelligenz, das das menschliche Nervensystem simuliert. Es kann automatisch Muster identifizieren und Aufgaben wie Klassifizierung, Regression und Clustering ausführen, indem es Datenproben lernt. Als leicht zu erlernende Programmiersprache mit einer leistungsstarken wissenschaftlichen Computerbibliothek zeichnet sich Python durch die Entwicklung neuronaler Netzwerkalgorithmen aus. In diesem Artikel werden Beispiele für neuronale Netzwerkalgorithmen in Python vorgestellt.
Zu den häufig verwendeten neuronalen Netzwerkbibliotheken in Python gehören Keras, Tensorflow, PyTorch usw. Die Keras-Bibliothek basiert auf Tensorflow und kann den Konstruktionsprozess neuronaler Netzwerke vereinfachen Bibliothek als Entwicklungstool für neuronale Netzwerke. Bevor Sie die Keras-Bibliothek verwenden, müssen Sie die Tensorflow-Bibliothek als Backend installieren. Führen Sie den folgenden Befehl in der Befehlszeile aus, um die abhängigen Bibliotheken zu installieren:
pip install tensorflow pip install keras
Vor dem Training des neuronalen Netzwerks müssen die Daten vorverarbeitet werden. Die allgemeine Datenvorverarbeitung umfasst Datennormalisierung, Verarbeitung fehlender Datenwerte, Extraktion von Datenmerkmalen usw. In diesem Artikel verwenden wir den Iris-Datensatz zur Beispieldemonstration. Der Datensatz enthält 150 Datensätze. Jeder Datensatz weist vier Merkmale auf: Kelchblattlänge, Kelchblattbreite, Blütenblattlänge, Blütenblattbreite und die entsprechende Klassifizierungsbezeichnung: Iris Setosa, Iris Vielfarbig, Iris Virginica. In diesem Datensatz ist jeder Datensatz numerisch, daher müssen wir die Daten nur normalisieren.
from sklearn.datasets import load_iris from sklearn.preprocessing import MinMaxScaler import numpy as np # 导入数据集 data = load_iris().data labels = load_iris().target # 归一化数据 scaler = MinMaxScaler() data = scaler.fit_transform(data) # 将标签转化为 one-hot 向量 one_hot_labels = np.zeros((len(labels), 3)) for i in range(len(labels)): one_hot_labels[i, labels[i]] = 1
In Keras können Sie das sequentielle Modell verwenden, um ein neuronales Netzwerkmodell zu erstellen. In diesem Modell können wir mehrere Schichten hinzufügen. Jede Schicht hat eine bestimmte Rolle, z. B. eine vollständig verbundene Schicht, eine Aktivierungsfunktionsschicht, eine Dropout-Schicht usw. In diesem Beispiel verwenden wir zwei vollständig verbundene Schichten und eine Ausgabeschicht, um ein neuronales Netzwerkmodell zu erstellen, in dem die Anzahl der Neuronen in der verborgenen Schicht 4 beträgt.
from keras.models import Sequential from keras.layers import Dense, Dropout from keras.optimizers import Adam # 构建神经网络模型 model = Sequential() model.add(Dense(4, activation='relu')) model.add(Dense(4, activation='relu')) model.add(Dense(3, activation='softmax')) # 配置优化器和损失函数 optimizer = Adam(lr=0.001) model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])
Bevor wir das Modell trainieren, müssen wir den Datensatz in einen Trainingssatz und einen Testsatz aufteilen, um die Genauigkeit des Modells zu bewerten. In diesem Beispiel verwenden wir 80 % der Daten als Trainingssatz und 20 % der Daten als Testsatz. Beim Training müssen wir Parameter wie Stapelgröße und Anzahl der Iterationen angeben, um die Trainingsgeschwindigkeit und Modellgenauigkeit zu steuern.
from sklearn.model_selection import train_test_split # 将数据集分为训练集和测试集 train_data, test_data, train_labels, test_labels = train_test_split(data, one_hot_labels, test_size=0.2) # 训练神经网络 model.fit(train_data, train_labels, batch_size=5, epochs=100) # 评估模型 accuracy = model.evaluate(test_data, test_labels)[1] print('准确率:%.2f' % accuracy)
Der vollständige Code dieses Beispiels lautet wie folgt:
from sklearn.datasets import load_iris from sklearn.preprocessing import MinMaxScaler from sklearn.model_selection import train_test_split import numpy as np from keras.models import Sequential from keras.layers import Dense, Dropout from keras.optimizers import Adam # 导入数据集 data = load_iris().data labels = load_iris().target # 归一化数据 scaler = MinMaxScaler() data = scaler.fit_transform(data) # 将标签转化为 one-hot 向量 one_hot_labels = np.zeros((len(labels), 3)) for i in range(len(labels)): one_hot_labels[i, labels[i]] = 1 # 将数据集分为训练集和测试集 train_data, test_data, train_labels, test_labels = train_test_split(data, one_hot_labels, test_size=0.2) # 构建神经网络模型 model = Sequential() model.add(Dense(4, activation='relu')) model.add(Dense(4, activation='relu')) model.add(Dense(3, activation='softmax')) # 配置优化器和损失函数 optimizer = Adam(lr=0.001) model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy']) # 训练神经网络 model.fit(train_data, train_labels, batch_size=5, epochs=100) # 评估模型 accuracy = model.evaluate(test_data, test_labels)[1] print('准确率:%.2f' % accuracy)
Dieser Artikel stellt Beispiele für neuronale Netzwerkalgorithmen in Python vor und verwendet den Irisblütendatensatz als Beispiel zur Demonstration. Während des Implementierungsprozesses verwendeten wir die Keras-Bibliothek und die Tensorflow-Bibliothek als Entwicklungstools für neuronale Netze und verwendeten die MinMaxScaler-Bibliothek zur Normalisierung der Daten. Die Ergebnisse dieses Beispiels zeigen, dass unser neuronales Netzwerkmodell eine Genauigkeit von 97,22 % erreichte, was die Wirksamkeit und Anwendbarkeit des neuronalen Netzwerks beweist.
Das obige ist der detaillierte Inhalt vonBeispiele für neuronale Netzwerkalgorithmen in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!