Skip to content
Snippets Groups Projects
Commit d4ec20e6 authored by bbauvin's avatar bbauvin
Browse files

Added perdict probas hdf5 for mumbo and fusion (only early fusion)

parent 30614dd6
No related branches found
No related tags found
No related merge requests found
...@@ -41,6 +41,15 @@ class Fusion: ...@@ -41,6 +41,15 @@ class Fusion:
predictedLabels = [] predictedLabels = []
return predictedLabels return predictedLabels
def predict_probas_hdf5(self, DATASET, usedIndices=None):
if usedIndices == None:
usedIndices = range(DATASET.get("Metadata").attrs["datasetLength"])
if usedIndices:
predictedLabels = self.classifier.predict_probas_hdf5(DATASET, usedIndices=usedIndices)
else:
predictedLabels = []
return predictedLabels
def predict(self, DATASET, classifier, NB_CLASS): def predict(self, DATASET, classifier, NB_CLASS):
fusionType, fusionMethod, fusionClassifier = classifier fusionType, fusionMethod, fusionClassifier = classifier
fusionType = globals()[fusionType] # Early/late fusion fusionType = globals()[fusionType] # Early/late fusion
......
...@@ -53,10 +53,20 @@ class WeightedLinear(EarlyFusionClassifier): ...@@ -53,10 +53,20 @@ class WeightedLinear(EarlyFusionClassifier):
predictedLabels=[] predictedLabels=[]
return predictedLabels return predictedLabels
def predict_proba_hdf5(self, DATASET, usedIndices=None):
if usedIndices == None:
usedIndices = range(DATASET.get("Metadata").attrs["datasetLength"])
if usedIndices:
self.makeMonoviewData_hdf5(DATASET, weights=self.weights, usedIndices=usedIndices)
predictedLabels = self.monoviewClassifier.predict_proba(self.monoviewData)
else:
predictedLabels=[]
return predictedLabels
def getConfig(self, fusionMethodConfig ,monoviewClassifiersNames, monoviewClassifiersConfigs): def getConfig(self, fusionMethodConfig ,monoviewClassifiersNames, monoviewClassifiersConfigs):
configString = "with weighted concatenation, using weights : "+", ".join(map(str, self.weights))+\ configString = "with weighted concatenation, using weights : "+", ".join(map(str, self.weights))+\
" with monoview classifier : " " with monoview classifier : "
monoviewClassifierModule = getattr(poulet, monoviewClassifiersNames[0]) monoviewClassifierModule = getattr(MonoviewClassifiers, monoviewClassifiersNames[0])
configString += monoviewClassifierModule.getConfig(monoviewClassifiersConfigs[0]) configString += monoviewClassifierModule.getConfig(monoviewClassifiersConfigs[0])
return configString return configString
...@@ -206,6 +206,25 @@ class Mumbo: ...@@ -206,6 +206,25 @@ class Mumbo:
predictedLabels = [] predictedLabels = []
return predictedLabels return predictedLabels
def predict_proba_hdf5(self, DATASET, usedIndices=None):
NB_CLASS = DATASET.get("Metadata").attrs["nbClass"]
if usedIndices == None:
usedIndices = range(DATASET.get("Metadata").attrs["datasetLength"])
if usedIndices:
DATASET_LENGTH = len(usedIndices)
predictedProbas = np.zeros((DATASET_LENGTH, NB_CLASS))
for labelIndex, exampleIndex in enumerate(usedIndices):
votes = np.zeros(NB_CLASS)
for classifier, alpha, view in zip(self.bestClassifiers, self.alphas, self.bestViews):
data = DATASET["/View"+str(int(view))][exampleIndex, :]
predictedProbas[labelIndex, int(classifier.predict(np.array([data])))] += alpha[view]
predictedProbas[labelIndex,:] = predictedProbas[labelIndex,:]/np.sum(predictedProbas[labelIndex,:])
else:
predictedProbas = []
return predictedProbas
def trainWeakClassifiers(self, DATASET, CLASS_LABELS, NB_CLASS, DATASET_LENGTH, NB_VIEW): def trainWeakClassifiers(self, DATASET, CLASS_LABELS, NB_CLASS, DATASET_LENGTH, NB_VIEW):
trainedClassifiers = [] trainedClassifiers = []
labelsMatrix = [] labelsMatrix = []
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment