Пример #1
0
def test_shc_threshold():
    """Test changing threshold in SHC."""
    X, _ = generate_data(supervised=False, affinity=True)

    clusterer = ScipyHierarchicalClustering(affinity="precomputed",
                                            scoring_data="affinity",
                                            n_clusters=4)

    labels = clusterer.fit_predict(X)
    clusterer.set_params(threshold=clusterer.linkage_[-4,  2])
    labels = clusterer.labels_
    assert_array_equal([25, 25, 25, 25], np.bincount(labels))
Пример #2
0
def test_shc_n_clusters():
    """Test changing number of clusters in SHC."""
    X, _ = generate_data(supervised=False, affinity=True)

    clusterer = ScipyHierarchicalClustering(affinity="precomputed",
                                            n_clusters=4)

    labels = clusterer.fit_predict(X)
    assert_equal(len(np.unique(labels)), 4)
    clusterer.set_params(n_clusters=10)
    labels = clusterer.labels_
    assert_equal(len(np.unique(labels)), 10)
Пример #3
0
def test_shc_n_clusters():
    """Test changing number of clusters in SHC."""
    X, _ = generate_data(supervised=False, affinity=True)

    clusterer = ScipyHierarchicalClustering(affinity="precomputed",
                                            n_clusters=4)

    labels = clusterer.fit_predict(X)
    assert_equal(len(np.unique(labels)), 4)
    clusterer.set_params(n_clusters=10)
    labels = clusterer.labels_
    assert_equal(len(np.unique(labels)), 10)
Пример #4
0
def test_shc_threshold():
    """Test changing threshold in SHC."""
    X, _ = generate_data(supervised=False, affinity=True)

    # n_clusters has precedence over threshold
    clusterer = ScipyHierarchicalClustering(affinity="precomputed",
                                            n_clusters=2)
    labels1 = clusterer.fit_predict(X)
    clusterer.set_params(threshold=clusterer.linkage_[-4, 2])
    labels2 = clusterer.labels_
    assert_array_equal(labels1, labels2)
    assert_equal(len(np.unique(labels1)), 2)

    # change threshold
    clusterer.set_params(best_threshold_precedence=False)
    clusterer.set_params(n_clusters=None, threshold=clusterer.linkage_[-5, 2])
    labels = clusterer.labels_
    assert_equal(len(np.unique(labels)), 5)
    clusterer.set_params(threshold=clusterer.linkage_[-4, 2])
    labels = clusterer.labels_
    assert_equal(len(np.unique(labels)), 4)
Пример #5
0
def test_shc_threshold():
    """Test changing threshold in SHC."""
    X, _ = generate_data(supervised=False, affinity=True)

    # n_clusters has precedence over threshold
    clusterer = ScipyHierarchicalClustering(affinity="precomputed",
                                            n_clusters=2)
    labels1 = clusterer.fit_predict(X)
    clusterer.set_params(threshold=clusterer.linkage_[-4, 2])
    labels2 = clusterer.labels_
    assert_array_equal(labels1, labels2)
    assert_equal(len(np.unique(labels1)), 2)

    # change threshold
    clusterer.set_params(best_threshold_precedence=False)
    clusterer.set_params(n_clusters=None,
                         threshold=clusterer.linkage_[-5, 2])
    labels = clusterer.labels_
    assert_equal(len(np.unique(labels)), 5)
    clusterer.set_params(threshold=clusterer.linkage_[-4, 2])
    labels = clusterer.labels_
    assert_equal(len(np.unique(labels)), 4)