version finale remise
This commit is contained in:
parent
1d1b8cba77
commit
571a5d9d7e
5 changed files with 1245 additions and 317 deletions
|
@ -2,15 +2,21 @@ Tâches effectuées entièrement par François Pelletier 908144032
|
|||
|
||||
.
|
||||
├── BayesNaif.py (Classe pour le modèle Bayes Naif)
|
||||
├── classifieur.py (Classe exemple)
|
||||
├── DecisionTree.py (Classe pour le modèle DecisionTree)
|
||||
├── datasets (Jeux de données)
|
||||
├── entrainer_tester.py (Code pour exécuter tous les modèles, créé depuis Rapport-Partiel.ipynb avec export_notebook_script.sh)
|
||||
├── entrainer_tester.py (Code pour exécuter les modèles BayesNaif et Knn, créé depuis Rapport-Partiel.ipynb avec export_notebook_script.sh)
|
||||
├── export_notebook_script.sh (Script pour créer entrainer_tester.py depuis Rapport-Partiel.ipynb)
|
||||
├── Knn.py (Classe pour le modèle KNN)
|
||||
├── load_datasets.py (Classe pour charger les données)
|
||||
├── main.py (Code pour exécuter DecisionTree et NeuralNet, créé depuis Rapport-Final.ipynb avec export_notebook_script.sh)
|
||||
├── metrics.py (Fonctions pour le calcul des métriques)
|
||||
├── Rapport-Partiel.ipynb (Code source du rapport)
|
||||
├── Rapport-Partiel.pdf (Version PDF du rapport)
|
||||
├── NeuralNet.py (Classe pour le modèle NeuralNet)
|
||||
├── NeuralNetUtils.py (Fonctions utiles pour le modèle NeuralNet)
|
||||
├── NeuralNode.py (Classe pour les noeuds du modèle NeuralNet)
|
||||
├── Rapport-Final.ipynb (Code source du rapport final)
|
||||
├── Rapport-Final.pdf (Version PDF du rapport final)
|
||||
├── Rapport-Partiel.ipynb (Code source du rapport partiel)
|
||||
├── Rapport-Partiel.pdf (Version PDF du rapport partiel)
|
||||
└── README.txt (Ce fichier-ci)
|
||||
|
||||
Discussion, enjeux et difficultés: voir rapport PDF
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,90 +0,0 @@
|
|||
"""
|
||||
Vous allez definir une classe pour chaque algorithme que vous allez développer,
|
||||
votre classe doit contenit au moins les 3 methodes definies ici bas,
|
||||
* train : pour entrainer le modèle sur l'ensemble d'entrainement
|
||||
* predict : pour prédire la classe d'un exemple donné
|
||||
* test : pour tester sur l'ensemble de test
|
||||
vous pouvez rajouter d'autres méthodes qui peuvent vous etre utiles, mais moi
|
||||
je vais avoir besoin de tester les méthodes test, predict et test de votre code.
|
||||
"""
|
||||
|
||||
import numpy as np
|
||||
|
||||
|
||||
# le nom de votre classe
|
||||
# BayesNaif pour le modèle bayesien naif
|
||||
# Knn pour le modèle des k plus proches voisins
|
||||
|
||||
class Classifier: #nom de la class à changer
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
"""
|
||||
c'est un Initializer.
|
||||
Vous pouvez passer d'autre paramètres au besoin,
|
||||
c'est à vous d'utiliser vos propres notations
|
||||
"""
|
||||
|
||||
|
||||
def train(self, train, train_labels): #vous pouvez rajouter d'autres attribus au besoin
|
||||
"""
|
||||
c'est la méthode qui va entrainer votre modèle,
|
||||
train est une matrice de type Numpy et de taille nxm, avec
|
||||
n : le nombre d'exemple d'entrainement dans le dataset
|
||||
m : le mobre d'attribus (le nombre de caractéristiques)
|
||||
|
||||
train_labels : est une matrice numpy de taille nx1
|
||||
|
||||
vous pouvez rajouter d'autres arguments, il suffit juste de
|
||||
les expliquer en commentaire
|
||||
|
||||
|
||||
|
||||
------------
|
||||
Après avoir fait l'entrainement, faites maintenant le test sur
|
||||
les données d'entrainement
|
||||
IMPORTANT :
|
||||
Vous devez afficher ici avec la commande print() de python,
|
||||
- la matrice de confision (confusion matrix)
|
||||
- l'accuracy
|
||||
- la précision (precision)
|
||||
- le rappel (recall)
|
||||
|
||||
Bien entendu ces tests doivent etre faits sur les données d'entrainement
|
||||
nous allons faire d'autres tests sur les données de test dans la méthode test()
|
||||
"""
|
||||
|
||||
def predict(self, exemple, label):
|
||||
"""
|
||||
Prédire la classe d'un exemple donné en entrée
|
||||
exemple est de taille 1xm
|
||||
|
||||
si la valeur retournée est la meme que la veleur dans label
|
||||
alors l'exemple est bien classifié, si non c'est une missclassification
|
||||
|
||||
"""
|
||||
|
||||
def test(self, test, test_labels):
|
||||
"""
|
||||
c'est la méthode qui va tester votre modèle sur les données de test
|
||||
l'argument test est une matrice de type Numpy et de taille nxm, avec
|
||||
n : le nombre d'exemple de test dans le dataset
|
||||
m : le mobre d'attribus (le nombre de caractéristiques)
|
||||
|
||||
test_labels : est une matrice numpy de taille nx1
|
||||
|
||||
vous pouvez rajouter d'autres arguments, il suffit juste de
|
||||
les expliquer en commentaire
|
||||
|
||||
Faites le test sur les données de test, et afficher :
|
||||
- la matrice de confision (confusion matrix)
|
||||
- l'accuracy
|
||||
- la précision (precision)
|
||||
- le rappel (recall)
|
||||
|
||||
Bien entendu ces tests doivent etre faits sur les données de test seulement
|
||||
|
||||
"""
|
||||
|
||||
|
||||
# Vous pouvez rajouter d'autres méthodes et fonctions,
|
||||
# il suffit juste de les commenter.
|
|
@ -1,2 +1,3 @@
|
|||
#!/bin/bash
|
||||
jupyter nbconvert --to script --output entrainer_tester Rapport-Partiel.ipynb
|
||||
jupyter nbconvert --to script --output main Rapport-Final.ipynb
|
||||
|
|
1146
Code/main.py
1146
Code/main.py
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue