def METHOD_NAME(self, X, y, sample_weight=None, eval_set=None, sample_weight_eval_set=None, **kwargs):
    X = dt.Frame(X)
    orig_cols = list(X.names)
    if self.num_classes >= 2:
        feature_model = NuSVC(kernel='linear', nu=self.params['nu'])
        model = NuSVC(nu=self.params['nu'], kernel=self.params['kernel'],
                      degree=self.params['degree'], probability=self.params['probability'])
        lb = LabelEncoder()
        lb.METHOD_NAME(self.labels)
        y = lb.transform(y)
    else:
        feature_model = NuSVR(kernel='linear', nu=self.params['nu'])
        model = NuSVR(nu=self.params['nu'], kernel=self.params['kernel'],
                      degree=self.params['degree'])
    self.means = dict()
    for col in X.names:
        XX = X[:, col]
        self.means[col] = XX.mean1()
        if self.means[col] is None:
            self.means[col] = 0
        XX.replace(None, self.means[col])
        X[:, col] = XX
        assert X[dt.isna(dt.f[col]), col].nrows == 0
    X = X.to_numpy()
    # nu is infeasible sometimes
    # doing quaternary search on both sides of selected nu
    valid_nu = None
    while valid_nu is None:
        try:
            model.METHOD_NAME(X, y)
            valid_nu = self.params['nu']
        except:
            if self.params['nu'] > 0.5:
                self.params['nu'] = 1.0 - self.params['nu']
            else:
                self.params['nu'] = (4.0 - 3.0 * self.params['nu']) / 4.0
            if self.num_classes >= 2:
                feature_model = NuSVC(kernel='linear', nu=self.params['nu'])
                model = NuSVC(nu=self.params['nu'], kernel=self.params['kernel'],
                              degree=self.params['degree'], probability=self.params['probability'])
            else:
                feature_model = NuSVR(kernel='linear', nu=self.params['nu'])
                model = NuSVR(nu=self.params['nu'], kernel=self.params['kernel'],
                              degree=self.params['degree'])
    feature_model.METHOD_NAME(X, y)
    importances = np.array(abs(feature_model.coef_)).ravel()
    self.set_model_properties(model=model,
                              features=orig_cols,
                              importances=importances.tolist(),
                              iterations=0)