def createLearningCurve(C = 1.0, gamma=0.0): trainFiles = deepcopy(TRAIN_FILES) # classifier konfigurieren learner = getSVM(C=C, gamma=gamma) domain = getDomain(orange.EnumVariable(name="Shot", values=SHOT_NAMES)) means, vars = getNormalizationTerms(domain) trainData = getTrainingExamples(domain, trainFiles, True) a, c, w = trainData.to_numpy() # train normalisieren a = (a-means)/vars A = np.hstack((a,c.reshape(-1,1))) np.random.shuffle(A) performance = [] wPerformance = [] for j in range(100, A.shape[0],100): print("============= TrainingFiles %d ================"%j) print("training classifier...") trainData = orange.ExampleTable(domain, A[:j,:]) # train classifier classifier = learner(trainData) # training performance print("testing classifier...") perf, perfW = getPerformance(classifier, domain, TRAIN_FILES, means, vars) print("Performance \t: %04f (weighted: %f)"%(perf, perfW)) performance.append(perf) wPerformance.append(perfW) return performance, wPerformance
def runExampleForDifferentParams(gammas = (0.0, ), Cs = (1.0, ), i = 5): domain = getDomain(orange.EnumVariable(name="Shot", values=SHOT_NAMES)) means, vars = getNormalizationTerms(domain) trainData, testData , trainFiles, testFile = createCrossValidationSet(i, domain) # train normalisieren a, c, w = trainData.to_numpy() a = (a-means)/vars A = np.hstack((a,c.reshape(-1,1))) trainData = orange.ExampleTable(domain, A) for gamma in gammas: for C in Cs: print("========== Params (C = %f, gamma = %f) ============"%(C, gamma)) # classifier konfigurieren learner = getSVM(gamma=gamma, C=C) # trainingsdaten und testdaten zusammenstellen print("training classifier...") # train classifier classifier = learner(trainData) print("evaluating test-set performance") # test set performance testPerf, testW = getPerformance(classifier, domain, [testFile], means, vars) print("evaluating train-set performance") # training performance trainPerf, trainW = getPerformance(classifier, domain, trainFiles, means, vars) print("Training Performance \t: %04f (weighted: %f)"%(trainPerf, trainW)) print("Test Performance \t: %04f (weighted: %f)"%(testPerf, testW))