diff --git a/Code/MonoMutliViewClassifiers/Monoview/ExecClassifMonoView.py b/Code/MonoMutliViewClassifiers/Monoview/ExecClassifMonoView.py index 58445abf8ca09c9da7a01e693d4d7f207860a068..9a162b00b31746f6d6158c9bea9c94afd0fc34d4 100644 --- a/Code/MonoMutliViewClassifiers/Monoview/ExecClassifMonoView.py +++ b/Code/MonoMutliViewClassifiers/Monoview/ExecClassifMonoView.py @@ -21,7 +21,7 @@ import ExportResults # Functions to render results import MonoviewClassifiers import Metrics from analyzeResult import execute -from ..utils.Dataset import getV, getValue, extractSubset +from utils.Dataset import getV, getValue, extractSubset # Author-Info __author__ = "Nikolas Huelsmann, Baptiste BAUVIN" diff --git a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/Adaboost.py b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/Adaboost.py index 567cfa786b2666939167d67b09b9d06e39b6d3ca..54fa6cd29767d2daa2001dad12aa99a598ad5a38 100644 --- a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/Adaboost.py +++ b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/Adaboost.py @@ -3,6 +3,7 @@ from sklearn.pipeline import Pipeline from sklearn.model_selection import RandomizedSearchCV from sklearn.tree import DecisionTreeClassifier import Metrics +from scipy.stats import randint # Author-Info __author__ = "Baptiste Bauvin" @@ -16,8 +17,7 @@ def canProbas(): def fit(DATASET, CLASS_LABELS, randomState, NB_CORES=1,**kwargs): num_estimators = int(kwargs['0']) base_estimators = DecisionTreeClassifier()#kwargs['1'] - classifier = AdaBoostClassifier(n_estimators=num_estimators, base_estimator=base_estimators, - random_state=randomState) + classifier = AdaBoostClassifier(n_estimators=num_estimators, base_estimator=base_estimators, random_state=randomState) classifier.fit(DATASET, CLASS_LABELS) return classifier @@ -35,7 +35,7 @@ def getKWARGS(kwargsList): def randomizedSearch(X_train, y_train, randomState, nbFolds=4, metric=["accuracy_score", None], nIter=30, nbCores=1): pipeline = Pipeline([('classifier', AdaBoostClassifier())]) - param= {"classifier__n_estimators": randomState.randint(1, 15), + param= {"classifier__n_estimators": randint(1, 15), "classifier__base_estimator": [DecisionTreeClassifier()]} metricModule = getattr(Metrics, metric[0]) if metric[1]!=None: diff --git a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/DecisionTree.py b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/DecisionTree.py index 2c9cbc4b9b3578b419767a3109b48299189f00eb..a378bb0a5e135296095e4507ab42dc1ef3f8ff17 100644 --- a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/DecisionTree.py +++ b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/DecisionTree.py @@ -2,7 +2,7 @@ from sklearn.tree import DecisionTreeClassifier from sklearn.pipeline import Pipeline # Pipelining in classification from sklearn.model_selection import RandomizedSearchCV import Metrics - +from scipy.stats import randint # Author-Info __author__ = "Baptiste Bauvin" @@ -37,7 +37,7 @@ def getKWARGS(kwargsList): def randomizedSearch(X_train, y_train, randomState, nbFolds=4, nbCores=1, metric=["accuracy_score", None], nIter=30): pipeline_DT = Pipeline([('classifier', DecisionTreeClassifier())]) - param_DT = {"classifier__max_depth": randomState.randint(1, 30), + param_DT = {"classifier__max_depth": randint(1, 30), "classifier__criterion": ["gini", "entropy"], "classifier__splitter": ["best", "random"]} metricModule = getattr(Metrics, metric[0]) diff --git a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/KNN.py b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/KNN.py index 8953721c0705f37b68204888857b68452b9dd2dc..fd16f1fbe6c5c8cf40b2e2dbbdd82bf89fdd2da4 100644 --- a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/KNN.py +++ b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/KNN.py @@ -2,6 +2,7 @@ from sklearn.neighbors import KNeighborsClassifier from sklearn.pipeline import Pipeline # Pipelining in classification from sklearn.model_selection import RandomizedSearchCV import Metrics +from scipy.stats import randint # Author-Info @@ -40,7 +41,7 @@ def getKWARGS(kwargsList): def randomizedSearch(X_train, y_train, randomState, nbFolds=4, nbCores=1, metric=["accuracy_score", None], nIter=30 ): pipeline_KNN = Pipeline([('classifier', KNeighborsClassifier())]) - param_KNN = {"classifier__n_neighbors": randomState.randint(1, 50), + param_KNN = {"classifier__n_neighbors": randint(1, 50), "classifier__weights": ["uniform", "distance"], "classifier__algorithm": ["auto", "ball_tree", "kd_tree", "brute"], "classifier__p": [1,2], diff --git a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/RandomForest.py b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/RandomForest.py index ee85e6fde487ea060e15dbcb77eb983aa30dcf46..fe95c8dab96d261c8bc93d0da309271a642fb139 100644 --- a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/RandomForest.py +++ b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/RandomForest.py @@ -2,7 +2,7 @@ from sklearn.ensemble import RandomForestClassifier from sklearn.pipeline import Pipeline from sklearn.model_selection import RandomizedSearchCV import Metrics - +from scipy.stats import randint # Author-Info __author__ = "Baptiste Bauvin" @@ -37,8 +37,8 @@ def getKWARGS(kwargsList): def randomizedSearch(X_train, y_train, randomState, nbFolds=4, nbCores=1, metric=["accuracy_score", None], nIter=30): pipeline_rf = Pipeline([('classifier', RandomForestClassifier())]) - param_rf = {"classifier__n_estimators": randomState.randint(1, 30), - "classifier__max_depth": randomState.randint(1, 30), + param_rf = {"classifier__n_estimators": randint(1, 30), + "classifier__max_depth": randint(1, 30), "classifier__criterion": ["gini", "entropy"]} metricModule = getattr(Metrics, metric[0]) if metric[1]!=None: diff --git a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SCM.py b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SCM.py index afc365b9e805857aca6147cf3f2758268f2345e7..06668c7e6b82ff3eeaee3a91ab408c2dbeae7968 100644 --- a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SCM.py +++ b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SCM.py @@ -1,11 +1,13 @@ import Metrics from pyscm.utils import _pack_binary_bytes_to_ints import pyscm -from ..utils.Dataset import getShape +from utils.Dataset import getShape import h5py from Multiview import GetMultiviewDb as DB from pyscm.binary_attributes.base import BaseBinaryAttributeList import os + + # Author-Info __author__ = "Baptiste Bauvin" __status__ = "Prototype" # Production, Development, Prototype @@ -15,7 +17,7 @@ __status__ = "Prototype" # Production, Development, P def canProbas(): return False -def fit(DATASET, CLASS_LABELS, NB_CORES=1,**kwargs): +def fit(DATASET, CLASS_LABELS, randomState, NB_CORES=1,**kwargs): max_attrtibutes = kwargs['0'] try: p = kwargs['1'] @@ -68,11 +70,11 @@ def randomizedSearch(X_train, y_train, randomState, nbFolds=4, metric=["accuracy config = [] for iterIndex in range(nIter): max_attributes = randomState.randint(1, 20) - p = randomState.random() + p = randomState.random_sample() model = randomState.choice(["conjunction", "disjunction"]) classifier = pyscm.scm.SetCoveringMachine(p=p, max_attributes=max_attributes, model_type=model, verbose=False) if nbFolds != 1: - kFolds = DB.getKFoldIndices(nbFolds, y_train, len(set(y_train)), range(len(y_train))) + kFolds = DB.getKFoldIndices(nbFolds, y_train, len(set(y_train)), range(len(y_train)), randomState) else: kFolds = [[], range(len(y_train))] scores = [] diff --git a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SGD.py b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SGD.py index 3d861549b4b7cbe5f806d346d9a3773809fdcadb..4006470a3a68606452e3adc9959e75a51b4a0dfe 100644 --- a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SGD.py +++ b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SGD.py @@ -2,6 +2,8 @@ from sklearn.linear_model import SGDClassifier from sklearn.pipeline import Pipeline # Pipelining in classification from sklearn.model_selection import RandomizedSearchCV import Metrics +from scipy.stats import uniform + # Author-Info @@ -41,7 +43,7 @@ def randomizedSearch(X_train, y_train, randomState, nbFolds=4, nbCores=1, metric pipeline_SGD = Pipeline([('classifier', SGDClassifier())]) losses = ['log', 'modified_huber'] penalties = ["l1", "l2", "elasticnet"] - alphas = randomState.uniform() + alphas = uniform() param_SGD = {"classifier__loss": losses, "classifier__penalty": penalties, "classifier__alpha": alphas} metricModule = getattr(Metrics, metric[0]) diff --git a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SVMLinear.py b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SVMLinear.py index 4dab4815c46a69e88aa9b976e79a28258432f02f..2e378edd36667200ec4893ec982109df81370b13 100644 --- a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SVMLinear.py +++ b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SVMLinear.py @@ -2,6 +2,7 @@ from sklearn.svm import SVC from sklearn.pipeline import Pipeline # Pipelining in classification from sklearn.model_selection import RandomizedSearchCV import Metrics +from scipy.stats import randint # Author-Info @@ -30,7 +31,7 @@ def getKWARGS(kwargsList): def randomizedSearch(X_train, y_train, randomState, nbFolds=4, nbCores=1, metric=["accuracy_score", None], nIter=30): pipeline_SVMLinear = Pipeline([('classifier', SVC(kernel="linear", max_iter=1000))]) - param_SVMLinear = {"classifier__C": randomState.randint(1, 10000)} + param_SVMLinear = {"classifier__C": randint(1, 10000)} metricModule = getattr(Metrics, metric[0]) if metric[1]!=None: metricKWARGS = dict((index, metricConfig) for index, metricConfig in enumerate(metric[1])) diff --git a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SVMPoly.py b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SVMPoly.py index 454ad82826b3586b3b345bd194aff77b6928ad45..7b72417332b08cfa903bd18fdd24cbc9dc24f77b 100644 --- a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SVMPoly.py +++ b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SVMPoly.py @@ -2,6 +2,8 @@ from sklearn.svm import SVC from sklearn.pipeline import Pipeline # Pipelining in classification from sklearn.model_selection import RandomizedSearchCV import Metrics +from scipy.stats import randint + # Author-Info @@ -33,8 +35,8 @@ def getKWARGS(kwargsList): def randomizedSearch(X_train, y_train, randomState, nbFolds=4, nbCores=1, metric=["accuracy_score", None], nIter=30): pipeline_SVMPoly = Pipeline([('classifier', SVC(kernel="poly", max_iter=1000))]) - param_SVMPoly = {"classifier__C": randomState.randint(1, 10000), - "classifier__degree": randomState.randint(1, 30)} + param_SVMPoly = {"classifier__C": randint(1, 10000), + "classifier__degree": randint(1, 30)} metricModule = getattr(Metrics, metric[0]) if metric[1]!=None: metricKWARGS = dict((index, metricConfig) for index, metricConfig in enumerate(metric[1])) diff --git a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SVMRBF.py b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SVMRBF.py index 24cc8681b2c08a9e3643c569bc5a2e39e5d7b6dc..7e32e9cc2577806e6dc7fdbac48495c86ab12e2c 100644 --- a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SVMRBF.py +++ b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/SVMRBF.py @@ -2,6 +2,7 @@ from sklearn.svm import SVC from sklearn.pipeline import Pipeline # Pipelining in classification from sklearn.model_selection import RandomizedSearchCV import Metrics +from scipy.stats import randint # Author-Info @@ -30,7 +31,7 @@ def getKWARGS(kwargsList): def randomizedSearch(X_train, y_train, randomState, nbFolds=4, nbCores=1, metric=["accuracy_score", None], nIter=30): pipeline_SVMRBF = Pipeline([('classifier', SVC(kernel="rbf", max_iter=1000))]) - param_SVMRBF = {"classifier__C": randomState.randint(1, 10000)} + param_SVMRBF = {"classifier__C": randint(1, 10000)} metricModule = getattr(Metrics, metric[0]) if metric[1]!=None: metricKWARGS = dict((index, metricConfig) for index, metricConfig in enumerate(metric[1])) diff --git a/Code/MonoMutliViewClassifiers/Multiview/ExecMultiview.py b/Code/MonoMutliViewClassifiers/Multiview/ExecMultiview.py index 153b0b6a0a58897a97855c4ba0cab2a0a83caa0e..e5f723a82f6f5b3bda2b4b918b8f60db1284f05f 100644 --- a/Code/MonoMutliViewClassifiers/Multiview/ExecMultiview.py +++ b/Code/MonoMutliViewClassifiers/Multiview/ExecMultiview.py @@ -11,8 +11,8 @@ import os import logging import time import h5py -from ..utils.Dataset import getShape -from ..utils.HyperParameterSearch import searchBestSettings +from utils.Dataset import getShape +from utils.HyperParameterSearch import searchBestSettings # Author-Info __author__ = "Baptiste Bauvin" diff --git a/Code/MonoMutliViewClassifiers/Multiview/Fusion/Fusion.py b/Code/MonoMutliViewClassifiers/Multiview/Fusion/Fusion.py index 11a58af63d5656621c71fe866bed8981df3bc693..8e6349d3a07c68ecb2914eab4bae30c60c63be72 100644 --- a/Code/MonoMutliViewClassifiers/Multiview/Fusion/Fusion.py +++ b/Code/MonoMutliViewClassifiers/Multiview/Fusion/Fusion.py @@ -66,7 +66,7 @@ def getBenchmark(benchmark, args=None): return benchmark -def getArgs(args, benchmark, views, viewsIndices): +def getArgs(args, benchmark, views, viewsIndices, randomState): if not "Monoview" in benchmark and not args.FU_L_select_monoview in ["randomClf", "Determined"]: args.FU_L_select_monoview = "randomClf" argumentsList = [] diff --git a/Code/MonoMutliViewClassifiers/Multiview/GetMultiviewDb.py b/Code/MonoMutliViewClassifiers/Multiview/GetMultiviewDb.py index d3b04b4388fef64cb8fa42d5ddf3ed1164385d84..db98411b82d4aed6c9014217c40487083909b50f 100644 --- a/Code/MonoMutliViewClassifiers/Multiview/GetMultiviewDb.py +++ b/Code/MonoMutliViewClassifiers/Multiview/GetMultiviewDb.py @@ -155,7 +155,7 @@ def getKFoldIndices(nbFolds, CLASS_LABELS, NB_CLASS, learningIndices, randomStat for foldIndex, fold in enumerate(nbTrainingExamples): trainingExamplesIndices.append([]) while fold != [0 for i in range(NB_CLASS)]: - index = randomState.randint(0, len(learningIndices) - 1) + index = randomState.randint(0, len(learningIndices)) if learningIndices[index] not in usedIndices: isUseFull, fold = isUseful(fold, learningIndices[index], CLASS_LABELS, labelDict) if isUseFull: diff --git a/Code/MonoMutliViewClassifiers/Multiview/Mumbo/Mumbo.py b/Code/MonoMutliViewClassifiers/Multiview/Mumbo/Mumbo.py index 6e62ad341cb43b533dd8491d920bee8fe8ed336e..7709a558fbb492796358508a6255eb57a488eb28 100644 --- a/Code/MonoMutliViewClassifiers/Multiview/Mumbo/Mumbo.py +++ b/Code/MonoMutliViewClassifiers/Multiview/Mumbo/Mumbo.py @@ -31,7 +31,7 @@ def getBenchmark(benchmark, args=None): return benchmark -def getArgs(args, benchmark, views, viewsIndices): +def getArgs(args, benchmark, views, viewsIndices, randomState): argumentsList = [] arguments = {"CL_type": "Mumbo",