def BRkNNa(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, num_neighbours): x_train = lil_matrix(dataset_train_x).toarray() y_train = lil_matrix(dataset_train_y).toarray() x_test = lil_matrix(dataset_test_x).toarray() classifier = skadapt.BRkNNaClassifier(k=num_neighbours) classifier.fit(x_train, y_train) predictions = classifier.predict(x_test) text = "BRkNNa w/ k=" + str(num_neighbours) Metrics_Accuracy(text, predictions, dataset_test_y)
def BRkNNa(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, num_neighbours): x_train = lil_matrix(dataset_train_x).toarray() y_train = lil_matrix(dataset_train_y).toarray() x_test = lil_matrix(dataset_test_x).toarray() classifier = skadapt.BRkNNaClassifier(k=num_neighbours) start_time = time.time() classifier.fit(x_train, y_train) stop_time = time.time() time_lapsed = stop_time - start_time predictions = classifier.predict(x_test) text = "BRkNNa w/ k=" + str(num_neighbours) Metrics_Accuracy(text, predictions, dataset_test_y) print("Execution time: {}s".format(time_lapsed))
def FindBestK(classif, dataset_train_x, dataset_train_y): rangefloatv = [round(x * 0.1, 1) for x in range(5, 11)] parameters = {'k': range(1, 20), 's': rangefloatv} if type(classif) == type( skadapt.BRkNNaClassifier()) or type(classif) == type( skadapt.BRkNNbClassifier()): parameters = {'k': range(1, 20)} clf = GridSearchCV(classif, parameters, scoring=make_scorer(metrics.hamming_loss, greater_is_better=False), n_jobs=2) clf.fit( lil_matrix(dataset_train_x).toarray(), lil_matrix(dataset_train_y).toarray()) print(clf.best_params_) return clf.best_params_
def Util_ClassifierMethods(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y): #BR Util_Title("Binary Relevance") base_classif = GaussianNB() BinaryRelevance(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, base_classif, "GaussianNB") dict_res = FindBestSVCParams(skpt.BinaryRelevance(), dataset_train_x, dataset_train_y) base_classif = SVC(kernel=dict_res['classifier__kernel'], degree=dict_res['classifier__degree']) BinaryRelevance(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, base_classif, "SVC tuned") dict_res = FindBestMNBParams(skpt.BinaryRelevance(), dataset_train_x, dataset_train_y) base_classif = MultinomialNB(alpha=dict_res['classifier__alpha']) BinaryRelevance(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, base_classif, "MNB tuned") #CC Util_Title("Classifier Chain") base_classif = GaussianNB() ClassifierChain(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, base_classif, "GaussianNB") dict_res = FindBestSVCParams(skpt.ClassifierChain(), dataset_train_x, dataset_train_y) base_classif = SVC(kernel=dict_res['classifier__kernel'], degree=dict_res['classifier__degree']) ClassifierChain(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, base_classif, "SVC tuned") dict_res = FindBestMNBParams(skpt.ClassifierChain(), dataset_train_x, dataset_train_y) base_classif = MultinomialNB(alpha=dict_res['classifier__alpha']) ClassifierChain(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, base_classif, "MNB tuned") #LP Util_Title("Label Powerset") base_classif = GaussianNB() LabelPowerset(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, base_classif, "GaussianNB") dict_res = FindBestSVCParams(skpt.LabelPowerset(), dataset_train_x, dataset_train_y) base_classif = SVC(kernel=dict_res['classifier__kernel'], degree=dict_res['classifier__degree']) LabelPowerset(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, base_classif, "SVC tuned") dict_res = FindBestMNBParams(skpt.LabelPowerset(), dataset_train_x, dataset_train_y) base_classif = MultinomialNB(alpha=dict_res['classifier__alpha']) LabelPowerset(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, base_classif, "MNB tuned") #MLkNN Util_Title("MLkNN") dict_res = FindBestK(skadapt.MLkNN(), dataset_train_x, dataset_train_y) MLkNN(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, dict_res['k'], dict_res['s']) #MLARAM Util_Title("MLARAM") dict_res = FindBestVT(dataset_train_x, dataset_train_y) MLARAM(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, dict_res['vigilance'], dict_res['threshold']) #BRkNNa Util_Title("BRkNNa") dict_res = FindBestK(skadapt.BRkNNaClassifier(), dataset_train_x, dataset_train_y) BRkNNa(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, dict_res['k']) #BRkNNb Util_Title("BRkNNb") dict_res = FindBestK(skadapt.BRkNNbClassifier(), dataset_train_x, dataset_train_y) BRkNNb(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, dict_res['k']) #RAkELD Util_Title("RAkELd") dict_res = GridSearchCV_baseRakel(RakelD(), dataset_train_x, dataset_train_y) RAkELd(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, dict_res['base_classifier'], dict_res['labelset_size']) #RAkELo Util_Title("RAkELo") dict_res = GridSearchCV_baseRakel(RakelO(), dataset_train_x, dataset_train_y) RAkELO(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, dict_res['base_classifier'], dict_res['labelset_size'], dict_res['model_count']) #MLTSVM Util_Title("MLTSVM") dict_res = FindCKParam(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y) TwinMLSVM(dataset_train_x, dataset_train_y, dataset_test_x, dataset_test_y, dict_res['c_k'], dict_res['sor_omega'])
def Util_ClassifierMethodsBookmarks(train_x, y_train, test_x, y_test): #Scale negatives for BR/ CC and LP for MultinomialNB x_scaler = preprocessing.MinMaxScaler(feature_range=(0, 1)) train_x_scaledb = x_scaler.fit_transform(train_x) test_x_scaledb = x_scaler.fit_transform(test_x) #BR Util_Title("Binary Relevance") base_classif = GaussianNB() BinaryRelevance(train_x_scaledb, y_train, test_x_scaledb, y_test, base_classif, "GaussianNB") dict_res = FindBestSVCParams(skpt.BinaryRelevance(), train_x_scaledb, y_train) base_classif = SVC(kernel=dict_res['classifier__kernel'], degree=dict_res['classifier__degree']) BinaryRelevance(train_x_scaledb, y_train, test_x_scaledb, y_test, base_classif, "SVC tuned") dict_res = FindBestMNBParams(skpt.BinaryRelevance(), train_x_scaledb, y_train) base_classif = MultinomialNB(alpha=dict_res['classifier__alpha']) BinaryRelevance(train_x_scaledb, y_train, test_x_scaledb, y_test, base_classif, "MNB tuned") #CC Util_Title("Classifier Chain") base_classif = GaussianNB() ClassifierChain(train_x_scaledb, y_train, test_x_scaledb, y_test, base_classif, "GaussianNB") dict_res = FindBestSVCParams(skpt.ClassifierChain(), train_x_scaledb, y_train) base_classif = SVC(kernel=dict_res['classifier__kernel'], degree=dict_res['classifier__degree']) ClassifierChain(train_x_scaledb, y_train, test_x_scaledb, y_test, base_classif, "SVC tuned") dict_res = FindBestMNBParams(skpt.ClassifierChain(), train_x_scaledb, y_train) base_classif = MultinomialNB(alpha=dict_res['classifier__alpha']) ClassifierChain(train_x_scaledb, y_train, test_x_scaledb, y_test, base_classif, "MNB tuned") #LP Util_Title("Label Powerset") base_classif = GaussianNB() LabelPowerset(train_x_scaledb, y_train, test_x_scaledb, y_test, base_classif, "GaussianNB") dict_res = FindBestSVCParams(skpt.LabelPowerset(), train_x_scaledb, y_train) base_classif = SVC(kernel=dict_res['classifier__kernel'], degree=dict_res['classifier__degree']) LabelPowerset(train_x_scaledb, y_train, test_x_scaledb, y_test, base_classif, "SVC tuned") dict_res = FindBestMNBParams(skpt.LabelPowerset(), train_x_scaledb, y_train) base_classif = MultinomialNB(alpha=dict_res['classifier__alpha']) LabelPowerset(train_x_scaledb, y_train, test_x_scaledb, y_test, base_classif, "MNB tuned") #RAkELo Util_Title("RAkELo") lbs_size = 3 mod_count = 2 * y_train.shape[1] #2 * of labels print(mod_count) RAkELO(train_x, y_train, test_x, y_test, LinearSVC(max_iter=500, verbose=1), lbs_size, mod_count) #RAkELd lbs_size = 3 RAkELd(train_x, y_train, test_x, y_test, LinearSVC(verbose=2), lbs_size) #MLkNN base_classif = skadapt.MLkNN() k = 10 s = 1 MLkNN(train_x, y_train, test_x, y_test, k, s) #MLARAM v = 0.95 t = 0.05 dict_res = FindBestVT(train_x, y_train) MLARAM(train_x, y_train, test_x, y_test, dict_res['vigilance'], dict_res['threshold']) #BRkNNa dict_res = FindBestK(skadapt.BRkNNaClassifier(), train_x, y_train) BRkNNa(train_x, y_train, test_x, y_test, dict_res['k']) #BRkNNb dict_res = FindBestK(skadapt.BRkNNbClassifier(), train_x, y_train) BRkNNb(train_x, y_train, test_x, y_test, dict_res['k']) #MLTSVM #Test for 0 #TwinMLSVM(train_x,y_train,test_x,y_test,0,1) #Test for 0.125 TwinMLSVM(train_x, y_train, test_x, y_test, 0.125, 1)