Construire et entraîner un réseau de neurones simple
Le prochain modèle que nous allons apprendre à utiliser est un réseau de neurones. Les réseaux peuvent capturer des interactions complexes entre variables, mais ils sont plus difficiles à configurer et à interpréter. Récemment, ils ont surpassé des experts humains dans de nombreux domaines, notamment la reconnaissance d'images et le jeu (jetez un œil à AlphaGo) : leur potentiel de performance est donc considérable.
Pour construire nos réseaux, nous utiliserons la bibliothèque keras. C'est une API de haut niveau qui permet de créer rapidement des réseaux de neurones tout en gardant une bonne maîtrise de leur conception. Nous allons d'abord créer l'un des réseaux les plus simples possibles : un réseau à 3 couches qui prend nos variables d'entrée et prédit une valeur unique. À l'image des modèles sklearn, les modèles keras possèdent une méthode .fit() qui prend en arguments (features, targets).
Cet exercice fait partie du cours
<cours>Machine Learning pour la finance en Python</cours>Instructions de l’exercice
- Créez une couche dense avec 20 nœuds et l'activation ReLU (
'relu') comme 2\(^{e}\) couche du réseau de neurones. - Créez la dernière couche dense avec 1 nœud et une activation linéaire (
activation='linear'). - Entraînez le modèle sur
scaled_train_featuresettrain_targets.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
from keras.models import Sequential
from keras.layers import Dense
# Create the model
model_1 = Sequential()
model_1.add(Dense(100, input_dim=scaled_train_features.shape[1], activation='relu'))
model_1.add(Dense(____, activation=____))
model_1.add(Dense(____, activation=____))
# Fit the model
model_1.compile(optimizer='adam', loss='mse')
history = model_1.fit(____, ____, epochs=25)