Exemplo n.º 1
0
        bestLearner = learner.getBestLearner(cvGrid, paramDict, trainX, trainY)
        predY = bestLearner.predict(testX)
        meanErrors[methodInd] += bestLearner.getMetricMethod()(testY, predY)

    
        #Compute norms 
        tempMeanNorms = numpy.zeros(numParams)
        tempMeanSVs = numpy.zeros(numParams)
        for s, C in enumerate(Cs): 
            for trainInds, testInds in idx: 
                validX = trainX[trainInds, :]
                validY = trainY[trainInds]
                
                learner.setC(C)
                learner.learnModel(validX, validY)
                tempMeanNorms[s] += learner.weightNorm()
                tempMeanSVs[s] += learner.model.support_.shape[0]
            
            learner.learnModel(trainX, trainY)
            testMeanNorms[s] = learner.weightNorm()  
            testMeanSVs[s] += learner.model.support_.shape[0]
            
        tempMeanNorms /= float(folds)
        meanNorms += tempMeanNorms 
        
        tempMeanSVs /= float(folds)
        meanSVs+= tempMeanSVs 
            
    numRealisations = float(numRealisations)
        
    meanCvGrid /=  numRealisations   
Exemplo n.º 2
0
     
 #errors = learner.parallelPenaltyGrid(validX, validY, testX, testY, paramDict, computeTestError)
 #errors = numpy.squeeze(errors)
 
 errors = numpy.zeros((Cs.shape[0], gammas.shape[0]))
 norms = numpy.zeros((Cs.shape[0], gammas.shape[0]))
 
 for i, C in enumerate(Cs): 
     for j, gamma in enumerate(gammas):
         learner.setEpsilon(epsilons[0])
         learner.setC(C)
         learner.setGamma(gamma)
         learner.learnModel(validX, validY)
         predY = learner.predict(testX)
         errors[i, j] = Evaluator.meanAbsError(predY, testY)
         norms[i, j] = learner.weightNorm()
         
 
 for i in range(gammas.shape[0]): 
     plt.figure(i)
     plt.plot(numpy.log(Cs), errors[:, i], label=str(sampleSize))
     plt.legend(loc="upper left")
     plt.xlabel("C")
     plt.ylabel("Error")
     
     plt.figure(i+gammas.shape[0])
     plt.plot(norms[:, i], errors[:, i], label=str(sampleSize))
     plt.legend(loc="upper left")
     plt.xlabel("Norm")
     plt.ylabel("Error")