Ajout du perceptron

This commit is contained in:
Philippe Roy 2023-06-24 09:27:52 +02:00
parent 9e88d6d435
commit 8dfe96d44d
3 changed files with 6 additions and 11 deletions

View File

@ -19,6 +19,7 @@ from matplotlib.colors import ListedColormap
### ###
# Commandes NumPy : # Commandes NumPy :
# - np.array : créer un tableau à partir d'une liste de listes # - np.array : créer un tableau à partir d'une liste de listes
# - np.c_ : concatène les colonnes des tableaux
# - np.linspace : créer un tableau 1D de la valeur de début à la valeur de fin avec n valeurs # - np.linspace : créer un tableau 1D de la valeur de début à la valeur de fin avec n valeurs
# - np.meshgrid : créer un tableau 2D avec l'ensemble des combinaisons allant des deux valeurs de début aux deux valeurs de fin # - np.meshgrid : créer un tableau 2D avec l'ensemble des combinaisons allant des deux valeurs de début aux deux valeurs de fin
# - .reshape : reformater la tableau avec le nombre de lignes et le nombre de colonnes # - .reshape : reformater la tableau avec le nombre de lignes et le nombre de colonnes

View File

@ -20,15 +20,14 @@ from matplotlib.colors import ListedColormap
# Commandes NumPy : # Commandes NumPy :
# - np.array : créer un tableau à partir d'une liste de listes # - np.array : créer un tableau à partir d'une liste de listes
# - np.c_ : concatène les colonnes des tableaux # - np.c_ : concatène les colonnes des tableaux
# - np.ones : créer un tableau de 1 # - np.linspace : créer un tableau 1D de la valeur de début à la valeur de fin avec n valeurs
# - np.linalg.inv : inversion de matrice # - np.meshgrid : créer un tableau 2D avec l'ensemble des combinaisons allant des deux valeurs de début aux deux valeurs de fin
# - .T : transposé de matrice # - .reshape : reformater la tableau avec le nombre de lignes et le nombre de colonnes
# - .dot : produit de matrice
### ###
### ###
# Commandes Scikit-Learn : # Commandes Scikit-Learn :
# - sklearn.linear_model.LinearRegression() : créer un modèle de régression linéaire (méthode des moindres carrés) # - sklearn.linear_model.Perceptron() : créer un modèle de Perceptron
# - .fit : entrainement du modèle # - .fit : entrainement du modèle
# - .predict : prédiction du modèle # - .predict : prédiction du modèle
### ###
@ -74,7 +73,7 @@ X_new = np.c_[x1_new_mg.ravel(), x2_new_mg.ravel()]
############################################################################### ###############################################################################
# model= sklearn.linear_model.Perceptron(max_iter=1000, tol=1e-3, random_state=42) # model= sklearn.linear_model.Perceptron(max_iter=1000, tol=1e-3, random_state=42)
model = sklearn.linear_model.Perceptron() # Modèle régression logistique model = sklearn.linear_model.Perceptron() # Modèle perceptron
model.fit(X, y1) # Entrainement model.fit(X, y1) # Entrainement
############################################################################### ###############################################################################
@ -114,9 +113,6 @@ def sigmoid(_x):
def echelon(_x): # Heaviside def echelon(_x): # Heaviside
return (_x >= 0).astype(_x.dtype) return (_x >= 0).astype(_x.dtype)
def relu(_x):
return np.maximum(0, _x)
def derivation(f, _x, eps=0.000001): def derivation(f, _x, eps=0.000001):
return (f(_x + eps) - f(_x))/eps return (f(_x + eps) - f(_x))/eps
@ -127,14 +123,12 @@ f_activ_x = np.linspace(-5, 5, 200)
f_activ_ax.set(xlim=(-5,5), ylim=(0, 1.25)) f_activ_ax.set(xlim=(-5,5), ylim=(0, 1.25))
f_activ_ax.plot(f_activ_x, sigmoid(f_activ_x), "g-", label="Sigmoïde") f_activ_ax.plot(f_activ_x, sigmoid(f_activ_x), "g-", label="Sigmoïde")
f_activ_ax.plot(f_activ_x, echelon(f_activ_x), "b-", label="Échelon") f_activ_ax.plot(f_activ_x, echelon(f_activ_x), "b-", label="Échelon")
# f_activ_ax.plot(f_activ_x, relu(f_activ_x), "m-", label="ReLU")
f_activ_ax.legend() f_activ_ax.legend()
# Dérivée # Dérivée
df_activ_ax = fig.add_subplot(2,3,5) df_activ_ax = fig.add_subplot(2,3,5)
df_activ_ax.plot(f_activ_x, derivation(sigmoid, f_activ_x), "g-", label="f'(Sigmoïde)") df_activ_ax.plot(f_activ_x, derivation(sigmoid, f_activ_x), "g-", label="f'(Sigmoïde)")
df_activ_ax.plot(f_activ_x, derivation(echelon, f_activ_x), "b-", label="f'(Échelon)") df_activ_ax.plot(f_activ_x, derivation(echelon, f_activ_x), "b-", label="f'(Échelon)")
# df_activ_ax.plot(f_activ_x, derivation(relu, f_activ_x), "m-", label="f'(ReLU)")
df_activ_ax.legend() df_activ_ax.legend()
############################################################################### ###############################################################################

Binary file not shown.

Before

Width:  |  Height:  |  Size: 482 KiB

After

Width:  |  Height:  |  Size: 488 KiB