0% ont trouvé ce document utile (0 vote)
273 vues7 pages

Résumé Du Cours de Machine Learning

Le document présente un cours de Machine Learning, abordant des concepts clés tels que l'apprentissage supervisé, non supervisé et par renforcement, ainsi que des algorithmes comme la régression linéaire, logistique et KNN. Il introduit également la programmation en Python, les structures de données, et les étapes pour développer des modèles de ML. Chaque chapitre détaille les méthodes, les fonctions coût et les implémentations avec des bibliothèques comme Scikit-learn.

Transféré par

Ikram Elaima
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
273 vues7 pages

Résumé Du Cours de Machine Learning

Le document présente un cours de Machine Learning, abordant des concepts clés tels que l'apprentissage supervisé, non supervisé et par renforcement, ainsi que des algorithmes comme la régression linéaire, logistique et KNN. Il introduit également la programmation en Python, les structures de données, et les étapes pour développer des modèles de ML. Chaque chapitre détaille les méthodes, les fonctions coût et les implémentations avec des bibliothèques comme Scikit-learn.

Transféré par

Ikram Elaima
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Résumé du Cours de Machine Learning

Chapitre 1: Introduction au Machine Learning


Ce chapitre jette les bases de la compréhension du Machine Learning (ML).
 Définition et Utilité : Le ML est une branche de l'intelligence artificielle (IA) qui
permet aux ordinateurs d'apprendre à partir de données sans être explicitement
programmés pour chaque tâche. Au lieu de fournir des instructions précises, on fournit
des données et l'ordinateur identifie des modèles (patterns) pour effectuer des
prédictions ou prendre des décisions.
 Distinction avec la Programmation Classique : En programmation classique, on
fournit des données et un programme pour obtenir un résultat. En ML, on fournit des
données et les résultats attendus (dans l'apprentissage supervisé) pour que la machine
génère le programme (le modèle).
 Types d'Apprentissage Automatique :
o Apprentissage Supervisé : L'algorithme apprend à partir de données
étiquetées (c'est-à-dire que chaque exemple de donnée est associé à une sortie
correcte). L'objectif est de prédire une sortie pour de nouvelles données.
 Régression : Prédire une valeur continue (ex: prix d'une maison).
 Classification : Prédire une catégorie discrète (ex: spam ou non spam).
o Apprentissage Non Supervisé : L'algorithme apprend à partir de données non
étiquetées. L'objectif est de découvrir des structures ou des relations cachées
dans les données.
 Clustering (Regroupement) : Grouper des données similaires.
 Réduction de dimension : Simplifier les données en réduisant le nombre
de variables.
o Apprentissage par Renforcement : Un agent apprend en interagissant avec
un environnement. Il reçoit des récompenses ou des punitions pour ses actions,
et son objectif est de maximiser la récompense totale.
 Concepts Clés de l'Apprentissage Supervisé :
o Dataset (Jeu de données) : Collection d'exemples (x,y), où x représente les
caractéristiques (features) et y la cible (target) à prédire.
o Modèle : Une fonction mathématique (ex: f(x)=ax+b) avec des paramètres (ex:
a,b) que la machine apprend à partir des données.
o Fonction Coût (Cost Function / Loss Function) : Mesure l'erreur entre les
prédictions du modèle f(x) et les valeurs réelles y. L'objectif est de minimiser
cette fonction.
o Algorithme d'Apprentissage : Processus d'optimisation des paramètres du
modèle pour minimiser la fonction coût (ex: Descente de Gradient).
Chapitre 2: Programmation Python
Ce chapitre introduit les bases de la programmation en Python, langage très utilisé en
Machine Learning.
 Introduction à Python : Langage de script, orienté objet, open source, portable,
simple.
 Structures de Contrôle :
o Alternatives : if, elif, else pour exécuter des blocs de code sous conditions.
o Itératives :
 for : Pour itérer sur des séquences (listes, chaînes, range()).
 while : Pour répéter un bloc de code tant qu'une condition est vraie.
 Instructions break (sortir d'une boucle) et continue (passer à l'itération
suivante).
 Conteneurs Standards :
o Listes : Collections ordonnées et modifiables d'éléments ([]). Méthodes :
append(), insert(), remove(), pop(), sort(), reverse(), etc. Les listes sont
mutables.
o Tuples : Collections ordonnées et non modifiables (immuables) d'éléments
(()).
o Ensembles (Sets) : Collections non ordonnées d'éléments uniques ({}).
Supportent les opérations ensemblistes (union, intersection, etc.).
o Dictionnaires : Collections non ordonnées de paires clé-valeur ({clé: valeur}).
Les clés doivent être uniques et immuables. Méthodes : keys(), values(),
items(), get().
 Fonctions : Blocs de code réutilisables.
o Définition : def nom_fonction(arguments): ... return valeur.
o Arguments : Peuvent être positionnels, nommés (avec valeurs par défaut).
o Fonctions Variadiques : *args (pour un nombre variable d'arguments
positionnels, regroupés en tuple) et **kwargs (pour un nombre variable
d'arguments nommés, regroupés en dictionnaire).
o Portée des Variables :
 Locale : Définie à l'intérieur d'une fonction.
 Globale : Définie à l'extérieur de toute fonction. Le mot-clé global
permet de modifier une variable globale depuis une fonction. Le mot-
clé nonlocal permet de modifier une variable d'une portée englobante
(mais non globale) depuis une fonction imbriquée.
 Modules : Fichiers Python contenant des définitions et des instructions, permettant
d'organiser le code.
 Programmation Orientée Objet (POO) : Concepts de classes et d'objets (non
détaillé dans le résumé fourni).
Chapitre 3: Régression Linéaire
Ce chapitre explique comment développer un modèle de régression linéaire simple.
 Problèmes de Régression vs. Classification :
o Régression : Prédire une valeur continue (ex: prix d'un appartement).
o Classification : Prédire une catégorie discrète (ex: spam/non spam).
 Étapes pour développer un programme de Régression Linéaire :
1. Récolter les données : Obtenir un jeu de données avec des exemples
(x(i),y(i)), où x(i) est la caractéristique (feature) et y(i) est la cible (target).
2. Créer un modèle linéaire : Hypothèse que la relation entre x et y est linéaire:
f(x)=ax+b (ou f(x)=θ0+θ1x). Les paramètres a et b (ou θ0,θ1) sont à
déterminer.
3. Définir la Fonction Coût : Mesure l'erreur du modèle. Pour la régression
linéaire, on utilise souvent l'Erreur Quadratique Moyenne (Mean Squared Error
- MSE):
J(a,b)=2m1∑i=1m(f(x(i))−y(i))2=2m1∑i=1m(ax(i)+b−y(i))2
Le facteur 21 est pour simplifier le calcul du gradient.
4. Trouver les paramètres qui minimisent la Fonction Coût : Utilisation de
l'algorithme de la Descente de Gradient (Gradient Descent).
 Principe : Partir de valeurs aléatoires pour a et b, puis les ajuster
itérativement en se déplaçant dans la direction de la pente la plus forte
(négative) de la fonction coût.
 Mises à jour des paramètres :
a:=a−α∂a∂J(a,b)
b:=b−α∂b∂J(a,b)
où α est le taux d'apprentissage (learning rate).
 Dérivées partielles (gradients) :
∂a∂J(a,b)=m1∑i=1m(ax(i)+b−y(i))x(i)
∂b∂J(a,b)=m1∑i=1m(ax(i)+b−y(i))
 Forme Matricielle : Simplifie les calculs.
o Modèle : F(X)=X⋅θ
o Fonction Coût : J(θ)=2m1∑(Xθ−Y)2 (ou (Xθ−Y)T(Xθ−Y))

o Gradient : ∂θ∂J(θ)=m1XT(Xθ−Y)

o Mise à jour : θ:=θ−αm1XT(Xθ−Y)


 Implémentation avec Scikit-learn : Utilisation de SGDRegressor. Importance des
hyperparamètres comme le nombre d'itérations et le learning rate.
 Courbes d'Apprentissage : Visualisation de l'évolution de la fonction coût au fil des
itérations pour s'assurer que le modèle apprend.
Chapitre 4: Régression Multiple et Polynomiale
Ce chapitre étend la régression linéaire à des cas plus complexes.
 Régression Linéaire Multiple :
o Définition : Modélise la relation entre plusieurs caractéristiques (variables
indépendantes x1,x2,...,xn) et une variable cible (dépendante y).
o Modèle : f(x1,...,xn)=a0+a1x1+a2x2+...+anxn.

o En notation matricielle, la forme reste F(X)=X⋅θ, où X est maintenant une


matrice avec m exemples et n caractéristiques, et θ est un vecteur de n+1
paramètres.
o La fonction coût et l'algorithme de descente de gradient s'appliquent de
manière similaire.
 Régression Polynomiale :
o Utilité : Utilisée lorsque la relation entre les caractéristiques et la cible n'est
pas linéaire.
o Modèle : On transforme les caractéristiques initiales en y ajoutant des termes
polynomiaux. Par exemple, pour une seule caractéristique x, un modèle
polynomial de degré 2 serait f(x)=a0+a1x+a2x2.
o Cela revient à créer de nouvelles caractéristiques (x1=x,x2=x2) et à appliquer
une régression linéaire multiple sur ces nouvelles caractéristiques.
o Implémentation : Avec Scikit-learn, on utilise PolynomialFeatures pour
transformer les données, puis on applique un modèle de régression linéaire
(comme SGDRegressor ou LinearRegression).
o La fonction coût et la descente de gradient restent les mêmes que pour la
régression linéaire multiple, mais appliquées aux caractéristiques transformées.
Chapitre 5: Régression Logistique
Ce chapitre introduit un algorithme de classification binaire.
 Problèmes de Classification : Prédire une étiquette de classe discrète (ex: 0 ou 1,
"spam" ou "non spam", "malade" ou "sain").
 Limites de la Régression Linéaire pour la Classification : Une régression linéaire
peut produire des valeurs en dehors de l'intervalle [0,1], ce qui n'est pas interprétable
comme une probabilité.
 Modèle de Régression Logistique :
o Utilise la fonction sigmoïde (ou logistique) pour transformer une entrée
linéaire en une valeur entre 0 et 1, interprétable comme une probabilité.
σ(z)=1+e−z1
où z=X⋅θ (combinaison linéaire des caractéristiques).
o Le modèle prédit la probabilité que y=1 : P(y=1∣X;θ)=σ(X⋅θ).
 Frontière de Décision (Decision Boundary) :
o On classe y=1 si σ(X⋅θ)≥0.5 (ce qui équivaut à X⋅θ≥0).

o On classe y=0 si σ(X⋅θ)<0.5 (ce qui équivaut à X⋅θ<0).


o La frontière de décision est la ligne (ou surface) qui sépare les régions où le
modèle prédit des classes différentes.
 Fonction Coût pour la Régression Logistique :
o L'erreur quadratique moyenne (MSE) n'est pas adaptée car elle rendrait la
fonction coût non-convexe.
o On utilise la fonction de perte logistique (Log Loss) ou entropie croisée binaire
:
J(θ)=−m1∑i=1m[y(i)log(σ(X(i)θ))+(1−y(i))log(1−σ(X(i)θ))]
o Cette fonction est convexe et pénalise fortement les prédictions incorrectes
faites avec une grande confiance.
 Descente de Gradient pour la Régression Logistique :
o L'algorithme est similaire à celui de la régression linéaire.

o Gradient : ∂θj∂J(θ)=m1∑i=1m(σ(X(i)θ)−y(i))Xj(i)

o En forme matricielle : ∂θ∂J(θ)=m1XT(σ(Xθ)−Y)

o Mise à jour : θ:=θ−αm1XT(σ(Xθ)−Y)


 Implémentation avec Scikit-learn : Utilisation de SGDClassifier(loss='log') ou
LogisticRegression.
Chapitre 6: K Plus Proches Voisins (KNN)
Ce chapitre présente un autre algorithme de classification, basé sur l'instance.
 Principe du KNN : "Qui se ressemble s'assemble". Pour classer un nouvel exemple,
on regarde ses K plus proches voisins dans les données d'entraînement. L'exemple est
assigné à la classe majoritaire parmi ses K voisins.
 Algorithme d'Apprentissage Paresseux (Lazy Learning) : KNN ne construit pas de
modèle explicite pendant la phase d'entraînement. Il stocke simplement toutes les
données d'entraînement. La "classification" se fait au moment de la prédiction.
 Étapes de l'Algorithme KNN :
1. Choisir le nombre de voisins K.
2. Pour un nouvel exemple à classer :
a. Calculer la distance entre le nouvel exemple et tous les exemples d'entraînement.
b. Identifier les K exemples d'entraînement les plus proches (les K voisins).
c. Attribuer au nouvel exemple la classe la plus fréquente parmi ces K voisins.
 Calcul de la Distance :
o Distance Euclidienne (la plus courante) : D(X,Y)=∑j=1n(xj−yj)2 pour deux
points X=(x1,...,xn) et Y=(y1,...,yn).
o D'autres distances existent (Manhattan, Minkowski).
 Influence du Facteur K :
o Un petit K (ex: K=1) rend le modèle sensible au bruit et peut conduire au
surajustement (overfitting).
o Un grand K lisse la frontière de décision mais peut conduire au sous-
ajustement (underfitting) en ignorant des structures locales.
o Le choix de K est crucial. Souvent, K est choisi comme un nombre impair
(pour éviter les égalités) et on peut utiliser des techniques comme la validation
croisée pour trouver le meilleur K. Une règle empirique est K≈m (où m est le
nombre d'exemples d'entraînement).
 Normalisation des Données (Mise à l'échelle des caractéristiques) :
o Important car les caractéristiques avec des échelles de valeurs plus grandes
peuvent dominer le calcul de la distance.
o Normalisation Min-Max : Met à l'échelle les valeurs dans l'intervalle [0,1].
Xnew=max(X)−min(X)X−min(X)
o Standardisation (Z-score) : Transforme les données pour avoir une moyenne de
0 et un écart-type de 1.
Xnew=eˊcart-type(X)X−moyenne(X)
 Implémentation avec Scikit-learn : Utilisation de KNeighborsClassifier.
 Points Forts du KNN :
o Simple à comprendre et à implémenter.
o Efficace si les données sont bien structurées.
o Pas d'hypothèse sur la distribution des données.
 Points Faibles du KNN :
o Coûteux en calcul lors de la prédiction pour de grands jeux de données (doit
calculer les distances à tous les points d'entraînement).
o Sensible à la "malédiction de la dimensionnalité" (performances se dégradent
avec un grand nombre de caractéristiques).
o Nécessite une mise à l'échelle des caractéristiques.
o Le choix de K et de la métrique de distance peut être délicat.
Ce résumé couvre les concepts fondamentaux et les algorithmes clés présentés dans vos
chapitres.

Vous aimerez peut-être aussi