TP3 Régression Logistique

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 2

IESE

Travaux pratiques Année 2024-2025


Apprentissage machine

TP3 : Régression logistique pour une classification binaire

Le but de ce TP est d’implémenter l’algorithme de la descente de gradient pour minimiser la


fonction coût de la régression logistique.

1 Préparation des données des données

Nous allons utiliser make_blobs() du module sklearn.datasets pour générer une


base de données pour la classification.
- n_samples=100
- n_features=2
- centers=2 (2 classes)
Affichez les points de la base de données en utilisant un scatter() plot.
2 Fonctions utiles

- Implémentez la fonction mathématique sigmoide : sigmoid()


1
𝜎(𝑥) =
1 + 𝑒 −𝑥
- Implémentez la fonction initialization() qui permet d’initialiser
aléatoirement 𝜔 et b.
- Implémentez une fonction forward_propagation()qui permet de prédire la
classe des données.
- Implémentez la fonction du coût log_loss() qui permet de calculer le coût
d’entropie croisée :

J (i ) = − y ( i ) log yˆ ( i ) − (1 − y ( i ) ) log(1 − yˆ ( i ) )

- Implémentez la fonction gradients()qui calcule les gradients de 𝜔 et b.


- Implémentez la fonction optimization() qui permet de mettre à jour les valeurs
de 𝜔 et b.
- Implémentez la fonction predict() qui appelle la fonction
forward_propagation() et retourne 1 si l’activation est supérieure ou égale à
un seuil 0.5.

3 Visualisation
Afin de visualiser le résultat de la classification, copiez ce bout de code :

def visualisation(X, y, W, b):


resolution = 300
fig, ax = plt.subplots(figsize=(9, 6))
ax.scatter(X[:, 0], X[:, 1], c=y, s=50, edgecolor='k')

#limites du graphique
xlim = ax.get_xlim()

Pr. Nabila ZRIRA


1/2
IESE
Travaux pratiques Année 2024-2025
Apprentissage machine

ylim = ax.get_ylim()

# meshgrid
x1 = np.linspace(xlim[0], xlim[1], resolution)
x2 = np.linspace(ylim[0], ylim[1], resolution)
X1, X2 = np.meshgrid(x1, x2)

# assembler les 2 variables


XX = np.vstack((X1.ravel(), X2.ravel())).T

# Prédictions
Z = predict(XX, W, b)
Z = Z.reshape((resolution, resolution))

ax.pcolormesh(X1, X2, Z, zorder=0, alpha=0.1)


ax.contour(X1, X2, Z, colors='g')

4 Implémentation du modèle de la régression logistique


- Appelez les fonctions afin d’appliquer la régression logistique à la base de données
avec un nombre d’itérations égal à 100.

Pr. Nabila ZRIRA


2/2

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy