scikit-network 0.31.0__cp310-cp310-macosx_11_0_arm64.whl → 0.32.0__cp310-cp310-macosx_11_0_arm64.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 (102) hide show
  1. {scikit_network-0.31.0.dist-info → scikit_network-0.32.0.dist-info}/AUTHORS.rst +3 -0
  2. {scikit_network-0.31.0.dist-info → scikit_network-0.32.0.dist-info}/METADATA +13 -3
  3. {scikit_network-0.31.0.dist-info → scikit_network-0.32.0.dist-info}/RECORD +100 -94
  4. {scikit_network-0.31.0.dist-info → scikit_network-0.32.0.dist-info}/WHEEL +1 -1
  5. sknetwork/__init__.py +1 -1
  6. sknetwork/classification/base.py +1 -1
  7. sknetwork/classification/base_rank.py +3 -3
  8. sknetwork/classification/diffusion.py +21 -13
  9. sknetwork/classification/knn.py +19 -13
  10. sknetwork/classification/metrics.py +1 -1
  11. sknetwork/classification/pagerank.py +12 -8
  12. sknetwork/classification/propagation.py +22 -15
  13. sknetwork/classification/tests/test_diffusion.py +10 -0
  14. sknetwork/classification/vote.cpython-310-darwin.so +0 -0
  15. sknetwork/clustering/__init__.py +3 -1
  16. sknetwork/clustering/base.py +1 -1
  17. sknetwork/clustering/kcenters.py +253 -0
  18. sknetwork/clustering/leiden.py +241 -0
  19. sknetwork/clustering/leiden_core.cpython-310-darwin.so +0 -0
  20. sknetwork/clustering/leiden_core.pyx +124 -0
  21. sknetwork/clustering/louvain.py +118 -83
  22. sknetwork/clustering/louvain_core.cpython-310-darwin.so +0 -0
  23. sknetwork/clustering/louvain_core.pyx +86 -94
  24. sknetwork/clustering/postprocess.py +2 -2
  25. sknetwork/clustering/propagation_clustering.py +4 -4
  26. sknetwork/clustering/tests/test_API.py +7 -3
  27. sknetwork/clustering/tests/test_kcenters.py +92 -0
  28. sknetwork/clustering/tests/test_leiden.py +34 -0
  29. sknetwork/clustering/tests/test_louvain.py +2 -3
  30. sknetwork/data/load.py +2 -4
  31. sknetwork/data/parse.py +41 -20
  32. sknetwork/data/tests/test_parse.py +9 -12
  33. sknetwork/embedding/__init__.py +0 -1
  34. sknetwork/embedding/base.py +20 -19
  35. sknetwork/embedding/force_atlas.py +3 -2
  36. sknetwork/embedding/louvain_embedding.py +1 -1
  37. sknetwork/embedding/random_projection.py +5 -3
  38. sknetwork/embedding/spectral.py +0 -73
  39. sknetwork/embedding/tests/test_API.py +4 -28
  40. sknetwork/embedding/tests/test_louvain_embedding.py +4 -9
  41. sknetwork/embedding/tests/test_spectral.py +2 -5
  42. sknetwork/embedding/tests/test_svd.py +1 -1
  43. sknetwork/gnn/base_layer.py +3 -3
  44. sknetwork/gnn/gnn_classifier.py +40 -86
  45. sknetwork/gnn/layer.py +1 -1
  46. sknetwork/gnn/loss.py +1 -1
  47. sknetwork/gnn/optimizer.py +4 -3
  48. sknetwork/gnn/tests/test_base_layer.py +4 -4
  49. sknetwork/gnn/tests/test_gnn_classifier.py +12 -39
  50. sknetwork/gnn/utils.py +8 -8
  51. sknetwork/hierarchy/base.py +27 -0
  52. sknetwork/hierarchy/louvain_hierarchy.py +45 -41
  53. sknetwork/hierarchy/paris.cpython-310-darwin.so +0 -0
  54. sknetwork/hierarchy/paris.pyx +7 -7
  55. sknetwork/hierarchy/postprocess.py +16 -16
  56. sknetwork/hierarchy/tests/test_algos.py +5 -0
  57. sknetwork/linalg/__init__.py +1 -1
  58. sknetwork/linalg/diteration.cpython-310-darwin.so +0 -0
  59. sknetwork/linalg/{normalization.py → normalizer.py} +17 -14
  60. sknetwork/linalg/operators.py +1 -1
  61. sknetwork/linalg/ppr_solver.py +1 -1
  62. sknetwork/linalg/push.cpython-310-darwin.so +0 -0
  63. sknetwork/linalg/tests/test_normalization.py +3 -7
  64. sknetwork/linalg/tests/test_operators.py +2 -6
  65. sknetwork/linalg/tests/test_ppr.py +1 -1
  66. sknetwork/linkpred/base.py +12 -1
  67. sknetwork/linkpred/nn.py +6 -6
  68. sknetwork/path/distances.py +11 -4
  69. sknetwork/path/shortest_path.py +1 -1
  70. sknetwork/path/tests/test_distances.py +7 -0
  71. sknetwork/path/tests/test_search.py +2 -2
  72. sknetwork/ranking/base.py +11 -6
  73. sknetwork/ranking/betweenness.cpython-310-darwin.so +0 -0
  74. sknetwork/ranking/pagerank.py +13 -12
  75. sknetwork/ranking/tests/test_API.py +0 -2
  76. sknetwork/ranking/tests/test_betweenness.py +1 -1
  77. sknetwork/ranking/tests/test_pagerank.py +11 -5
  78. sknetwork/regression/base.py +18 -1
  79. sknetwork/regression/diffusion.py +24 -10
  80. sknetwork/regression/tests/test_diffusion.py +8 -0
  81. sknetwork/topology/__init__.py +3 -1
  82. sknetwork/topology/cliques.cpython-310-darwin.so +0 -0
  83. sknetwork/topology/core.cpython-310-darwin.so +0 -0
  84. sknetwork/topology/cycles.py +243 -0
  85. sknetwork/topology/minheap.cpython-310-darwin.so +0 -0
  86. sknetwork/topology/structure.py +2 -42
  87. sknetwork/topology/tests/test_cycles.py +65 -0
  88. sknetwork/topology/tests/test_structure.py +2 -16
  89. sknetwork/topology/triangles.cpython-310-darwin.so +0 -0
  90. sknetwork/topology/triangles.pyx +7 -4
  91. sknetwork/topology/weisfeiler_lehman_core.cpython-310-darwin.so +0 -0
  92. sknetwork/utils/format.py +1 -1
  93. sknetwork/utils/membership.py +2 -2
  94. sknetwork/visualization/__init__.py +2 -2
  95. sknetwork/visualization/dendrograms.py +55 -7
  96. sknetwork/visualization/graphs.py +261 -44
  97. sknetwork/visualization/tests/test_dendrograms.py +9 -9
  98. sknetwork/visualization/tests/test_graphs.py +63 -57
  99. sknetwork/embedding/louvain_hierarchy.py +0 -142
  100. sknetwork/embedding/tests/test_louvain_hierarchy.py +0 -19
  101. {scikit_network-0.31.0.dist-info → scikit_network-0.32.0.dist-info}/LICENSE +0 -0
  102. {scikit_network-0.31.0.dist-info → scikit_network-0.32.0.dist-info}/top_level.txt +0 -0
@@ -39,3 +39,6 @@ Contributors
39
39
  * Flávio Juvenal
40
40
  * Wenzhuo Zhao
41
41
  * Henry Carscadden
42
+ * Yiwen Peng
43
+ * Ahmed Zaiou
44
+ * Laurène David
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: scikit-network
3
- Version: 0.31.0
3
+ Version: 0.32.0
4
4
  Summary: Graph algorithms
5
5
  Home-page: https://github.com/sknetwork-team/scikit-network
6
6
  Author: Scikit-network team
@@ -23,8 +23,8 @@ Requires-Python: >=3.8
23
23
  Description-Content-Type: text/x-rst
24
24
  License-File: LICENSE
25
25
  License-File: AUTHORS.rst
26
- Requires-Dist: numpy (>=1.22.4)
27
- Requires-Dist: scipy (>=1.7.3)
26
+ Requires-Dist: numpy >=1.22.4
27
+ Requires-Dist: scipy >=1.7.3
28
28
 
29
29
  .. image:: https://perso.telecom-paristech.fr/bonald/logo_sknetwork.png
30
30
  :align: right
@@ -118,6 +118,16 @@ the `Journal of Machine Learning Research <https://jmlr.org>`_:
118
118
  History
119
119
  =======
120
120
 
121
+ 0.32.0 (2024-03-28)
122
+ -------------------
123
+
124
+ * Add Leiden clustering algorithm
125
+ * Add k-center clustering algorithm
126
+ * Add functions to detect and break cycles
127
+ * Add damping factor in diffusion
128
+ * Fix F1 scores
129
+ * Remove hierarchical Louvain embedding
130
+ * Get clustering coefficient for directed graphs
121
131
 
122
132
  0.31.0 (2023-05-22)
123
133
  -------------------
@@ -1,54 +1,56 @@
1
- scikit_network-0.31.0.dist-info/RECORD,,
2
- scikit_network-0.31.0.dist-info/LICENSE,sha256=zKbJMpbSKgGEUaNr_fKgvJrvw_3W4gnJs5XdLCK5Sxo,1622
3
- scikit_network-0.31.0.dist-info/WHEEL,sha256=oMFc9-KjvMLKiqM40kAaafsHJktZGp0eIX_k197YDRk,110
4
- scikit_network-0.31.0.dist-info/AUTHORS.rst,sha256=OnehQzy1o1V6_J_Rv219qhNTxfCMgQQNy1spqXYDi1I,880
5
- scikit_network-0.31.0.dist-info/top_level.txt,sha256=fkwspWQ9B3csqb5ENEOoVciRY6XftnMuz4MvTDQeSsg,10
6
- scikit_network-0.31.0.dist-info/METADATA,sha256=6fJcaPPliiTitlF4gHRTgBi54aV93SLeuMhYvrMx9NU,14022
1
+ scikit_network-0.32.0.dist-info/RECORD,,
2
+ scikit_network-0.32.0.dist-info/LICENSE,sha256=zKbJMpbSKgGEUaNr_fKgvJrvw_3W4gnJs5XdLCK5Sxo,1622
3
+ scikit_network-0.32.0.dist-info/WHEEL,sha256=YryPFYalc7zt-wi82wLNxE5k4S4dtsQOnz0S1sKWvLs,110
4
+ scikit_network-0.32.0.dist-info/AUTHORS.rst,sha256=OZUa1KqaPu_waik7LZVTdyXcvmQWkD3M3HBDVGEtkG0,924
5
+ scikit_network-0.32.0.dist-info/top_level.txt,sha256=fkwspWQ9B3csqb5ENEOoVciRY6XftnMuz4MvTDQeSsg,10
6
+ scikit_network-0.32.0.dist-info/METADATA,sha256=9WVmakDcqXwL8kwVUdv81YsSWyghTQUtkrKPTcENiC8,14311
7
7
  sknetwork/log.py,sha256=ORInAVh_cWIfxwaFWSblSRxwT-jG05XPRnYTTAHSKy4,443
8
- sknetwork/__init__.py,sha256=xbMEu2NjqgkqHcliQ3zdHiXOG5dwlTKE1U4DJFSiFzg,533
8
+ sknetwork/__init__.py,sha256=4IL5uWYJW0OGiWzBN8VYJV77yZZkzHhAenwjX5pk26Q,533
9
9
  sknetwork/test_log.py,sha256=V4t6Ggi_fh8px5Iq7CDLlJvbXfz24macQ43Ss0tPb5I,319
10
10
  sknetwork/test_base.py,sha256=PB_kJ7cNvhBXmlL-KzyLu2hf6mG7b1OQY759aYplW4k,912
11
11
  sknetwork/sknetwork.py,sha256=VYoI-gwqwBKPx84cA0KnYDRofrgIXs8xtASD2nu5fE0,44
12
12
  sknetwork/base.py,sha256=XJJ6MicVcSiQBWQ9fYlmUJYkXq0PRldQzExhZKuaFBo,1951
13
- sknetwork/classification/metrics.py,sha256=bzRAySrjOie8-DxMYV6Wyyhg90y9RdjHTZM8kB5aK58,6807
13
+ sknetwork/classification/metrics.py,sha256=kn6rkcn6r9jOsF7_bhP4SX20hrgydiA2UfCTdM12dKA,6802
14
14
  sknetwork/classification/vote.pyx,sha256=Bbf74XCPH8uYDP-SrXRaA7k6Ax2x-wDzpbHMeg9le7A,1584
15
- sknetwork/classification/diffusion.py,sha256=CXN49wXE12N1FasXWrtc6xAMZfBvxMyZG8My3-vkL2o,5021
15
+ sknetwork/classification/diffusion.py,sha256=zE3_TRi05GgQU9TqMSuMKieVR1srnZONnpGLCUrnHWQ,5537
16
16
  sknetwork/classification/__init__.py,sha256=yVv7wSuUfNLxeNBF-AhWCJys3C-XatPtMzi1wyp9Bz4,475
17
- sknetwork/classification/base_rank.py,sha256=LOuN6ppcuJctiYyknG11YrDHuWptespgrn5-RPnj7w4,4527
18
- sknetwork/classification/propagation.py,sha256=POCgyBOGakN5QOHbbpylsogMDCMdgC-F6BJCJwEnnW8,5470
19
- sknetwork/classification/vote.cpython-310-darwin.so,sha256=IkdCyevssxvcVb64HGsM9X-h0_YutCTTspQvIh3oO6k,194807
20
- sknetwork/classification/pagerank.py,sha256=UMgszqDn4klrkifUTcMJdkf_l3iBir94KYux0j26TG8,2423
21
- sknetwork/classification/base.py,sha256=CZqF4ZhHrRksUA1uFtZmms3ahHEIKFd2ImQk8wJlwrc,4282
22
- sknetwork/classification/knn.py,sha256=IWn1M7BE5Q2V298twfdsT7yn30vOwPvj_IGVglYbNtE,4996
17
+ sknetwork/classification/base_rank.py,sha256=RGElYD6PuP4nhnenNnzpOiBojs49Afg5ahjBFEi566I,4522
18
+ sknetwork/classification/propagation.py,sha256=TqTNqnuZjelX3A7Ghw3M6k8u9fOh-Ag_eBh6FN0f5gI,5754
19
+ sknetwork/classification/vote.cpython-310-darwin.so,sha256=1uSKtt1VjwnK7SR8K7WwOu21Tq8iRSYLBWAEHE5lbk0,221303
20
+ sknetwork/classification/pagerank.py,sha256=CBUeCqZisr6s5lh3VXYWA6rbiPdLyNzuSMbjazy80eA,2586
21
+ sknetwork/classification/base.py,sha256=WS-QHh4553Dr1VwJqjggSqO6hHFIAs50oPah_L23eFo,4290
22
+ sknetwork/classification/knn.py,sha256=7tiXPNOzRLPCAoELXWtqXdnPUIIDqtGdku3r1KGiE8Q,5306
23
23
  sknetwork/classification/tests/test_metrics.py,sha256=eBs-5uAEz2s8gukMyfhQ07GSFoyvxtsslLuc6VgUxBU,2303
24
24
  sknetwork/classification/tests/__init__.py,sha256=sy9uRiPhYG2i7uqM3P07-VUf4UcZEHeOoH9BvKCpU3s,31
25
25
  sknetwork/classification/tests/test_pagerank.py,sha256=5IJpYqnz31cWT0iXjTdo1xE8Kfj3YTK0cSZnnTlyJBs,620
26
- sknetwork/classification/tests/test_diffusion.py,sha256=s7mQv3DYzIWTLcfdi6MzMp9Hd58KMTlSzntekkPdkIU,2749
26
+ sknetwork/classification/tests/test_diffusion.py,sha256=tp9qNYBcaI9T1HCC6bqMpG_-eM-na-fGNeGDzMZTu2A,3183
27
27
  sknetwork/classification/tests/test_knn.py,sha256=sl5kxsaca3GUTvfdx6B9BRJ1SAdoDvxFOg9VyoA20IU,784
28
28
  sknetwork/classification/tests/test_API.py,sha256=FA1d0NQz3vaNVVeFbhEljPe0fD_ryRwVP4G1hdv-u_s,1124
29
29
  sknetwork/classification/tests/test_propagation.py,sha256=m0Jyq59k3taoikyBxcZGILzG7dWQV3SGE45MPm0RPao,850
30
- sknetwork/visualization/dendrograms.py,sha256=wIrGGQS37TP8gLmYpwg5p8f2NJrOu6aDR7KZ3wNmQKA,8051
31
- sknetwork/visualization/__init__.py,sha256=yH3HnNy_0TVZ1yJVXZUDoB_XOnYY9C0DfLa4EHCk20s,158
32
- sknetwork/visualization/graphs.py,sha256=cMuD3hGfE5vGclXYDwxcLn_VsCTONUrSxVs9o_dBerg,31984
30
+ sknetwork/visualization/dendrograms.py,sha256=m4FbBfvJUW_gXccZWF8OWxAsbhsEcKa1fXNNCp_y4MA,9901
31
+ sknetwork/visualization/__init__.py,sha256=8rLiR13WHSWLsEVTTL6lzOZms0LZf-ZujBqOI5VnKxk,216
32
+ sknetwork/visualization/graphs.py,sha256=7iNHW3NJ7kxLw2y3SoEY_rmyCfmxLPmi0tCJ2dkS3q0,41175
33
33
  sknetwork/visualization/colors.py,sha256=DjcXt9aMgLan7bRg7TZI8m_8SLWQOZ-g2HoguB1-3qA,2509
34
- sknetwork/visualization/tests/test_graphs.py,sha256=Yqf9lHPOwwdrKQ6ljv5GNwKRHaJrs4_wIiK3k3zNJak,8798
34
+ sknetwork/visualization/tests/test_graphs.py,sha256=g2YPJn9m8wD-UHZ_BL37xuJqE7ygOx3EztKLVVqphYk,9421
35
35
  sknetwork/visualization/tests/__init__.py,sha256=yOVrqUD9UuI_HdYuqRP5PS7QhS-pO4RE_Ls5PLiIC_w,30
36
- sknetwork/visualization/tests/test_dendrograms.py,sha256=LGPYvTFGBFvIw3cohWF3pUHFlftmOB0Ywh9vD1kLFH8,2402
37
- sknetwork/topology/minheap.cpython-310-darwin.so,sha256=EBqRmb5Xojpk5eZ5EZ1SP4_8D24-2hu6MzoF5lOw2Zk,174890
36
+ sknetwork/visualization/tests/test_dendrograms.py,sha256=UuS3VZ5XnV1u5BtW-QKbFv0wavllQpbgtsOIe5XvTlg,2466
37
+ sknetwork/topology/minheap.cpython-310-darwin.so,sha256=MRFuAzpJ0N3C9yyFr0TSqtlL_TCsusjqgsy_Ocurx_I,204122
38
38
  sknetwork/topology/cliques.pyx,sha256=BuezL9-zJOicL1zffkpcf8uIEgqhik6dgK_agXX4gaU,4510
39
39
  sknetwork/topology/minheap.pyx,sha256=iFWpXPYSAmWjYphYByAM6auUj1XHly6QovZvuy2Lpyc,3310
40
40
  sknetwork/topology/weisfeiler_lehman_core.pyx,sha256=fi0rRrXHVZuIQYzPDcPCamCRQLKquchjV3N9dNuQ1Pk,3034
41
- sknetwork/topology/__init__.py,sha256=T9eHqlSgsAIjh4KSUkI8L0d8DrGYaSNkEPvRhxJFU5U,355
41
+ sknetwork/topology/__init__.py,sha256=T2W2cWwcUdhfA86VuZAZqksbrgct4hiyp0HuizEnLg4,534
42
+ sknetwork/topology/cycles.py,sha256=EV2UMDktEGdJxEmAZyyjBMttJ6DqYvvfZ6mqwIQqFu0,9003
42
43
  sknetwork/topology/weisfeiler_lehman.py,sha256=ACJDAmZbwDrZAvO-LsHnRaef-8KX7esM1LxVUglXtLw,4308
43
- sknetwork/topology/triangles.cpython-310-darwin.so,sha256=tm2P-5U0FXGd7SmkQj1zIt8YxOQ0C2TjKyGCoztubi8,81068
44
+ sknetwork/topology/triangles.cpython-310-darwin.so,sha256=1upwo-5TOvVo6x6HCB_MId60LdUmlXBqdlXYM3yK90g,108668
44
45
  sknetwork/topology/minheap.pxd,sha256=Y_oRh8H-sNZYAWv0XM9T-ZLzYBhb5TrBM4VjlH-ZqPQ,564
45
- sknetwork/topology/structure.py,sha256=u3oV1uQACQ-uLaq12jOHmVVPlA5_FlD5WEAVSEeDACc,8618
46
- sknetwork/topology/triangles.pyx,sha256=TYF-zkhp6A-epK8XIPNIBN7uxN-e1xiUQ23YQlZbbZ4,4143
47
- sknetwork/topology/weisfeiler_lehman_core.cpython-310-darwin.so,sha256=8c4wNfkeyHjHyI-xieRefY4ucGiNoihJb85Qtq0jYC0,195641
46
+ sknetwork/topology/structure.py,sha256=CDfN7SL70wTHm2HPfqd7ncsZEaV1SQO3tJKYl1CdtNI,7285
47
+ sknetwork/topology/triangles.pyx,sha256=JOkA9k0CQTsT7zdPaEoW7-PdHYuoXHsB0XSuPKFLJSI,4349
48
+ sknetwork/topology/weisfeiler_lehman_core.cpython-310-darwin.so,sha256=3Wgjds-wljKnGvkEfgPcwTAtq33poPkLAhAMdvSi2Zw,222185
48
49
  sknetwork/topology/core.pyx,sha256=HwGbC84p9F9fkEw8ouNNMQtlYrAoEWhQS5hU9Cf1h94,2465
49
- sknetwork/topology/cliques.cpython-310-darwin.so,sha256=asnkzzk3PeEAO3NY_b11nhEsQJwUVUyT0O0P1e5s1SI,214122
50
- sknetwork/topology/core.cpython-310-darwin.so,sha256=iK77ztjBi9ACvRz45YoWjpPA5oaG5L5YzzFAXuTNOA8,191047
51
- sknetwork/topology/tests/test_structure.py,sha256=SAbgm_XjshTb5Jao1OOxz8STEa8X9WJmcTm4dxcwBCo,4635
50
+ sknetwork/topology/cliques.cpython-310-darwin.so,sha256=ApV7upBMEk60lgzyZES7SJbqCjb0iGxy0jRTSjAIbS0,259354
51
+ sknetwork/topology/core.cpython-310-darwin.so,sha256=C5oTuXg0C_-GmrdK8Gs2NLv9SU-Ymi-EYwxoDts46wI,218039
52
+ sknetwork/topology/tests/test_cycles.py,sha256=KZzMKS5ILfC_J0Fj5MFlEOL7Z9nOnlRfo4TnGdXEPWY,3150
53
+ sknetwork/topology/tests/test_structure.py,sha256=CzcZ1LxV-mI_buxz6LcTeCy3h5ofMLfOu2HUHwNSMi8,3948
52
54
  sknetwork/topology/tests/test_wl.py,sha256=EJY_4xTi_-qzFsqZJkgnwLteoakdkpRAczzdMCGeXe0,2218
53
55
  sknetwork/topology/tests/test_core.py,sha256=Zh9IYHGfqDqIlLycucLzqZbHvYmU-IB-J03-jlikPcI,551
54
56
  sknetwork/topology/tests/__init__.py,sha256=9lKrPX4BnSJbK-VlDi9TsmAgDwqF3H423KhJ1u1Uaos,25
@@ -59,104 +61,108 @@ sknetwork/ranking/__init__.py,sha256=UeYw8y0HFoBnPziqnVYXSt8jqFtkDgkCCMPhYTEIaF0
59
61
  sknetwork/ranking/closeness.py,sha256=pETMD8uaXfADZhmzVaH4YIGX57S2vvhzVInONaAwBUM,2840
60
62
  sknetwork/ranking/katz.py,sha256=uPyXkEL73_6MS4dP5XTSVSIrD5h5QJipVTVEa0L_y48,2535
61
63
  sknetwork/ranking/hits.py,sha256=L39a9Ze3ITUbikmNhA_Lx-V5s_RQr0XnNkOsIgG8m98,2761
62
- sknetwork/ranking/pagerank.py,sha256=bfbQbjoLXo2PnEoZ9ldScUMRm9jcvNmyW4jFlCXNQNs,4680
63
- sknetwork/ranking/betweenness.cpython-310-darwin.so,sha256=MtVTpU96mdv5HaapCFyW9dq6ehvqueDM7NB7H8bK44U,127438
64
- sknetwork/ranking/base.py,sha256=DMamQuKwo1-9LURshLGr5hrZkbvmmNmW1G-8r_mbX3c,1441
64
+ sknetwork/ranking/pagerank.py,sha256=Qt2SOUoLO76JVDnT4-x-b-hah9IlaHECsYNu45AnpY8,4749
65
+ sknetwork/ranking/betweenness.cpython-310-darwin.so,sha256=5-x9ZZu9L7S3nwZgRc-T6KbOc_gEVe117b2Mi6ijY3A,130158
66
+ sknetwork/ranking/base.py,sha256=Jo9LBK3TfXiYdxYqSmfeVC8O2D6fA5L-SRzQh3eqtnA,1512
65
67
  sknetwork/ranking/betweenness.pyx,sha256=Pq9EqOHV0P8TDN_w9siP3h8HyechaAErysNwz0JT0ow,3087
66
68
  sknetwork/ranking/tests/test_postprocess.py,sha256=jPLJKJYEltFpY2uct0JyJEkD1haOyNU8h_1KwiLMgZM,703
67
69
  sknetwork/ranking/tests/test_closeness.py,sha256=ttBC8L_J1YDLCWhTIPhSFxu8jWuOWl_vupHFFaA_NP8,823
68
70
  sknetwork/ranking/tests/__init__.py,sha256=ZVL3kCN-qV5ThJU58iaMvJKSIkZ7ke7liLtLwI4TCHY,24
69
- sknetwork/ranking/tests/test_pagerank.py,sha256=DEXQLLlw7j7Z1FPVfuXa3cyIbRFgCyg2xncQM-H7HCE,1927
70
- sknetwork/ranking/tests/test_API.py,sha256=7xpdloD33QBhCsVmlr9A79TWxyB3SQVrVxpPCMlkwW0,1111
71
- sknetwork/ranking/tests/test_betweenness.py,sha256=zbkE8uIXcYUCqf40WKLBiLR2pXw6RKCNcUUmrs6wJjw,1137
71
+ sknetwork/ranking/tests/test_pagerank.py,sha256=5WHev0-d5nTOg6AEzIZyCmWSieTO3YNLNO2kB6RTYWE,2243
72
+ sknetwork/ranking/tests/test_API.py,sha256=PZ4Q5X1WT1HSAojZX72fUm4o9Y0PwocewJEoC1pfgMo,1003
73
+ sknetwork/ranking/tests/test_betweenness.py,sha256=8XA1ycLQQ7-Cm3CBfkcSDQOvD6xagAIP1--mPe9VFzo,1135
72
74
  sknetwork/ranking/tests/test_hits.py,sha256=zStzrWZ-pv2Nsd-pB282FgW3KAn1TyKjz_l85tJaPJ0,491
73
75
  sknetwork/linalg/diteration.pyx,sha256=gk9W6SwIxXgmjQujXWBUIoM_OwevjE3jTzFrIEkGnWI,1384
74
- sknetwork/linalg/__init__.py,sha256=xYHRDB5UlzgnzX2Ikr4eV_eu5k7fkObUwfZHXoHA9Mg,536
75
- sknetwork/linalg/diteration.cpython-310-darwin.so,sha256=DOKdNBz90gLSir6evAzoCz1apxXWcL_S5oaGQfZXlMw,173917
76
+ sknetwork/linalg/__init__.py,sha256=awBDY2wWiO40L5eED3H8K1BM8qtHz7aQRv1p3PcSK94,533
77
+ sknetwork/linalg/diteration.cpython-310-darwin.so,sha256=zjedkIb0tU8UFK43h8Ext_bXR7b0mOQ_1XbPfpjp3Jo,216973
76
78
  sknetwork/linalg/laplacian.py,sha256=_gQr8YLqMUtK_IMNgvJoQX7-uODVlvCVmc-oTsgw7MA,401
77
79
  sknetwork/linalg/eig_solver.py,sha256=yq_prP5p1jbALby69wkzzH0vYKc1btmRQoiVUtTh-eA,2700
78
80
  sknetwork/linalg/push.pyx,sha256=caxCZa5h9zsHhxJgDBaaetqpB0wUbFLdOUwHwj0q_t0,2358
79
- sknetwork/linalg/ppr_solver.py,sha256=DkGApQHNkCkVIidhxmjidyc58oHT0sgRa_C4IehxjE4,6536
81
+ sknetwork/linalg/ppr_solver.py,sha256=mQkCnik-vvv_oFa9n1vtMzxgvi78qW-QQONdcmC9CXA,6533
80
82
  sknetwork/linalg/sparse_lowrank.py,sha256=LUhbqa01p51SYhoIb2Dmx2b9fMc-iOu69CAVHscR2Xs,5028
81
83
  sknetwork/linalg/basics.py,sha256=8AFph_1G5SZP_24jrIv6qIWooO0UMglL4jMgx3ZdYIQ,1142
82
- sknetwork/linalg/operators.py,sha256=zdVhiXdp40kvl2UNNPoeHiDHCKDwVqedDF458qfIETo,7435
83
- sknetwork/linalg/normalization.py,sha256=NwL0esJzXHaLBGcsPaTCnMYyismqnQ_uRacTE-3pOEM,2340
84
- sknetwork/linalg/push.cpython-310-darwin.so,sha256=v9H6fYJWQx_CP5ThZzEIOj0-3-xnAN1mxWuNnxoCWyU,195431
84
+ sknetwork/linalg/normalizer.py,sha256=kOFDPPdiGqG-KcWNiRwbS_y_nmw5fTKYTvuj_x8yBd0,2473
85
+ sknetwork/linalg/operators.py,sha256=fxitao4UYW4Hq7B258T_cAq2H3R2FN1-mwdy138w8fE,7432
86
+ sknetwork/linalg/push.cpython-310-darwin.so,sha256=s7RW9RZoKsjgPxPEWR86WbL5yJQ7Nwj5kzjBcs1tuGU,237703
85
87
  sknetwork/linalg/polynome.py,sha256=_dP9Nu_6XCV0-WEQJ7E5nG6pxZWMtbj-LREu0vtxeWk,2125
86
88
  sknetwork/linalg/svd_solver.py,sha256=vhcXwCsOar0cYDPZo7IF_ulRDsGGvZzePIeSpSCVgLk,2681
87
89
  sknetwork/linalg/tests/test_svd.py,sha256=eLRmSiHt8uWzknImZtRSZmJC8OX0YDgUt9-8PePc3OA,1285
88
- sknetwork/linalg/tests/test_operators.py,sha256=XParaYd5S8Ky1m7bU4U_ImQuLDXRC49SMUt2ypW3Gag,3109
90
+ sknetwork/linalg/tests/test_operators.py,sha256=l_pBF7JZhjUSNfTReDX-lN2nA7HU7mkz7dznJ8I6lrY,2919
89
91
  sknetwork/linalg/tests/__init__.py,sha256=l6yw2Ls1ndhVVcSYc059kAjQ2-VoDGZXxnBaglFZ4zo,23
90
92
  sknetwork/linalg/tests/test_sparse_lowrank.py,sha256=LEDo6DChembm3xQ-vjeqqZi0ugWx7piucR9_LdDecrI,2276
91
93
  sknetwork/linalg/tests/test_polynome.py,sha256=VYru9RlUIIN6dKNOiitSElPQqIxWI7mqx3dR5zd9Nv0,977
92
- sknetwork/linalg/tests/test_ppr.py,sha256=IKxna1-txZm9LntGjDMxTZqslFhNWQXjRY3RjCex6pw,2089
94
+ sknetwork/linalg/tests/test_ppr.py,sha256=Bh1n7W3We2N8u1RIWPyE5QQGE7esnNoUOLLRCL8Zye4,2093
93
95
  sknetwork/linalg/tests/test_laplacian.py,sha256=B6UhJOmYUdNlXwNoxLLtb--nv9mx96Orl-W1Vl6PLyM,434
94
96
  sknetwork/linalg/tests/test_eig.py,sha256=lUAgo4UfWuuSG5DhSk5SIT7ToLDgPG-5JCgmOe_M7Vw,1504
95
- sknetwork/linalg/tests/test_normalization.py,sha256=VpgE0oSD3SOtvAsOOefrByh1KJ9Y8MK-gJTvpX7_5JA,1104
97
+ sknetwork/linalg/tests/test_normalization.py,sha256=nASuMYxKcsWj3gk9DF5uPKYOw93oJ-UQUWi99Fw3kmE,887
96
98
  sknetwork/hierarchy/metrics.py,sha256=_wYGKx_VDE_sfbg-uUEFMhOjSLFqzC8rFHjJo1hdVL8,8046
97
- sknetwork/hierarchy/paris.pyx,sha256=YigfoM0PblWm0naMgTn3Ko_Ob-PDMJhNwLpGrY5qTs8,11600
98
- sknetwork/hierarchy/paris.cpython-310-darwin.so,sha256=fiq_Lg1kPJ1LQW9phNmg7uQkTI46HJ5BL8GCf9hFVi8,281384
99
- sknetwork/hierarchy/postprocess.py,sha256=pKUC6GGuRVEMK659RIkgmdf4ulOgRqcrJr3Kg5RIhvY,11963
99
+ sknetwork/hierarchy/paris.pyx,sha256=10Fu048FPklcgYiLmMKWpRW87UY04ubU0NpjESTOsLA,11683
100
+ sknetwork/hierarchy/paris.cpython-310-darwin.so,sha256=MbwX9fcUR-tIs1R-auIbeL_4WjruT_2r8Q7mP3jJUfg,302728
101
+ sknetwork/hierarchy/postprocess.py,sha256=d1Fll3eqDIjiMf1c5nGuKF6I0fN93elnglkp59LARGU,12072
100
102
  sknetwork/hierarchy/__init__.py,sha256=YgE2eqnwS8Q2NWP9pNY-M1bpdxRn5-C-CdykydNW7iM,412
101
- sknetwork/hierarchy/louvain_hierarchy.py,sha256=j97kUvffRUoR7eNQAS5LFoZ8MbMpLn4A3WaHahiYwSY,9103
102
- sknetwork/hierarchy/base.py,sha256=4f_XhzeUPNxxeN9_l7-IY4_ahuRg41iGMGu0Prx69rY,2022
103
+ sknetwork/hierarchy/louvain_hierarchy.py,sha256=YfwhhEe1eL7DBbs0t1-a-vdzFB2xA5LXh0VT9OL-jus,9558
104
+ sknetwork/hierarchy/base.py,sha256=MoxBiSsEJOq77YmXj_bpf4vUiPLSpQn8fnUX7YIqyd8,2693
103
105
  sknetwork/hierarchy/tests/test_postprocess.py,sha256=OSrWE0gT0AcPI4LKmUL-Blfg5ErxnjS3d4rPNnA63_Y,2209
104
106
  sknetwork/hierarchy/tests/test_metrics.py,sha256=UydXtXgGud9MgTKT4l_j7BplKToO2cQKuoGvkBPirAw,3160
105
107
  sknetwork/hierarchy/tests/__init__.py,sha256=l2HHDiDLpoTQlwzh1mtCyp6bS8RxBdJK2DP1FGiQJMY,26
106
- sknetwork/hierarchy/tests/test_algos.py,sha256=VVIO-K7df58RNrlqB6olkwZKdvBwASiEINFmzadkVFg,1143
108
+ sknetwork/hierarchy/tests/test_algos.py,sha256=xMt2xzAYEm6MuK-8OKOqBwZS89aJspX2tr7T6QMHz6E,1361
107
109
  sknetwork/hierarchy/tests/test_API.py,sha256=tLF-jLsfM2OFqbyVHK1o9jXVW_1PbTkMcxkAXuGjMO8,720
108
- sknetwork/path/distances.py,sha256=t8OogyM_LHs_f9d8T3nS0tFoCd-WBkacFn8jrcdNXFg,3354
110
+ sknetwork/path/distances.py,sha256=8NJeL14UpGudTFCgQJaNDOXs2-aSHLCl5LHXexF_xuQ,3568
109
111
  sknetwork/path/dag.py,sha256=Se5LSgQi-RwA-nXbJ1l_upjKw_MNIckeT_dh3TYWl6w,1668
110
- sknetwork/path/shortest_path.py,sha256=wDyt7WDzgWpjulrITC4NZl536rvRZZHMjf4G2WsLsvU,2448
112
+ sknetwork/path/shortest_path.py,sha256=_trQS__X71HQOOBXu0QTlzfOgb2ydoy-KooIKjIkpvs,2450
111
113
  sknetwork/path/__init__.py,sha256=OQ7dWwlncIIsPo5kQu2akUhk_m73vQuF17LaH0siqo4,222
112
114
  sknetwork/path/search.py,sha256=__63FqXFqhNTSyTGYj4yYx8ZDoew0_uCHHWhJlrIRoA,776
113
115
  sknetwork/path/tests/test_dag.py,sha256=EYyghTXbHRr1Ia-8KoXoyumIFD_6q6bZx5DDcaa-ODQ,938
114
- sknetwork/path/tests/test_search.py,sha256=jVrPdgTpl3ZJKSz_JBHHLTXWux8NXDpyDV5aNvvOrnY,1203
116
+ sknetwork/path/tests/test_search.py,sha256=mStK4ZiN1hVdZr8Q9R78AFBouuA9RIhnQ4nwGrfCjCY,1199
115
117
  sknetwork/path/tests/test_shortest_path.py,sha256=Uwq4CzzjnMV6VsTlzgKnn_GwqUr2Cc0kZTgFtv_UisQ,1382
116
118
  sknetwork/path/tests/__init__.py,sha256=_COAjci7RJ_XtBDGwy5aOgZ9dPSQH3j7d6qMlLHs55o,28
117
- sknetwork/path/tests/test_distances.py,sha256=0PFPr0ekAp17BOVBKSaMaWAuLFHvaBRphkpw8ofPrwo,2272
118
- sknetwork/embedding/random_projection.py,sha256=4GFmGgM9apkuZgY15HYQXCmqmbE_CeR-soPB9FHOFdE,4920
119
- sknetwork/embedding/__init__.py,sha256=Kea-GFyzY5aJ2CZuaOBQMVU7ynoWZ5rumhAIhaD51LE,470
119
+ sknetwork/path/tests/test_distances.py,sha256=zItygI9cLMrQonLhOubvorElU5qaZumFfjMethx4rDw,2695
120
+ sknetwork/embedding/random_projection.py,sha256=NuJoPHYLjdb8dUdKOwGr7Q6lGZBSPbwmMuuY6CRzgoI,5002
121
+ sknetwork/embedding/__init__.py,sha256=ASeieiOc46EuKMUArW3kt_WJbsLxUzz0BVYycmag5Pw,410
120
122
  sknetwork/embedding/svd.py,sha256=0q6a2EwnbXGxzsDpmQu0HUS_9e_VwA0lMKqes2e-77I,14734
121
- sknetwork/embedding/force_atlas.py,sha256=hGanDDS7G6CbhwN72QB_kBg8zMSbuDZt_Frj_k6txUw,7429
123
+ sknetwork/embedding/force_atlas.py,sha256=amYr0E08F8TDoIxjPx3lx35JFwEP41jc4KKed1PQeZs,7452
122
124
  sknetwork/embedding/spring.py,sha256=5fyHQzmIp8gY9DdI-DFvMc37mjMb64bs22ZZZ9YFDXM,7151
123
- sknetwork/embedding/louvain_hierarchy.py,sha256=b03u4M847PpwI4-Wf7beKCUZ8HwnGDm-uNn5ukmofc8,5708
124
- sknetwork/embedding/spectral.py,sha256=2nNw2GISQxFKzjnecFCmgZeM-Z1_GElbkRHeZjPKW5I,8121
125
- sknetwork/embedding/louvain_embedding.py,sha256=qlqzaRPt9Mbm_jGjqe2y4pYRfMQ5r4h1T8tcMO3hDwQ,6953
126
- sknetwork/embedding/base.py,sha256=r9n04fEY0nq2Fw5wls1z5zjgVJI2QVji5c08FtBjlvk,2761
127
- sknetwork/embedding/tests/test_louvain_hierarchy.py,sha256=ahSjrgvScYulAk-IZ7KGysvasJSB4UPRGfIRV2ivWIE,734
125
+ sknetwork/embedding/spectral.py,sha256=ds91hH6JFBsfLcTS8QEz-gP5tZUcrrGqjfnL-xMIdU0,5548
126
+ sknetwork/embedding/louvain_embedding.py,sha256=QYKxrTNLEm69PS7D0YR_k3diZQKBt6PT1T6N3xPGrMU,6950
127
+ sknetwork/embedding/base.py,sha256=D-UkpCOTw_PAjs1YFyq7jdrn3Akx4yjl5nxN2iMnd0Q,2590
128
128
  sknetwork/embedding/tests/test_spring.py,sha256=tanArc4vstNZ36CLr7S8uEVdXX0iP2K9UWKQLTcsPsQ,1643
129
- sknetwork/embedding/tests/test_svd.py,sha256=RbLhTzcy692aMqhtRYUEQp11LaGTOrCGZTLtaAnyoeQ,1175
130
- sknetwork/embedding/tests/test_louvain_embedding.py,sha256=UA5W8mfO0gqq1hH1MWc6DPHhFUK8ZeoaY9jdYY_TRww,1156
129
+ sknetwork/embedding/tests/test_svd.py,sha256=Yg9qgSdPPZR4n_DYN5bXZMJLIEz1tny1rirsPL8ejQc,1195
130
+ sknetwork/embedding/tests/test_louvain_embedding.py,sha256=GtHU8vt4X8nNLLVol08Ot4NgbMcDzQEvWcm7qWbN_BA,825
131
131
  sknetwork/embedding/tests/__init__.py,sha256=QkDQtTJReK7Ldp0Y4f5-tbTdcp224r1AF7jU26alSgQ,26
132
- sknetwork/embedding/tests/test_API.py,sha256=zgUHmIMEliSezL_44VEttuofdUk22WYW1eJDDhLlars,2579
132
+ sknetwork/embedding/tests/test_API.py,sha256=2c0O8S0u0hF23iys7QLHJJOz2W79rHMeEO2OMDQbglk,1489
133
133
  sknetwork/embedding/tests/test_force_atlas.py,sha256=-YM4HSF5Nvpm8e4SoCHiA2o7yAkm0h_ys7GRaJ1wloI,1120
134
134
  sknetwork/embedding/tests/test_random_projection.py,sha256=2bUOCw66tUKP775pGPd5STj0UmRuwvBtI5CgY8HeHKI,1193
135
- sknetwork/embedding/tests/test_spectral.py,sha256=2jPXfvI_HQDIQKzyioaSIiK8sdXopOscoy8UxJ8sPY4,4264
135
+ sknetwork/embedding/tests/test_spectral.py,sha256=CH-F8fM3cYoxhjpob1m7wZV-tEr8XFD6Lxa_bFsLv3A,3897
136
+ sknetwork/clustering/leiden_core.pyx,sha256=7HGdeX6iMnSs52Px44-__kN9JhHueaQUvCmrkIGTalg,4300
136
137
  sknetwork/clustering/metrics.py,sha256=VJPgmB1OvxA0SOaIQIGyJDUP1cgWFElnfdVaQ2krYrg,3060
137
- sknetwork/clustering/postprocess.py,sha256=YoluaLAJg_c86u_abnRH6V7GHsnsDDL8Z5zHJLHwg7k,2035
138
- sknetwork/clustering/__init__.py,sha256=TEmlezTlZNCXSKV2Pkjbhaaxjcgp3gNwyRH7y1st6aE,337
139
- sknetwork/clustering/louvain.py,sha256=bWRf_cOqTm6NgIZ1gfOYXKVil3mimg_Xlyj8kVSyex4,9710
140
- sknetwork/clustering/propagation_clustering.py,sha256=ycrXq57FiFR862f7m7k8tV39G7RObod1m8T21UW7Olg,3736
141
- sknetwork/clustering/louvain_core.pyx,sha256=fADGyX8oWl6aqJik8a-c-pqec9dlbzpQyEbSj67wkMM,4485
142
- sknetwork/clustering/base.py,sha256=hXxlgEC8KGKH9Rj4QLGTm8gIyTuDEQFg0MFa_oTrAoc,5935
143
- sknetwork/clustering/louvain_core.cpython-310-darwin.so,sha256=VcjHL0jOL83wanfPm04Wa7E2HVfmetoB_XqQxEptB94,223535
138
+ sknetwork/clustering/leiden.py,sha256=w0oUbQLR7zCMy4wXgDa7eN2K488jjGuTdOcgWG6Eb9A,9680
139
+ sknetwork/clustering/leiden_core.cpython-310-darwin.so,sha256=wsLfJhFs2FCSSKxEJsTckQ5-AHD8rh_JoPZxxv4XKDA,261470
140
+ sknetwork/clustering/postprocess.py,sha256=4hx5VTQmqS2Ld2P2kvXoyvVanXVg3bMA619IHS2jWHM,2039
141
+ sknetwork/clustering/__init__.py,sha256=Ab-rmioxlaMoghrzd1RMr-L4zyrqIM8XznqrjBPGE28,435
142
+ sknetwork/clustering/kcenters.py,sha256=RFEx35vPUm9a4mzCbDwv-PmePCsdQwbuKAeaRizBMxY,8689
143
+ sknetwork/clustering/louvain.py,sha256=1mGcmy_Fd97V6bDmZb2Aa4JziCusru-gFHv5Vdxfm_0,10791
144
+ sknetwork/clustering/propagation_clustering.py,sha256=ABZZtyojkrXfzsMwEcxqphzHgFC5q8sECOyanvK9D3o,3781
145
+ sknetwork/clustering/louvain_core.pyx,sha256=pMqt7WukTkBOpjofmiXMYHqRX69mkquEMapDdoskiQM,4089
146
+ sknetwork/clustering/base.py,sha256=dCF4K3nbKY24kzFeDAy7Fp-b9jDBzEoG3jj1ozuu_W8,5932
147
+ sknetwork/clustering/louvain_core.cpython-310-darwin.so,sha256=_S0UZ-BKcaFJtGcrjW7K9anr1XTzJo5UlSRm5Pp7EJw,260415
144
148
  sknetwork/clustering/tests/test_postprocess.py,sha256=WSmAlqB-6Nw3eoL3NaOyNlpPr7GVnNnllkPVdyE9rXI,1378
149
+ sknetwork/clustering/tests/test_kcenters.py,sha256=3euzkt79tPZul5rP_HuJZHXydUdqT-Xk5N01qWOuaks,3477
145
150
  sknetwork/clustering/tests/test_metrics.py,sha256=fbVYg2s8DXQdiYHUNuVjFMtEJg4od1Vej25mgHhGDu0,1818
146
151
  sknetwork/clustering/tests/__init__.py,sha256=Ta0XKY7pklRvHyUY3Jlow3A2V4REa5geZG74xPz80Tc,27
147
- sknetwork/clustering/tests/test_louvain.py,sha256=n_YNee2AR37oK1_ZEN5dYicEKRZGecTYi3Kd3F7zW5c,4681
148
- sknetwork/clustering/tests/test_API.py,sha256=qRCpeIs6wwsgEs1dTZG8AQGRaiCqlnNvTrDiL_DqU5E,1484
149
- sknetwork/linkpred/nn.py,sha256=mNlb73Y4tLX2iyCfKahdFFvVRChbsdN8RzZSOJewB9o,3959
152
+ sknetwork/clustering/tests/test_leiden.py,sha256=3KSXvxUP9H4tCJQXUfWt-45-ltyD0FrVgYjXDvRN-yQ,1155
153
+ sknetwork/clustering/tests/test_louvain.py,sha256=6eQPoKodZLBafNgpX1_zBzPzGY5w7QKzWsLuoEVZEaE,4678
154
+ sknetwork/clustering/tests/test_API.py,sha256=Eez17EngcirVHVVoybClXS5314_Yz54JFzXldubEdgg,1528
155
+ sknetwork/linkpred/nn.py,sha256=tY-qYlp0j9WCvdoHkZ9EKzCD_GlDu7tQpKD7-aC20rE,4030
150
156
  sknetwork/linkpred/__init__.py,sha256=pFtM52OhDK69ceeiRyH1MDse0EbD8fqyhOsWWih47gM,72
151
- sknetwork/linkpred/base.py,sha256=Z5niD4lOjL5ypfpW8yblRHbBeQcZ2We-bZQvaX_z99w,747
157
+ sknetwork/linkpred/base.py,sha256=aXgWqajDYjDE-YQcooI6j0qEByJxHQiQtSjmFiID3Qk,995
152
158
  sknetwork/linkpred/tests/__init__.py,sha256=05sK8Ihh9Gi2_uobPC_ErMVE4KOt0761NzzV_vJh15U,32
153
159
  sknetwork/linkpred/tests/test_nn.py,sha256=T79txY2DlPgnI4JqzC88EcwCobJiM9P9v_5_ZvBTDeU,983
154
160
  sknetwork/utils/values.py,sha256=UK6wck_frtPz0Q6hRugpUMNg6AARcBQ0_MIlG5CyAkc,2510
155
161
  sknetwork/utils/check.py,sha256=tNOelam8GGdVjMzmk-7otNTyFBgJNKwq1z-zWmHOb9Y,12940
156
162
  sknetwork/utils/neighbors.py,sha256=XNqwPM_PPpf_x-YhjEMVZJDxmazrVw9Eky3hNv9IGz0,3351
157
163
  sknetwork/utils/__init__.py,sha256=FX-906qqZsXt9Q2nZdd3JT4rM0Aj39bc2O0wDpp_q-0,329
158
- sknetwork/utils/format.py,sha256=-IyB7-J52-ARo9HPgP0h0mUuNfZuy4tk8CkgEMdBX3g,8753
159
- sknetwork/utils/membership.py,sha256=jVNDdHDFIkxiDmJwTiFurqwQDRbj4Yzh9nnkbAtxr-0,2152
164
+ sknetwork/utils/format.py,sha256=qAa5jmp_fkQBlVL4LW14N7rrMPNk3yMApNFLxREPuiU,8766
165
+ sknetwork/utils/membership.py,sha256=dG2xJTWEjRcxyKTs5A7DFyNhO50-7UKpBIaWFfmyH_M,2162
160
166
  sknetwork/utils/tfidf.py,sha256=C1qZCwZSwypi-C_II9D7lkfyxsOFefiDopTO3pBEwkc,956
161
167
  sknetwork/utils/tests/test_membership.py,sha256=y4BiaCHUw5c1dJPOSJA6vgkBQlPxQ2bepL7hDV1es5U,748
162
168
  sknetwork/utils/tests/__init__.py,sha256=y7PVVv2Wiz1msA5jqKOuB5BbB4UzCmDZ-pml9hIQyjo,22
@@ -165,43 +171,43 @@ sknetwork/utils/tests/test_values.py,sha256=BswuHPma0xCxr4gVkrkfPdMaIW6gw6ylCd5M
165
171
  sknetwork/utils/tests/test_check.py,sha256=WOLQ7J4eM4YHsSxyBNU5yPquq-0dB5FyD_tttZ1RgsQ,6764
166
172
  sknetwork/utils/tests/test_neighbors.py,sha256=vF697D0cTfx4Limcmbre5JkJcLi1rUX0tS_JviX11Zg,1426
167
173
  sknetwork/utils/tests/test_format.py,sha256=xSvz_IbxNnei8IrEysIOi8YpX_a6edxVE41g_lSx1mk,2245
168
- sknetwork/gnn/base_layer.py,sha256=SePTUVKI4Kem6N2Wi8WimIr2zhGAUoMGEw5ZE0JrJ2I,3976
174
+ sknetwork/gnn/base_layer.py,sha256=o5CbTVXY7Y1_TyNEMkp7P2va2HLLIq_MgnOxZ7PGQmg,3948
169
175
  sknetwork/gnn/base_activation.py,sha256=XogZDdhl3QDyADvWJhMTGSnVYsKPI3PDHPu89yPL1VI,2306
170
176
  sknetwork/gnn/__init__.py,sha256=m2lkDJoJZocJ18scpArsUHuzePZ8Q-ue7D3yXQ5H_RM,519
171
- sknetwork/gnn/loss.py,sha256=NP1QMqPRTUfN7ROqVCtyEoDaq6tnEhMrB2lwGxM72ss,5162
177
+ sknetwork/gnn/loss.py,sha256=P0un3iqbnFLrBbYODznVAoU_J2qAZuqHAPLiae0LCtI,5162
172
178
  sknetwork/gnn/activation.py,sha256=D7o4FdbDMrBa2PQrWrvplCf14QOSzZ67d9eWN9bHY-M,3560
173
179
  sknetwork/gnn/neighbor_sampler.py,sha256=TXdMRFwiT8sOdl6-S-flQZ5Rjrx1hwTzFqqiR_8PHTQ,1864
174
- sknetwork/gnn/utils.py,sha256=TyPLgRGe_FAKED9KMNSolOmayHVyr2X0vpo6vFDE-CQ,4321
175
- sknetwork/gnn/gnn_classifier.py,sha256=g2E8yx74ksm2rkRVnL1P4nsJzdXfdmXbb-LVp_B9hzk,14395
176
- sknetwork/gnn/layer.py,sha256=nMcxHIqWBVdhucCNjoss8VVe2nN52e2rIKz9n1zL2KU,5531
177
- sknetwork/gnn/optimizer.py,sha256=ZxaSfdxCyIeyd6YeQe0pFAEg6xzXzC7jorhlacWkatk,5739
180
+ sknetwork/gnn/utils.py,sha256=A0kuBe29Eg90cEzRAgw4YmnShnzoq6ai_-01IBAf63g,4349
181
+ sknetwork/gnn/gnn_classifier.py,sha256=wSZQXjRu9ou9cEqcOXPD4gY_vKOYeC8iWXj6j1-uFrM,12613
182
+ sknetwork/gnn/layer.py,sha256=i0XiAutNal9ImAGqMtSLVEq_QiqZoGAlAWwlSGrNY8Q,5526
183
+ sknetwork/gnn/optimizer.py,sha256=vsCgfPoJtYMWREnR4tBsfPb0Ed-rHR0poBr-75lE57s,5782
178
184
  sknetwork/gnn/base.py,sha256=QZ_pNi2-edAUpu-2C93DWfooS_sHulO6HL6vK108lhc,5708
179
185
  sknetwork/gnn/tests/test_optimizer.py,sha256=4NvHQf66cFKy500kA68IBVv_-_pf75Hqdbq2odhJMr4,1780
180
186
  sknetwork/gnn/tests/test_utils.py,sha256=ExTZqAMT3joYU1RSQ-_d1YipysgnkLKePe7ZHuMoHeY,1843
181
- sknetwork/gnn/tests/test_gnn_classifier.py,sha256=Ks-2opGqT23pgTFqTJlQnTZArpEKvkPW02l-Wuh1j_w,6963
187
+ sknetwork/gnn/tests/test_gnn_classifier.py,sha256=QRjXGJK2ghHtsGc9O-FwlKzG53IHocrWZuKTAVSFjFw,5743
182
188
  sknetwork/gnn/tests/test_activation.py,sha256=HZdBaJ8P8LBJ-3_Typc8Qkvsho9gNSy1-CANEz8rQ-Q,2487
183
189
  sknetwork/gnn/tests/test_layers.py,sha256=apPJGgMddw_-Qiw0OsTDL3cmMJ8GTMC08dLTmiYEWW8,3176
184
190
  sknetwork/gnn/tests/__init__.py,sha256=SvFOB5nn_yN-JCaYFAtzesL0zU0OihQp0s0dOP1-MKE,20
185
191
  sknetwork/gnn/tests/test_neigh_sampler.py,sha256=zc_6G3JhZvKrFLJAk2UJSOHZwN7sGojC8bXTCbmaUx4,698
186
- sknetwork/gnn/tests/test_base_layer.py,sha256=X8z7kHbGvbl2FdII41OmuCm3Vm6ySGU1kTITNb-XdB4,1395
192
+ sknetwork/gnn/tests/test_base_layer.py,sha256=1PXvS3338vu-fI77ZnGgHfY20zkPRv_GcZKxLQmyj7I,1381
187
193
  sknetwork/gnn/tests/test_loss.py,sha256=W5DA6FRd-OppeRKFgj2gtLqNvjkXkCQPmV6lg3ENu-c,1045
188
194
  sknetwork/gnn/tests/test_base.py,sha256=HVsz5zABud8ZlrIJIFuAKP6N7mu2ClrTaleZbPhGOR0,3393
189
- sknetwork/regression/diffusion.py,sha256=za5H_NRmbGQcY_Li2vyC9uMQ1nno1uY_SrHHfAybVwQ,7268
195
+ sknetwork/regression/diffusion.py,sha256=dV-uPGEaBLpI_sY6pl52rkKeSDQV9MZsQfSo1frYKbc,7845
190
196
  sknetwork/regression/__init__.py,sha256=nRlbcR8bA2Lz-OmLPMIPhBzgDCol8oSA19qL3IninXA,141
191
- sknetwork/regression/base.py,sha256=x1o3DfWo_uirb90PjX6dpbDH0WGAkEtlInwbPdnn8cY,1079
197
+ sknetwork/regression/base.py,sha256=KIsVpnbACRH4h5W3ifMJOTlZNuztGbQP1QbZKj5aj_0,1496
192
198
  sknetwork/regression/tests/__init__.py,sha256=BT8kCCMN_pv7znhIR5GSQ_XxU5brmrCYDwm4QJNRCV0,27
193
- sknetwork/regression/tests/test_diffusion.py,sha256=_d18bwmzHrrgS9UObps-ZQm9l_ZqpfcObf-SH2MG5JY,1686
199
+ sknetwork/regression/tests/test_diffusion.py,sha256=-QBRgES_BF-QIgFevozLt9YXmGxJ6vxgLeYVZe92Wn8,2061
194
200
  sknetwork/regression/tests/test_API.py,sha256=7fQulvKzF9yEBlLie7fL5G1ZdyiG4DAFZQZ4Lix96qs,1024
195
201
  sknetwork/data/models.py,sha256=QyC_5ft7lkYzp3smmv54fHnyMUs88TYUq2FBU_KStMs,13156
196
202
  sknetwork/data/test_graphs.py,sha256=OM6-7CiBN4UEAQUtE_2k5e5I72zDBL3r5fj_C2JXzNw,2484
197
203
  sknetwork/data/timeout.py,sha256=kwHOLZFnOTrRhiEjtcwATYhsXbf5e8zV1OCoEKuG8Zg,1047
198
204
  sknetwork/data/__init__.py,sha256=ejVS9hqX1Jf912UAazfaqIsNlppXCahEVDBv2IFdRUM,259
199
205
  sknetwork/data/toy_graphs.py,sha256=2Cy7EABhYKPtjtfrW71Drz51A3mSuGu7G0P24tYiwHY,25035
200
- sknetwork/data/parse.py,sha256=QeAms8fQ57cWNuZyN5XqVF6mfb5eQu1hAY_D4QUTBKc,25708
201
- sknetwork/data/load.py,sha256=9Moa75YJxCOowWuJrstmFjKBqLKV6FOrvG-sCJ1WLrE,14520
206
+ sknetwork/data/parse.py,sha256=bRawtsCpm0CNgxjZ9CqpR_8nRJnW0ac561GoIlMOq1Y,26897
207
+ sknetwork/data/load.py,sha256=gC61jqFdyhPXc4-vazK85UdB4hnFQFjH9f1xpQ7JScI,14360
202
208
  sknetwork/data/base.py,sha256=jeCwL-1O21CNkX1F9_eX4gl_BVNbeYabq_DSZr6ukB8,630
203
209
  sknetwork/data/tests/test_test_graphs.py,sha256=dVRds-3P8JVnwfAp32fGif3zhocfPK0p2rgcYwJWsUQ,849
204
- sknetwork/data/tests/test_parse.py,sha256=DeDPaOw8IR0JuABdyUDa4GcOxyNFiKD9933cqyETD98,12753
210
+ sknetwork/data/tests/test_parse.py,sha256=JOTFNWr77ZxKUKjw8TSbN-2dk-6YwmqN2OcrNkh7JVc,12717
205
211
  sknetwork/data/tests/__init__.py,sha256=FSfkSYRKjDqIuEiEZ39Otve50qSxi7QObNnNrHHPx5s,19
206
212
  sknetwork/data/tests/test_toy_graphs.py,sha256=kxOb7QpXGi8O7Kb6RmWoRUbAoyllM_-SXCRcYoH8B00,2137
207
213
  sknetwork/data/tests/test_models.py,sha256=oP-X_k0vbSB4CwlV4GQVVBAQ9uI_8frFicde5yhVYAc,1915
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.38.4)
2
+ Generator: bdist_wheel (0.42.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp310-cp310-macosx_11_0_arm64
5
5
 
sknetwork/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  __author__ = """scikit-network team"""
6
6
  __email__ = "thomas.bonald@telecom-paris.fr"
7
- __version__ = '0.31.0'
7
+ __version__ = '0.32.0'
8
8
 
9
9
  import sknetwork.topology
10
10
  import sknetwork.path
@@ -38,7 +38,7 @@ class BaseClassifier(Algorithm, ABC):
38
38
  self.probs_row_ = None
39
39
  self.probs_col_ = None
40
40
 
41
- def predict(self, columns=False) -> np.ndarray:
41
+ def predict(self, columns: bool = False) -> np.ndarray:
42
42
  """Return the labels predicted by the algorithm.
43
43
 
44
44
  Parameters
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python3
2
2
  # -*- coding: utf-8 -*-
3
3
  """
4
- Created on March 2020
4
+ Created in March 2020
5
5
  @author: Nathan de Lara <nathan.delara@polytechnique.org>
6
6
  """
7
7
  from functools import partial
@@ -12,7 +12,7 @@ import numpy as np
12
12
  from scipy import sparse
13
13
 
14
14
  from sknetwork.classification.base import BaseClassifier
15
- from sknetwork.linalg.normalization import normalize
15
+ from sknetwork.linalg.normalizer import normalize
16
16
  from sknetwork.ranking.base import BaseRanking
17
17
  from sknetwork.utils.check import check_labels, check_n_jobs
18
18
  from sknetwork.utils.format import get_adjacency_values
@@ -114,7 +114,7 @@ class RankClassifier(BaseClassifier):
114
114
  seeds_labels = seeds_labels.astype(int)
115
115
  labels_unique, n_classes = check_labels(seeds_labels)
116
116
  seeds_all = self._process_labels(seeds_labels)
117
- local_function = partial(self.algorithm.fit_transform, adjacency)
117
+ local_function = partial(self.algorithm.fit_predict, adjacency)
118
118
  with Pool(self.n_jobs) as pool:
119
119
  scores = np.array(pool.map(local_function, seeds_all))
120
120
  scores = scores.T
@@ -11,7 +11,7 @@ from scipy import sparse
11
11
 
12
12
  from sknetwork.classification.base import BaseClassifier
13
13
  from sknetwork.path.distances import get_distances
14
- from sknetwork.linalg.normalization import normalize
14
+ from sknetwork.linalg.normalizer import normalize
15
15
  from sknetwork.utils.format import get_adjacency_values
16
16
  from sknetwork.utils.membership import get_membership
17
17
  from sknetwork.utils.neighbors import get_degrees
@@ -38,11 +38,14 @@ class DiffusionClassifier(BaseClassifier):
38
38
  Labels of nodes.
39
39
  probs_ : sparse.csr_matrix, shape (n_row, n_labels)
40
40
  Probability distribution over labels.
41
- labels_row_, labels_col_ : np.ndarray
42
- Labels of rows and columns, for bipartite graphs.
43
- probs_row_, probs_col_ : sparse.csr_matrix, shape (n_row, n_labels)
44
- Probability distributions over labels for rows and columns (for bipartite graphs).
45
-
41
+ labels_row_ : np.ndarray
42
+ Labels of rows, for bipartite graphs.
43
+ labels_col_ : np.ndarray
44
+ Labels of columns, for bipartite graphs.
45
+ probs_row_ : sparse.csr_matrix, shape (n_row, n_labels)
46
+ Probability distributions over labels of rows, for bipartite graphs.
47
+ probs_col_ : sparse.csr_matrix, shape (n_col, n_labels)
48
+ Probability distributions over labels of columns, for bipartite graphs.
46
49
  Example
47
50
  -------
48
51
  >>> from sknetwork.data import karate_club
@@ -78,13 +81,15 @@ class DiffusionClassifier(BaseClassifier):
78
81
 
79
82
  Parameters
80
83
  ----------
81
- input_matrix :
84
+ input_matrix : sparse.csr_matrix, np.ndarray
82
85
  Adjacency matrix or biadjacency matrix of the graph.
83
- labels :
86
+ labels : dict, np.ndarray
84
87
  Known labels (dictionary or vector of int). Negative values ignored.
85
- labels_row, labels_col :
86
- Labels of rows and columns for bipartite graphs. Negative values ignored.
87
- force_bipartite :
88
+ labels_row : dict, np.ndarray
89
+ Labels of rows for bipartite graphs. Negative values ignored.
90
+ labels_col : dict, np.ndarray
91
+ Labels of columns for bipartite graphs. Negative values ignored.
92
+ force_bipartite : bool
88
93
  If ``True``, consider the input matrix as a biadjacency matrix (default = ``False``).
89
94
 
90
95
  Returns
@@ -98,7 +103,10 @@ class DiffusionClassifier(BaseClassifier):
98
103
  labels = values.astype(int)
99
104
  if (labels < 0).all():
100
105
  raise ValueError('At least one node must be given a non-negative label.')
101
- temperatures = get_membership(labels).toarray()
106
+ labels_reindex = labels.copy()
107
+ labels_unique, inverse = np.unique(labels[labels >= 0], return_inverse=True)
108
+ labels_reindex[labels >= 0] = inverse
109
+ temperatures = get_membership(labels_reindex).toarray()
102
110
  temperatures_seeds = temperatures[labels >= 0]
103
111
  temperatures[labels < 0] = 0.5
104
112
  diffusion = normalize(adjacency)
@@ -107,7 +115,7 @@ class DiffusionClassifier(BaseClassifier):
107
115
  temperatures[labels >= 0] = temperatures_seeds
108
116
  if self.centering:
109
117
  temperatures -= temperatures.mean(axis=0)
110
- labels_ = temperatures.argmax(axis=1)
118
+ labels_ = labels_unique[temperatures.argmax(axis=1)]
111
119
 
112
120
  # softmax
113
121
  if self.centering:
@@ -12,7 +12,7 @@ from scipy import sparse
12
12
 
13
13
  from sknetwork.classification.base import BaseClassifier
14
14
  from sknetwork.embedding.base import BaseEmbedding
15
- from sknetwork.linalg.normalization import get_norms, normalize
15
+ from sknetwork.linalg.normalizer import get_norms, normalize
16
16
  from sknetwork.utils.check import check_n_neighbors
17
17
  from sknetwork.utils.format import get_adjacency_values
18
18
 
@@ -22,12 +22,12 @@ class NNClassifier(BaseClassifier):
22
22
 
23
23
  Parameters
24
24
  ----------
25
- n_neighbors :
25
+ n_neighbors : int
26
26
  Number of nearest neighbors .
27
- embedding_method :
27
+ embedding_method : :class:`BaseEmbedding`
28
28
  Embedding method used to represent nodes in vector space.
29
29
  If ``None`` (default), use identity.
30
- normalize :
30
+ normalize : bool
31
31
  If ``True``, apply normalization so that all vectors have norm 1 in the embedding space.
32
32
 
33
33
  Attributes
@@ -36,10 +36,14 @@ class NNClassifier(BaseClassifier):
36
36
  Labels of nodes.
37
37
  probs_ : sparse.csr_matrix, shape (n_row, n_labels)
38
38
  Probability distribution over labels.
39
- labels_row_, labels_col_ : np.ndarray
40
- Labels of rows and columns, for bipartite graphs.
41
- probs_row_, probs_col_ : sparse.csr_matrix, shape (n_row, n_labels)
42
- Probability distributions over labels for rows and columns (for bipartite graphs).
39
+ labels_row_ : np.ndarray
40
+ Labels of rows, for bipartite graphs.
41
+ labels_col_ : np.ndarray
42
+ Labels of columns, for bipartite graphs.
43
+ probs_row_ : sparse.csr_matrix, shape (n_row, n_labels)
44
+ Probability distributions over labels of rows, for bipartite graphs.
45
+ probs_col_ : sparse.csr_matrix, shape (n_col, n_labels)
46
+ Probability distributions over labels of columns, for bipartite graphs.
43
47
 
44
48
  Example
45
49
  -------
@@ -99,12 +103,14 @@ class NNClassifier(BaseClassifier):
99
103
 
100
104
  Parameters
101
105
  ----------
102
- input_matrix :
106
+ input_matrix : sparse.csr_matrix, np.ndarray
103
107
  Adjacency matrix or biadjacency matrix of the graph.
104
- labels :
105
- Known labels (dictionary or array). Negative values ignored.
106
- labels_row, labels_col :
107
- Known labels of rows and columns (for bipartite graphs).
108
+ labels : np.ndarray, dict
109
+ Known labels. Negative values ignored.
110
+ labels_row : np.ndarray, dict
111
+ Known labels of rows, for bipartite graphs.
112
+ labels_col : np.ndarray, dict
113
+ Known labels of columns, for bipartite graphs.
108
114
 
109
115
  Returns
110
116
  -------
@@ -158,7 +158,7 @@ def get_f1_scores(labels_true: np.ndarray, labels_pred: np.ndarray, return_preci
158
158
  mask = counts_pred > 0
159
159
  precisions[mask] = counts_correct[mask] / counts_pred[mask]
160
160
  f1_scores = np.zeros(n_labels)
161
- mask = (counts_true > 0) & (counts_pred > 0)
161
+ mask = (precisions > 0) & (recalls > 0)
162
162
  f1_scores[mask] = 2 / (1 / precisions[mask] + 1 / recalls[mask])
163
163
  if return_precision_recall:
164
164
  return f1_scores, precisions, recalls
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python3
2
2
  # -*- coding: utf-8 -*-
3
3
  """
4
- Created on March 2020
4
+ Created in March 2020
5
5
  @author: Nathan de Lara <nathan.delara@polytechnique.org>
6
6
  """
7
7
  from typing import Optional
@@ -17,9 +17,9 @@ class PageRankClassifier(RankClassifier):
17
17
 
18
18
  Parameters
19
19
  ----------
20
- damping_factor:
20
+ damping_factor: float
21
21
  Probability to continue the random walk.
22
- solver : :obj:`str`
22
+ solver : str
23
23
  Which solver to use: 'piteration', 'diteration', 'bicgstab', 'lanczos'.
24
24
  n_iter : int
25
25
  Number of iterations for some solvers such as ``'piteration'`` or ``'diteration'``.
@@ -29,13 +29,17 @@ class PageRankClassifier(RankClassifier):
29
29
  Attributes
30
30
  ----------
31
31
  labels_ : np.ndarray, shape (n_labels,)
32
- Label of each node.
32
+ Labels of nodes.
33
33
  probs_ : sparse.csr_matrix, shape (n_row, n_labels)
34
34
  Probability distribution over labels.
35
- labels_row_, labels_col_ : np.ndarray
36
- Labels of rows and columns, for bipartite graphs.
37
- probs_row_, probs_col_ : sparse.csr_matrix, shape (n_row, n_labels)
38
- Probability distributions over labels for rows and columns (for bipartite graphs).
35
+ labels_row_ : np.ndarray
36
+ Labels of rows, for bipartite graphs.
37
+ labels_col_ : np.ndarray
38
+ Labels of columns, for bipartite graphs.
39
+ probs_row_ : sparse.csr_matrix, shape (n_row, n_labels)
40
+ Probability distributions over labels of rows, for bipartite graphs.
41
+ probs_col_ : sparse.csr_matrix, shape (n_col, n_labels)
42
+ Probability distributions over labels of columns, for bipartite graphs.
39
43
 
40
44
  Example
41
45
  -------