Mercurial > repos > bimib > marea
diff Marea/marea_cluster.py @ 13:e96f3b85e5a0 draft
Uploaded
author | bimib |
---|---|
date | Wed, 13 Feb 2019 05:42:20 -0500 |
parents | 3d77287caf22 |
children | 1a0c8c2780f2 |
line wrap: on
line diff
--- a/Marea/marea_cluster.py Wed Feb 13 05:08:25 2019 -0500 +++ b/Marea/marea_cluster.py Wed Feb 13 05:42:20 2019 -0500 @@ -1,4 +1,3 @@ - from __future__ import division import os import sys @@ -7,6 +6,8 @@ import pickle as pk import argparse from sklearn.cluster import KMeans +import matplotlib +matplotlib.use('GTKAgg') import matplotlib.pyplot as plt ########################## argparse ########################################### @@ -540,13 +541,22 @@ def f_cluster(resolve_rules): os.makedirs('cluster_out') args = process_args(sys.argv) + k_min = args.k_min + k_max = args.k_max + if k_min > k_max: + warning('k range boundaries inverted.\n') + tmp = k_min + k_min = k_max + k_max = tmp + else: + warning('k range correct.\n') cluster_data = pd.DataFrame.from_dict(resolve_rules, orient = 'index') for i in cluster_data.columns: tmp = cluster_data[i][0] if tmp == None: cluster_data = cluster_data.drop(columns=[i]) distorsion = [] - for i in range(args.k_min, args.k_max+1): + for i in range(k_min, k_max+1): tmp_kmeans = KMeans(n_clusters = i, n_init = 100, max_iter = 300, @@ -559,7 +569,7 @@ classe.to_csv(dest, sep = '\t', index = False, header = ['Patient_ID', 'Class']) plt.figure(0) - plt.plot(range(args.k_min, args.k_max+1), distorsion, marker = 'o') + plt.plot(range(k_min, k_max+1), distorsion, marker = 'o') plt.xlabel('Number of cluster') plt.ylabel('Distorsion') plt.savefig(args.elbow, dpi = 240, format = 'pdf') @@ -576,8 +586,6 @@ def main(): args = process_args(sys.argv) - if args.k_min > args.k_max: - sys.exit('Execution aborted: max cluster > min cluster') if args.rules_selector == 'HMRcore': recon = pk.load(open(args.tool_dir + '/local/HMRcore_rules.p', 'rb')) elif args.rules_selector == 'Recon':