Switch to unified view

a b/python-scripts/runSimulationsCluster.py
1
import numpy as np
2
from sklearn.cluster import KMeans
3
import numpy as np
4
from sklearn.metrics import silhouette_score, davies_bouldin_score
5
6
7
datatypes=["equal","heterogeneous"]
8
typenums=[5,10,15]
9
data_names = ['VAE_FCTAE_EM','AE_FAETC_EM', 'AE_FCTAE_EM', 'DAE_FAETC_EM', 'DAE_FCTAE_EM','SVAE_FCTAE_EM','MMDVAE_EM']
10
for datatype in datatypes:
11
    for typenum in typenums:
12
        for data_name in data_names:
13
            encoded_factors=np.loadtxt('./result/simulations/{datatype}/{typenum}/{d}_{typenum}.txt'.format(datatype=datatype,typenum=typenum,d=data_name))
14
            savepath='./result/simulations/{datatype}/{typenum}/{d}_cluster_result.txt'.format(datatype=datatype,typenum=typenum,d=data_name)
15
            with open(savepath, 'w') as f2:
16
                print('method:{d}\n'.format(d=data_name))
17
                f2.write('method:{d}\n'.format(d=data_name))
18
                for cluster_num in range(2,16,1):
19
                    all_silhouette=[]
20
                    all_DBI=[]
21
                    for i in range(100):
22
                        clf = KMeans(n_clusters=cluster_num)
23
                        clf.fit(encoded_factors)  # 模型训练
24
                        labels = clf.labels_
25
                        silhouetteScore = silhouette_score(encoded_factors, labels, metric='euclidean')
26
                        all_silhouette.append(silhouetteScore)
27
                        davies_bouldinScore = davies_bouldin_score(encoded_factors, labels)
28
                        all_DBI.append(davies_bouldinScore)
29
                    avg_silhouette=np.mean(all_silhouette)
30
                    avg_DBI=np.mean(all_DBI)
31
32
                    # print("silhouetteScore:", avg_silhouette)
33
                    # print("davies_bouldinScore:", avg_DBI)
34
                    print('k:{k}\nsilhouetteScore:{s}\ndavies_bouldinScore:{d}\n'.format(k=cluster_num, s=avg_silhouette,d=avg_DBI))
35
                    f2.write('*'*20+'\n')
36
                    f2.write('k:{k}\nsilhouetteScore:{s}\ndavies_bouldinScore:{d}\n'.format(k=cluster_num, s=avg_silhouette,d=avg_DBI))
37
38
39
#直接拼接
40
# files = ['aml', 'breast', 'colon', 'kidney', 'liver', 'lung', 'melanoma', 'ovarian', 'sarcoma','gbm']
41
# for f in files:
42
#     datapath='./data/cancer_do_cluster/{f}'.format(f=f)
43
#     omics1 = np.loadtxt('{}/log_exp_omics.txt'.format(datapath))
44
#     omics1 = np.transpose(omics1)
45
#     omics1 = normalize(omics1, axis=0, norm='max')
46
#     print(omics1.shape)
47
#     omics2 = np.loadtxt('{}/log_mirna_omics.txt'.format(datapath))
48
#     omics2 = np.transpose(omics2)
49
#     omics2 = normalize(omics2, axis=0, norm='max')
50
#     print(omics2.shape)
51
#     omics3 = np.loadtxt('{}/methy_omics.txt'.format(datapath))
52
#     omics3 = np.transpose(omics3)
53
#     omics3 = normalize(omics3, axis=0, norm='max')
54
#     print(omics3.shape)
55
#     omics = np.concatenate((omics1, omics2, omics3), axis=1)
56
#     encoded_factors=omics
57
#     savepath='./result/cancer_do_cluster/{f}/Contact_cluster_result.txt'.format(f=f)
58
#     with open(savepath, 'w') as f2:
59
#         print('cancer:{f}\nmethod:直接拼接'.format(f=f))
60
#         f2.write('cancer:{f}\nmethod:直接拼接\n'.format(f=f))
61
#         for typenum in range(2,7,1):
62
#             all_silhouette=[]
63
#             all_DBI=[]
64
#             for i in range(100):
65
#                 clf = KMeans(n_clusters=typenum)
66
#                 clf.fit(encoded_factors)  # 模型训练
67
#                 labels = clf.labels_
68
#                 silhouetteScore = silhouette_score(encoded_factors, labels, metric='euclidean')
69
#                 all_silhouette.append(silhouetteScore)
70
#                 davies_bouldinScore = davies_bouldin_score(encoded_factors, labels)
71
#                 all_DBI.append(davies_bouldinScore)
72
#             avg_silhouette=np.mean(all_silhouette)
73
#             avg_DBI=np.mean(all_DBI)
74
75
#             # print("silhouetteScore:", avg_silhouette)
76
#             # print("davies_bouldinScore:", avg_DBI)
77
#             print('k:{k}\nsilhouetteScore:{s}\ndavies_bouldinScore:{d}\n'.format(k=typenum, s=avg_silhouette,d=avg_DBI))
78
#             f2.write('zly'*20+'\n')
79
#             f2.write('k:{k}\nsilhouetteScore:{s}\ndavies_bouldinScore:{d}\n'.format(k=typenum, s=avg_silhouette,d=avg_DBI))            
80