def classify(runID, trainingSet, testingSet): [trainingFile, testingFile] = arffWriter.writeArffFiles(runID, trainingSet, testingSet) [trainingFileOrig, testingFileOrig] = [trainingFile, testingFile] if config.NUM_MONITORED_SITES != -1: #no need to classify as this is for generating openworld datasets. See the line above (arffWriter) [accuracy, debugInfo] = ['NA', []] return [accuracy, debugInfo] if config.n_components_PCA != 0: [trainingFile, testingFile] = Utils.calcPCA2([trainingFile, testingFile]) if config.n_components_LDA != 0: [trainingFile, testingFile] = Utils.calcLDA4([trainingFile, testingFile]) if config.n_components_QDA != 0: [trainingFile, testingFile] = Utils.calcQDA([trainingFile, testingFile]) if config.lasso != 0: #[trainingFile,testingFile] = Utils.calcLasso3([trainingFile,testingFile]) #[trainingFile,testingFile] = Utils.calcLogisticRegression([trainingFile,testingFile]) Utils.calcLogisticRegression([trainingFile, testingFile]) # deep learning if config.DEEP_LEARNING_METHOD != -1: #[trainingFile, testingFile] = dA_2.calcAE([trainingFile, testingFile]) # one layer dA #[trainingFile, testingFile] = dA_2.calcAE([trainingFile, testingFile]) # two layers dA #[trainingFile, testingFile] = dA_2.calcAE([trainingFile, testingFile]) #SdA_2.calcSdA([trainingFile, testingFile]) if config.DEEP_LEARNING_METHOD == 1: [trainingFile, testingFile ] = logistic_sgd_2.runDL([trainingFile, testingFile]) elif config.DEEP_LEARNING_METHOD == 2: [trainingFile, testingFile] = dA_2.runDL([trainingFile, testingFile]) [trainingFile, testingFile] = dA_2.runDL([trainingFile, testingFile]) #[trainingFile, testingFile] = dA_2.runDL([trainingFile, testingFile]) #[trainingFile, testingFile] = dA_2.runDL([trainingFile, testingFile]) #[trainingFile, testingFile] = dA_2.runDL([trainingFile, testingFile]) elif config.DEEP_LEARNING_METHOD == 3: # DL classifier return mlp_2.runDL([trainingFile, testingFile]) elif config.DEEP_LEARNING_METHOD == 4: return SdA_2.runDL([trainingFile, testingFile]) elif config.DEEP_LEARNING_METHOD == 5: return mlp_3.runDL([trainingFile, testingFile]) elif config.DEEP_LEARNING_METHOD == 6: return SdA_3.runDL([trainingFile, testingFile]) elif config.DEEP_LEARNING_METHOD == 7: return LeNetConvPoolLayer_2.runDL([trainingFile, testingFile]) #Utils.plotDensity([trainingFile,testingFile]) #Utils.plot([trainingFile,testingFile]) if config.OC_SVM == 0: # multi-class svm if config.CROSS_VALIDATION == 0: #print 'WARNING: NB classifier with Bi-Di. ###########///////////XXXXXX???????? ' #return wekaAPI.execute(trainingFile, testingFile, "weka.classifiers.bayes.NaiveBayes", ['-K']) return wekaAPI.execute( trainingFile, testingFile, "weka.Run weka.classifiers.functions.LibSVM", [ '-K', '2', # RBF kernel '-G', '0.0000019073486328125', # Gamma ##May20 '-Z', # normalization 18 May 2015 '-C', '131072', # Cost #'-S','2', # one-class svm '-B' ]) # confidence else: file = Utils.joinTrainingTestingFiles( trainingFile, testingFile) # join and shuffle return wekaAPI.executeCrossValidation( file, "weka.Run weka.classifiers.functions.LibSVM", [ '-x', str(config.CROSS_VALIDATION), # number of folds '-K', '2', # RBF kernel '-G', '0.0000019073486328125', # Gamma ##May20 '-Z', # normalization 18 May 2015 '-C', '131072', # Cost '-B' ]) # confidence else: # one-class svm if config.CROSS_VALIDATION == 0: print str(config.SVM_KERNEL) print str(config.OC_SVM_Nu) return wekaAPI.executeOneClassSVM( trainingFile, testingFile, "weka.Run weka.classifiers.functions.LibSVM", [ '-K', str(config.SVM_KERNEL), #'-K','2', # RBF kernel #'-G','0.0000019073486328125', # Gamma ##May20 '-Z', # normalization 18 May 2015 #'-C','131072', # Cost #'-N','0.001', # nu '-N', str(config.OC_SVM_Nu), # nu '-S', '2' ]) #, # one-class svm #'-B'] ) # confidence else: file = Utils.joinTrainingTestingFiles( trainingFile, testingFile) # join and shuffle return wekaAPI.executeCrossValidation( file, "weka.Run weka.classifiers.functions.LibSVM", [ '-x', str(config.CROSS_VALIDATION), # number of folds '-K', '2', # RBF kernel '-G', '0.0000019073486328125', # Gamma ##May20 '-Z', # normalization 18 May 2015 '-C', '131072', # Cost '-B' ]) # confidence
def classify(runID, trainingSet, testingSet): [trainingFile, testingFile] = arffWriter.writeArffFiles(runID, trainingSet, testingSet) if config.NUM_MONITORED_SITES != -1: #no need to classify as this is for generating openworld datasets. See the line above (arffWriter) [accuracy, debugInfo] = ['NA', []] return [accuracy, debugInfo] if config.n_components_PCA != 0: [trainingFile, testingFile] = Utils.calcPCA2([trainingFile, testingFile]) if config.n_components_LDA != 0: [trainingFile, testingFile] = Utils.calcLDA4([trainingFile, testingFile]) if config.n_components_QDA != 0: [trainingFile, testingFile] = Utils.calcQDA([trainingFile, testingFile]) if config.lasso != 0: #[trainingFile,testingFile] = Utils.calcLasso3([trainingFile,testingFile]) #[trainingFile,testingFile] = Utils.calcLogisticRegression([trainingFile,testingFile]) Utils.calcLogisticRegression([trainingFile, testingFile]) #Utils.plotDensity([trainingFile,testingFile]) #Utils.plot([trainingFile,testingFile]) if config.NUM_FEATURES_RF != 0: [trainingFile, testingFile] = Utils.calcTreeBaseRF([trainingFile, testingFile], config.NUM_FEATURES_RF) if config.OC_SVM == 0: # multi-class svm if config.CROSS_VALIDATION == 0: return wekaAPI.execute( trainingFile, testingFile, "weka.Run weka.classifiers.functions.LibSVM", [ '-K', '2', # RBF kernel '-G', '0.0000019073486328125', # Gamma ##May20 '-Z', # normalization 18 May 2015 '-C', '131072', # Cost '-B' ]) # confidence else: file = Utils.joinTrainingTestingFiles( trainingFile, testingFile) # join and shuffle return wekaAPI.executeCrossValidation( file, "weka.Run weka.classifiers.functions.LibSVM", [ '-x', str(config.CROSS_VALIDATION), # number of folds '-K', '2', # RBF kernel '-G', '0.0000019073486328125', # Gamma ##May20 '-Z', # normalization 18 May 2015 '-C', '131072', # Cost '-B' ]) # confidence else: # one-class svm if config.CROSS_VALIDATION == 0: print str(config.SVM_KERNEL) print str(config.OC_SVM_Nu) return wekaAPI.executeOneClassSVM( trainingFile, testingFile, "weka.Run weka.classifiers.functions.LibSVM", [ '-K', str(config.SVM_KERNEL), #'-K','0', # kernel #'-G','0.0000019073486328125', # Gamma ##May20 '-Z', # normalization 18 May 2015 #'-C','131072', # Cost #'-N','0.01', # nu '-N', str(config.OC_SVM_Nu), # nu '-S', '2' ]) #, # one-class svm #'-B'] ) # confidence else: file = Utils.joinTrainingTestingFiles( trainingFile, testingFile) # join and shuffle return wekaAPI.executeCrossValidation( file, "weka.Run weka.classifiers.functions.LibSVM", [ '-x', str(config.CROSS_VALIDATION), # number of folds '-K', '2', # RBF kernel '-G', '0.0000019073486328125', # Gamma ##May20 '-Z', # normalization 18 May 2015 '-C', '131072', # Cost '-B' ]) # confidence