File: center_initializer_examples.py

package info (click to toggle)
python-pyclustering 0.10.1.2-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 11,128 kB
  • sloc: cpp: 38,888; python: 24,311; sh: 384; makefile: 105
file content (90 lines) | stat: -rwxr-xr-x 3,415 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
"""!

@brief Examples of center initializer API.

@authors Andrei Novikov (pyclustering@yandex.ru)
@date 2014-2020
@copyright BSD-3-Clause

"""


from pyclustering.utils import read_sample

from pyclustering.samples.definitions import SIMPLE_SAMPLES
from pyclustering.samples.definitions import FCPS_SAMPLES

from pyclustering.cluster import cluster_visualizer
from pyclustering.cluster.center_initializer import kmeans_plusplus_initializer


def template_kmeans_plusplus_initializer(path, amount, draw=True):
    sample = read_sample(path)
    centers = kmeans_plusplus_initializer(sample, amount, 1).initialize()
    
    if draw is True:
        visualizer = cluster_visualizer()
        visualizer.append_cluster(sample)
        visualizer.append_cluster(centers, marker='*', markersize=10)
        visualizer.show()
    
    return sample, centers


def kmeans_plusplus_initializer_sample_simple_01():
    template_kmeans_plusplus_initializer(SIMPLE_SAMPLES.SAMPLE_SIMPLE1, 2)

def kmeans_plusplus_initializer_sample_simple_02():
    template_kmeans_plusplus_initializer(SIMPLE_SAMPLES.SAMPLE_SIMPLE2, 3)

def kmeans_plusplus_initializer_sample_simple_03():
    template_kmeans_plusplus_initializer(SIMPLE_SAMPLES.SAMPLE_SIMPLE3, 4)

def kmeans_plusplus_initializer_sample_simple_04():
    template_kmeans_plusplus_initializer(SIMPLE_SAMPLES.SAMPLE_SIMPLE4, 5)

def kmeans_plusplus_initializer_sample_simple_05():
    template_kmeans_plusplus_initializer(SIMPLE_SAMPLES.SAMPLE_SIMPLE5, 4)

def kmeans_plusplus_initializer_collection():
    (sample1, centers1) = template_kmeans_plusplus_initializer(SIMPLE_SAMPLES.SAMPLE_SIMPLE1, 2, False)
    (sample2, centers2) = template_kmeans_plusplus_initializer(SIMPLE_SAMPLES.SAMPLE_SIMPLE2, 3, False)
    (sample3, centers3) = template_kmeans_plusplus_initializer(SIMPLE_SAMPLES.SAMPLE_SIMPLE3, 4, False)
    (sample4, centers4) = template_kmeans_plusplus_initializer(FCPS_SAMPLES.SAMPLE_TWO_DIAMONDS, 2, False)
    
    visualizer = cluster_visualizer(4, 2)
    visualizer.append_cluster(sample1, canvas=0)
    visualizer.append_cluster(centers1, canvas=0, marker='*', markersize=10)
    
    visualizer.append_cluster(sample2, canvas=1)
    visualizer.append_cluster(centers2, canvas=1, marker='*', markersize=10)
    
    visualizer.append_cluster(sample3, canvas=2)
    visualizer.append_cluster(centers3, canvas=2, marker='*', markersize=10)
    
    visualizer.append_cluster(sample4, canvas=3)
    visualizer.append_cluster(centers4, canvas=3, marker='*', markersize=10)
    visualizer.show()

def kmeans_plusplus_initializer_fcps_lsun():
    template_kmeans_plusplus_initializer(FCPS_SAMPLES.SAMPLE_LSUN, 3)

def kmeans_plusplus_initializer_fcps_two_diamonds():
    template_kmeans_plusplus_initializer(FCPS_SAMPLES.SAMPLE_TWO_DIAMONDS, 2)


# kmeans_plusplus_initializer_sample_simple_01()
# kmeans_plusplus_initializer_sample_simple_02()
kmeans_plusplus_initializer_sample_simple_03()
kmeans_plusplus_initializer_sample_simple_03()
kmeans_plusplus_initializer_sample_simple_03()
kmeans_plusplus_initializer_sample_simple_03()
kmeans_plusplus_initializer_sample_simple_03()
kmeans_plusplus_initializer_sample_simple_03()
# kmeans_plusplus_initializer_sample_simple_04()
# kmeans_plusplus_initializer_sample_simple_05()
#
# kmeans_plusplus_initializer_collection()
#
# kmeans_plusplus_initializer_fcps_lsun()
# kmeans_plusplus_initializer_fcps_two_diamonds()