def check_classifiers_classes(name, classifier_orig): X_multiclass, y_multiclass = make_blobs(n_samples=30, random_state=0, cluster_std=0.1) X_multiclass, y_multiclass = shuffle(X_multiclass, y_multiclass, random_state=7) X_multiclass = StandardScaler().fit_transform(X_multiclass) # We need to make sure that we have non negative data, for things # like NMF X_multiclass -= X_multiclass.min() - .1 X_binary = X_multiclass[y_multiclass != 2] y_binary = y_multiclass[y_multiclass != 2] X_binary = pairwise_estimator_convert_X(X_binary, classifier_orig) labels_binary = ["one", "two"] y_names_binary = np.take(labels_binary, y_binary) for X, y, y_names in [(X_binary, y_binary, y_names_binary)]: for y_names_i in [y_names, y_names.astype('O')]: y_ = choose_check_classifiers_labels(name, y, y_names_i) check_classifiers_predictions(X, y_, name, classifier_orig) labels_binary = [-1, 1] y_names_binary = np.take(labels_binary, y_binary) y_binary = choose_check_classifiers_labels(name, y_binary, y_names_binary) check_classifiers_predictions(X_binary, y_binary, name, classifier_orig)
def check_classifiers_classes(name, classifier_orig): # Case of shapelet models if name == 'SerializableShapeletModel': raise SkipTest('Skipping check_classifiers_classes for shapelets' ' due to convergence issues...') elif name == 'ShapeletModel': X_multiclass, y_multiclass = _create_large_ts_dataset() classifier_orig = clone(classifier_orig) classifier_orig.max_iter = 1000 else: X_multiclass, y_multiclass = _create_small_ts_dataset() X_multiclass, y_multiclass = shuffle(X_multiclass, y_multiclass, random_state=7) scaler = TimeSeriesScalerMeanVariance() X_multiclass = scaler.fit_transform(X_multiclass) X_multiclass = np.reshape(X_multiclass, (X_multiclass.shape[0], X_multiclass.shape[1])) X_binary = X_multiclass[y_multiclass != 2] y_binary = y_multiclass[y_multiclass != 2] X_multiclass = pairwise_estimator_convert_X(X_multiclass, classifier_orig) X_binary = pairwise_estimator_convert_X(X_binary, classifier_orig) labels_multiclass = ["one", "two", "three"] labels_binary = ["one", "two"] y_names_multiclass = np.take(labels_multiclass, y_multiclass) y_names_binary = np.take(labels_binary, y_binary) problems = [(X_binary, y_binary, y_names_binary)] if not classifier_orig._get_tags()['binary_only']: problems.append((X_multiclass, y_multiclass, y_names_multiclass)) for X, y, y_names in problems: for y_names_i in [y_names, y_names.astype('O')]: y_ = choose_check_classifiers_labels(name, y, y_names_i) check_classifiers_predictions(X, y_, name, classifier_orig) labels_binary = [-1, 1] y_names_binary = np.take(labels_binary, y_binary) y_binary = choose_check_classifiers_labels(name, y_binary, y_names_binary) check_classifiers_predictions(X_binary, y_binary, name, classifier_orig)