TP Classification

1/8
100%

TP Classification

(Machine learning k-fold)

1. Introduction:

Dans ce TP on veut développer un algorithme qui permet de classifier à partir d’une base donnée des images de forme différentes (zoomées, orientés) des cœurs, trèfle, diamant, piques d’une manière automatique. Pour se faire il faut trouver des caractéristiques (moments central, moment normalisé, les 7 moment de Hu) qui sont plutôt indépendants entre les figures, mais aussi qui écartent bien les différences.

1. Segmentation :

Pour commencer il faut segmenter tous les inputs en effet on a développé une fonction (seuillage) pour faire les prétraitements nécessaires

![](data:image/png;base64...)

![](data:image/png;base64...)![](data:image/png;base64...)

Avant le seuillage

Après le seuillage

1. Data selection :

Pour commencer le training il faut d’abord classifier notre base de données en 4 class (pique, cœurs, diamants, trèfles) dont chaque classe possède des images de tailles de d’orientations différentes notre base doit être repartie 65% data pour l’apprentissage du model et 35% pour le valider.

![](data:image/png;base64...)

Publicité

Training Data

![](data:image/png;base64...)![](data:image/png;base64...)

![](data:image/png;base64...)

![](data:image/png;base64...)

TEST data

![](data:image/png;base64...)

Pour la partie test on a choisi des données qui n’existent pas dans celle de data training afin de savoir l’efficacité (Accuracy) de notre machine

1. Les caractéristiques proposées :

Dans notre cas on veut extraire les caracteristiques (features) de chaque classe en calculant le moment géométrique d’un contour

![](data:image/png;base64...)

![](data:image/png;base64...)

On calcule les moments (Hu1, Hu2, Hu3, Hu4) de toutes les images classe par classe et on les stocks dans 4 tableaux

![](data:image/png;base64...)

Publicité

![](data:image/png;base64...)

![](data:image/png;base64...)

![](data:image/png;base64...)

->On remarque que les moments de Hu varient légèrement en parcourant notre base de training, il nous reste à décider quel moment le plus performant pour caractérisé les classes

1. Features sélection :

Le principal avantage de la sélection des fonctionnalités est qu'elle réduit le sur-ajustement. En supprimant les données superflues, cela permet au modèle de se concentrer uniquement sur les fonctionnalités importantes des données, et de ne pas se bloquer sur les fonctionnalités qui n'ont pas d'importance. Un autre avantage de la suppression d'informations non pertinentes est qu'elle améliore la précision des prévisions du modèle. Il réduit également le temps de calcul nécessaire pour obtenir le modèle. Enfin, le fait d'avoir un plus petit nombre de fonctionnalités rend votre modèle plus interprétable et plus facile à comprendre. Dans l'ensemble, la sélection des fonctionnalités est la clé pour pouvoir prédire des valeurs avec une certaine précision.

Du coup on choisit le moment qui possède une faible variance et éliminer les autres pour augmenter la performance de notre machine

![](data:image/png;base64...)

Pour la majorité des classes, Hu4 possède la variance la moins élevée du coup on va lui considérer le meilleur caractère qui discrimine au mieux entre les classes.

On voulait utiliser la méthode « forward » qui crée une matrice vide et lui remplit qu’avec les bons features mais dans notre cas il existe que 4 du coup cette matrice prend que le meilleurs qui est Hu4.

1. Test et matrice de confusion :

On a développé la fonction matching qui permet de faire la prédiction des cartes.

![](data:image/png;base64...)

Publicité

Pour la partie test on a numéroté les données pour pouvoir bien lire notre matrice de confusion

![](data:image/png;base64...)

| | | | | |

| --- | --- | --- | --- | --- |

| Input\output | Cœur | Trèfle | Pique | Diamond |

| 0(cœur) | 1 | 0 | 0 | 0 |

| 1(cœur) | 1 | 0 | 0 | 0 |

| 2(cœur) | 1 | 0 | 0 | 0 |

| 3(cœur) | 1 | 0 | 0 | 0 |

| 4(cœur) | 1 | 0 | 0 | 0 |

| 5(cœur) | 0 | 1 | 0 | 0 |

| 6(Diamond) | 0 | 0 | 0 | 1 |

| 7(Diamond) | 0 | 0 | 0 | 1 |

Publicité

| 8(trèfle) | 0 | 1 | 0 | 0 |

| 9(trèfle) | 0 | 0 | 0 | 1 |

| 10(trèfle) | 0 | 1 | 0 | 0 |

| 11(trèfle) | 0 | 1 | 0 | 0 |

| 12(trèfle) | 0 | 1 | 0 | 0 |

| 13(pique) | 0 | 0 | 1 | 0 |

| 14(pique) | 0 | 0 | 1 | 0 |

| 15(pique) | 0 | 0 | 1 | 0 |

| 16(pique) | 0 | 0 | 1 | 0 |

->La matrice montre qu’on a 3 erreur qui donne une précision de 82%

1. Conclusion

Dans ce TP on a appris les fondamentaux du Machin Learning (K-fold out) , genre la gestion de données, la sélection de la meilleure caractéristique (variance, chi-square, etc.), qui nous permet d’ouvrir la porte dans le domaine de data science.

TP Classification

Machine Learning, Image Processing · lab

Voir tous les documents en intelligence artificielle et données

TP Classification

(Machine learning k-fold)

1. Introduction:

Dans ce TP on veut développer un algorithme qui permet de classifier à partir d’une base donnée des images de forme différentes (zoomées, orientés) des cœurs, trèfle, diamant, piques d’une manière automatique. Pour se faire il faut trouver des caractéristiques (moments central, moment normalisé, les 7 moment de Hu) qui sont plutôt indépendants entre les figures, mais aussi qui écartent bien les différences.

1. Segmentation :

Pour commencer il faut segmenter tous les inputs en effet on a développé une fonction (seuillage) pour faire les prétraitements nécessaires

![](data:image/png;base64...)

![](data:image/png;base64...)![](data:image/png;base64...)

Avant le seuillage

Après le seuillage

1. Data selection :

Pour commencer le training il faut d’abord classifier notre base de données en 4 class (pique, cœurs, diamants, trèfles) dont chaque classe possède des images de tailles de d’orientations différentes notre base doit être repartie 65% data pour l’apprentissage du model et 35% pour le valider.

![](data:image/png;base64...)

Publicité

Training Data

![](data:image/png;base64...)![](data:image/png;base64...)

![](data:image/png;base64...)

![](data:image/png;base64...)

TEST data

![](data:image/png;base64...)

Pour la partie test on a choisi des données qui n’existent pas dans celle de data training afin de savoir l’efficacité (Accuracy) de notre machine

1. Les caractéristiques proposées :

Dans notre cas on veut extraire les caracteristiques (features) de chaque classe en calculant le moment géométrique d’un contour

![](data:image/png;base64...)

![](data:image/png;base64...)

On calcule les moments (Hu1, Hu2, Hu3, Hu4) de toutes les images classe par classe et on les stocks dans 4 tableaux

![](data:image/png;base64...)

Publicité

![](data:image/png;base64...)

![](data:image/png;base64...)

![](data:image/png;base64...)

->On remarque que les moments de Hu varient légèrement en parcourant notre base de training, il nous reste à décider quel moment le plus performant pour caractérisé les classes

1. Features sélection :

Le principal avantage de la sélection des fonctionnalités est qu'elle réduit le sur-ajustement. En supprimant les données superflues, cela permet au modèle de se concentrer uniquement sur les fonctionnalités importantes des données, et de ne pas se bloquer sur les fonctionnalités qui n'ont pas d'importance. Un autre avantage de la suppression d'informations non pertinentes est qu'elle améliore la précision des prévisions du modèle. Il réduit également le temps de calcul nécessaire pour obtenir le modèle. Enfin, le fait d'avoir un plus petit nombre de fonctionnalités rend votre modèle plus interprétable et plus facile à comprendre. Dans l'ensemble, la sélection des fonctionnalités est la clé pour pouvoir prédire des valeurs avec une certaine précision.

Du coup on choisit le moment qui possède une faible variance et éliminer les autres pour augmenter la performance de notre machine

![](data:image/png;base64...)

Pour la majorité des classes, Hu4 possède la variance la moins élevée du coup on va lui considérer le meilleur caractère qui discrimine au mieux entre les classes.

On voulait utiliser la méthode « forward » qui crée une matrice vide et lui remplit qu’avec les bons features mais dans notre cas il existe que 4 du coup cette matrice prend que le meilleurs qui est Hu4.

1. Test et matrice de confusion :

On a développé la fonction matching qui permet de faire la prédiction des cartes.

![](data:image/png;base64...)

Publicité

Pour la partie test on a numéroté les données pour pouvoir bien lire notre matrice de confusion

![](data:image/png;base64...)

| | | | | |

| --- | --- | --- | --- | --- |

| Input\output | Cœur | Trèfle | Pique | Diamond |

| 0(cœur) | 1 | 0 | 0 | 0 |

| 1(cœur) | 1 | 0 | 0 | 0 |

| 2(cœur) | 1 | 0 | 0 | 0 |

| 3(cœur) | 1 | 0 | 0 | 0 |

| 4(cœur) | 1 | 0 | 0 | 0 |

| 5(cœur) | 0 | 1 | 0 | 0 |

| 6(Diamond) | 0 | 0 | 0 | 1 |

| 7(Diamond) | 0 | 0 | 0 | 1 |

Publicité

| 8(trèfle) | 0 | 1 | 0 | 0 |

| 9(trèfle) | 0 | 0 | 0 | 1 |

| 10(trèfle) | 0 | 1 | 0 | 0 |

| 11(trèfle) | 0 | 1 | 0 | 0 |

| 12(trèfle) | 0 | 1 | 0 | 0 |

| 13(pique) | 0 | 0 | 1 | 0 |

| 14(pique) | 0 | 0 | 1 | 0 |

| 15(pique) | 0 | 0 | 1 | 0 |

| 16(pique) | 0 | 0 | 1 | 0 |

->La matrice montre qu’on a 3 erreur qui donne une précision de 82%

1. Conclusion

Dans ce TP on a appris les fondamentaux du Machin Learning (K-fold out) , genre la gestion de données, la sélection de la meilleure caractéristique (variance, chi-square, etc.), qui nous permet d’ouvrir la porte dans le domaine de data science.