Exemple #1
0
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
Exemple #2
0
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))