X-Git-Url: http://plrg.eecs.uci.edu/git/?p=pingpong.git;a=blobdiff_plain;f=python_ml%2Fplotting-dbscan-complete.py;h=a2baa902c63104e52c02a2c6d24b07f4c5f60760;hp=d8c015be381c87dc9cfac252b5d1f8c67f924d41;hb=e97221aeee94e860ee4e090fdc84532bb874006d;hpb=301f34fb861dd5622d96bbbfe07bcd82b120fabf diff --git a/python_ml/plotting-dbscan-complete.py b/python_ml/plotting-dbscan-complete.py index d8c015b..a2baa90 100644 --- a/python_ml/plotting-dbscan-complete.py +++ b/python_ml/plotting-dbscan-complete.py @@ -12,9 +12,9 @@ fig.set_size_inches(7, 7) # Read from file # TODO: Just change the following path and filename # when needed to read from a different file -path = "/scratch/July-2018/Pairs/" -device1 = "tplink-bulb-on" -device2 = "tplink-bulb-off" +path = "/scratch/July-2018/Pairs2/" +device1 = "alexa2-on" +device2 = "alexa2-off" filename1 = device1 + ".txt" filename2 = device2 + ".txt" @@ -38,7 +38,7 @@ X = np.array(pairsArr); # Compute DBSCAN # eps = distances # min_samples = minimum number of members of a cluster -db = DBSCAN(eps=30, min_samples=trig - 5).fit(X) +db = DBSCAN(eps=10, min_samples=trig - 5).fit(X) core_samples_mask = np.zeros_like(db.labels_, dtype=bool) core_samples_mask[db.core_sample_indices_] = True labels = db.labels_ @@ -55,8 +55,8 @@ colors = [plt.cm.Spectral(each) for each in np.linspace(0, 1, len(unique_labels))] for k, col in zip(unique_labels, colors): if k == -1: - # Black used for noise. - col = [0, 0, 0, 1] + # Red used for noise. + col = [1, 0, 0, 1] class_member_mask = (labels == k) @@ -71,8 +71,12 @@ for k, col in zip(unique_labels, colors): count = 0 for pair in pairsArr: - plt.text(pair[0], pair[1], str(pair[0]) + ", " + str(pair[1]) + - "\nFreq: " + str(labels.tolist().count(labels[count])), fontsize=10) + if labels[count] == -1: + plt.text(pair[0], pair[1], str(pair[0]) + ", " + str(pair[1]), fontsize=10) + else: + # Only print the frequency when this is a real cluster + plt.text(pair[0], pair[1], str(pair[0]) + ", " + str(pair[1]) + + "\nFreq:" + str(labels.tolist().count(labels[count])), fontsize=10) count = count + 1 #==================================================================================================== @@ -113,8 +117,8 @@ colors = [plt.cm.Spectral(each) for each in np.linspace(0, 1, len(unique_labels))] for k, col in zip(unique_labels, colors): if k == -1: - # Black used for noise. - col = [0, 0, 0, 1] + # Green used for noise. + col = [0, 1, 0, 1] class_member_mask = (labels == k) @@ -129,13 +133,17 @@ for k, col in zip(unique_labels, colors): count = 0 for pair in pairsArr: - plt.text(pair[0], pair[1], str(pair[0]) + ", " + str(pair[1]) + - "\nFreq: " + str(labels.tolist().count(labels[count])), fontsize=10) + if labels[count] == -1: + plt.text(pair[0], pair[1], str(pair[0]) + ", " + str(pair[1]), fontsize=10) + else: + # Only print the frequency when this is a real cluster + plt.text(pair[0], pair[1], str(pair[0]) + ", " + str(pair[1]) + + "\nFreq:" + str(labels.tolist().count(labels[count])), fontsize=10) count = count + 1 -plt.title(device1 + ' & ' + device2 + ' - Estimated number of clusters: %d' % n_clusters_) +plt.title(device1 + ' & ' + device2) plt.show()