diff --git a/Code/MonoMultiViewClassifiers/MultiviewClassifiers/FatLateFusion/FatLateFusionModule.py b/Code/MonoMultiViewClassifiers/MultiviewClassifiers/FatLateFusion/FatLateFusionModule.py index 14c8ff099e1732377ae63aeac37822fd27faeb6d..ad57342b2e4acf29e3eda5d739e62ab492662c7f 100644 --- a/Code/MonoMultiViewClassifiers/MultiviewClassifiers/FatLateFusion/FatLateFusionModule.py +++ b/Code/MonoMultiViewClassifiers/MultiviewClassifiers/FatLateFusion/FatLateFusionModule.py @@ -19,7 +19,8 @@ def getArgs(args, benchmark, views, viewsIndices, randomState, directory, result "NB_CLASS": len(args.CL_classes), "LABELS_NAMES": args.CL_classes, "FatLateFusionKWARGS": { - "monoviewDecisions": monoviewDecisions + "monoviewDecisions": monoviewDecisions, + "weights": args.FLF_weights } } argumentsList.append(arguments) @@ -36,7 +37,10 @@ def genParamsSets(classificationKWARGS, randomState, nIter=1): class FatLateFusionClass: def __init__(self, randomState, NB_CORES=1, **kwargs): - self.weights = [1.0/len(["monoviewDecisions"]) for _ in range(len(["monoviewDecisions"]))] + if kwargs["weights"] == []: + self.weights = [1.0/len(["monoviewDecisions"]) for _ in range(len(["monoviewDecisions"]))] + else: + self.weights = np.array(kwargs["weights"])/np.sum(np.array(kwargs["weights"])) self.monoviewDecisions = kwargs["monoviewDecisions"] def setParams(self, paramsSet): diff --git a/Code/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/BayesianInference.py b/Code/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/BayesianInference.py index 25a5968dbbcff1ecbe883e70d62ea3374a764d6f..a040afb2af2bef4b1c87710519e1c1894fff18df 100644 --- a/Code/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/BayesianInference.py +++ b/Code/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/BayesianInference.py @@ -59,7 +59,7 @@ class BayesianInference(LateFusionClassifier): NB_CORES=NB_CORES) if kwargs['fusionMethodConfig'][0] is None or kwargs['fusionMethodConfig'] == ['']: - self.weights = np.array([1.0 for classifier in kwargs['classifiersNames']]) + self.weights = np.array([1.0 for _ in kwargs['classifiersNames']]) else: self.weights = np.array(map(float, kwargs['fusionMethodConfig'][0])) self.needProbas = True diff --git a/Code/MonoMultiViewClassifiers/utils/execution.py b/Code/MonoMultiViewClassifiers/utils/execution.py index 325b05a5478b9bdccfddc6a4fbd8ca94f46e3d91..e8d2d0e184f2340b1ba74a91eaaa5ba1bc9122a0 100644 --- a/Code/MonoMultiViewClassifiers/utils/execution.py +++ b/Code/MonoMultiViewClassifiers/utils/execution.py @@ -178,7 +178,7 @@ def parseTheArgs(arguments): groupEarlyFusion.add_argument('--FU_E_cl_names', metavar='STRING', action='store', nargs='+', help='Name of the classifiers used for each early fusion method', default=['']) - groupLateFusion = parser.add_argument_group('Late Early Fusion arguments') + groupLateFusion = parser.add_argument_group('Late Fusion arguments') groupLateFusion.add_argument('--FU_late_methods', metavar='STRING', action='store', nargs="+", help='Determine which late fusion method of fusion to use', default=['']) @@ -191,6 +191,12 @@ def parseTheArgs(arguments): groupLateFusion.add_argument('--FU_L_select_monoview', metavar='STRING', action='store', help='Determine which method to use to select the monoview classifiers', default="intersect") + + groupFatLateFusion = parser.add_argument_group('Fat Late Fusion arguments') + groupFatLateFusion.add_argument('--FLF_weights', metavar='FLOAT', action='store', nargs="+", + help='Determine which late fusion method of fusion to use', type=float, + default=[]) + args = parser.parse_args(arguments) return args