Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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))
Ejemplo n.º 3
0
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(