def printTauxErreur(self): logProbabiliteTrain = self.classifieur.computePredictions(self.trainSet[:, :-1]) classesPreditesTrain = logProbabiliteTrain.argmax(1) + 1 logProbabiliteValidation = self.classifieur.computePredictions(self.validationSet[:, :-1]) classesPreditesValidation = logProbabiliteValidation.argmax(1) + 1 tauxErreur = classifieur_bayes.calculateTauxErreur(self.iris, classesPreditesTrain, classesPreditesValidation) classifieur_bayes.afficherTauxErreur(tauxErreur[0], tauxErreur[1], self.d)
def calculErreurs(self, sigmas): tauxErreurs = [] for i in sigmas: sigma = i/100. args = {'sigma': sigma} classifieur = classifieur_bayes.creerClassifieur(self.trainSet, "parzen", 3, args) logProbabiliteTrain = classifieur.computePredictions(self.trainSet[:, :-1]) classesPreditesTrain = logProbabiliteTrain.argmax(1)+1 logProbabiliteValidation = classifieur.computePredictions(self.validationSet[:, :-1]) classesPreditesValidation = logProbabiliteValidation.argmax(1)+1 tauxErreurs.append(classifieur_bayes.calculateTauxErreur(self.iris, classesPreditesTrain, classesPreditesValidation)) tauxErreurs = np.array(tauxErreurs) sigmaMinIndex = np.argmin(tauxErreurs[:, 1]) sigmaMin = sigmas[sigmaMinIndex]/100. classifieur_bayes.afficherTauxErreur(tauxErreurs[np.argmin(tauxErreurs[:, 1]), 0], tauxErreurs[np.argmin(tauxErreurs[:, 1]), 1], self.d, sigmaMin) for i in range(len(sigmas)): sigmas[i] /= 100.0 pyplot.plot(sigmas, tauxErreurs[:, 0], c="red") pyplot.plot(sigmas, tauxErreurs[:, 1], c="green") pyplot.xlabel("Sigma") pyplot.ylabel("Taux d'erreur") pyplot.title("Courbes d'apprentissage") red = mpatches.Patch(color="red", label="Erreur d'apprentissage") green = mpatches.Patch(color="green", label="Erreur de validation") pyplot.legend(handles=[red, green]) fileTitle = 'bayes_parzen_'+str(self.d)+'d.png' pyplot.savefig(fileTitle) print("[Created] file : " + fileTitle) #pyplot.show() pyplot.close()