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

Added all dataset exists for hdf5 copy and modified mertics and added view...

Added all dataset exists for hdf5 copy and modified mertics and added view name for analyze res monoview
parent dc34394a
No related branches found
No related tags found
No related merge requests found
......@@ -71,8 +71,8 @@ groupClass.add_argument('--CL_classes', metavar='STRING', action='store',
groupClass.add_argument('--CL_type', metavar='STRING', action='store',
help='Determine whether to use Multiview, Monoview, or Benchmark, separate with : if multiple',
default='Benchmark')
groupClass.add_argument('--CL_algorithm', metavar='STRING', action='store',
help='Determine which classifier to use, if empty, considering all', default='')
# groupClass.add_argument('--CL_algorithm', metavar='STRING', action='store',
# help='Determine which classifier to use, if empty, considering all', default='')
groupClass.add_argument('--CL_algos_monoview', metavar='STRING', action='store',
help='Determine which monoview classifier to use, separate with : if multiple, if empty, considering all', default='')
groupClass.add_argument('--CL_algos_multiview', metavar='STRING', action='store',
......@@ -192,6 +192,9 @@ if args.log:
DATASET, LABELS_DICTIONARY = getDatabase(args.views.split(":"), args.pathF, args.name, len(args.CL_classes), args.CL_classes)
datasetLength = DATASET.get("Metadata").attrs["datasetLength"]
if nbCores>1:
if DB.datasetsAlreadyExist(args.pathF, args.name, nbCores):
pass
else:
logging.debug("Start:\t Creating "+str(nbCores)+" temporary datasets for multiprocessing")
logging.warning(" WARNING : /!\ This may use a lot of HDD storage space : "+
str(os.path.getsize(args.pathF+args.name+".hdf5")*nbCores/float(1024)/1000/1000)+" Gbytes /!\ ")
......@@ -211,7 +214,7 @@ if metrics == [[""]]:
logging.info("Start:\t Finding all available mono- & multiview algorithms")
benchmark = {"Monoview":{}, "Multiview":[]}
if args.CL_type.split(":")==["Benchmark"]:
if args.CL_algorithm=='':
# if args.CL_algorithm=='':
fusionModulesNames = [name for _, name, isPackage
in pkgutil.iter_modules(['Multiview/Fusion/Methods']) if not isPackage]
fusionModules = [getattr(Multiview.Fusion.Methods, fusionModulesName)
......@@ -291,9 +294,9 @@ if nbCores>1:
accuracies = [[result[1][1] for result in resultsMonoview if result[0]==viewIndex] for viewIndex in range(NB_VIEW)]
classifiersNames = [[result[1][0] for result in resultsMonoview if result[0]==viewIndex] for viewIndex in range(NB_VIEW)]
classifiersConfigs = [[result[1][2] for result in resultsMonoview if result[0]==viewIndex] for viewIndex in range(NB_VIEW)]
for viewIndex, view in enumerate(views):
bestClassifiers.append(classifiersNames[viewIndex][np.argmax(np.array(accuracies[viewIndex]))])
bestClassifiersConfigs.append(classifiersConfigs[viewIndex][np.argmax(np.array(accuracies[viewIndex]))])
# for viewIndex, view in enumerate(views):
# bestClassifiers.append(classifiersNames[viewIndex][np.argmax(np.array(accuracies[viewIndex]))])
# bestClassifiersConfigs.append(classifiersConfigs[viewIndex][np.argmax(np.array(accuracies[viewIndex]))])
else:
resultsMonoview+=([ExecMonoview(DATASET.get("View"+str(arguments["viewIndex"])),
......@@ -306,9 +309,7 @@ else:
accuracies = [[result[1][1] for result in resultsMonoview if result[0]==viewIndex] for viewIndex in range(NB_VIEW)]
classifiersNames = [[result[1][0] for result in resultsMonoview if result[0]==viewIndex] for viewIndex in range(NB_VIEW)]
classifiersConfigs = [[result[1][2] for result in resultsMonoview if result[0]==viewIndex] for viewIndex in range(NB_VIEW)]
for viewIndex, view in enumerate(views):
bestClassifiers.append(classifiersNames[viewIndex][np.argmax(np.array(accuracies[viewIndex]))])
bestClassifiersConfigs.append(classifiersConfigs[viewIndex][np.argmax(np.array(accuracies[viewIndex]))])
monoviewTime = time.time()-dataBaseTime
try:
if benchmark["Multiview"]:
......@@ -332,6 +333,9 @@ try:
monoviewTime = 0
resultsMonoview = []
bestClassifiersConfigs = []
for viewIndex, view in enumerate(views):
bestClassifiers.append(classifiersNames[viewIndex][np.argmax(np.array(accuracies[viewIndex]))])
bestClassifiersConfigs.append(classifiersConfigs[viewIndex][np.argmax(np.array(accuracies[viewIndex]))])
try:
if benchmark["Multiview"]["Fusion"]:
try:
......
......@@ -27,7 +27,7 @@ def score(y_true, y_pred, **kwargs):
try:
average = kwargs["3"]
except:
average = "micro"
average = "binary"
score = metric(y_true, y_pred, sample_weight=sample_weight, labels=labels, pos_label=pos_label, average=average)
return score
......@@ -48,7 +48,7 @@ def get_scorer(**kwargs):
try:
average = kwargs["3"]
except:
average = "micro"
average = "binary"
return make_scorer(metric, greater_is_better=True, sample_weight=sample_weight, labels=labels,
pos_label=pos_label, average=average)
......@@ -69,7 +69,7 @@ def getConfig(**kwargs):
try:
average = kwargs["3"]
except:
average = "micro"
average = "binary"
configString = "F1 score using "+str(sample_weight)+" as sample_weights, "+str(labels)+" as labels, "+str(pos_label)\
+" as pos_label, "+average+" as average (higher is better)"
return configString
\ No newline at end of file
......@@ -26,7 +26,7 @@ def score(y_true, y_pred, **kwargs):
try:
average = kwargs["4"]
except:
average = "micro"
average = "binary"
score = metric(y_true, y_pred, beta, sample_weight=sample_weight, labels=labels, pos_label=pos_label, average=average)
return score
......@@ -51,7 +51,7 @@ def get_scorer(**kwargs):
try:
average = kwargs["4"]
except:
average = "micro"
average = "binary"
return make_scorer(metric, greater_is_better=True, beta=beta, sample_weight=sample_weight, labels=labels,
pos_label=pos_label, average=average)
......@@ -76,7 +76,7 @@ def getConfig(**kwargs):
try:
average = kwargs["3"]
except:
average = "micro"
average = "binary"
configString = "F-beta score using "+str(sample_weight)+" as sample_weights, "+str(labels)+" as labels, "+str(pos_label) \
+" as pos_label, "+average+" as average, "+str(beta)+" as beta (higher is better)"
return configString
\ No newline at end of file
......@@ -114,7 +114,7 @@ def ExecMonoview(X, Y, name, learningRate, nbFolds, nbCores, databaseType, path,
timestr = time.strftime("%Y%m%d-%H%M%S")
CL_type_string = CL_type
outputFileName = "Results/" + timestr + "Results-" + CL_type_string + "-" + labelsString + \
'-learnRate' + str(learningRate) + '-' + name
'-learnRate' + str(learningRate) + '-' + name + "-" + feat
outputTextFile = open(outputFileName + '.txt', 'w')
outputTextFile.write(stringAnalysis)
......
......@@ -495,7 +495,7 @@ def getModifiedMultiOmicDBcsv(features, path, name, NB_CLASS, LABELS_NAMES):
labelsDset.attrs["name"] = "Labels"
metaDataGrp = datasetFile.create_group("Metadata")
metaDataGrp.attrs["nbView"] = 5
metaDataGrp.attrs["nbView"] = 6
metaDataGrp.attrs["nbClass"] = 2
metaDataGrp.attrs["datasetLength"] = len(labels)
labelDictionary = {0:"No", 1:"Yes"}
......@@ -526,6 +526,13 @@ def copyHDF5(pathF, name, nbCores):
datasetFile.copy("/"+dataset, newDataSet["/"])
newDataSet.close()
def datasetsAlreadyExist(pathF, name, nbCores):
allDatasetExist = True
for coreIndex in range(nbCores):
import os.path
allDatasetExist *= os.path.isfile(pathF+name+str(coreIndex)+".hdf5")
return allDatasetExist
def deleteHDF5(pathF, name, nbCores):
for coreIndex in range(nbCores):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment