def setIndex(self, cb, index): if (cb.currentText() == "Charger mon fichier ..."): fileName, _ = QFileDialog.getOpenFileName( self, "Ouvrir un fichier", "../Classifier/TimeSeriesFiles", "Text files (*.txt)") if fileName: QApplication.setOverrideCursor(Qt.WaitCursor) App.fileNameTS = fileName App.X_train, _ = importTS.fileImportTS(App.fileNameTS) index.setMaximum(len(App.X_train)) QApplication.restoreOverrideCursor() index.setEnabled(True) else: QApplication.setOverrideCursor(Qt.WaitCursor) App.X_train, _, _, _ = importTS.dataImport(cb.currentText()) index.setMaximum(len(App.X_train)) QApplication.restoreOverrideCursor() index.setEnabled(True)
def saveClassifier(self): fileName, _ = QFileDialog.getSaveFileName( self, "Sauvegarder un fichier", "../Classifier/SaveClassifierFiles", "Saved classifiers (*.sav)") if fileName: QApplication.setOverrideCursor(Qt.WaitCursor) if self.cb_Classifier_SelectTS.currentText( ) == "Charger mon fichier ...": X_train, Y_train = importTS.fileImportTS(App.fileNameTS) if self.cb_Classifier.currentText() == "Learning Shapelet": classifier = LearningClassifier.learningShapeletClassifier( X_train, Y_train) LearningClassifier.saveClassifierLS(classifier, fileName) elif self.cb_Classifier.currentText() == "1NN-DTW": classifier = LearningClassifier.NN1_DTWClassifier( X_train, Y_train) LearningClassifier.saveClassifier1NN(classifier, fileName) else: classifier = LearningClassifier.NN1_Classifier( X_train, Y_train) LearningClassifier.saveClassifier1NN(classifier, fileName) else: X_train, Y_train, _, _ = importTS.dataImport( self.cb_Classifier_SelectTS.currentText()) if self.cb_Classifier.currentText() == "Learning Shapelet": classifier = LearningClassifier.learningShapeletClassifier( X_train, Y_train) LearningClassifier.saveClassifierLS(classifier, fileName) elif self.cb_Classifier.currentText() == "1NN-DTW": classifier = LearningClassifier.NN1_DTWClassifier( X_train, Y_train) LearningClassifier.saveClassifier1NN(classifier, fileName) else: classifier = LearningClassifier.NN1_Classifier( X_train, Y_train) LearningClassifier.saveClassifier1NN(classifier, fileName) QApplication.restoreOverrideCursor() QMessageBox.information(self, 'Classifieur sauvegardé !', "Le classifieur a été sauvegardé !", QMessageBox.Ok)
import sys sys.path.insert(0, "../Classifier") import importTS import LearningClassifier import lime_timeseries from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas import pandas as pd from sklearn.neighbors import KNeighborsClassifier as KNN import matplotlib.pyplot as plt import math """Importation de la ST Trace X_train et Y_train servent à l'entrainement du classifieur. Les ST non étiqueté sont dans X_test.""" X_train, Y_train, X_test, Y_test = importTS.dataImport("Trace") for i in range(30): s = "b" if(Y_train[i]==4): s="r" if(Y_train[i]==1): s="g" if(Y_train[i]==2): s="c" if(Y_train[i]==3): s="y" plt.plot(X_train[i].ravel(),s) plt.show() """Construction classifieur 1NN-DTW. En vrai, on va le loader"""
"--local", type=str, help="indicate that the TS file <input_file> is on the computer") # default = pas dans la ligne de commande # const = dans la ligne mais pas renseigné args = parser.parse_args() #print(args) import importTS import LearningClassifier if args.local: X_train, Y_train = importTS.fileImportTS(args.local) else: X_train, Y_train, _, _ = importTS.dataImport(args.input_file) fileName = "./SaveClassifierFiles/" if args.output: fileName += args.output else: fileName += args.input_file fileName += ".sav" if args.classifier_type == "LS": classifier = LearningClassifier.learningShapeletClassifier( X_train, Y_train) LearningClassifier.saveClassifierLS(classifier, fileName) elif args.classifier_type == "1NN-DTW": classifier = LearningClassifier.NN1_DTWClassifier(X_train, Y_train) LearningClassifier.saveClassifier1NN(classifier, fileName)
import LearningClassifier import lime_timeseries import pandas as pd from sklearn.neighbors import KNeighborsClassifier as KNN import matplotlib.pyplot as plt import math import re import ExplanationWindow from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas """if args.perso: X_train, Y_train = importTS.fileImportTS(args.perso) else: X_train, Y_train, X_test, Y_test= importTS.dataImport(args.input_file) """ X_train, Y_train, X_test, Y_test = importTS.dataImport(args.input_file) if args.features == 0: args.features = args.cuts cltype = args.classifier[len(args.classifier) - 8:] #print(cltype) if cltype == "_1NN.sav": cl = LearningClassifier.loadClassifieur1NN(args.classifier) else: cl = LearningClassifier.loadClassifieurLS(args.classifier) myTs = X_test[args.index].ravel() myTSexp = lime_timeseries.TSExplainer() exp = myTSexp.explain_instance(myTs, cl, X_train, args.cuts, args.features, args.samples)
import importTS import LearningClassifier import numpy as np import pandas as pd from sklearn.metrics import accuracy_score from tslearn.preprocessing import TimeSeriesScalerMinMax "Fichier de test" X_train, Y_train, X_test, Y_test = importTS.dataImport("Beef") print("Résultat attendu : " + str(Y_test[1])) "Test LS" clLS = LearningClassifier.learningShapeletClassifier(X_train, Y_train) print("Résultat LS : " + str(clLS.predict(X_test))) predicted_labels = clLS.predict(X_test) print("Correct classification rate :", accuracy_score(Y_test, predicted_labels)) LearningClassifier.saveClassifierLS(clLS, "LS") loadclLS, labelsave = LearningClassifier.loadClassifieurLS("_LS_.sav") newlabel = loadclLS.predict(X_test) print(newlabel) print("Résulat classifieur LS save : " + str(labelsave.inverse_transform(newlabel))) print("Correct classification rate :", accuracy_score(Y_test, labelsave.inverse_transform(newlabel))) """ "Test 1NN-DTW"