def print_cluster_details(cluster_details, shared_features): for cluster_id in cluster_details.keys(): print "Cluster ID: {0}".format(cluster_id) print "Silhouette Score: {0}".format(cluster_details[cluster_id]["silhouette"]) print "IPs: {0}".format(", ".join(sorted(cluster_details[cluster_id]["ips"]))) print "" print "Shared Features:" for feature in reduce_shared_features(shared_features[cluster_id]['positive']): print " - ".join([i.encode("unicode-escape") for i in feature]) print "" print ""
def display_vector_index_details(vector_index, vectors, vector_names, vectorizer): # borrow the feature -> string method from get_common_features_from_cluster output = "" upf, unf, shared_features = get_common_features_from_cluster(vectors[vector_index, :].reshape(1, -1), np.array([0]), vectorizer) ip = vector_names[vector_index] features = set() for feature in reduce_shared_features(shared_features[0]['positive']): features.add(" - ".join([i.encode("unicode-escape") for i in feature])) features = sorted(list(features)) output += "IP: {0}\n".format(ip) for f in features: output += f + "\n" return output + "\n"
def print_cluster_details(cluster_details, shared_features): for cluster_id in cluster_details.keys(): print "Cluster ID: {0}".format(cluster_id) print "Silhouette Score: {0}".format( cluster_details[cluster_id]["silhouette"]) print "IPs: {0}".format(", ".join( sorted(cluster_details[cluster_id]["ips"]))) print "" print "Shared Features:" for feature in reduce_shared_features( shared_features[cluster_id]['positive']): print " - ".join([i.encode("unicode-escape") for i in feature]) print "" print ""
def display_shared_vector_indeces_details(vector_indeces, vectors, vector_names, vectorizer): # borrow the feature -> string method from get_common_features_from_cluster output = "" upf, unf, shared_features = get_common_features_from_cluster(vectors[vector_indeces, :], np.array([0] * len(vector_indeces)), vectorizer) features = set() for feature in reduce_shared_features(shared_features[0]['positive']): features.add(" - ".join([i.encode("unicode-escape") for i in feature])) features = sorted(list(features)) if len(features) == 0: return "No shared features\n" for f in features: output += f + "\n" return output + "\n"
def display_vector_index_details(vector_index, vectors, vector_names, vectorizer): # borrow the feature -> string method from get_common_features_from_cluster output = "" upf, unf, shared_features = get_common_features_from_cluster( vectors[vector_index, :].reshape(1, -1), np.array([0]), vectorizer) ip = vector_names[vector_index] features = set() for feature in reduce_shared_features(shared_features[0]['positive']): features.add(" - ".join([i.encode("unicode-escape") for i in feature])) features = sorted(list(features)) output += "IP: {0}\n".format(ip) for f in features: output += f + "\n" return output + "\n"
def display_shared_vector_indeces_details(vector_indeces, vectors, vector_names, vectorizer): # borrow the feature -> string method from get_common_features_from_cluster output = "" upf, unf, shared_features = get_common_features_from_cluster( vectors[vector_indeces, :], np.array([0] * len(vector_indeces)), vectorizer) features = set() for feature in reduce_shared_features(shared_features[0]['positive']): features.add(" - ".join([i.encode("unicode-escape") for i in feature])) features = sorted(list(features)) if len(features) == 0: return "No shared features\n" for f in features: output += f + "\n" return output + "\n"