nsi:premiere:knn:iris
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| nsi:premiere:knn:iris [2023/03/23 12:06] – [Fonctions utiles] goupillwiki | nsi:premiere:knn:iris [2023/04/06 14:58] (Version actuelle) – goupillwiki | ||
|---|---|---|---|
| Ligne 138: | Ligne 138: | ||
| <code python> | <code python> | ||
| def liste_distances(data, | def liste_distances(data, | ||
| - | ''' | + | |
| - | | + | data: données de la base d' |
| - | | + | a_etiqueter: |
| - | | + | renvoie un tableau constitué de paires (distance, espèce) pour |
| - | | + | chaque individu de la base |
| - | | + | ''' |
| </ | </ | ||
| Ligne 197: | Ligne 197: | ||
| assert knn(3, data, it1) == ' | assert knn(3, data, it1) == ' | ||
| </ | </ | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | === Trier === | ||
| - | |||
| - | On sait calculer la distance $d_i$ entre l' | ||
| - | |||
| - | * calcule toutes les distances $d_i$, | ||
| - | * extrait les $k$ plus petites de ces distances avec les individus associés, | ||
| - | * renvoie la catégorie de chacun des $k$ individus ayant la plus petite distance avec $x$. | ||
| - | |||
| - | Appelons '' | ||
| - | |||
| - | == Exemple d' | ||
| - | |||
| - | < | ||
| - | def categorie(individu): | ||
| - | ''' | ||
| - | fonction dépendant des choix faits dans le problème | ||
| - | considéré et qui se contente de renvoyer la catégorie | ||
| - | assignée à cet individu. | ||
| - | ''' | ||
| - | # simple exemple pour les iris : | ||
| - | return individu[' | ||
| - | |||
| - | def select_knn(inconnu, | ||
| - | # création de paires (distance, categorie) | ||
| - | paires = [ (distance(inconnu, | ||
| - | # tri des paires en triant selon la distance, c'est à dire paire[0] | ||
| - | paires.sort(key=lambda paire: paire[0]) | ||
| - | # lecture des k premiers en ne relevant que la catégorie (paire[1]) | ||
| - | return [paire[1] for paire in paires[:k]] | ||
| - | </ | ||
| - | |||
| - | === Majoritaire === | ||
| - | |||
| - | On dispose d'une liste de $k$ étiquettes de catégorie. Il ne reste qu'à compter la catégorie majoritaire. | ||
| - | |||
| - | Appelons '' | ||
| - | |||
| - | === Tout ensemble === | ||
| - | |||
| - | Toutes les fonctions étant définies, la fonction '' | ||
| - | |||
| - | < | ||
| - | individus = get_data() # individus du fichier d' | ||
| - | |||
| - | def knn(inconnu, | ||
| - | categories = select_knn(inconnu, | ||
| - | m = select_majoritaire(categories) | ||
| - | return m | ||
| - | </ | ||
nsi/premiere/knn/iris.1679569582.txt.gz · Dernière modification : de goupillwiki
