Debugging sparse correlation
@@ -462,20 +462,27 @@ def sparse_correlation(ind1, data1, ind2, data2, n_features): # pragma: no cove
mu_x /= n_features
mu_y /= n_features
- shifted_data1 = np.empty(data1.shape[0], dtype=np.float64)
- shifted_data2 = np.empty(data2.shape[0], dtype=np.float64)
+ shifted_data1 = np.empty(data1.shape[0], dtype=np.float32)
+ shifted_data2 = np.empty(data2.shape[0], dtype=np.float32)
for i in range(data1.shape[0]):
shifted_data1[i] = data1[i] - mu_x
for i in range(data2.shape[0]):
shifted_data2[i] = data2[i] - mu_y
- norm1 = np.sqrt(norm(shifted_data1) ** 2 + (n_features - ind1.shape[0]) * mu_x ** 2)
- norm2 = np.sqrt(norm(shifted_data2) ** 2 + (n_features - ind2.shape[0]) * mu_y ** 2)
+ print(mu_x)
+ print(shifted_data1)
+
+ norm1 = np.sqrt((norm(shifted_data1) ** 2) + (n_features - ind1.shape[0]) * (mu_x ** 2))
+ norm2 = np.sqrt((norm(shifted_data2) ** 2) + (n_features - ind2.shape[0]) * (mu_y ** 2))
+
+ print(norm1, norm2)
dot_prod_inds, dot_prod_data = sparse_mul(ind1, shifted_data1,
ind2, shifted_data2)
+ print(dot_prod_data)
+
if dot_prod_data.shape[0] == 0:
return 1.0
@@ -484,17 +491,30 @@ def sparse_correlation(ind1, data1, ind2, data2, n_features): # pragma: no cove
for i in range(dot_prod_data.shape[0]):
dot_product += dot_prod_data[i]
+ print(dot_product)
+ print(common_indices)
+
+ tmp = dot_product
+
for i in range(ind1.shape[0]):
if ind1[i] not in common_indices:
- dot_product -= data1[i] * (mu_y)
+ dot_product -= shifted_data1[i] * (mu_y)
+
+ print(dot_product, dot_product - tmp)
+ tmp = dot_product
for i in range(ind2.shape[0]):
if ind2[i] not in common_indices:
- dot_product -= data2[i] * (mu_x)
+ dot_product -= shifted_data2[i] * (mu_x)
+
+ print(dot_product, dot_product - tmp)
all_indices = arr_union(ind1, ind2)
dot_product += mu_x * mu_y * (n_features - all_indices.shape[0])
+ print(dot_product)
+ print(mu_x * mu_y * (n_features - all_indices.shape[0]))
+
if norm1 == 0.0 and norm2 == 0.0:
return 0.0
elif dot_product == 0.0:
