Пример #1
0
    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,
                           preprocessors=self.preprocessors)
        if self.svrtype == OWSVMRegression.Epsilon_SVR:
            learner = svm.SVRLearner(C=self.epsilon_C,
                                     epsilon=self.epsilon,
                                     **common_args)
        else:
            learner = svm.NuSVRLearner(C=self.nu_C, nu=self.nu, **common_args)
        learner.name = self.learner_name

        predictor = None
        sv = None
        if self.data is not None:
            predictor = learner(self.data)
            predictor.name = self.learner_name
            sv = self.data[predictor.skl_model.support_]

        self.send("Learner", learner)
        self.send("Predictor", predictor)
        self.send("Support vectors", sv)
Пример #2
0
 def test_NuSVR(self):
     nrows = 500
     ncols = 5
     x = np.sort(10 * np.random.rand(nrows, ncols))
     y = np.sum(np.sin(x), axis=1).reshape(nrows, 1)
     x1, x2 = np.split(x, 2)
     y1, y2 = np.split(y, 2)
     t = data.Table(x1, y1)
     learn = svm.NuSVRLearner(kernel='rbf', C=1e3, gamma=0.1)
     clf = learn(t)
     z = clf(x2)
     self.assertTrue((abs(z.reshape(-1, 1) - y2) < 4.0).all())