Skip to content

Commit

Permalink
fix: changing ckmeans to sklearn kmeans
Browse files Browse the repository at this point in the history
  • Loading branch information
lachlangrose committed Mar 7, 2022
1 parent 2242bf2 commit 60f3ec5
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions LoopStructural/modelling/intrusions/intrusion_frame_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

import numpy as np
import pandas as pd
import ckwrap
from sklearn.cluster import KMeans

try:
import skfmm as fmm
Expand Down Expand Up @@ -160,10 +160,6 @@ def add_contact_anisotropies(self, series_list=None, **kwargs):
if self.intrusion_network_type == "shortest path":
n_clusters = self.number_of_contacts

# if "number_contacts" in kwargs:
# n_clusters = kwargs["number_contacts"]
# else:
# n_clusters = [1]*len(series_list)

if series_list == None:
self.anisotropies_series_list = None
Expand All @@ -188,15 +184,16 @@ def add_contact_anisotropies(self, series_list=None, **kwargs):
n_contacts = n_clusters[i]

# use scalar field values to find different contacts
contact_clustering = ckwrap.ckmeans(series_i_vals, n_contacts)
series_i_vals_mod = series_i_vals.reshape(len(series_i_vals),1)
contact_clustering = KMeans(n_clusters = n_contacts, random_state=0).fit(series_i_vals_mod)

for j in range(n_contacts):
series_ij_name = series_list[i].name + "_" + str(j)
z = np.ma.masked_not_equal(contact_clustering.labels, j)
z = np.ma.masked_not_equal(contact_clustering.labels_, j)
y = np.ma.masked_array(series_i_vals, z.mask)
series_ij_vals = np.ma.compressed(y)
series_ij_mean = np.mean(series_ij_vals)
series_ij_std = np.std(series_ij_vals)
series_ij_name = series_list[i].name + "_" + str(series_ij_mean)

series_parameters[series_ij_name] = [
series_list[i],
Expand Down Expand Up @@ -354,7 +351,7 @@ def indicator_function_contacts(self, delta=None):
# for j in range(len(self.anisotropies_series_parameters)):
# delta_list.append(delta[i])

for i, contact_id in enumerate(self.anisotropies_series_parameters.keys()):
for i, contact_id in enumerate(sorted(self.anisotropies_series_parameters)):
series_id = self.anisotropies_series_parameters[contact_id][0]
seriesi_mean = self.anisotropies_series_parameters[contact_id][1]
seriesi_std = self.anisotropies_series_parameters[contact_id][2]
Expand Down

0 comments on commit 60f3ec5

Please sign in to comment.