def training(self, trainData, trainDependentVariables):

        #Set algorithms parameters
        if self.method == 'boser':
            from daal.algorithms.svm.training import boser
            trainingBatch = training.Batch(method=boser, fptype=self.dtype)
            predictionBatch = prediction.Batch()

        if self.kernel == 'linear':
            trainingBatch.parameter.kernel = kernel_function.linear.Batch(
                method=boser, fptype=self.dtype)
            trainingBatch.parameter.k = self.k
            trainingBatch.parameter.b = self.b
        elif self.kernel == 'rbf':
            trainingBatch.parameter.kernel = kernel_function.rbf.Batch(
                method=boser, fptype=self.dtype)
            trainingBatch.parameter.sigma = self.sigma

        trainingBatch.parameter.cacheSize = self.cachesize
        trainingBatch.parameter.C = self.C
        trainingBatch.parameter.accuracyThreshold = self.tolerence
        trainingBatch.parameter.tau = self.tau
        trainingBatch.parameter.maxIterations = self.maxIterations
        trainingBatch.parameter.doShrinking = self.doShrinking

        algorithm = multi_class_classifier.training.Batch(self.classes)
        algorithm.parameter.training = trainingBatch
        algorithm.parameter.prediction = predictionBatch
        algorithm.input.set(classifier.training.data, trainData)
        algorithm.input.set(classifier.training.labels,
                            trainDependentVariables)
        trainingResult = algorithm.compute()
        return trainingResult
예제 #2
0
    def predict(self, trainingResult, testData): #give other parameters

        if self.method == 'boser':
            from  daal.algorithms.svm.training import boser
            predictionBatch = prediction.Batch (method=boser, fptype=self.dtype)
            trainingBatch = training.Batch (method=boser, fptype=self.dtype)

        if self.kernel == 'linear':
            predictionBatch.parameter.kernel = kernel_function.linear.Batch ()
        elif self.kernel == 'rbf':
            predictionBatch.parameter.kernel = kernel_function.rbf.Batch ()

        algorithm = multi_class_classifier.prediction.Batch (self.classes)
        algorithm.parameter.training = trainingBatch
        algorithm.parameter.prediction = predictionBatch
        algorithm.input.setTable (classifier.prediction.data, testData)
        algorithm.input.setModel (classifier.prediction.model, trainingResult.get (classifier.training.model))
        algorithm.compute ()
        predictionResult = algorithm.getResult()
        predictedResponses = predictionResult.get (classifier.prediction.prediction)
        # Change the predicted values to 1 and -1
        return predictedResponses