---
# System prepended metadata

title: ML01 - Initiation au *Machine Learning*

---

# ML01 - Initiation au *Machine Learning*

## TD 1 - Premiers classifieurs


### Tableau individus-variables

| **Individu** | *var 1* | *var 2* | classe|
|---|---|---|---|
| A | 8 | 2 | X |
| B | 4 | 5 | O |
| C | 4 | 3 | X |
| D | 7 | 8 | O |
| E | 2 | 4 | X |
| F | 7 | 4 | O |
| G | 1 | 6 | X |
| H | 8 | 3 | X |
| I | 6 | 2 | X |
| J | 5 | 8 | O |
| K | 4 | 7 | X |
| L | 6 | 6 | O |
| M | 1 | 2 | X |

Supposons que l'on observe les points $A, B, \dots , J$.
* Placer ces points dans le plan.

1. **Classifieur du plus proche voisin**

> Le *classifieur du plus proche voisin* attribue à un individu la classe de l'individu le plus proche dans l'ensemble d'apprentissage, au sens de la distance euclidienne.

* a. *Utilisation du classifieur* :
A l'aide du classifieur du plus proche voisin, classer les points $K, L$ et $M$.
* b. *Précision* : quelle est la proportion d'erreurs commises ?
* c. *Frontière de décision et régionnement du plan* : déterminer et colorier l'ensemble des points classés X

2. **Classifieur euclidien**

> Le *classifieur euclidien* consiste à affecter un individu au groupe dont le centre de gravité (le point moyen) est le plus
proche, au sens de la distance euclidienne.

* Mêmes questions

3. **Fluctuation d'échantillonnage**

* Reprendre ces questions avec $X_{train} = \{ D, \dots M\}$ et $X_{test} = \{A, B, C\}$

4. **Implémentation**

* Reprendre ces questions en utilisant *python* et les modules *numpy*, *matplotlib.pyplot*, *seaborn* et *sklearn*.

```python
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

X = np.array([[8, 2],
       [4, 5],
       [4, 3],
       [7, 8],
       [2, 4],
       [7, 4],
       [1, 6],
       [8, 3],
       [6, 2],
       [5, 8],
       [4, 7],
       [6, 6],
       [1, 2]])
y = np.array(['X','O','X','O','X','O','X','X','X','O','X','O','X'])
labels = np.array(['A','B','C','D','E','F','G','H','I','J','K','L','M'])

sns.scatterplot(x=X[:,0], y=X[:,1], hue=Y)
plt.show()
```


5. **Géométrie analytique**

* a. Ecrire explicitement les règles de décision en dimension 3, puis en dimension $m$.
* b. Retrouver les frontières de décision en dimension 3, puis en dimension $m$.

6. **Calcul vectoriel**

* Mêmes questions.


