A partir d'un jeu de données, on construit un modèle
Puis on utilise ce modèle pour faire des prévisions sur de nouvelles données
Ce code utilise un réseau de neurones
def creer_modele(input_dim):
modele = Sequential([
Dense(64, activation='relu', input_dim=input_dim),
Dense(32, activation='relu'),
Dense(16, activation='relu'),
Dense(1, activation='sigmoid')
])
modele.compile(
optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy']
)
return modele
Grandes phases :
def entrainer_et_evaluer():
# Preparation des donnees
X, y = preparer_donnees()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# Normalisation des donnees
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# Creation et entrainement du modele
modele = creer_modele(X_train.shape[1])
early_stopping = EarlyStopping(
monitor='val_loss',
patience=10,
restore_best_weights=True
)
# Entrainement avec validation
historique = modele.fit(
X_train_scaled, y_train,
epochs=100,
batch_size=32,
validation_split=0.2,
callbacks=[early_stopping],
verbose=1
)
# Evaluation sur les donnees de test
score = modele.evaluate(X_test_scaled, y_test, verbose=0)
print(f"\nPrécision sur les données de test: {score[1]:.4f}")
return modele, historique, scaler
modele, historique, scaler = entrainer_et_evaluer()
## Utilisation du modele
nouveau_cas = ... donnees dont on ne connait pas le resultat ...
nouveau_cas_scaled = scaler.transform(nouveau_cas)
prevision = modele.predict(nouveau_cas_scaled)[0][0]
print(f"\nPrévision pour un nouveau cas: {prevision:.4f}")