Académique Documents
Professionnel Documents
Culture Documents
Apprentissage automatique
Gorgoumack SAMBE
Université Assane Seck de Ziguinchor
Objectifs
Objectif général
Appliquer et évaluer une classication par les plus proches
voisins sur un jeux de données.
Objectifs
Objectif général
Appliquer et évaluer une classication par les plus proches
voisins sur un jeux de données.
Objectifs spéciques
1 Appliquer une classication par les k plus proches voisins ;
2 Choisir un paramètre k optimal pour une classication par
Knn ;
3 Choisir une métrique adaptée pour une classication par Knn ;
4 Évaluer une classication par Knn
5 Sélectionner et évaluer une méthode de classication.
Les bases
modalités
Y = (y1 , . . . , yn )t yi ∈ {M1 , . . . , Mm }
et p variables explicatives supposées dans R :
X1 , . . . , Xp avec Xi = (xi1 , . . . , xin )
1. Explication/classication
5/19 Gorgoumack SAMBE Apprentissage automatique
Généralités sur la classication
K plus proche voisin (Knn)
Applications
Systèmes de recommandations
Recommandations de lms (Vidéo à la Demande)
Recommandations d'amis (Réseaux sociaux)
Recommandations de produits (Grande distribution)
Reconnaissance de formes
Reconnaissance de texte manuscrit.
Reconnaissance de visage.
Diagnostic médical
Évaluation des risques de cancer
Évaluation des risques de diabète
Classication d'email (spam)
....
Exemple
Weather [Quinlan86]
Exemple
Classication (arbre de décision)
Les méthodes
Arbres de décision
Réseaux de neurones
Machine à vecteur support - SVM 3
Régression logistique
Forêts aléatoires 4
...
2. K nearest neighbors
3. Support Vector Machine
4. Random forest
9/19 Gorgoumack SAMBE Apprentissage automatique
Généralités sur la classication
K plus proche voisin (Knn)
Les bases
Algorithme
Choix de k
Méthodologie :
1 faire varier k,
2 calculer le taux d'erreur sur les données de test
3 sélectionner k qui minimise le taux d'erreur
Python sklearn
Classes :
1 Classication :
sklearn.neighbors.KNeighborsClassier(n_neighbors=5, *,
weights='uniform', algorithm='auto', leaf_size=30, p=2,
metric='minkowski', metric_params=None, n_jobs=None)
2 Régression :
sklearn.neighbors.KNeighborsRegressor(n_neighbors=5, *,
weights='uniform', algorithm='auto', leaf_size=30, p=2,
metric='minkowski', metric_params=None, n_jobs=None)
Exemple :
X = [[0], [1], [2], [3]]
y = [0, 0, 1, 1]
from sklearn.neighbors import KNeighborsClassifier
neigh = KNeighborsClassifier(n_neighbors=3)
neigh.fit(X, y)
#résultat : KNeighborsClassifier(...)
print(neigh.predict([[1.1]]))
#résultats : [0]
print(neigh.score([[1.1]],[0]))
#résultat : 1.0
print(neigh.predict_proba([[0.9]]))
#résultat : [[0.66666667 0.33333333]]
Application : Charger et décomposer iris en données d'apprentissage
(80%) et en données de test. Faire une classication par knn et évaluer le
score sur les données de test.
Les plus
1 Simple et Facile à mettre en ÷uvre ;
2 Pas d'hypothèse sur les données ;
3 polyvalence (classication/régression).
Les moins
1 lent à mesure que le nombre d'exemples et/ou de prédicteurs
augmente.