def createLeaveOneOutJobs( srcRoot, jobDir, jobNameFmt, finalJobName, outputDir, numObservations, dataLoader, lambdas, shouldRegBias, matlabDeclarations, ): jobNamePart = jobNameFmt.format("NA", "NA") foldIndices = range(1, numObservations + 1) if matlabDeclarations is None: matlabDeclarations = list() logRegRoot = os.path.join(srcRoot, "shared", "logisticRegression") addpathFmt = "addpath(genpath('{0}'));" matlabDeclarations.append(addpathFmt.format(logRegRoot)) if shouldRegBias: shouldRegBiasStr = "true" else: shouldRegBiasStr = "false" cvFuncFmt = "LogRegSingleLambdaSingleFoldCVFromLoader({0}, {1}, {2}, {3}, {4})".format( dataLoader, "{0}", numObservations, "{1}", shouldRegBiasStr ) looJobDictionary = QSubHelpers.createGridJobs( jobDir, outputDir, jobNameFmt, cvFuncFmt, matlabDeclarations, [lambdas, foldIndices], 50 ) mergeJobDictionary = QSubHelpers.createMergeAllJobOutputsJob( jobDir, outputDir, outputDir, jobNameFmt, "loo_mrg_" + jobNamePart, [lambdas, foldIndices] ) finalizeFunc = "LogRegChooseLambdaAndTrainAll({0}, {1}, '{2}')".format( dataLoader, shouldRegBiasStr, os.path.join(outputDir, "output_loo_mrg_" + jobNamePart + ".mat") ) finalizeJobDictionary = QSubHelpers.createGridJobs( jobDir, outputDir, finalJobName, finalizeFunc, matlabDeclarations, () ) finalJobManifestName = "looLogRegFinalJobManifest_" + jobNamePart + ".txt" return [looJobDictionary, mergeJobDictionary, finalizeJobDictionary]
def writeDataSizes(srcRoot, jobDir, outputDir, jobNameSuffixFmt, dataLoaderFmt, matlabDeclarations, parameters): if matlabDeclarations is None: matlabDeclarations = list() logRegRoot = os.path.join(srcRoot, "shared", "logisticRegression") addpathFmt = "addpath(genpath('{0}'));" matlabDeclarations.append(addpathFmt.format(logRegRoot)) jobNameFmt = "plllogreg_getsz_" + jobNameSuffixFmt writeSizeFuncFmt = "WriteSize( {0}, '{1}' );".format( dataLoaderFmt, os.path.join(outputDir, "output_" + jobNameFmt + ".txt") ) writeDataSizeJobDict = QSubHelpers.createGridJobs( jobDir, outputDir, jobNameFmt, writeSizeFuncFmt, matlabDeclarations, parameters ) QSubHelpers.runScripts(jobDir, outputDir, writeDataSizeJobDict, 100, None, None) return os.path.join(outputDir, "output_" + jobNameFmt + ".txt")