scikit-network 0.32.1__cp311-cp311-win_amd64.whl → 0.33.1__cp311-cp311-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of scikit-network might be problematic. Click here for more details.

Files changed (67) hide show
  1. {scikit_network-0.32.1.dist-info → scikit_network-0.33.1.dist-info}/AUTHORS.rst +0 -1
  2. scikit_network-0.33.1.dist-info/METADATA +120 -0
  3. {scikit_network-0.32.1.dist-info → scikit_network-0.33.1.dist-info}/RECORD +66 -66
  4. {scikit_network-0.32.1.dist-info → scikit_network-0.33.1.dist-info}/WHEEL +1 -1
  5. sknetwork/__init__.py +1 -1
  6. sknetwork/classification/diffusion.py +4 -3
  7. sknetwork/classification/knn.py +4 -3
  8. sknetwork/classification/metrics.py +3 -3
  9. sknetwork/classification/pagerank.py +1 -1
  10. sknetwork/classification/propagation.py +7 -6
  11. sknetwork/classification/vote.cp311-win_amd64.pyd +0 -0
  12. sknetwork/classification/vote.cpp +684 -677
  13. sknetwork/clustering/leiden.py +2 -1
  14. sknetwork/clustering/leiden_core.cp311-win_amd64.pyd +0 -0
  15. sknetwork/clustering/leiden_core.cpp +713 -702
  16. sknetwork/clustering/louvain.py +6 -6
  17. sknetwork/clustering/louvain_core.cp311-win_amd64.pyd +0 -0
  18. sknetwork/clustering/louvain_core.cpp +713 -702
  19. sknetwork/clustering/metrics.py +1 -1
  20. sknetwork/clustering/tests/test_kcenters.py +5 -37
  21. sknetwork/clustering/tests/test_louvain.py +6 -0
  22. sknetwork/data/__init__.py +1 -1
  23. sknetwork/data/base.py +7 -2
  24. sknetwork/data/load.py +18 -21
  25. sknetwork/data/models.py +15 -15
  26. sknetwork/data/parse.py +19 -17
  27. sknetwork/data/tests/test_API.py +3 -3
  28. sknetwork/data/tests/test_base.py +2 -2
  29. sknetwork/data/tests/test_toy_graphs.py +33 -33
  30. sknetwork/data/toy_graphs.py +35 -43
  31. sknetwork/embedding/base.py +3 -0
  32. sknetwork/embedding/louvain_embedding.py +0 -26
  33. sknetwork/embedding/svd.py +0 -4
  34. sknetwork/embedding/tests/test_louvain_embedding.py +9 -4
  35. sknetwork/embedding/tests/test_svd.py +6 -0
  36. sknetwork/gnn/gnn_classifier.py +1 -1
  37. sknetwork/hierarchy/louvain_hierarchy.py +10 -6
  38. sknetwork/hierarchy/metrics.py +3 -3
  39. sknetwork/hierarchy/paris.cp311-win_amd64.pyd +0 -0
  40. sknetwork/hierarchy/paris.cpp +2651 -2027
  41. sknetwork/hierarchy/paris.pyx +4 -3
  42. sknetwork/hierarchy/tests/test_metrics.py +4 -4
  43. sknetwork/linalg/diteration.cp311-win_amd64.pyd +0 -0
  44. sknetwork/linalg/diteration.cpp +684 -677
  45. sknetwork/linalg/push.cp311-win_amd64.pyd +0 -0
  46. sknetwork/linalg/push.cpp +1769 -1153
  47. sknetwork/linalg/sparse_lowrank.py +1 -1
  48. sknetwork/ranking/betweenness.cp311-win_amd64.pyd +0 -0
  49. sknetwork/ranking/betweenness.cpp +563 -557
  50. sknetwork/regression/diffusion.py +6 -4
  51. sknetwork/topology/cliques.cp311-win_amd64.pyd +0 -0
  52. sknetwork/topology/cliques.cpp +1729 -1110
  53. sknetwork/topology/core.cp311-win_amd64.pyd +0 -0
  54. sknetwork/topology/core.cpp +1755 -1139
  55. sknetwork/topology/cycles.py +1 -1
  56. sknetwork/topology/minheap.cp311-win_amd64.pyd +0 -0
  57. sknetwork/topology/minheap.cpp +687 -677
  58. sknetwork/topology/triangles.cp311-win_amd64.pyd +0 -0
  59. sknetwork/topology/triangles.cpp +437 -432
  60. sknetwork/topology/weisfeiler_lehman_core.cp311-win_amd64.pyd +0 -0
  61. sknetwork/topology/weisfeiler_lehman_core.cpp +684 -677
  62. sknetwork/utils/__init__.py +1 -1
  63. sknetwork/utils/values.py +5 -3
  64. sknetwork/visualization/graphs.py +1 -1
  65. scikit_network-0.32.1.dist-info/METADATA +0 -511
  66. {scikit_network-0.32.1.dist-info → scikit_network-0.33.1.dist-info}/LICENSE +0 -0
  67. {scikit_network-0.32.1.dist-info → scikit_network-0.33.1.dist-info}/top_level.txt +0 -0
@@ -212,13 +212,15 @@ class Paris(BaseHierarchy):
212
212
 
213
213
  @cython.boundscheck(False)
214
214
  @cython.wraparound(False)
215
- def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray]) -> 'Paris':
215
+ def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], force_bipartite: bool = False) -> 'Paris':
216
216
  """Agglomerative clustering using the nearest neighbor chain.
217
217
 
218
218
  Parameters
219
219
  ----------
220
220
  input_matrix : sparse.csr_matrix, np.ndarray
221
221
  Adjacency matrix or biadjacency matrix of the graph.
222
+ force_bipartite :
223
+ If ``True``, force the input matrix to be considered as a biadjacency matrix.
222
224
 
223
225
  Returns
224
226
  -------
@@ -227,8 +229,7 @@ class Paris(BaseHierarchy):
227
229
  self._init_vars()
228
230
 
229
231
  # input
230
- input_matrix = check_format(input_matrix)
231
- adjacency, self.bipartite = get_adjacency(input_matrix)
232
+ adjacency, self.bipartite = get_adjacency(input_matrix, force_bipartite=force_bipartite)
232
233
 
233
234
  weights = self.weights
234
235
  out_weights = get_probs(weights, adjacency)
@@ -17,7 +17,7 @@ class TestMetrics(unittest.TestCase):
17
17
 
18
18
  def setUp(self):
19
19
  self.paris = Paris()
20
- self.louvain_hierarchy = LouvainIteration()
20
+ self.louvain_iteration = LouvainIteration()
21
21
 
22
22
  def test_undirected(self):
23
23
  adjacency = cyclic_graph(3)
@@ -31,7 +31,7 @@ class TestMetrics(unittest.TestCase):
31
31
  self.assertAlmostEqual(dasgupta_cost(adjacency, dendrogram), 4.26, 2)
32
32
  self.assertAlmostEqual(dasgupta_score(adjacency, dendrogram), 0.573, 2)
33
33
  self.assertAlmostEqual(tree_sampling_divergence(adjacency, dendrogram), 0.304, 2)
34
- dendrogram = self.louvain_hierarchy.fit_transform(adjacency)
34
+ dendrogram = self.louvain_iteration.fit_transform(adjacency)
35
35
  self.assertAlmostEqual(dasgupta_cost(adjacency, dendrogram), 4.43, 2)
36
36
  self.assertAlmostEqual(dasgupta_score(adjacency, dendrogram), 0.555, 2)
37
37
  self.assertAlmostEqual(tree_sampling_divergence(adjacency, dendrogram), 0.286, 2)
@@ -41,7 +41,7 @@ class TestMetrics(unittest.TestCase):
41
41
  dendrogram = self.paris.fit_transform(adjacency)
42
42
  self.assertAlmostEqual(dasgupta_score(adjacency, dendrogram), 0.566, 2)
43
43
  self.assertAlmostEqual(tree_sampling_divergence(adjacency, dendrogram), 0.318, 2)
44
- dendrogram = self.louvain_hierarchy.fit_transform(adjacency)
44
+ dendrogram = self.louvain_iteration.fit_transform(adjacency)
45
45
  self.assertAlmostEqual(dasgupta_score(adjacency, dendrogram), 0.55, 2)
46
46
  self.assertAlmostEqual(tree_sampling_divergence(adjacency, dendrogram), 0.313, 2)
47
47
 
@@ -50,7 +50,7 @@ class TestMetrics(unittest.TestCase):
50
50
  dendrogram = self.paris.fit_transform(adjacency)
51
51
  self.assertAlmostEqual(dasgupta_score(adjacency, dendrogram), 0.682, 2)
52
52
  self.assertAlmostEqual(tree_sampling_divergence(adjacency, dendrogram), 0.464, 2)
53
- dendrogram = self.louvain_hierarchy.fit_transform(adjacency)
53
+ dendrogram = self.louvain_iteration.fit_transform(adjacency)
54
54
  self.assertAlmostEqual(dasgupta_score(adjacency, dendrogram), 0.670, 2)
55
55
  self.assertAlmostEqual(tree_sampling_divergence(adjacency, dendrogram), 0.594, 2)
56
56