diff options
Diffstat (limited to 'Metrics/Metrics-Calculation/metrics_plot/src/test.py')
-rw-r--r-- | Metrics/Metrics-Calculation/metrics_plot/src/test.py | 59 |
1 files changed, 28 insertions, 31 deletions
diff --git a/Metrics/Metrics-Calculation/metrics_plot/src/test.py b/Metrics/Metrics-Calculation/metrics_plot/src/test.py index d1aae53a..0212cc2a 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/src/test.py +++ b/Metrics/Metrics-Calculation/metrics_plot/src/test.py | |||
@@ -1,35 +1,32 @@ | |||
1 | from sklearn.datasets import load_digits | 1 | from pyclustering.cluster.kmedoids import kmedoids |
2 | from sklearn.manifold import MDS | 2 | from pyclustering.utils import read_sample |
3 | import matplotlib.pyplot as plt | 3 | from pyclustering.samples.definitions import FCPS_SAMPLES |
4 | from scipy import stats | 4 | from pyclustering.utils.metric import distance_metric, type_metric |
5 | import numpy as np | 5 | import matplotlib.pyplot as plt |
6 | 6 | ||
7 | dist = [] | 7 | # metric = distance_metric(type_metric.MINKOWSKI, degree=2) |
8 | # print(metric([1,1], [2,2])) | ||
8 | 9 | ||
9 | for i in range(100): | 10 | # Load list of points for cluster analysis. |
10 | rvs = stats.uniform.rvs(size=500, loc=0., scale=1) | 11 | sample = [[1,1,1], [2,2,2],[3,3,3]] |
11 | dist.append(rvs) | ||
12 | 12 | ||
13 | for i in range(100): | 13 | # Set random initial medoids. |
14 | rvs2 = stats.powerlaw .rvs(1.66, size=500) | 14 | initial_medoids = [1, 1 ,1] |
15 | dist.append(rvs2) | 15 | # Create instance of K-Medoids algorithm. |
16 | kmedoids_instance = kmedoids(sample, initial_medoids) | ||
17 | # Run cluster analysis and obtain results. | ||
18 | kmedoids_instance.process() | ||
19 | centoids = kmedoids_instance.get_medoids() | ||
20 | clusters = kmedoids_instance.get_clusters() | ||
21 | # Show allocated clusters. | ||
22 | for cluster_id in range(len(clusters)): | ||
23 | for index in clusters[cluster_id]: | ||
24 | if(cluster_id == 0): | ||
25 | plt.plot(sample[index][0], sample[index][1], 'ro') | ||
26 | print(sample[index][0]) | ||
27 | else: | ||
28 | plt.plot(sample[index][0], sample[index][1], 'bo') | ||
16 | 29 | ||
17 | matrix = np.empty((len(dist),len(dist))) | 30 | plt.plot(sample[centoids[0]][0], sample[centoids[0]][1], 'bo') |
18 | 31 | # plt.plot(sample[centoids[1]][0], sample[centoids[1]][1], 'ro') | |
19 | for i in range(len(dist)): | 32 | plt.show() \ No newline at end of file |
20 | matrix[i,i] = 0 | ||
21 | for j in range(i+1, len(dist)): | ||
22 | value, p = stats.ks_2samp(dist[i], dist[j]) | ||
23 | matrix[i, j] = value | ||
24 | matrix[j, i] = value | ||
25 | |||
26 | embedding = MDS(n_components=2, dissimilarity='precomputed') | ||
27 | trans = embedding.fit_transform(X=matrix) | ||
28 | x = (trans[:100,0]).tolist() | ||
29 | y = (trans[:100,1]).tolist() | ||
30 | |||
31 | x2 = (trans[100:,0]).tolist() | ||
32 | y2 = (trans[100:,1]).tolist() | ||
33 | plt.plot(x, y, 'yo') | ||
34 | plt.plot(x2, y2, 'ro') | ||
35 | plt.show() | ||