Exemple #1
0
    def fit(self, X, y):

        self.label_binarizer_ = LabelBinarizer(neg_label=-1, pos_label=1)
        y = np.asfortranarray(self.label_binarizer_.fit_transform(y),
                              dtype=np.float64)

        if self.eta is None or self.eta == 'auto':
            eta = get_auto_step_size(
                    X, self.alpha, self.loss, self.is_saga)
        else:
            eta = self.eta

        if self.alpha * eta == 1:
            # to match the beaviour of SAGA
            # in this case SAGA decreases slightly eta
            eta *= 0.9

        loss = self._get_loss(self.loss)
        self.penalty = self._get_penalty(self.penalty)

        if not self.is_saga and self.penalty is not None:
            raise ValueError("PySAGClassifier only accepts l2 penalty. Please "
                             "use `saga=True` or PySAGAClassifier.")

        if self.is_saga:
            self.coef_ = _fit_saga(X, y, eta, self.alpha, loss,
                                   self.penalty, self.max_iter, self.rng)
        else:
            self.coef_ = _fit_sag(X, y, eta, self.alpha, loss,
                                  self.max_iter, self.rng)
Exemple #2
0
    def fit(self, X, y):
        self._set_label_transformers(y)
        y = np.asfortranarray(self.label_binarizer_.transform(y),
                              dtype=np.float64)

        if self.eta is None or self.eta == 'auto':
            eta = get_auto_step_size(get_dataset(X, order="c"), self.alpha,
                                     self.loss, self.is_saga)
        else:
            eta = self.eta

        if self.alpha * eta == 1:
            # to match the beaviour of SAGA
            # in this case SAGA decreases slightly eta
            eta *= 0.9

        loss = self._get_loss(self.loss)
        self.penalty = self._get_penalty(self.penalty)

        if not self.is_saga and self.penalty is not None:
            raise ValueError("PySAGClassifier only accepts l2 penalty. Please "
                             "use `saga=True` or PySAGAClassifier.")

        if self.is_saga:
            self.coef_ = _fit_saga(X, y, eta, self.alpha, loss, self.penalty,
                                   self.max_iter, self.rng)
        else:
            self.coef_ = _fit_sag(X, y, eta, self.alpha, loss, self.max_iter,
                                  self.rng)
Exemple #3
0
    def fit(self, X, y):

        self.label_binarizer_ = LabelBinarizer(neg_label=-1, pos_label=1)
        y = np.asfortranarray(self.label_binarizer_.fit_transform(y), dtype=np.float64)

        if self.eta is None or self.eta == "auto":
            self.eta = get_auto_step_size(X, self.alpha, self.loss, self.is_saga)

        self.loss = self._get_loss(self.loss)
        self.penalty = self._get_penalty(self.penalty)

        if not self.is_saga and self.penalty is not None:
            raise ValueError("PySAGClassifier only accepts l2 penalty. Please " "use `saga=True` or PySAGAClassifier.")

        if self.is_saga:
            self.coef_ = _fit_saga(X, y, self.eta, self.alpha, self.loss, self.penalty, self.max_iter, self.rng)
        else:
            self.coef_ = _fit_sag(X, y, self.eta, self.alpha, self.loss, self.penalty, self.max_iter, self.rng)