Skip to content
Snippets Groups Projects
Commit 233a9b0a authored by vkarve2's avatar vkarve2
Browse files

Remove runtime errors due to a column of zeros in W, H.

parent 12cb0e06
No related branches found
No related tags found
No related merge requests found
......@@ -22,7 +22,11 @@ def N(A): return m(A, NONZEROS) # NONZEROS is a global variable.
def sparsity_metric(H):
def sparsity_column(column):
n = len(column)
ratio = np.linalg.norm(column, 1)/np.linalg.norm(column, 2)
if sum(column) == 0:
ratio = 1
logger.info('Column of zeros in H')
else:
ratio = np.linalg.norm(column, 1)/np.linalg.norm(column, 2)
return (math.sqrt(n) - ratio)/(math.sqrt(n) - 1)
return np.mean([sparsity_column(column) for column in H.T])
......@@ -34,7 +38,10 @@ def calculate_error(D, W, H):
def spikeyness(W):
def spikeyness_column(column):
trend = W[:52*24*7, column].reshape(52,24*7)
return np.mean(np.nanstd(trend, axis=0))/np.nanmean(W[:, column])
if np.mean(W[:, column]) == 0:
return np.nan
else:
return np.mean(np.nanstd(trend, axis=0))/np.mean(W[:, column])
spikey_mean = np.mean([spikeyness_column(sig) for sig in range(config.RANK)])
spikey_std = np.std([spikeyness(sig) for sig in range(config.RANK)])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment