Hi Sam.

Can you say which test fails exactly and where (i.e. give traceback)?
The estimator checks are currently quite strict with respect to raising helpful error messages.
That doesn't mean your estimator is broken (necessarily).
With a precomputed gram matrix, I expect the shape of X in predict to be (n_samples_test, n_samples_train), right? Does you estimator have a _pairwise attribute? (It should to work with cross-validation, I'm not sure if it's
used in the estimator checks right now, but it should).

Your feedback will help making check_estimator be more robust. I don't think it's tested with anything that requires
"precomputed" kernels.

Thanks

Andy

On 08/17/2017 05:22 AM, Sam Barnett wrote:
I am rolling classifier based on SVC which computes a custom Gram matrix and runs this through the SVC classifier with kernel = 'precomputed'. While this works fine with the fit method, I face a dilemma with the predict method, shown here:


def predict(self, X):
"""Run the predict method of the previously-instantiated SVM
      classifier, returning the predicted classes for test set X."""

# Check is fit had been called
check_is_fitted(self, ['X_', 'y_'])

        # Input validation
        X = check_array(X)

        cut_off = self.cut_ord_pair[0]
        order = self.cut_ord_pair[1]

        X_gram = seq_kernel_free(X, self.X_, \
pri_kernel=kernselect(self.kernel, self.coef0, self.gamma, self.degree, self.scale), \
cut_off=cut_off, order=order)

        X_gram = np.nan_to_num(X_gram)

        return self.ord_svc_.predict(X_gram)

This will run on any dataset just fine. However, it fails the check_estimator test. Specifically, when trying to raise an error for malformed input on predict (in check_classifiers_train), it says that a ValueError is not raised. Yet if I change the order of X and self.X_ in seq_kernel_free (which computes the [n_samples_train, n_samples_test] Gram matrix), it passes the check_estimator test yet fails to run the predict method.

How do I resolve both issues simultaneously?



_______________________________________________
scikit-learn mailing list
scikit-learn@python.org
https://mail.python.org/mailman/listinfo/scikit-learn

_______________________________________________
scikit-learn mailing list
scikit-learn@python.org
https://mail.python.org/mailman/listinfo/scikit-learn

Reply via email to