def apply(self): kernel = ["linear", "poly", "rbf", "sigmoid"][self.kernel_type] common_args = dict( kernel=kernel, degree=self.degree, gamma=self.gamma, coef0=self.coef0, tol=self.tol, max_iter=self.max_iter if self.limit_iter else -1, probability=True, preprocessors=self.preprocessors ) if self.svmtype == 0: learner = SVMLearner(C=self.C, **common_args) else: learner = NuSVMLearner(nu=self.nu, **common_args) learner.name = self.learner_name classifier = None sv = None if self.data is not None: self.error(0) if not learner.check_learner_adequacy(self.data.domain): self.error(0, learner.learner_adequacy_err_msg) else: classifier = learner(self.data) classifier.name = self.learner_name sv = self.data[classifier.skl_model.support_] self.send("Learner", learner) self.send("Classifier", classifier) self.send("Support vectors", sv)
def apply(self): kernel = ["linear", "poly", "rbf", "sigmoid"][self.kernel_type] common_args = dict(kernel=kernel, degree=self.degree, gamma=self.gamma, coef0=self.coef0, tol=self.tol, max_iter=self.max_iter if self.limit_iter else -1, probability=True, preprocessors=self.preprocessors) if self.svmtype == 0: learner = SVMLearner(C=self.C, **common_args) else: learner = NuSVMLearner(nu=self.nu, **common_args) learner.name = self.learner_name classifier = None sv = None if self.data is not None: self.error([0, 1]) if not learner.check_learner_adequacy(self.data.domain): self.error(0, learner.learner_adequacy_err_msg) elif len(np.unique(self.data.Y)) < 2: self.error(1, "Data contains only one target value.") else: classifier = learner(self.data) classifier.name = self.learner_name sv = self.data[classifier.skl_model.support_] self.send("Learner", learner) self.send("Classifier", classifier) self.send("Support vectors", sv)
from Orange import data from Orange import evaluation from Orange.classification.svm import SVMLearner, kernels from Orange.distance import Euclidean from Orange.distance import Hamming iris = data.Table("iris.tab") l1 = SVMLearner() l1.kernel_func = kernels.RBFKernelWrapper(Euclidean(iris), gamma=0.5) l1.kernel_type = SVMLearner.Custom l1.probability = True c1 = l1(iris) l1.name = "SVM - RBF(Euclidean)" l2 = SVMLearner() l2.kernel_func = kernels.RBFKernelWrapper(Hamming(iris), gamma=0.5) l2.kernel_type = SVMLearner.Custom l2.probability = True c2 = l2(iris) l2.name = "SVM - RBF(Hamming)" l3 = SVMLearner() l3.kernel_func = kernels.CompositeKernelWrapper( kernels.RBFKernelWrapper(Euclidean(iris), gamma=0.5), kernels.RBFKernelWrapper(Hamming(iris), gamma=0.5), l=0.5) l3.kernel_type = SVMLearner.Custom l3.probability = True c3 = l1(iris) l3.name = "SVM - Composite"