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

Update analysis for multiview and commented binned

parent 2cb48e03
Branches
Tags
No related merge requests found
......@@ -20,16 +20,19 @@ def error(testLabels, computedLabels):
return float(error) * 100 / len(computedLabels)
def getMetricScore(metric, y_train, y_train_pred, y_test, y_test_pred):
def printMetricScore(metricScores, metrics):
metricScoreString = "\n\n"
for metric in metrics:
metricModule = getattr(Metrics, metric[0])
if metric[1]!=None:
metricKWARGS = dict((index, metricConfig) for index, metricConfig in enumerate(metric[1]))
else:
metricKWARGS = {}
metricScoreString = "\tFor "+metricModule.getConfig(**metricKWARGS)+" : "
metricScoreString += "\n\t\t- Score on train : "+str(metricModule.score(y_train, y_train_pred))
metricScoreString += "\n\t\t- Score on test : "+str(metricModule.score(y_test, y_test_pred))
metricScoreString += "\n"
metricScoreString += "\tFor "+metricModule.getConfig(**metricKWARGS)+" : "
metricScoreString += "\n\t\t- Score on train : "+str(metricScores[metric[0]][0])
metricScoreString += "\n\t\t- Score on test : "+str(metricScores[metric[0]][1])
metricScoreString += "\n\t\t- Score on validation : "+str(metricScores[metric[0]][2])
metricScoreString += "\n\n"
return metricScoreString
......@@ -104,7 +107,9 @@ def execute(kFoldClassifier, kFoldPredictedTrainLabels,
if fusionType=="LateFusion":
stringAnalysis+=Methods.LateFusion.getAccuracies(kFoldClassifier)
metricsScores = getMetricsScores(metrics, kFoldPredictedTrainLabels, kFoldPredictedTestLabels,
kFoldPredictedValidationLabels, DATASET, validationIndices, kFolds)
stringAnalysis+=printMetricScore(metricsScores, metrics)
stringAnalysis += "\n\nComputation time on " + str(nbCores) + " cores : \n\tDatabase extraction time : " + str(
hms(seconds=int(extractionTime))) + "\n\t"
row_format = "{:>15}" * 3
......@@ -118,6 +123,4 @@ def execute(kFoldClassifier, kFoldPredictedTrainLabels,
str(hms(seconds=int(sum(kFoldPredictionTime))))])
stringAnalysis += "\n\tSo a total classification time of " + str(hms(seconds=int(classificationTime))) + ".\n\n"
imagesAnalysis = {}
metricsScores = getMetricsScores(metrics, kFoldPredictedTrainLabels, kFoldPredictedTestLabels,
kFoldPredictedValidationLabels, DATASET, validationIndices, kFolds)
return stringAnalysis, imagesAnalysis, metricsScores
......@@ -430,16 +430,6 @@ def getModifiedMultiOmicDBcsv(features, path, name, NB_CLASS, LABELS_NAMES):
mrnaseqDset.attrs["sparse"] = False
logging.debug("Done:\t Getting Sorted RNASeq Data")
logging.debug("Start:\t Getting Binned RNASeq Data")
sparseBinnedRNASeq = makeSparseTotalMatrix(modifiedRNASeq)
sparseBinnedRNASeqGrp = datasetFile.create_group("View6")
dataDset = sparseBinnedRNASeqGrp.create_dataset("data", sparseBinnedRNASeq.data.shape, data=sparseBinnedRNASeq.data)
indicesDset = sparseBinnedRNASeqGrp.create_dataset("indices", sparseBinnedRNASeq.indices.shape, data=sparseBinnedRNASeq.indices)
indptrDset = sparseBinnedRNASeqGrp.create_dataset("indptr", sparseBinnedRNASeq.indptr.shape, data=sparseBinnedRNASeq.indptr)
sparseBinnedRNASeqGrp.attrs["name"]="BRNASeq"
sparseBinnedRNASeqGrp.attrs["sparse"]=True
sparseBinnedRNASeqGrp.attrs["shape"]=sparseBinnedRNASeq.shape
logging.debug("Done:\t Getting Binned RNASeq Data")
logging.debug("Start:\t Getting Binarized RNASeq Data")
k=127
......@@ -455,6 +445,16 @@ def getModifiedMultiOmicDBcsv(features, path, name, NB_CLASS, LABELS_NAMES):
brnaseqDset.attrs["sparse"] = False
logging.debug("Done:\t Getting Binarized RNASeq Data")
# logging.debug("Start:\t Getting Binned RNASeq Data")
# sparseBinnedRNASeq = makeSparseTotalMatrix(modifiedRNASeq)
# sparseBinnedRNASeqGrp = datasetFile.create_group("View6")
# dataDset = sparseBinnedRNASeqGrp.create_dataset("data", sparseBinnedRNASeq.data.shape, data=sparseBinnedRNASeq.data)
# indicesDset = sparseBinnedRNASeqGrp.create_dataset("indices", sparseBinnedRNASeq.indices.shape, data=sparseBinnedRNASeq.indices)
# indptrDset = sparseBinnedRNASeqGrp.create_dataset("indptr", sparseBinnedRNASeq.indptr.shape, data=sparseBinnedRNASeq.indptr)
# sparseBinnedRNASeqGrp.attrs["name"]="BRNASeq"
# sparseBinnedRNASeqGrp.attrs["sparse"]=True
# sparseBinnedRNASeqGrp.attrs["shape"]=sparseBinnedRNASeq.shape
# logging.debug("Done:\t Getting Binned RNASeq Data")
labelFile = open(path+'brca_labels_triple-negatif.csv')
labels = np.array([int(line.strip().split(',')[1]) for line in labelFile])
......
......@@ -221,16 +221,19 @@ def modifiedMean(surplusAccuracies):
return meanAccuracies
def getMetricScore(metric, y_train, y_train_pred, y_test, y_test_pred):
def printMetricScore(metricScores, metrics):
metricScoreString = "\n\n"
for metric in metrics:
metricModule = getattr(Metrics, metric[0])
if metric[1]!=None:
metricKWARGS = dict((index, metricConfig) for index, metricConfig in enumerate(metric[1]))
else:
metricKWARGS = {}
metricScoreString = "\tFor "+metricModule.getConfig(**metricKWARGS)+" : "
metricScoreString += "\n\t\t- Score on train : "+str(metricModule.score(y_train, y_train_pred))
metricScoreString += "\n\t\t- Score on test : "+str(metricModule.score(y_test, y_test_pred))
metricScoreString += "\n"
metricScoreString += "\tFor "+metricModule.getConfig(**metricKWARGS)+" : "
metricScoreString += "\n\t\t- Score on train : "+str(metricScores[metric[0]][0])
metricScoreString += "\n\t\t- Score on test : "+str(metricScores[metric[0]][1])
metricScoreString += "\n\t\t- Score on validation : "+str(metricScores[metric[0]][2])
metricScoreString += "\n\n"
return metricScoreString
......@@ -298,6 +301,9 @@ def execute(kFoldClassifier, kFoldPredictedTrainLabels, kFoldPredictedTestLabels
str(totalAccuracyOnTest) + "\n\t-On Validation : " + str(totalAccuracyOnValidation)
stringAnalysis += dbConfigurationString
stringAnalysis += algoConfigurationString
metricsScores = getMetricsScores(metrics, kFoldPredictedTrainLabels, kFoldPredictedTestLabels,
kFoldPredictedValidationLabels, DATASET, validationIndices, kFolds)
stringAnalysis += printMetricScore(metricsScores, metrics)
stringAnalysis += "Mean average accuracies and stats for each fold :"
for foldIdx in range(nbFolds):
stringAnalysis += "\n\t- Fold "+str(foldIdx)+", used "+str(kFoldClassifier[foldIdx].iterIndex + 1)
......@@ -322,6 +328,4 @@ def execute(kFoldClassifier, kFoldPredictedTrainLabels, kFoldPredictedTestLabels
name, image = plotAccuracyByIter(trainAccuracyByIter, testAccuracyByIter, validationAccuracyByIter, nbMaxIter,
bestViews, views, classifierAnalysis)
imagesAnalysis = {name: image}
metricsScores = getMetricsScores(metrics, kFoldPredictedTrainLabels, kFoldPredictedTestLabels,
kFoldPredictedValidationLabels, DATASET, validationIndices, kFolds)
return stringAnalysis, imagesAnalysis, metricsScores
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment