Пример #1
0
def test_fit_homogeneous_clusters():

    clustering_test = DESClustering(create_pool_classifiers()*2, k=2, pct_accuracy=0.5, pct_diversity=0.33)
    clustering_test.roc_algorithm.fit_predict = MagicMock(return_value=return_cluster_index_ex1)

    clustering_test.DFP_mask = np.ones(clustering_test.n_classifiers)
    clustering_test.fit(X_dsel_ex1, y_dsel_ex1)

    assert clustering_test.accuracy_cluster[0, 1] == 0.0 and clustering_test.accuracy_cluster[0, [0, 2]].all() == 1.0
    assert clustering_test.accuracy_cluster[1, 1] == 1.0 and clustering_test.accuracy_cluster[1, [0, 2]].all() == 0.0
    for idx in clustering_test.indices[0, :]:
        assert idx in (0, 2, 3, 5)
Пример #2
0
def test_fit_heterogeneous_clusters():

    clustering_test = DESClustering(create_pool_classifiers(), k=2, pct_accuracy=0.5, pct_diversity=0.33)
    clustering_test.roc_algorithm.fit_predict = MagicMock(return_value=return_cluster_index_ex2)

    clustering_test.DFP_mask = np.ones(clustering_test.n_classifiers)
    clustering_test.fit(X_dsel_ex1, y_dsel_ex1)

    # Index selected should be of any classifier that predicts the class label 0
    assert np.isclose(clustering_test.accuracy_cluster[:, 1], [0.428, 0.375], atol=0.01).all()
    assert np.isclose(clustering_test.accuracy_cluster[:, 0], [0.572, 0.625], atol=0.01).all()
    assert clustering_test.indices[0, 0] == 0 or clustering_test.indices[0, 0] == 2
    assert clustering_test.indices[1, 0] == 0 or clustering_test.indices[1, 0] == 2
Пример #3
0
def test_estimate_competence():

    query = np.atleast_2d([1, 1])
    clustering_test = DESClustering(create_pool_classifiers(), k=2, pct_accuracy=0.5, pct_diversity=0.33)
    clustering_test.roc_algorithm.fit_predict = MagicMock(return_value=return_cluster_index_ex2)

    clustering_test.DFP_mask = np.ones(clustering_test.n_classifiers)
    clustering_test.fit(X_dsel_ex1, y_dsel_ex1)
    clustering_test.roc_algorithm.predict = MagicMock(return_value=0)
    competences = clustering_test.estimate_competence(query)

    assert np.array_equal(competences, clustering_test.accuracy_cluster[0, :])

    clustering_test.roc_algorithm.predict = MagicMock(return_value=1)
    competences = clustering_test.estimate_competence(query)
    assert np.array_equal(competences, clustering_test.accuracy_cluster[1, :])
Пример #4
0
def test_fit_clusters_less_diverse():

    clustering_test = DESClustering(create_pool_classifiers() * 2,
                                    k=2,
                                    pct_accuracy=1.0,
                                    pct_diversity=0.60,
                                    more_diverse=False)

    clustering_test.roc_algorithm.fit_predict = MagicMock(
        return_value=return_cluster_index_ex1)

    clustering_test.DFP_mask = np.ones(clustering_test.n_classifiers)
    clustering_test.fit(X_dsel_ex1, y_dsel_ex1)

    assert clustering_test.accuracy_cluster[
        0, 1] == 0.0 and clustering_test.accuracy_cluster[0,
                                                          [0, 2]].all() == 1.0
    assert clustering_test.accuracy_cluster[
        1, 1] == 1.0 and clustering_test.accuracy_cluster[1,
                                                          [0, 2]].all() == 0.0
    assert np.isin(clustering_test.indices[0, :], np.array([1, 3, 5, 4])).all()