Implémentation de réseaux de neurones à partir de zéro avec Python [avec exemples]
Publié: 2020-12-07Dans cet article, nous allons apprendre à former et à construire un réseau de neurones à partir de zéro.
Nous utiliserons l'ensemble de données Churn pour former notre réseau de neurones. La formation d'un réseau de neurones n'est pas compliquée. Nous devons pré-traiter nos données afin que notre modèle puisse facilement prendre nos données et s'entraîner sans aucun obstacle. Vous procéderez comme suit :
- Installer Tensorflow
- Importer des bibliothèques
- Importer le jeu de données
- Transformer les données d'entrée
- Diviser les données
- Initialiser le modèle
- Construire le modèle
- Former le modèle
- Évaluer le modèle
Le taux de désabonnement est la mesure des abonnés d'une entreprise ou d'une partie qui a tendance à se désabonner au cours d'une période donnée. Ce taux joue un rôle essentiel dans la détermination des bénéfices et forme des plans pour gagner de nouveaux clients. En termes simples, nous pouvons dire que la croissance de l'entreprise peut être mesurée par le taux de désabonnement.
Dans cet ensemble de données, nous avons treize fonctionnalités, mais nous n'utilisons que quelques fonctionnalités qui répondent à nos exigences pour prédire le risque d'abandon d'un utilisateur.
Apprenez le cours en ligne d'apprentissage automatique des meilleures universités du monde. Gagnez des programmes de maîtrise, Executive PGP ou Advanced Certificate pour accélérer votre carrière.
Table des matières
Installer TensorFlow
Nous pouvons soit utiliser Google Colab si votre PC ou ordinateur portable n'a pas de GPU, soit vous pouvez utiliser Jupyter Notebooks. Si vous utilisez votre système, mettez à niveau pip, puis installez TensorFlow comme suit.


Source des images
Importer des bibliothèques
Dans les lignes de code ci-dessus, je viens d'importer toutes les bibliothèques dont j'aurai besoin dans le processus.
Numpy → C'est une bibliothèque utilisée pour effectuer des opérations mathématiques sur des tableaux.
Pandas → Pour charger le fichier de données en tant que trame de données Pandas et analyser les données.
Matplotlib → J'ai importé un pyplot pour tracer des graphiques des données .
Importer un jeu de données
Notre jeu de données est au format CSV, nous chargeons donc le jeu de données à l'aide d'opérations pandas. Ensuite, nous divisons l'ensemble de données en variables dépendantes et indépendantes, où X est considéré comme indépendant et Y est considéré comme dépendant.
Transformer les données
Dans notre ensemble de données, nous avons deux caractéristiques catégorielles, Géographie et Genre. Nous devons créer des mannequins pour ces deux fonctionnalités, nous utilisons donc la méthode get_dummies , puis les ajoutons à nos données de fonctionnalités indépendantes.
Une fois que nous aurons fini de créer des mannequins et de les concaténer à nos données, nous supprimerons les caractéristiques d'origine, c'est-à-dire le sexe et la géographie, de nos données de train.
Lire : Apprentissage automatique vs réseaux de neurones
Diviser les données
À partir de Sklearn, sous-bibliothèque model_selection, nous importerons le train_test_split, qui est utilisé pour séparer les ensembles d'entraînement et de test. Nous pouvons utiliser la fonction train_test_split pour faire la scission. Le test_size = 0,3 indique le pourcentage des données qui doivent être conservées pour les tests.

Normaliser les données
Il est essentiel de s'assurer que toutes les valeurs des caractéristiques se situent dans la même plage. Il serait difficile pour le modèle d'apprendre les modèles sous-jacents entre les caractéristiques et d'apprendre à prendre des décisions. Nous normalisons donc nos données dans la même plage à l'aide de la méthode StandardScaler .
Importer des dépendances
Maintenant, nous allons importer les fonctionnalités nécessaires à la construction d'un réseau de neurones profond.
Construire le modèle
Il est temps de construire notre modèle !. Initialisons maintenant notre modèle séquentiel. L'API séquentielle vous permet de créer des modèles couche par couche pour la plupart des problèmes.
La première chose que nous devons faire avant de construire un modèle est de créer un objet modèle lui-même. Cet objet sera une instance de la classe appelée Sequential.
Ajout de la première couche entièrement connectée
Si vous ne connaissez pas les types de couches et leurs fonctionnalités, je vous recommande de consulter mon blog sur Introduction aux réseaux de neurones, qui vous permet de connaître la plupart des concepts que vous devez connaître.
Cela signifie que la sortie de cette opération doit avoir six neurones dans lesquels nous appliquons la fonction d'activation ReLU pour briser la linéarité, et le nombre de neurones d'entrée est de 11. Nous ajoutons tous ces hyperparamètres à l'aide de la méthode .add() .
Nous ajouterons une couche cachée avec la même configuration où la sortie de cette couche cachée aura six nœuds.
Couche de sortie
La sortie de cette couche n'aura qu'un seul nœud, qui indique si l'utilisateur reste ou quitte l'abonnement. Dans cette couche, nous utilisons sigmoïde comme fonction d'activation.
Apprenez-en plus à propos de : Apprentissage en profondeur vs réseaux de neurones
Compiler
Nous devons maintenant connecter notre réseau à un optimiseur. Un optimiseur mettra à jour les pondérations de notre réseau en fonction de l'erreur. Ce processus est connu sous le nom de rétropropagation.
Ici, nous utiliserons Adam comme optimiseur. Puisque notre résultat est en termes de binaire, nous utilisons l'entropie croisée binaire et la métrique que nous utilisons est la précision .
Former le modèle
Cette étape est le chemin crucial où nous devons former notre modèle pour apprendre les modèles sous-jacents, les relations entre les données et prédire le nouveau résultat en fonction de ses connaissances.
Nous utilisons la méthode model.fit() pour entraîner le modèle. Nous passons trois arguments à l'intérieur de la méthode, qui sont
entrée → x_train est l'entrée qui est envoyée au réseau
sortie → cela contient les réponses correctes pour le x_train, c'est-à-dire y_train

no.of.epochs → Cela signifie le nombre de fois que vous allez entraîner le réseau avec l'ensemble de données.
Évaluer
Vous pouvez évaluer les performances du modèle en important precision_score depuis la bibliothèque sklearn dans laquelle vous devez passer deux arguments. L'un est la sortie réelle et l'autre est la sortie prévue.
A lire aussi : Applications de réseaux de neurones dans le monde réel
Conclusion
C'est tout pour le moment. J'espère que vous avez apprécié la construction de votre premier réseau de neurones. Bon apprentissage!
Si vous souhaitez en savoir plus sur l'apprentissage automatique, consultez le programme Executive PG d'IIIT-B & upGrad en apprentissage automatique et IA, conçu pour les professionnels en activité et offrant plus de 450 heures de formation rigoureuse, plus de 30 études de cas et missions, IIIT -B Statut d'anciens élèves, 5+ projets de synthèse pratiques et aide à l'emploi avec les meilleures entreprises.
