def performExperiments(numTrials, year, batchNumber, model): summarizer = RuntimeSummary(model) correctVector = getActualBracketVector(year) scores = [None] * numTrials for n in range(numTrials): newBracketVector = generateBracket(model, year) summarizer.analyze_bracket(np.array(newBracketVector)) newBracketScore = scoreBracket(newBracketVector, correctVector) # sys.stdout.write(''.join(str(bit) for bit in newBracketVector) + '\n') # numCorrectPicks = calcCorrectPicks(newBracketScore) scores[n] = newBracketScore[0] bracketListDict = { 'year': year, 'actualBracket': ''.join(str(bit) for bit in correctVector), 'scores': scores } if numTrials < 1000: folderName = 'Experiments/{0}Trials'.format(numTrials) else: folderName = 'Experiments/{0}kTrials'.format(int(numTrials / 1000)) batchFolderName = '{0}/Batch{1:02d}'.format(folderName, batchNumber) outputFilename = '{2}/generatedScores_{0}_{1}.json'.format( model['modelName'], year, batchFolderName) summaryFilename = '{2}/vectorStats_{0}_{1}.json'.format( model['modelName'], year, batchFolderName) with open(outputFilename, 'w') as outputFile: outputFile.write(json.dumps(bracketListDict)) summarizer.to_json(summaryFilename)
def performExperiments(numTrials, year, batchNumber, model): correctVector = getActualBracketVector(year) brackets = [] for n in range(numTrials): newBracketVector = generateBracket(model, year) newBracketScore = scoreBracket(newBracketVector, correctVector) # numCorrectPicks = calcCorrectPicks(newBracketScore) newBracketString = ''.join(str(bit) for bit in newBracketVector) # brackets.append({'bracketVector': newBracketString, 'score': newBracketScore, 'correctPicks': numCorrectPicks, 'model': model['modelName']}) brackets.append({'bracketVector': newBracketString, 'score': newBracketScore}) bracketListDict = {'year': year, 'actualBracket': ''.join(str(bit) for bit in correctVector), 'brackets': brackets} if numTrials < 1000: folderName = 'Experiments/{0}Trials'.format(numTrials) else: folderName = 'Experiments/{0}kTrials'.format(int(numTrials / 1000)) batchFolderName = '{0}/Batch{1:02d}'.format(folderName, batchNumber) outputFilename = '{2}/generatedBrackets_{0}_{1}.json'.format(model['modelName'], year, batchFolderName) with open(outputFilename, 'w') as outputFile: outputFile.write(json.dumps(bracketListDict))
def performExperiments(numTrials, year, batchNumber, model): summarizer = RuntimeSummary(model) correctVector = getActualBracketVector(year) scores = [None] * numTrials scoreMethod = scoreFFFBracket if model.get( 'format') == 'FFF' else scoreBracket for n in range(numTrials): newBracketVector = generateBracket(model, year) assert np.all(newBracketVector != -1) summarizer.analyze_bracket(newBracketVector) newBracketScore = scoreMethod(newBracketVector, correctVector) scores[n] = newBracketScore[0] bracketListDict = { 'year': year, 'actualBracket': ''.join(str(bit) for bit in correctVector), 'scores': scores } if numTrials < 1000: folderName = 'Experiments/{0}Trials'.format(numTrials) else: folderName = 'Experiments/{0}kTrials'.format(int(numTrials / 1000)) batchFolderName = '{0}/Batch{1:02d}'.format(folderName, batchNumber) outputFilename = '{2}/generatedScores_{0}_{1}.json'.format( model['modelName'], year, batchFolderName) summaryFilename = '{2}/vectorStats_{0}_{1}.json'.format( model['modelName'], year, batchFolderName) with open(outputFilename, 'w') as outputFile: outputFile.write(json.dumps(bracketListDict)) summarizer.to_json(summaryFilename)
# The four positions are indexed 0 through 3. # Each possible position-seed pairing has a unique # identifier: [position index]_[2-digit seed number]. # For example, if the bottom position had an 8 seed, # that would be represented as "3_08". idStrings = [] freqCounts = [] for posIndex in range(4): for seedNum in range(1, 17): idStrings.append('{0}_{1:02d}'.format(posIndex, seedNum)) freqCounts.append(0) freqs = dict(zip(idStrings, freqCounts)) for year in range(1985, cutoffYear + 1): bracketVector = getActualBracketVector(year) ffSeeds = [] # Compute Final Four seeds for region in range(4): start = 15 * region end = start + 8 regionVector = bracketVector[start:end] seeds = [1, 16, 8, 9, 5, 12, 4, 13, 6, 11, 3, 14, 7, 10, 2, 15] for r in range(1, 5): seeds = applyRoundResults(seeds, regionVector) start = end end += int(len(seeds) / 2)
#!/usr/bin/env python import sys import csv from scoringUtils import getActualBracketVector from scoringUtils import scoreBracket bracketsFilename = sys.argv[1] # Will only print brackets at or above this minimum score minScore = 0 if len(sys.argv) > 2: minScore = int(sys.argv[2]) actualVector = getActualBracketVector(2018) print 'Vector,Score,R64,R32,S16,E8,F4,NCG' with open(bracketsFilename, 'rb') as csvfile: reader = csv.reader(csvfile) for row in reader: if len(row) == 0: continue bracketString = str(row[0]) bracketVector = [ int(bracketString[i]) for i in range(len(bracketString)) ] bracketScore = scoreBracket(bracketVector, actualVector) if bracketScore[0] >= minScore: print '"{0}",{1},{2},{3},{4},{5},{6},{7}'.format(