{"id":341,"date":"2022-05-16T17:06:49","date_gmt":"2022-05-16T15:06:49","guid":{"rendered":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/?p=341"},"modified":"2022-05-16T17:57:38","modified_gmt":"2022-05-16T15:57:38","slug":"algorithme-des-k-plus-proches-voisins","status":"publish","type":"post","link":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/2022\/05\/16\/algorithme-des-k-plus-proches-voisins\/","title":{"rendered":"Algorithme des k plus proches voisins"},"content":{"rendered":"\n<figure class=\"wp-block-image\"><img src=\"http:\/\/yb-isn.fr\/2021\/nsi\/wp-content\/uploads\/2022\/05\/image-7.png\" alt=\"\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-vivid-red-color has-pale-cyan-blue-background-color has-text-color has-background has-medium-font-size\">Utilisez k-NN sur un vrai jeu de donn\u00e9es<\/p>\n\n\n\n<h4 id=\"r-4141727\">Les donn\u00e9es et la probl\u00e9matique<\/h4>\n\n\n\n<p id=\"r-4090382\">D&rsquo;abord, parlons du jeu de donn\u00e9es que nous allons utiliser. C&rsquo;est un dataset&nbsp;tr\u00e8s c\u00e9l\u00e8bre, appel\u00e9 MNIST.&nbsp;Il est constitu\u00e9 d&rsquo;un ensemble de 70000&nbsp;images 28&#215;28 pixels en noir et blanc annot\u00e9es du chiffre correspondant (entre 0&nbsp;et 9). L&rsquo;objectif de ce jeu de donn\u00e9es \u00e9tait de permettre \u00e0 un ordinateur d&rsquo;apprendre \u00e0 reconna\u00eetre des nombres manuscrits automatiquement (pour lire des ch\u00e8ques par exemple). Ce dataset utilise des donn\u00e9es r\u00e9elles qui ont d\u00e9j\u00e0 \u00e9t\u00e9 pr\u00e9-trait\u00e9es pour \u00eatre plus facilement utilisables par un algorithme.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" src=\"https:\/\/user.oc-static.com\/upload\/2016\/11\/27\/14802845466_download.png\" alt=\"\" width=\"306\" height=\"237\" \/><\/figure>\n\n\n\n<p>Notre objectif sera donc d&rsquo;entra\u00eener un mod\u00e8le qui sera capable de reconna\u00eetre les chiffres \u00e9crits sur ce type d&rsquo;images. Par chance, ce jeu de donn\u00e9es est t\u00e9l\u00e9chargeable directement \u00e0 partir d&rsquo;une fonction scikit-learn. \ud83d\ude07 On peut donc directement obtenir&nbsp;ce dataset via un appel de fonction : <\/p>\n\n\n\n<p><a href=\"https:\/\/colab.research.google.com\/drive\/1u7LkW3H-Mn91Yqk67axD4JrFGKSO5lfJ?usp=sharing\">https:\/\/colab.research.google.com\/drive\/1u7LkW3H-Mn91Yqk67axD4JrFGKSO5lfJ?usp=sharing<\/a><\/p>\n\n\n\n<p>Le mod\u00e8le KNN est un algorithme pr\u00e9dictif (il \u201cdevine\u201d une valeur \u00e0 partir d&rsquo;autres valeurs connues) qui est un peu particulier, car il ne n\u00e9cessite pas vraiment d&rsquo;apprentissage en soi.<\/p>\n\n\n\n<p>Il fonctionne en consid\u00e9rant les observations comme un nuage de points \u00e0 N dimensions, o\u00f9 N est le nombre de param\u00e8tres connus. \u00c0 chaque point, on associe une propri\u00e9t\u00e9 int\u00e9ressante (la qualit\u00e9 d&rsquo;un produit, par exemple ) \u00e0 pr\u00e9dire.<\/p>\n\n\n\n<p>Lorsqu&rsquo;un nouveau point lui est soumis, pour lequel il faut pr\u00e9dire la valeur de la propri\u00e9t\u00e9 d&rsquo;int\u00e9r\u00eat, l&rsquo;algorithme cherche les K points connus les plus proches du nouveau point. K \u00e9tant un entier strictement positif, 5 par exemple. La notion de proximit\u00e9 implique celle de distance : d&rsquo;autres distances que l\u2019euclidienne peuvent \u00eatre utilis\u00e9es.<\/p>\n\n\n\n<p>La valeur pr\u00e9dite est alors une \u201cmoyenne\u201d (pond\u00e9r\u00e9e ou non par l&rsquo;inverse de la distance) des valeurs des K points retenus. La notion de moyenne d\u00e9pend de la situation. Par exemple, si la valeur \u00e0 pr\u00e9dire est binaire, la \u201cmoyenne\u201d peut consister en un vote \u00e0 la majorit\u00e9 simple.<\/p>\n\n\n\n<p>Les points faibles de cet algorithme sont&nbsp;: d\u2019une part, son co\u00fbt en puissance de calcul (pour pr\u00e9dire l\u2019image d\u2019un nouveau point, on doit calculer sa distance \u00e0 tous les autres), d\u2019autre part le fait de devoir conserver toutes les donn\u00e9es d\u2019entra\u00eenement en m\u00e9moire (k-NN&nbsp;&nbsp;convient donc plut\u00f4t aux probl\u00e8mes d\u2019assez petite taille).<\/p>\n\n\n\n<h3 id=\"r-4090403\">En r\u00e9sum\u00e9<\/h3>\n\n\n\n<p id=\"r-4090401\">On vient de voir sur un algorithme simple comment l&rsquo;entra\u00eener sur des donn\u00e9es pour ensuite optimiser les param\u00e8tres de cet algorithme \u00e0 l\u2019aide d\u2019un jeu de donn\u00e9es test.<\/p>\n\n\n\n<p id=\"r-4090402\">N\u2019h\u00e9sitez pas \u00e0 entra\u00eener&nbsp;ce mod\u00e8le \u00e0 votre tour sur d\u2019autres jeux de donn\u00e9es&nbsp;!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Utilisez k-NN sur un vrai jeu de donn\u00e9es Les donn\u00e9es et la probl\u00e9matique D&rsquo;abord, parlons du jeu de donn\u00e9es que nous allons utiliser. C&rsquo;est un dataset&nbsp;tr\u00e8s c\u00e9l\u00e8bre, appel\u00e9 MNIST.&nbsp;Il est constitu\u00e9 d&rsquo;un ensemble de 70000&nbsp;images 28&#215;28 pixels en noir et blanc annot\u00e9es du chiffre correspondant (entre 0&nbsp;et 9). L&rsquo;objectif de ce jeu de donn\u00e9es \u00e9tait [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":349,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/posts\/341"}],"collection":[{"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/comments?post=341"}],"version-history":[{"count":6,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/posts\/341\/revisions"}],"predecessor-version":[{"id":350,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/posts\/341\/revisions\/350"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/media\/349"}],"wp:attachment":[{"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/media?parent=341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/categories?post=341"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/tags?post=341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}