Esempio n. 1
0
                foldId] = evaluation.getAverageOperationCosts(
                    testLabels, predictedTestLabels, avgTestFeatureCosts,
                    falsePositiveCost)

        print("NEW ULTRA FAST VERSION")
        print("dataName = ", dataName)
        print("NUMBER_OF_FOLDS = ", constants.NUMBER_OF_FOLDS)
        print("onlyLookingOneStepAhead = ", onlyLookingOneStepAhead)
        print("densityRegressionModelName = ", densityRegressionModelName)
        print("falseNegativeCost = ", falseNegativeCost)

        print("RESULTS WITH DYNAMIC ACQUISTION (SLOW VERSION): ")
        print(
            "*************************** AVERAGE OVER ALL FOLDS *******************************************"
        )
        evaluation.showHelper("total costs = ", testTotalCostsAllFolds)
        evaluation.showHelper("feature costs = ", testFeatureCostsAllFolds)
        evaluation.showHelper("misclassification costs = ",
                              testMisClassificationCostsAllFolds)
        evaluation.showHelper("accuracy = ", testAccuracyAllFolds)
        evaluation.showHelper("AUC = ", testAUCAllFolds)
        resultsRecorder.addAll(
            falsePositiveCost,
            (testTotalCostsAllFolds, testFeatureCostsAllFolds,
             testMisClassificationCostsAllFolds, testAccuracyAllFolds,
             testAUCAllFolds, testRecallAllFolds, testFDRAllFolds,
             testOperationCostsAllFolds, testRecallAllFolds_exactRecall,
             testFDRAllFolds_exactRecall,
             testOperationCostsAllFolds_exactRecall))

    print("variationName = ", variationName)
 
     print("*************************** GREEDY MISER *******************************************")
      
     totalCostsValidResult, validAccuracy, validFeatureCosts, bestLambdaId, bestTreeId, avgBestTotalCostsValidResult = evaluation.getBestAverage10TrainFoldTotalCostsResultSymmetricForGreedyMiser(dataName, testFoldId, misclassificationCostsSymmetric, sameClassCost)
     allTestFoldAvgBestTotalCostsValidResult[testFoldId] = avgBestTotalCostsValidResult
     allBestSettings[testFoldId, 0] = bestLambdaId
     allBestSettings[testFoldId, 1] = bestTreeId
     
     validTotalCostsAllFolds[testFoldId] = totalCostsValidResult
     validFeatureCostsAllFolds[testFoldId] = validFeatureCosts
     validMisClassificationCostsAllFolds[testFoldId] = (1.0 - validAccuracy) * misclassificationCostsSymmetric + validAccuracy * sameClassCost
     validAccuracyAllFolds[testFoldId] = validAccuracy
     # print("bestLambdaId = ", bestLambdaId)
 
 print("*************************** AVERAGE OVER ALL FOLDS (misclassification costs = " + str(misclassificationCostsSymmetric) + ", sameClassCost = " + str(sameClassCost) + ") *******************************************")
 evaluation.showHelper("total costs = ", validTotalCostsAllFolds)
 evaluation.showHelper("feature costs = ", validFeatureCostsAllFolds)
 evaluation.showHelper("misclassification costs = ", validMisClassificationCostsAllFolds)
 evaluation.showHelper("accuracy = ", validAccuracyAllFolds)
 
 evaluation.showHelper("average best validation costs (for analysis only) = ", allTestFoldAvgBestTotalCostsValidResult)
 
 # save best settings from validation data
 outputFilename = "/export/home/s-andrade/dynamicCovariateBaselines/GreedyMiser/" + dataName + "_" + str(int(misclassificationCostsSymmetric)) + "_allBestSettings" 
 matlabDict = {}
 matlabDict["allBestSettings"] = numpy.asmatrix(allBestSettings, dtype = numpy.int)
 scipy.io.savemat(outputFilename, matlabDict)
 
 
 if os.path.isfile(experimentSetting.MATLAB_DATA_FOLDER_RESULTS + "greedyMiser/" + dataName + "_" + str(int(misclassificationCostsSymmetric)) + "_forFinalTrainingAndTesting_" + str(4) + "_allResults.mat"):