Gauthier MARETTE - M1 I2L APP
Ce repository contient l'ensemble du code réalisé dans le cadre du projet en apprentissage artificiel.
- Analyse des données fournies et statistiques des bases
- Algorithmes d'apprentissage utilisés
- Analyse des performances obtenues
- Analyse des résultats obtenus
Lors de ce projet, nous avons pris possession de deux bases de données contenants chacune de nombreuses données à traiter. Nous allons commencer par la première base:
Nous pouvons voir que la base contient 101 exemple de données et 26 caractéristiques par lignes. Nous constatons également qu'elle est composée de 7 classes différentes au niveau de la colonne à prédire (Z). Il s'agit donc ici d'un problème de classification.Maintenant, passons à la deuxième base:
Nous pouvons voir que la base contient 17379 lignes au total, elle a 15 caractéristiques et n'a pas de classe vu qu'il s'agit d'un problème de régression. Ici, la colonne à prédire est toujours "Z".Pour effectuer l'ensemble des tests, j'ai pu utiliser 3 algorithmes afin de faire de la prédiction de données.
Tout d'abord, j'ai utilisé un réseau de neurones, en classification et en régression.
Ce système est très efficace mais assez long à entrainer afin d'obtenir des résultats probant.J'ai ensuite utilisé l'algorithme des K plus proches voisins, en classification et en régression.
Cet algorithme utilise un nombre défini de voisin pour définir son état (ici k=3 ou k=7). C'est un algorithme assez efficace et qui ne demande pas beaucoup de ressource machine.
Pour finir, j'ai pu utiliser un arbre de décision, cette fois ci aussi, en classification et en régression.
Il est également très efficace et demande assez peu de ressource machine.
Algorithme utilisé | Temps d'éxecution |
---|---|
Réseau de neurones | 0,05s |
K plus proches voisins | 0,008s |
Arbre de décision | 0,003s |
Algorithme utilisé | Temps d'éxecution |
---|---|
Réseau de neurones | 1,35s |
K plus proches voisins | 0,14s |
Arbre de décision | 0,05s |
Algorithme utilisé | Train score | Test score |
---|---|---|
Réseau de neurones | 1 | 0.3870 |
K plus proches voisins | 0.5857 | 0.3548 |
Arbre de décision | 1 | 0.9355 |
Ci-dessus, le tableau contenant toutes les statistiques. Le test score est le score obtenu une fois que le modèle a été entrainé par les données de train. On peut donc voir ici, que pour les données 1, l'arbre de décision est l'algorithme le plus adapté car c'est celui qui a la plus grosse efficacité en étant celui qui prend le moins de temps à s'exécuter. (93.55% de réussite en prédiction pour 0,003s d'exécution)
Algorithme utilisé | Train score | Test score | MAE | MSE | R2 |
---|---|---|---|---|---|
Réseau de neurones | 1 | 0.9998 | 1.51 | 4.37 | 0.99 |
K plus proches voisins | 0.5857 | 0.9832 | 15.27 | 553.84 | 0.98 |
Arbre de décision | 1 | 0.9991 | 2.56 | 27.32 | 0.99 |
Ci-dessus, le tableau contenant toutes les statistiques pour les données du dataset 2. Plus le MAE et le MSE sont bas, plus efficace est l'algorithme. On peut voir ici que l'algorithme qui est le plus efficace est le réseau de neurone, il arrive à prédire plus de 99.98% des données une fois entrainé. Cependant, c'est celui qui prend le plus de temps à s'exécuter. Je pense que l'arbre de décision est ici un meilleur choix, car même s'il n'est pas aussi fiable que le réseau de neurone, son temps d'exécution est drastiquement inférieur (27x plus rapide).