コード例 #1
0
    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)
コード例 #2
0
    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()