Maison  >  Article  >  développement back-end  >  Exemples d'algorithmes de réseau neuronal en Python

Exemples d'algorithmes de réseau neuronal en Python

王林
王林original
2023-06-10 16:48:071805parcourir

Exemples d'algorithmes de réseau neuronal en Python

Le réseau neuronal est un modèle d'intelligence artificielle qui simule le système nerveux humain. Il peut identifier automatiquement des modèles et effectuer des tâches telles que la classification, la régression et le regroupement en apprenant des échantillons de données. En tant que langage de programmation facile à apprendre et doté d’une puissante bibliothèque de calcul scientifique, Python excelle dans le développement d’algorithmes de réseaux neuronaux. Cet article présentera des exemples d'algorithmes de réseaux neuronaux en Python.

  1. Installer les bibliothèques pertinentes

Les bibliothèques de réseaux neuronaux couramment utilisées en Python incluent Keras, Tensorflow, PyTorch, etc. La bibliothèque Keras est basée sur Tensorflow et peut simplifier le processus de construction des réseaux de neurones. Par conséquent, cet article choisira Keras. bibliothèque comme outil de développement de réseau neuronal. Avant d'utiliser la bibliothèque Keras, vous devez installer la bibliothèque Tensorflow en tant que backend. Exécutez la commande suivante sur la ligne de commande pour installer les bibliothèques dépendantes :

pip install tensorflow
pip install keras
  1. Prétraitement de l'ensemble de données

Avant d'entraîner le réseau neuronal, les données doivent être prétraitées. Le prétraitement commun des données comprend la normalisation des données, le traitement des valeurs manquantes des données, l'extraction des caractéristiques des données, etc. Dans cet article, nous utiliserons l'ensemble de données sur l'iris à titre d'exemple de démonstration. L'ensemble de données contient 150 enregistrements, chaque enregistrement possède quatre caractéristiques : la longueur des sépales, la largeur des sépales, la longueur des pétales, la largeur des pétales et l'étiquette de classification correspondante : Iris Setosa, Iris. Versicolor, Iris Virginica. Dans cet ensemble de données, chaque enregistrement est de type numérique, il nous suffit donc de normaliser les données.

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
  1. Création d'un modèle de réseau neuronal

Dans Keras, vous pouvez utiliser le modèle séquentiel pour créer un modèle de réseau neuronal. Dans ce modèle, nous pouvons ajouter plusieurs couches, chaque couche a un rôle spécifique, tel qu'une couche entièrement connectée, une couche de fonction d'activation, une couche d'abandon, etc. Dans cet exemple, nous utilisons deux couches entièrement connectées et une couche de sortie pour créer un modèle de réseau neuronal dans lequel le nombre de neurones dans la couche cachée est de 4.

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'])
  1. Entraînement du modèle

Avant d'entraîner le modèle, nous devons diviser l'ensemble de données en un ensemble d'entraînement et un ensemble de test afin d'évaluer l'exactitude du modèle. Dans cet exemple, nous utilisons 80 % des données comme ensemble de formation et 20 % des données comme ensemble de test. Lors de la formation, nous devons spécifier des paramètres tels que la taille du lot et le nombre d'itérations pour contrôler la vitesse de formation et la précision du modèle.

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)
  1. Code complet de l'exemple

Le code complet de cet exemple est le suivant :

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)
  1. Conclusion

Cet article présente des exemples d'algorithmes de réseau neuronal en Python et utilise l'ensemble de données de fleur d'iris comme exemple pour démonstration. Au cours du processus de mise en œuvre, nous avons utilisé la bibliothèque Keras et la bibliothèque Tensorflow comme outils de développement de réseaux neuronaux, ainsi que la bibliothèque MinMaxScaler pour normaliser les données. Les résultats de cet exemple montrent que notre modèle de réseau neuronal a atteint une précision de 97,22 %, prouvant l'efficacité et l'applicabilité du réseau neuronal.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn