scikit-network 0.31.0__cp38-cp38-win_amd64.whl → 0.32.1__cp38-cp38-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 (114) hide show
  1. {scikit_network-0.31.0.dist-info → scikit_network-0.32.1.dist-info}/AUTHORS.rst +3 -0
  2. {scikit_network-0.31.0.dist-info → scikit_network-0.32.1.dist-info}/METADATA +19 -3
  3. {scikit_network-0.31.0.dist-info → scikit_network-0.32.1.dist-info}/RECORD +112 -105
  4. {scikit_network-0.31.0.dist-info → scikit_network-0.32.1.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.cp38-win_amd64.pyd +0 -0
  15. sknetwork/classification/vote.cpp +14549 -8668
  16. sknetwork/clustering/__init__.py +3 -1
  17. sknetwork/clustering/base.py +1 -1
  18. sknetwork/clustering/kcenters.py +253 -0
  19. sknetwork/clustering/leiden.py +241 -0
  20. sknetwork/clustering/leiden_core.cp38-win_amd64.pyd +0 -0
  21. sknetwork/clustering/leiden_core.cpp +31564 -0
  22. sknetwork/clustering/leiden_core.pyx +124 -0
  23. sknetwork/clustering/louvain.py +118 -83
  24. sknetwork/clustering/louvain_core.cp38-win_amd64.pyd +0 -0
  25. sknetwork/clustering/louvain_core.cpp +21876 -16332
  26. sknetwork/clustering/louvain_core.pyx +86 -94
  27. sknetwork/clustering/postprocess.py +2 -2
  28. sknetwork/clustering/propagation_clustering.py +4 -4
  29. sknetwork/clustering/tests/test_API.py +7 -3
  30. sknetwork/clustering/tests/test_kcenters.py +92 -0
  31. sknetwork/clustering/tests/test_leiden.py +34 -0
  32. sknetwork/clustering/tests/test_louvain.py +2 -3
  33. sknetwork/data/load.py +2 -4
  34. sknetwork/data/parse.py +41 -20
  35. sknetwork/data/tests/test_parse.py +9 -12
  36. sknetwork/embedding/__init__.py +0 -1
  37. sknetwork/embedding/base.py +20 -19
  38. sknetwork/embedding/force_atlas.py +3 -2
  39. sknetwork/embedding/louvain_embedding.py +1 -1
  40. sknetwork/embedding/random_projection.py +5 -3
  41. sknetwork/embedding/spectral.py +0 -73
  42. sknetwork/embedding/tests/test_API.py +4 -28
  43. sknetwork/embedding/tests/test_louvain_embedding.py +4 -9
  44. sknetwork/embedding/tests/test_spectral.py +2 -5
  45. sknetwork/embedding/tests/test_svd.py +1 -1
  46. sknetwork/gnn/base_layer.py +3 -3
  47. sknetwork/gnn/gnn_classifier.py +40 -86
  48. sknetwork/gnn/layer.py +1 -1
  49. sknetwork/gnn/loss.py +1 -1
  50. sknetwork/gnn/optimizer.py +4 -3
  51. sknetwork/gnn/tests/test_base_layer.py +4 -4
  52. sknetwork/gnn/tests/test_gnn_classifier.py +12 -39
  53. sknetwork/gnn/utils.py +8 -8
  54. sknetwork/hierarchy/base.py +27 -0
  55. sknetwork/hierarchy/louvain_hierarchy.py +45 -41
  56. sknetwork/hierarchy/paris.cp38-win_amd64.pyd +0 -0
  57. sknetwork/hierarchy/paris.cpp +27719 -20959
  58. sknetwork/hierarchy/paris.pyx +7 -7
  59. sknetwork/hierarchy/postprocess.py +16 -16
  60. sknetwork/hierarchy/tests/test_algos.py +5 -0
  61. sknetwork/linalg/__init__.py +1 -1
  62. sknetwork/linalg/diteration.cp38-win_amd64.pyd +0 -0
  63. sknetwork/linalg/diteration.cpp +13916 -8050
  64. sknetwork/linalg/{normalization.py → normalizer.py} +17 -14
  65. sknetwork/linalg/operators.py +1 -1
  66. sknetwork/linalg/ppr_solver.py +1 -1
  67. sknetwork/linalg/push.cp38-win_amd64.pyd +0 -0
  68. sknetwork/linalg/push.cpp +23144 -16920
  69. sknetwork/linalg/tests/test_normalization.py +3 -7
  70. sknetwork/linalg/tests/test_operators.py +2 -6
  71. sknetwork/linalg/tests/test_ppr.py +1 -1
  72. sknetwork/linkpred/base.py +12 -1
  73. sknetwork/linkpred/nn.py +6 -6
  74. sknetwork/path/distances.py +11 -4
  75. sknetwork/path/shortest_path.py +1 -1
  76. sknetwork/path/tests/test_distances.py +7 -0
  77. sknetwork/path/tests/test_search.py +2 -2
  78. sknetwork/ranking/base.py +11 -6
  79. sknetwork/ranking/betweenness.cp38-win_amd64.pyd +0 -0
  80. sknetwork/ranking/betweenness.cpp +5256 -2190
  81. sknetwork/ranking/pagerank.py +13 -12
  82. sknetwork/ranking/tests/test_API.py +0 -2
  83. sknetwork/ranking/tests/test_betweenness.py +1 -1
  84. sknetwork/ranking/tests/test_pagerank.py +11 -5
  85. sknetwork/regression/base.py +18 -1
  86. sknetwork/regression/diffusion.py +24 -10
  87. sknetwork/regression/tests/test_diffusion.py +8 -0
  88. sknetwork/topology/__init__.py +3 -1
  89. sknetwork/topology/cliques.cp38-win_amd64.pyd +0 -0
  90. sknetwork/topology/cliques.cpp +23147 -16457
  91. sknetwork/topology/core.cp38-win_amd64.pyd +0 -0
  92. sknetwork/topology/core.cpp +22854 -16576
  93. sknetwork/topology/cycles.py +243 -0
  94. sknetwork/topology/minheap.cp38-win_amd64.pyd +0 -0
  95. sknetwork/topology/minheap.cpp +19495 -13469
  96. sknetwork/topology/structure.py +2 -42
  97. sknetwork/topology/tests/test_cycles.py +65 -0
  98. sknetwork/topology/tests/test_structure.py +2 -16
  99. sknetwork/topology/triangles.cp38-win_amd64.pyd +0 -0
  100. sknetwork/topology/triangles.cpp +5283 -1397
  101. sknetwork/topology/triangles.pyx +7 -4
  102. sknetwork/topology/weisfeiler_lehman_core.cp38-win_amd64.pyd +0 -0
  103. sknetwork/topology/weisfeiler_lehman_core.cpp +14781 -8915
  104. sknetwork/utils/format.py +1 -1
  105. sknetwork/utils/membership.py +2 -2
  106. sknetwork/visualization/__init__.py +2 -2
  107. sknetwork/visualization/dendrograms.py +55 -7
  108. sknetwork/visualization/graphs.py +261 -44
  109. sknetwork/visualization/tests/test_dendrograms.py +9 -9
  110. sknetwork/visualization/tests/test_graphs.py +63 -57
  111. sknetwork/embedding/louvain_hierarchy.py +0 -142
  112. sknetwork/embedding/tests/test_louvain_hierarchy.py +0 -19
  113. {scikit_network-0.31.0.dist-info → scikit_network-0.32.1.dist-info}/LICENSE +0 -0
  114. {scikit_network-0.31.0.dist-info → scikit_network-0.32.1.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.1
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,22 @@ the `Journal of Machine Learning Research <https://jmlr.org>`_:
118
118
  History
119
119
  =======
120
120
 
121
+ 0.32.1 (2024-04-02)
122
+ -------------------
123
+
124
+ * Fix documentation
125
+ * Fix wheel upload
126
+
127
+ 0.32.0 (2024-03-29)
128
+ -------------------
129
+
130
+ * Add Leiden clustering algorithm
131
+ * Add k-center clustering algorithm
132
+ * Add functions to detect and break cycles
133
+ * Add damping factor in diffusion
134
+ * Fix F1 scores
135
+ * Remove hierarchical Louvain embedding
136
+ * Get clustering coefficient for directed graphs
121
137
 
122
138
  0.31.0 (2023-05-22)
123
139
  -------------------
@@ -1,46 +1,53 @@
1
- sknetwork/__init__.py,sha256=kBpEmTMrIJ3j_joqBDtQZvyALtCVOc41FnSvwUNMtCQ,554
1
+ sknetwork/__init__.py,sha256=hbJ__5rv06WI2XnJW8lWLpJkXp3Ju9hyR0aGBzdG0IY,554
2
2
  sknetwork/base.py,sha256=_63mkwqXFDke_0ve9DIZJiMHboMYqBONa7B08gao440,2018
3
3
  sknetwork/log.py,sha256=qDR-dnlzJC0ETlotPAy_IbLiQPgu8Vn90mgkqfvT5W0,462
4
4
  sknetwork/sknetwork.py,sha256=Qtq3EpSkdAFqQNQPDXTAouXS784LkR8Rh2D5s5w5_tc,47
5
5
  sknetwork/test_base.py,sha256=hdbe2ldftbPp6Y0-bAWehKy9cyyd3Adj9UX6NgYq0QQ,947
6
6
  sknetwork/test_log.py,sha256=ucX3w138eDyD0Wnpk9QEsPoQgAPTJNPy9twzMf5TjQ8,334
7
7
  sknetwork/classification/__init__.py,sha256=QoS3fTnCZ0nFdlDkEphEYqj1NDEf23_aqsfP0G4zLMM,483
8
- sknetwork/classification/base.py,sha256=JyRplfH2EdmXLMkE65HE-Oes8qpAyicZG8pL7_-vvnU,4424
9
- sknetwork/classification/base_rank.py,sha256=pAEbkFJWg_6iJTe37PPTQf0FTlzb4NyYhFC-DG-gTPg,4660
10
- sknetwork/classification/diffusion.py,sha256=gHa07SeI07LIRBhhUY1EZPJaAUb-8To5b699bp3_BWI,5146
11
- sknetwork/classification/knn.py,sha256=-a0Uny_yyGoc4JZ-dPqzouoCMCWQLzEkqcSceuEgnok,5128
12
- sknetwork/classification/metrics.py,sha256=1sPqOqliIexvL6ozNy9QTDKfHLV9Sqz5rGoSr3Gjv0M,7012
13
- sknetwork/classification/pagerank.py,sha256=1B5V-l7pYa4Bvl4o58VByYqxanDA6qKGJ71IS_EXMnI,2485
14
- sknetwork/classification/propagation.py,sha256=eHEG4plzQwxIXvp7mEMJVv23uhUn35iEWTVKjELtsWI,5614
15
- sknetwork/classification/vote.cp38-win_amd64.pyd,sha256=RsJLWgwvUL6AATJOm41KxSt-PqC-VQH_9-66Nz2iBhs,128000
16
- sknetwork/classification/vote.cpp,sha256=bTecsJKAPWKvoU3Fma4QdMDEKAwuOS4rSBzofa4Kavo,794585
8
+ sknetwork/classification/base.py,sha256=a6JczKf23arkC4Xx6rUEI0gLFAPoyPXKTXCdhV6_bWI,4432
9
+ sknetwork/classification/base_rank.py,sha256=BChHu6sDkdq_M6coJsC3hac3HWPE2lholi3g97J6lWw,4655
10
+ sknetwork/classification/diffusion.py,sha256=uliGned1_GGJLACzXMNFtkYbTyvHgfaUNgS535ZzreQ,5670
11
+ sknetwork/classification/knn.py,sha256=p9ZHNdaMOnrd6dmVNyieGBYrhFMrjXnkD8MFCxVmJqw,5444
12
+ sknetwork/classification/metrics.py,sha256=f66RlKyauNJFr8iuud4s9tntnEa4_Lp28zVWuwhUE44,7007
13
+ sknetwork/classification/pagerank.py,sha256=Nvmj-Y1YFXQxCZpcUhXfKlc6S5BebnIkJZ8DRsyzDTs,2652
14
+ sknetwork/classification/propagation.py,sha256=WkB4yG3V13a0d5yYuuecuHblQ2Z0L5PKLpL3gUgy8zs,5905
15
+ sknetwork/classification/vote.cp38-win_amd64.pyd,sha256=6BQUMiFZexXEbR7ZuOHsbuVLNiNz-OLvsmGRePkqVbE,156672
16
+ sknetwork/classification/vote.cpp,sha256=EA5LfboNvZwm0utrejQtHuzY0g07p78sKmrlr--5N4c,1023080
17
17
  sknetwork/classification/vote.pyx,sha256=-mNsL96aaA1UL-qfeUgZlbdvKZUK9R4MLmq0BNFWVKA,1640
18
18
  sknetwork/classification/tests/__init__.py,sha256=Per0oy1Frnm5jB7dnpod1g_xbgYhqkNteWQV5cemcH0,32
19
19
  sknetwork/classification/tests/test_API.py,sha256=WV5cY8yhTHBHYRbDE3InZ4v-agymxLPMKxa2NqjbWZo,1154
20
- sknetwork/classification/tests/test_diffusion.py,sha256=lokZLSmvAw0unEWQ6IDPz5DjyEo2uWbmCbX18uzUxK0,2816
20
+ sknetwork/classification/tests/test_diffusion.py,sha256=GuWNuE4PGZ4hqCLtRe-DfwjD3uUBFeHa0ByMEtsAUMM,3260
21
21
  sknetwork/classification/tests/test_knn.py,sha256=EWuWiJJSsfthfvb3x0ejUjdccRBZIFpmG6nv7F8VkOk,807
22
22
  sknetwork/classification/tests/test_metrics.py,sha256=9eqBvRiMdVUHf7WhjfwzMcUJFALt4Ufmx5LhBzou8Ww,2356
23
23
  sknetwork/classification/tests/test_pagerank.py,sha256=8ywBVzfJOtz_gTIn7XYr0nvHlVwvmZERLrG3LkQHeTU,640
24
24
  sknetwork/classification/tests/test_propagation.py,sha256=GzhpCpg0ijLvXuWtABolq02k0-Yh3UHJ2rAKpdQlTxI,874
25
- sknetwork/clustering/__init__.py,sha256=HAWSDCezfp1FkAQPIxOinB84G_L4cOlrjwnLyqPUths,343
26
- sknetwork/clustering/base.py,sha256=_4VBTkhqk11UuL_TCrdUARJ5Q4RTRQvaQ36sB-RF61s,6107
27
- sknetwork/clustering/louvain.py,sha256=9OJX0KcjVyO-BtNTIRCQJZejriS2dsMzAPoYk6YHYE0,9961
28
- sknetwork/clustering/louvain_core.cp38-win_amd64.pyd,sha256=1tJpAR9k0oXs1BoN0BUoIpxSBOLRGSn6FyfFeYlGVoo,163840
29
- sknetwork/clustering/louvain_core.cpp,sha256=p_6oCMM8OmgiywozZBAnul-zZ18mAQAtyTUVxpmCFdQ,955082
30
- sknetwork/clustering/louvain_core.pyx,sha256=SQMoZxV2t7CRKShc16aC0Ry-_ZSMl-Gm-91B1fvbrjY,4617
25
+ sknetwork/clustering/__init__.py,sha256=Ju06e1zwMUfOn_1soTOlxJJu1F5u9VNxFXWN8TTParo,443
26
+ sknetwork/clustering/base.py,sha256=LsH_wlP19lDnIZWVUXbKwSta05ii5dWMqS-J-AkY6HE,6104
27
+ sknetwork/clustering/kcenters.py,sha256=MKmsR7zWTITeEAqFyRDKpglU7yZZEjR8H0TLJXdDjtw,8942
28
+ sknetwork/clustering/leiden.py,sha256=x2M1tVMlupu3KK8D7RpfB0hzV5iwf0den1y9NwC1Jko,9921
29
+ sknetwork/clustering/leiden_core.cp38-win_amd64.pyd,sha256=RxClWVZ8TNztVHFPShJSEj0B85XKjRormoYgxFrd_xE,201216
30
+ sknetwork/clustering/leiden_core.cpp,sha256=BstUuZJDHnSrjAX_7ORASJyvx_QT7qrXjie-Gy4BRe0,1205016
31
+ sknetwork/clustering/leiden_core.pyx,sha256=kEppO0iSs0UqK3ybtSVIHRSojJ4KNfe6pUNo9sShh7E,4424
32
+ sknetwork/clustering/louvain.py,sha256=Em7A22oNamwBb0IAFySLa9HUmdu4LjAuo3XAtJqtHC0,11077
33
+ sknetwork/clustering/louvain_core.cp38-win_amd64.pyd,sha256=BQPQSxY_aYNr85lXoYjBLHWBvJR54bPDEZN3JnIkkj8,197120
34
+ sknetwork/clustering/louvain_core.cpp,sha256=Y5KKwBwEsXkF5II2Pf8c7ZTWX6uJjhcvZw0zY5suJYc,1185580
35
+ sknetwork/clustering/louvain_core.pyx,sha256=2KPnBhBeSlIxmoScZW7jwsmVxJyAyHQs3pcH9AfBM2Y,4213
31
36
  sknetwork/clustering/metrics.py,sha256=ptLLtUpFtdKLZ4lcx_MN-PpOrzv--PWhAcEFoFghccM,3151
32
- sknetwork/clustering/postprocess.py,sha256=Xk9FOPPBLemoROd--qgd9gc4I6xgMOXPKG-LSXqfEZQ,2101
33
- sknetwork/clustering/propagation_clustering.py,sha256=HMTZB_kuwoSOrPgzSTJ-sC0y9PRcm6TLQwE5O5nX8Dc,3840
37
+ sknetwork/clustering/postprocess.py,sha256=uynPXvjYXiFNShxGZyLkpIwRl5nIlIVEm-auMCNZA0o,2105
38
+ sknetwork/clustering/propagation_clustering.py,sha256=s-Y7EQEqGM2wdl1zAOQzfmy-8LGab1eB00u_AOkYzl0,3885
34
39
  sknetwork/clustering/tests/__init__.py,sha256=tCA27jkL3pdstka9XWQEA1NbC6ZqL7Rf-1V1UcySCEE,28
35
- sknetwork/clustering/tests/test_API.py,sha256=0bDJZkcLQc8HkASnEgV89-OJ2-W02etjqUHPzflRH8I,1518
36
- sknetwork/clustering/tests/test_louvain.py,sha256=nkYC0zHd0n5eUhZxbLpKZPP-J1gZyn2jtuFAWPgBmq0,4811
40
+ sknetwork/clustering/tests/test_API.py,sha256=PKxuTh49IyKzwkLfgFAmJiuBhWJQBEYtNxzOEYgc5uE,1566
41
+ sknetwork/clustering/tests/test_kcenters.py,sha256=f2nBCcj4TRZ9FJVn7r60w1AI5gzDP1s70ve9aW1PbDs,3569
42
+ sknetwork/clustering/tests/test_leiden.py,sha256=oEN0Dz9popCEYE-qqEdmTEqqr3af9TB3WDmRNWYAidE,1189
43
+ sknetwork/clustering/tests/test_louvain.py,sha256=rYZLrb8Ld_F2KDCos5RP9-1szkVXHnXLWHd4SbOwvAY,4807
37
44
  sknetwork/clustering/tests/test_metrics.py,sha256=ZTr4T-d-g6kQJinei9VH6Teb_rOScmj5XLG168EI5LQ,1868
38
45
  sknetwork/clustering/tests/test_postprocess.py,sha256=41l4coS_1CHqGOCnnucqxU6UkXws89YVMjef162ZTEQ,1417
39
46
  sknetwork/data/__init__.py,sha256=QScOMfOfm2j7rPaNLPGNc9TwHQGebWRZCBHHbmZarO8,265
40
47
  sknetwork/data/base.py,sha256=O_EN3j1hoSbHc96qxx-dAe5SsLGdLE1cqiX9fl0xjAw,658
41
- sknetwork/data/load.py,sha256=XJ6vcSh09O1hNI82k40nRJJF674npeG9DHk5wjzvsJE,14931
48
+ sknetwork/data/load.py,sha256=AkFI4qdzP2mPd43Rm321NQa4uSERb5D4Hs2lciuyn-Y,14769
42
49
  sknetwork/data/models.py,sha256=luDuvYYcruOEw94iXNEnl5IbYJCVGtxB6jhDWVBmJH0,13615
43
- sknetwork/data/parse.py,sha256=-EgABauVkJ2EJS0NOp7_H5wNdqw6WPfZYAHs-6Fhtfg,26329
50
+ sknetwork/data/parse.py,sha256=bmAM5LdMleZfYQ8hx1NEd3TIRjxwemoVOsNHEGv-0ss,27539
44
51
  sknetwork/data/test_graphs.py,sha256=KRRok5ElYWh1NV3i_2enLLjdeKe8zBg_3xqFXgOOY6I,2568
45
52
  sknetwork/data/timeout.py,sha256=mXSqgKFRc6AVZBlIobN2xPYJjAyQOClKH3KQJ5M_4Sw,1085
46
53
  sknetwork/data/toy_graphs.py,sha256=xdgNQjzwswpkCVioUR0_EzoQiS6QbuOAD0mgTs3Fphg,25654
@@ -49,153 +56,153 @@ sknetwork/data/tests/test_API.py,sha256=aytP2cJV9px-d-SogJn4SYPnTFJ1Xt2coEW7-Eil
49
56
  sknetwork/data/tests/test_base.py,sha256=h1-1fEyWuVpAOnZDFmkSuhngrQdv3N2vEMa_Wpt8dVU,322
50
57
  sknetwork/data/tests/test_load.py,sha256=wuLVlJ-lquoIrsr0UBI-gakW7BjGBZaSyEPavxX0NVY,3645
51
58
  sknetwork/data/tests/test_models.py,sha256=_2y5xZrWbE3XZltd4n-z84YwyJhPcpaBa2TxXMvhXF4,1967
52
- sknetwork/data/tests/test_parse.py,sha256=jJtOu9oQ920a8hzce_p0PPfBmjWtt6yfxPH-Azs0SV0,13006
59
+ sknetwork/data/tests/test_parse.py,sha256=K_HTO7L5axpnt2Fs3hmOMudufZZ2shps94COEABcMx4,12967
53
60
  sknetwork/data/tests/test_test_graphs.py,sha256=3QWshIikkBtRl3C7ATc_zO5UkwOh1wZwD7gYm0CEj8o,878
54
61
  sknetwork/data/tests/test_toy_graphs.py,sha256=wQ2X-CVv9oycBUAaB68aJqg-0o3yMlaVtZ9D4thZJrc,2205
55
- sknetwork/embedding/__init__.py,sha256=XvDQcRkxf5Kbf51Ai6X74AgSAXMarFgP8_AGxeIZY7Q,479
56
- sknetwork/embedding/base.py,sha256=cupvrObiI19invfNBrfQtUqtMgYyKMb_gCUF-c3da_k,2851
57
- sknetwork/embedding/force_atlas.py,sha256=D1UOepcBnAXGleC-kCxIIRY1o5kPj-jLRUWw15IagR4,7626
58
- sknetwork/embedding/louvain_embedding.py,sha256=eU6THTLBqTokRwhj7q7lztXpXjla5LazGbgAHagleP8,7127
59
- sknetwork/embedding/louvain_hierarchy.py,sha256=PYfBgOyN6Bi61PNlbQIW6dD-6-fz5m7v2UMvy5lYKpo,5850
60
- sknetwork/embedding/random_projection.py,sha256=enjMO6sltf4zBLmavqS17X0iknrir5GkDWe8Rfgx7gQ,5053
61
- sknetwork/embedding/spectral.py,sha256=wZspZ9MvjwK9G-b3ys7gr8fD4goeWigYwd7mXMDcTUM,8335
62
+ sknetwork/embedding/__init__.py,sha256=hTtHHVXNdwdGSZuAmLvTm3yMmHWxYKrFwwo1MuOPTUI,418
63
+ sknetwork/embedding/base.py,sha256=YWKLjfChvWKWuD3FE5mlqtNVzczzvfojLQvvgV73ACM,2681
64
+ sknetwork/embedding/force_atlas.py,sha256=yjlL5Qfv19KJdwtziTDOklrW_HP5CkMJIoOL6t2cYsA,7650
65
+ sknetwork/embedding/louvain_embedding.py,sha256=3jSFxiWImFc1bUEY1ZXdbvslRxL9wl2CeERZFGF5qKM,7124
66
+ sknetwork/embedding/random_projection.py,sha256=b5zGehuWT-dpA1KSw5xv3UZXZGNcP8PalEjXYWfgPT8,5137
67
+ sknetwork/embedding/spectral.py,sha256=xN_5yxJV2KJ--DOpv7tyy5yU25BHVBWnXbywQ0L_6YE,5689
62
68
  sknetwork/embedding/spring.py,sha256=Cl1airI_mSWmV1isKmcxqjY1uxw7NcH7xMwHc8ADmHA,7349
63
69
  sknetwork/embedding/svd.py,sha256=isI2y9GfCGA5VJmogHrtq2MDVaxuWCZsEvh4YqgfB2k,15097
64
70
  sknetwork/embedding/tests/__init__.py,sha256=PsZQYFNrSmRW_KIuNX3qVtxtZVn8yV18d0mk8Y6ieck,27
65
- sknetwork/embedding/tests/test_API.py,sha256=CVIg2qkAOCjz2dgGdT8gCImXiICRGX0KZGrKC-9LQTU,2652
71
+ sknetwork/embedding/tests/test_API.py,sha256=0KKY3p_bF2f3QPsReW9IrAtC5KGw1Ok3J0kYUT1hrl8,1538
66
72
  sknetwork/embedding/tests/test_force_atlas.py,sha256=dYiyWroqB7UKNW9MTYpGP6e7tF_qPWqVZNmZBndd_ks,1155
67
- sknetwork/embedding/tests/test_louvain_embedding.py,sha256=bsjMQy4nTmBLtrpalzr-8sKXOksZ5HvInRtYLrNSD9k,1189
68
- sknetwork/embedding/tests/test_louvain_hierarchy.py,sha256=QgOQRz0dkw-CesDk78wWKOD-bbR_tqHEBvitfn7POIY,753
73
+ sknetwork/embedding/tests/test_louvain_embedding.py,sha256=yPKM_JG2v_kzYkp4lZ7laalZNq0qhjM6pWmyGWecCkk,853
69
74
  sknetwork/embedding/tests/test_random_projection.py,sha256=zz6q0G-pG-G2gOefhr-yuPBQhNDNtXB8jz7_dld1ZpE,1221
70
- sknetwork/embedding/tests/test_spectral.py,sha256=B7QR01IhxAbS-j4nFxY5TxReiP425u6B77-WXLShLy4,4348
75
+ sknetwork/embedding/tests/test_spectral.py,sha256=w-gokQ_UgeXSQv69BB_Dk6shkWiO6iJbJGl5ih0JNRI,3978
71
76
  sknetwork/embedding/tests/test_spring.py,sha256=z3eT-mFcfNSoMWPKQF-Dz_ZjAsJplQrx1yspiaeFRBw,1693
72
- sknetwork/embedding/tests/test_svd.py,sha256=jn8Osv7eMzWHfdtFkuCB189cdJ0v2Af4Bm9bQ7QjzmQ,1212
77
+ sknetwork/embedding/tests/test_svd.py,sha256=OZTpXRemHEpGYSfYb2AosXhLgruaRpAhyQjNcqQhw0Y,1232
73
78
  sknetwork/gnn/__init__.py,sha256=808PNZEYNHZrIBpKqPzAMKES8yhN6QXEVUWkZVJIJWI,529
74
79
  sknetwork/gnn/activation.py,sha256=rhvEXgrIix4nZ9I3WYZ0e1MID_DESCCC_XlVcOa4Wpo,3677
75
80
  sknetwork/gnn/base.py,sha256=qHnKsfsUW4LIdwm3vzfAahBjweCkIDRzk62i4piNBuc,5889
76
81
  sknetwork/gnn/base_activation.py,sha256=Kxs_d4aPOpMRXZMBAW7WKkA_uWLXRM7XM-JqE4nFHhc,2395
77
- sknetwork/gnn/base_layer.py,sha256=mGiMee2HKAdqlBcKLvr6ylRG-BrraBg68cGe4n6S-Q0,4085
78
- sknetwork/gnn/gnn_classifier.py,sha256=wgP03SVNOXrPiBnKw061iLY3RFkZrp9UeDWYwk7cMXc,14746
79
- sknetwork/gnn/layer.py,sha256=agAIKeoWcae4-QBeztGDCmowq68U_Cv3m2-4jZWBE04,5684
80
- sknetwork/gnn/loss.py,sha256=2cSOj-MbXjmrZbH-KQdEG6IYvSjdwMCnN7SUnI_fd7U,5342
82
+ sknetwork/gnn/base_layer.py,sha256=_zL_SyVYvhxch9N1i44Qkgar_M5xVRz7JcxqUjVwDjY,4057
83
+ sknetwork/gnn/gnn_classifier.py,sha256=EyanIIdGfeshOU_3IwH90PX6GG5nCav6msQN9zfJixo,12918
84
+ sknetwork/gnn/layer.py,sha256=JBNFABBgGtMeXdQaS8wGnsSd7Jqs18jbIguITTOCQRE,5679
85
+ sknetwork/gnn/loss.py,sha256=FwULPjbUe3OFIhIBKJoNfdYX41ALckX2ANKvC69yyoI,5342
81
86
  sknetwork/gnn/neighbor_sampler.py,sha256=l5OkylbRQsDpmkfeHAaSA7gHi5l7OUKtL4YvH-YTMWM,1929
82
- sknetwork/gnn/optimizer.py,sha256=DNL4AXAkO5bUhyK34MFBlZ7QaydYNtgjbhjJ_kjUsN4,5902
83
- sknetwork/gnn/utils.py,sha256=OZQuxNO2CAe_KVuXNCFyOzYA1HqwpJFWWpuuhlSesaU,4448
87
+ sknetwork/gnn/optimizer.py,sha256=Ijtt0VhhD_pUI2Qk8u3GLuO2mQvfVkBqW0cYF-Zqo2I,5946
88
+ sknetwork/gnn/utils.py,sha256=7sNUhWyO_juS3Of67qSwbMThGH-C-Y3NzHxLq2x7S68,4476
84
89
  sknetwork/gnn/tests/__init__.py,sha256=_q1IzwMWdNgX90qzdbVkr0LV4NTjFzXg81z4-TM93cw,21
85
90
  sknetwork/gnn/tests/test_activation.py,sha256=UznwTCvOeCX80n5urtoDhnM8lskDM67AsVFiY-ViqzU,2543
86
91
  sknetwork/gnn/tests/test_base.py,sha256=EN3QjzsSwzpOgyIYHwA6mgCDRBigx7YQ5iSQXQbw_pM,3468
87
- sknetwork/gnn/tests/test_base_layer.py,sha256=J1cVNOXOe1_iwaKqq6EAFBa_KG-fVthDDEETNWJaNqw,1432
88
- sknetwork/gnn/tests/test_gnn_classifier.py,sha256=xw7CKwTEltLBA5hI2ZVZmdbeGato4btLH4ia_tG_bbA,7120
92
+ sknetwork/gnn/tests/test_base_layer.py,sha256=1TfVD7xaI6VUVWZuSmOwDR7Ct0iVFvpmcxUf8L6EaqY,1418
93
+ sknetwork/gnn/tests/test_gnn_classifier.py,sha256=MQYFGWQRF5bTzKB_td3wmtcUZvJl4uoc4pXmOHiutls,5873
89
94
  sknetwork/gnn/tests/test_layers.py,sha256=6Rbz_jJm3m5e6XWZA3P8Bfzlss9nBoiE4rSz2Tc-QKo,3256
90
95
  sknetwork/gnn/tests/test_loss.py,sha256=QvzXKW_xzirXUSkiDm9HgqJPHJdd55FOpuHWZzxyeKs,1078
91
96
  sknetwork/gnn/tests/test_neigh_sampler.py,sha256=7yhKZSRg2sZd3kFNs-qdj1LKgM7X8xZBNoOYYkYRfek,721
92
97
  sknetwork/gnn/tests/test_optimizer.py,sha256=OZnIeO__kNt8HXLHr-WHGzvDsTy4LvJ19p9jcFVzXME,1823
93
98
  sknetwork/gnn/tests/test_utils.py,sha256=MJvOXEWouRiIVaPM76W0hizt3jFb-1_BXHLd1zkPzSg,1884
94
99
  sknetwork/hierarchy/__init__.py,sha256=-2-y7iBVQRanXLSl9kY8VASJVqx37trYmVNcz74QsUc,418
95
- sknetwork/hierarchy/base.py,sha256=ugPo_VM6sPfZusqAAxcyaV02vP64SJbi91KjoxxozTs,2091
96
- sknetwork/hierarchy/louvain_hierarchy.py,sha256=QWgGQNoZxRoOBULDbC-1J-jRg7duDX8ItcL19WHpIlY,9367
100
+ sknetwork/hierarchy/base.py,sha256=DvVUNgJgfaFlWyl4QbdHmp-VldPMFLPx9irt74kpyrU,2789
101
+ sknetwork/hierarchy/louvain_hierarchy.py,sha256=MqIWRoqAl3ufgsV8r707T8qlwaqB_km_yczRcJWh_4w,9826
97
102
  sknetwork/hierarchy/metrics.py,sha256=5WZLsSLYKifLIQ9aPrXyzvPtTFN5ROSlNivhV-n9VuY,8280
98
- sknetwork/hierarchy/paris.cp38-win_amd64.pyd,sha256=ikGxCsUPI6CP-QzL0VnK7F8ayHjp1qfJhVv8npEXeLc,192512
99
- sknetwork/hierarchy/paris.cpp,sha256=5bRnUUGdqVjZJZ8CyNhi7Z_OPTCQ36NemJJOhTjBXSw,1191713
100
- sknetwork/hierarchy/paris.pyx,sha256=YVB5H1AtBDvWgX5kywaSaxnYgiQhSzu-9_3Yqj7aCAs,11915
101
- sknetwork/hierarchy/postprocess.py,sha256=h8v3Ft0li53ewkbpdeiM4j2Xw8tjPbvpJkpqIJstZ-Y,12313
103
+ sknetwork/hierarchy/paris.cp38-win_amd64.pyd,sha256=lTF8dUNeTfbKEnwW8kS6EDFrnz3-h0GO1wAx5QJ3Kgc,225792
104
+ sknetwork/hierarchy/paris.cpp,sha256=h5HY-i7ssQxR_N4KdcEKAFIxxQZjbAZvKZfp9zv5aNM,1471404
105
+ sknetwork/hierarchy/paris.pyx,sha256=YfHQwrZx4ddzsKZ9K4yv1obIrZSVDzY0WjVhM5Qi8DI,11998
106
+ sknetwork/hierarchy/postprocess.py,sha256=81Hj7eCHvU_2mdq0FTeYuZAqk4FIudZfZbvU39_sqyM,12422
102
107
  sknetwork/hierarchy/tests/__init__.py,sha256=jRlC4pbyKuxaiXvByYK-4ix7DwYWxpjwKNvSXZ7rQJE,27
103
108
  sknetwork/hierarchy/tests/test_API.py,sha256=f0QtuCDA5dRwhPogtwbjsVlDRTpk84ewkXgc6rHCSWU,744
104
- sknetwork/hierarchy/tests/test_algos.py,sha256=DtIlYH9zqX0tiX0nmuvL5jTAZiqMhb56F7IQRV-jeMc,1172
109
+ sknetwork/hierarchy/tests/test_algos.py,sha256=HbF1QCFcpbrybRLrz7C0-2yY7s97vciWNiktbbvubwg,1395
105
110
  sknetwork/hierarchy/tests/test_metrics.py,sha256=rcdFVeWf50bYnem55gmUaDfE6AmJuW8RtYEQcigqZ60,3222
106
111
  sknetwork/hierarchy/tests/test_postprocess.py,sha256=Bm1_XU6OgwZr_1B28IA5m_HZRqI7GMwlTLpzkXux__Y,2266
107
- sknetwork/linalg/__init__.py,sha256=_qdALdabKv3x8CAuhq6UB4R9jRewNfpgh6XCRnhHvCE,545
112
+ sknetwork/linalg/__init__.py,sha256=COkAHs_EsxWzd_tHl6qq8laEfSsjoMuWVx3VbNFEgzU,542
108
113
  sknetwork/linalg/basics.py,sha256=WDlylrkBTCQpjXGtzs8kshJYfpo0h3uM8TMhHmnAnnM,1179
109
- sknetwork/linalg/diteration.cp38-win_amd64.pyd,sha256=tO0yP_Ldnz4NJ5vNqCQ-tqplYJ0RB4ZwNjSGq_5Kw_o,118784
110
- sknetwork/linalg/diteration.cpp,sha256=KRgZBLm-bfktuOS60G2WF3TDCxjQVEvtLmeeQzwZhfQ,791452
114
+ sknetwork/linalg/diteration.cp38-win_amd64.pyd,sha256=ciCHCGzPsEsRUfGPpjTGRyTrQPIj4CnzvdWFo_pe3Sg,146944
115
+ sknetwork/linalg/diteration.cpp,sha256=EWGrQv9dBaTDEjI7ihGtT3ZYnLJWFM7IqAwHu7UGpxw,1019890
111
116
  sknetwork/linalg/diteration.pyx,sha256=1r7a1usqftiBNTPOAwHFQPK__nZ67J-87wQLM25GqEU,1431
112
117
  sknetwork/linalg/eig_solver.py,sha256=lMqxTg66_T-LsgGqc9oo_ngxpTceekavnCFOANWEpPA,2793
113
118
  sknetwork/linalg/laplacian.py,sha256=qifd-8iltcTKCQW-7fG5z3XfwVrrrCeaBqbViBQCLf0,416
114
- sknetwork/linalg/normalization.py,sha256=-bmgWOLZtzfCd7U4NBJ2h5f6m2C6BbYvtRwAoptp_Eo,2423
115
- sknetwork/linalg/operators.py,sha256=PPGw20FDAXWj89_CD-lVVh9oA30-O29-XtN_yIygKcM,7660
119
+ sknetwork/linalg/normalizer.py,sha256=Z0-paMHwp51aY_ssCP2RfXNVQqTFA9gsIHfy-fhG5QI,2559
120
+ sknetwork/linalg/operators.py,sha256=nNTtdI_I0HEhnpHOxUYRHmEzUDcz9CbwjDc5eEKzlNQ,7657
116
121
  sknetwork/linalg/polynome.py,sha256=qnIhfpRk26JMinuNCrZO1EDj5ci65ZLxkKJyhO7HxpE,2201
117
- sknetwork/linalg/ppr_solver.py,sha256=Vr8H5f3R8qwvqlhmvlt8p2t09v83WCLyx9mlCvXVLe8,6706
118
- sknetwork/linalg/push.cp38-win_amd64.pyd,sha256=dke_Uk3rm23w1rFx8q16wJ-2-_3teOo-9SkAcvjmH9s,134656
119
- sknetwork/linalg/push.cpp,sha256=g61u0nyOD0i9LOofX4pxtiPWFFN5f2tHZr_6IBaxzzA,910945
122
+ sknetwork/linalg/ppr_solver.py,sha256=D7LUMQgFAtnGhh8pxpKrISH1H9d5MknFpHib8bPA5x4,6703
123
+ sknetwork/linalg/push.cp38-win_amd64.pyd,sha256=_TBEDQpUgodPF_cDtURHgvKAlmHcPDmwsLg1VtaZJxE,165888
124
+ sknetwork/linalg/push.cpp,sha256=-k6QIyhxJb1MhX0CGBnUUyrQSQ-CdjCIe5LBneKtbyY,1157259
120
125
  sknetwork/linalg/push.pyx,sha256=79ycseJ1jOznzc1_KSexTGy_0dlX1jQVnf_WI8Ufvgc,2429
121
126
  sknetwork/linalg/sparse_lowrank.py,sha256=-6-cNRs6tpiNqA8ah3mBKWap3Nh9GQHTFIarPjIiC7U,5170
122
127
  sknetwork/linalg/svd_solver.py,sha256=XxP4AyKQInBQN3imcbtahXseZ4YyKj4ZI2UAJK1mDs4,2772
123
128
  sknetwork/linalg/tests/__init__.py,sha256=i2cO6oXoryXdEJ-HdSFZsY7LZdNit7W3GC8J8LAUMU4,24
124
129
  sknetwork/linalg/tests/test_eig.py,sha256=c_BpjP_S7xCwYgk2N7kaFfsjV1-nfUYCu3Rys07bPeo,1548
125
130
  sknetwork/linalg/tests/test_laplacian.py,sha256=iGI4bFmYfhCbymlN4wcnE0tV9GmApC3g7bDL3Qx8dR0,452
126
- sknetwork/linalg/tests/test_normalization.py,sha256=mwUzdftJg0ZucOi5hf1X0dqOhfMJWyhjpIdymIYeEyc,1142
127
- sknetwork/linalg/tests/test_operators.py,sha256=0m5jWpCuK-gLfq6EdclDC69KxNViYM_2AfNiAPt7QMU,3179
131
+ sknetwork/linalg/tests/test_normalization.py,sha256=tYw6JKDekgsNJEZDvxdtCSHoltvWAu7XgZ6BtVy85e0,921
132
+ sknetwork/linalg/tests/test_operators.py,sha256=AaOekSv0_mnt7KKs61gve4drT_I7PdG5CxLQSgUXYXQ,2985
128
133
  sknetwork/linalg/tests/test_polynome.py,sha256=-F0iMhYd1lVFau6ILxq7Mr5BtJxJPB-TX3ya3tQwzOM,1015
129
- sknetwork/linalg/tests/test_ppr.py,sha256=uN8vTEemFSDLJJYW2W9EVKb8x25ynB8Bez0D7q-B3NQ,2139
134
+ sknetwork/linalg/tests/test_ppr.py,sha256=6FlYnOlpWw2A98iH2Xp45DjbtqB5pPfymVVKhNFmCws,2143
130
135
  sknetwork/linalg/tests/test_sparse_lowrank.py,sha256=Vqeey1W8jB85zT0L4c5TEGTL0hyQ9zX4FQ6EEI4tmHE,2337
131
136
  sknetwork/linalg/tests/test_svd.py,sha256=9Uu89-1vTlaJ_H82MUwzGz-iiYf_wFiZMyfelVBRHMI,1323
132
137
  sknetwork/linkpred/__init__.py,sha256=a7t20Q3xpm1M5IXnyErmucoQuHnGwPTNKAD42oYHEWQ,74
133
- sknetwork/linkpred/base.py,sha256=7eoKAAHSs5a31wRooV7MAHS6aDyeSz9sdDYbBo5JD7M,782
134
- sknetwork/linkpred/nn.py,sha256=I9r5xiob1lFAcNfF7369LOLzwZMJJrzFofJOvEL0Sws,4085
138
+ sknetwork/linkpred/base.py,sha256=hEImortSlZbfMav5uG8AR3ajKn9IXuookuIXhyBuvSw,1041
139
+ sknetwork/linkpred/nn.py,sha256=y0RB1rrKTr23PFklH2M2V7jcXfssl9SLdidtFozFxKg,4156
135
140
  sknetwork/linkpred/tests/__init__.py,sha256=vghxhmK0F5SJOYIb9HZV0h3AVXsCVEPwkgfM7aPpV9M,33
136
141
  sknetwork/linkpred/tests/test_nn.py,sha256=-1r8LyU34XXvhHnvJA53fGmOd6Ei2jGG6-LHtYvHYGc,1010
137
142
  sknetwork/path/__init__.py,sha256=FU7sn-HrqXGbJQzCIlQgE95LGDwwMRzBe-qp4rTt-3A,227
138
143
  sknetwork/path/dag.py,sha256=UAhn3uL2hlCybyOY0ZBnFh1aJnWwWpZ4pfhg-Ay2JKU,1722
139
- sknetwork/path/distances.py,sha256=f_XrITrz_EkTzNmclOomkGwH1abZ-PiwFlgFufrS0qA,3445
144
+ sknetwork/path/distances.py,sha256=HsehKUOtoL8dCybTTm_mALTH9szOHkCRKkw3ref7-PA,3666
140
145
  sknetwork/path/search.py,sha256=SD6iV6m_OdygudaJ3vaNyLQtlGZrHjfCvA0BIFPPAN0,807
141
- sknetwork/path/shortest_path.py,sha256=jvijMKYg9p-u5__P7WHhzvkNyBwJSn_29GIeYpS2q-g,2509
146
+ sknetwork/path/shortest_path.py,sha256=gr7nB8woh3xBrS0gybylpQ31uDYCE2N4WEi2vTpke2Y,2511
142
147
  sknetwork/path/tests/__init__.py,sha256=ntNGJ8p6RZkIrYnePF-TESyoidEXx8fw6A9OBNAlIqo,29
143
148
  sknetwork/path/tests/test_dag.py,sha256=lualgStm0Boqx88j38tNuRKrW7Ala5ZfIHzlKdFbVRM,975
144
- sknetwork/path/tests/test_distances.py,sha256=yNkg6MiH3nfrFvEuL_DGMgiUkKa8SyhlqudOhwCoPR0,2327
145
- sknetwork/path/tests/test_search.py,sha256=JqauA2PRb-NbmMhlX80GEe2iNQAhSVdqu1G3eKDkri8,1243
149
+ sknetwork/path/tests/test_distances.py,sha256=V9ZukcbwZ9HUDIg1-bKunkT4RHN94y2tkl0DRTKpefY,2757
150
+ sknetwork/path/tests/test_search.py,sha256=wJzwbbe86axJRmausJp-KcsNTB9n7kpo6YBd77SjV20,1239
146
151
  sknetwork/path/tests/test_shortest_path.py,sha256=zeM-qgbTs3i29gvF568otKOKgv_pbryV_yGefThLEIY,1422
147
152
  sknetwork/ranking/__init__.py,sha256=lbkUSZ3alkLK0xGiUx5ptPqhQKIjIKK80uPk0KymJPc,356
148
- sknetwork/ranking/base.py,sha256=7HxTw136hWuqOHPLgtpcboWZTxBx00tBYuJt-O9P7q8,1497
149
- sknetwork/ranking/betweenness.cp38-win_amd64.pyd,sha256=i0Q003wvOZFq7TuOyU88UwQp7Pgs1xRpjcAE8bRUEyQ,66560
150
- sknetwork/ranking/betweenness.cpp,sha256=aLBFMlWemA3rE9Yfpkmy6PrPP6TLXGvZEzhLi_le2Uc,265625
153
+ sknetwork/ranking/base.py,sha256=W3gw9j_ikhyETr3dpEYo9RINUUHlSn8Dez_eAnlIsDg,1573
154
+ sknetwork/ranking/betweenness.cp38-win_amd64.pyd,sha256=EwOJKpo2wQ-CGRde99XNPDDPu2S7170H2Tg7oWWJKTM,74752
155
+ sknetwork/ranking/betweenness.cpp,sha256=07eh8OBczDx_TjDcYes6SB9ogMbhzABc0HhKQKU904s,380616
151
156
  sknetwork/ranking/betweenness.pyx,sha256=fe5_gwRQ0TaFi_0-vUGfy6XC5kW5un5xly7-xVDgxrU,3184
152
157
  sknetwork/ranking/closeness.py,sha256=CvdAaqsM8HvAi6zGCuLcVF0BUu9n9UPBz_YxZhFF_sM,2932
153
158
  sknetwork/ranking/hits.py,sha256=uhGJH2C0U9hLsVRutI6M1ulbEIM7L6dCeYqiAhtTD9A,2855
154
159
  sknetwork/ranking/katz.py,sha256=WQpxJq_qqvjFm1ZG_P1ynfpzLlPu-dXCJ9luK-8sRjY,2618
155
- sknetwork/ranking/pagerank.py,sha256=-cgPvGfiITFSs5X6GJca2Pq4UATK3W8s6Vpr6potjD4,4789
160
+ sknetwork/ranking/pagerank.py,sha256=jzh5dFuM4k5E6UknDFx6WVU2HA30enYbe95RUYmssi0,4859
156
161
  sknetwork/ranking/postprocess.py,sha256=F2yP6AsaK9ylTzukLCdtJET7_KnprrxkyWTSKQOnODk,956
157
162
  sknetwork/ranking/tests/__init__.py,sha256=46AJCs9irV6PtFg8CVH8TqpqHA6ajs29-3rsL3zxZQ8,25
158
- sknetwork/ranking/tests/test_API.py,sha256=ZyPjemb2imUDaJhDBl0IMnJAx0bRXA75kPm_rrM-AX8,1145
159
- sknetwork/ranking/tests/test_betweenness.py,sha256=m-mYofSfLvswGvcIPOjZcfWG9HbbjY9RI8x0Eb9zD90,1175
163
+ sknetwork/ranking/tests/test_API.py,sha256=wPRPjYGcyxEqRt7g4SH7FEZt1sFKBqo2LhCRq0g9pF4,1035
164
+ sknetwork/ranking/tests/test_betweenness.py,sha256=CEqRSOYOgnLUND54GBglDAUdzr6EGRxEPN3iMrYpE34,1173
160
165
  sknetwork/ranking/tests/test_closeness.py,sha256=7LSiT-H5S1vuaOj4NHpotg0voIWjgJfVlgR96_V2ny8,853
161
166
  sknetwork/ranking/tests/test_hits.py,sha256=aOPsAyU3GNyb_Mcujd7U_TLBtzWn91SuOPyZZRUF9MU,511
162
- sknetwork/ranking/tests/test_pagerank.py,sha256=e_f7Y33ITMDZyFgvZaRxrTyIODgvXwKgDK8BgMyitw0,1983
167
+ sknetwork/ranking/tests/test_pagerank.py,sha256=LlRJLoq-By1WVOuY71OAh46vCIvERQ0qiIgOgpvw6aM,2305
163
168
  sknetwork/ranking/tests/test_postprocess.py,sha256=TpyU3_DKbnSwuf0HEuEYMiNbdI6Z5oP1JNO6kWigFkc,729
164
169
  sknetwork/regression/__init__.py,sha256=FYnlc-DKS1Mz2lKVCtKldjSgtvzxMmkd5kwKq2HdNmE,145
165
- sknetwork/regression/base.py,sha256=Dnvr3egl7pWpYVUjRITgsjOXsxjN76KtCd4nEy8wFuc,1123
166
- sknetwork/regression/diffusion.py,sha256=GagoWzmlc86w8eY_df-kIbbyNVNXzrhE1XJIkLFSTNU,7462
170
+ sknetwork/regression/base.py,sha256=gTBqtaE-tMmtcnWh0pPsK9fg7eEUF1UaDdINE2nLNI8,1557
171
+ sknetwork/regression/diffusion.py,sha256=sUKbAf0VNmMHQmw_-Dba25omL4oEpWhyYU1qZJ_QA2E,8053
167
172
  sknetwork/regression/tests/__init__.py,sha256=GvqvsSMbqMYwRmWw4VrZntwccz1jOPqrqufAZqw_NAc,28
168
173
  sknetwork/regression/tests/test_API.py,sha256=7x_n8bG8hUcJVRYDbdC6GvPmwW5cE7HmASlu5SHnwFI,1056
169
- sknetwork/regression/tests/test_diffusion.py,sha256=kUncxGwUnXFn15TfAkQKqE4syVvg_-ERNZGwua1JJoo,1734
170
- sknetwork/topology/__init__.py,sha256=nf6yGfRNIFYL65UJNiGvZUqemGUJrwcj7k3Q-vF-7A4,361
171
- sknetwork/topology/cliques.cp38-win_amd64.pyd,sha256=Zdd_-C1sQ2vQ-42x8LNhzdQM9R-QRQ-nNPS9xDprWDU,145920
172
- sknetwork/topology/cliques.cpp,sha256=KDscttBrVPdP4bWwCRy4Oo8E02QNlkYT_qi-RWy1KpM,951647
174
+ sknetwork/regression/tests/test_diffusion.py,sha256=_ivBfsfmRQyiFChMS8N1J7HoJDhZtKdeydBIu7SuSvU,2117
175
+ sknetwork/topology/__init__.py,sha256=Ho06JPdSeiy5sq-Cv3e9y4AiFVMUQ_RUNUDDpKegWnM,542
176
+ sknetwork/topology/cliques.cp38-win_amd64.pyd,sha256=RyyOw5WJi9QOEPh873bsFDzqBBTUKGbdWVSYF8Kb7F4,186368
177
+ sknetwork/topology/cliques.cpp,sha256=yIolxcRHdL-pYv_gwT6C1PHukspSFGsu5KZPBAs4L9s,1224054
173
178
  sknetwork/topology/cliques.pyx,sha256=y6Ee5oaX7IdVhXXjSOazqT5dYo4gSTQ8Mq0u1Abg0vw,4659
174
- sknetwork/topology/core.cp38-win_amd64.pyd,sha256=ImxpMbucXeNUfYg8-tOwyqIesyEGO85nmUDpaDZzdhQ,125952
175
- sknetwork/topology/core.cpp,sha256=Mboeef6F_WPydXP_mUldok_-6XEZFK1VBO6hwHerAu0,882167
179
+ sknetwork/topology/core.cp38-win_amd64.pyd,sha256=VWnnJbi7xCXTn4jASoTHwxwsEzr-cHCZs4srGCTzsUQ,156160
180
+ sknetwork/topology/core.cpp,sha256=Qrx5HTPrLimfLFBMEywsZ7_1nMJSR9OnsKUQKH-tahc,1133337
176
181
  sknetwork/topology/core.pyx,sha256=0PO4HnOYivjrFY1NMlXHd7wscu0R5Fg-Toj3YVRwXDo,2555
177
- sknetwork/topology/minheap.cp38-win_amd64.pyd,sha256=KmyBnwB3wwhWZ_STVdSQ9OSLJeqRjVw4EAflOdR1glY,105984
178
- sknetwork/topology/minheap.cpp,sha256=xn4w1HYY8-OHrwZ_ESumSjGjJvsJKIGGM8fyyY3JGEM,778757
182
+ sknetwork/topology/cycles.py,sha256=EgVtANHvY-MBcIe3yRVaBYzz1amsiV6GfuDEMIO3Kl0,9246
183
+ sknetwork/topology/minheap.cp38-win_amd64.pyd,sha256=_vguBNR3wgiMKxoJhIFKMrW4KRrd7rz2UeMpGrzwAKU,134656
184
+ sknetwork/topology/minheap.cpp,sha256=7sacyZC4_YsfLrPQqbi5n92I0VdPxhFhPPajQKSfhlE,1016262
179
185
  sknetwork/topology/minheap.pxd,sha256=AHeBNN8wGzT429K6AyhbrFUoBkWVwbkyUIY6TkeJ80g,584
180
186
  sknetwork/topology/minheap.pyx,sha256=KOmjjlljgkGUJNL8PQ6WaNzx-Ro84QoSve_8baDN1B0,3419
181
- sknetwork/topology/structure.py,sha256=BBMZ1OHKvPWYurYjQORfX98tBPtN43rZngbUQiWKnmI,8852
182
- sknetwork/topology/triangles.cp38-win_amd64.pyd,sha256=Sj8UTzYy7_ijdNk9FG75pVZRrRTD1q6VddHnCZ9vQF8,40960
183
- sknetwork/topology/triangles.cpp,sha256=bWOjS1INcwpgibcnlJ1P0sYRyxuGedeTIgrSCWCJ2qk,201092
184
- sknetwork/topology/triangles.pyx,sha256=NAuWB4UG7WiC71xqW9W_oQlr4yB3QZA-qNTbjPL4IdQ,4291
187
+ sknetwork/topology/structure.py,sha256=28mSnrukLU_GDil8e5ouLZ9PuoQyJ0UmQ4WgMu9Wzew,7479
188
+ sknetwork/topology/triangles.cp38-win_amd64.pyd,sha256=j1llSabHmZgRIbnhZpBiwLu682YHZPLbPnnOqk1s60g,60416
189
+ sknetwork/topology/triangles.cpp,sha256=WFq-t8CJub3520McWF1WM05arEBp1vb3-hqAkOLr20w,354316
190
+ sknetwork/topology/triangles.pyx,sha256=q_f23ZidyizvR9P4X4OIX8o8bAZZTtV7tnjXqmyYZuY,4500
185
191
  sknetwork/topology/weisfeiler_lehman.py,sha256=U5b5RoTFtqBeFwkuBXs4g0Px2UWRFePyneu-tfgnY_I,4441
186
- sknetwork/topology/weisfeiler_lehman_core.cp38-win_amd64.pyd,sha256=QAYWevOKPE8-lDcdFY5YiJF_NS5b4Th3P7Eh2g5BjJo,128512
187
- sknetwork/topology/weisfeiler_lehman_core.cpp,sha256=2we8RKtThjG_dsjD8u2SxwIE06dYTzmnCGe9cTsyN0o,798123
192
+ sknetwork/topology/weisfeiler_lehman_core.cp38-win_amd64.pyd,sha256=QzykEtxx48QtG2JUN3N5ICWVqCJKNc4B3tfngTZBFIg,156672
193
+ sknetwork/topology/weisfeiler_lehman_core.cpp,sha256=8MUB205PaTq8DOSKascMsP2ZOYblhbdOZW4y0_uQIew,1027132
188
194
  sknetwork/topology/weisfeiler_lehman_core.pyx,sha256=lpUV1BpxtedsGBfOl19b8OFXCIbyaAA4ZYlW6BzSxbw,3148
189
195
  sknetwork/topology/tests/__init__.py,sha256=84T-xv8JCFeA9D7Rxw9gy3_dNAoE8CY1k1pYcuG8K3s,26
190
196
  sknetwork/topology/tests/test_cliques.py,sha256=vdRMDmF8AKkIWE-LnU2yGzk1wzwzq9PdggpeS-8wfRw,866
191
197
  sknetwork/topology/tests/test_core.py,sha256=7w9lrzsQ5Pn7QzxA0F_L58cXCABFir7rtLn2DZdPKsk,570
192
- sknetwork/topology/tests/test_structure.py,sha256=MJcPSCNSxairXVc_FO4nCsqJu7f_-zyy1VC4sFL8b90,4734
198
+ sknetwork/topology/tests/test_cycles.py,sha256=iKhfvZf-GjlcVCFwRzo9OkxPfnT_pM-eLKW72VIvRy0,3215
199
+ sknetwork/topology/tests/test_structure.py,sha256=BIJuO39ROQRA-xipUfk8PajHQ0Uk9EY6C-c3JYkmBSg,4033
193
200
  sknetwork/topology/tests/test_triangles.py,sha256=5AYxNQ8DkKTvpShWEWV-v1r7WZx1DuylChcEmVF0yTk,1313
194
201
  sknetwork/topology/tests/test_wl.py,sha256=vesYcnlJHPphk2RJLzKJH9N6aYpPeKLFJko1E8kBdtc,2290
195
202
  sknetwork/utils/__init__.py,sha256=ceT5UU4JRxCqpDlPj84gPBaKMRsI6b_YfaBzkK67Qo4,336
196
203
  sknetwork/utils/check.py,sha256=LWUkHwDzr9Z9IyT7AIsrQyDrRAMjO2bzWyFsv_P9Ask,13295
197
- sknetwork/utils/format.py,sha256=5gKHLLBuGboIqmtNKiwzrC_qbh-sPi_mejhJ_8teaLs,8974
198
- sknetwork/utils/membership.py,sha256=claXsrZd6BVT4WuuI0P00tqapbczvAxtLAWMWNQ78KE,2234
204
+ sknetwork/utils/format.py,sha256=g_cfUlETJp7AppCiVKG2VZPexH-H9rVNGF4hXh2rshM,8987
205
+ sknetwork/utils/membership.py,sha256=kan9WuytJCyBAZi0CfM0SJEf527XB4WAYMkIctD5D9w,2244
199
206
  sknetwork/utils/neighbors.py,sha256=-EwBXigM3mn2qvVTi_aPmG0XifDMojZgsMQ9_A8cLkk,3466
200
207
  sknetwork/utils/tfidf.py,sha256=vvISEaZJa7RZrNNgQEAHgMH2rJToARuNWcVjnA8u7po,993
201
208
  sknetwork/utils/values.py,sha256=aUc2fuI56J78_6P-S2mT4NhHgiiIZp6D2feNKcsQmG4,2584
@@ -206,16 +213,16 @@ sknetwork/utils/tests/test_membership.py,sha256=d_TobwpRl2K3qCcFBDQV1bGCSmF7Ls3r
206
213
  sknetwork/utils/tests/test_neighbors.py,sha256=Q7-Y23CcF4vn5lcyEqjaojEAk7-pG03Mf59O1Rz3IUs,1467
207
214
  sknetwork/utils/tests/test_tfidf.py,sha256=KYz_LSxi625kKL-v5-uA1-YQOliIfgXCmNXTAZtgpmw,463
208
215
  sknetwork/utils/tests/test_values.py,sha256=K3ctTXpSy9fwiHnpFVlHX5KeTd2wNF4kbFiTXe_gQq8,2334
209
- sknetwork/visualization/__init__.py,sha256=0gVE7r4oXW6IPlNzq2EXwvr_oRDwCjtuhBh0FN-4I4Y,162
216
+ sknetwork/visualization/__init__.py,sha256=Ww8O1hby1xf_mtRgFftc9srMzvbFgWOzj_khKkqq9Mg,220
210
217
  sknetwork/visualization/colors.py,sha256=NhyMQeetfH16khnJD2gD_uZJkBD3JQDV0K3Jzacamqw,2543
211
- sknetwork/visualization/dendrograms.py,sha256=-U-WVuO-uFpqPrXuWJmhpkIUyeYX-GLemRmChdtbWhY,8280
212
- sknetwork/visualization/graphs.py,sha256=vx2PC_IilHNW9G6GgNq3muFCM7Hc3Mz0lHMrOmH8Qu8,32806
218
+ sknetwork/visualization/dendrograms.py,sha256=HtubynuGsJ5b7bD5I8dIKL5UqhqynmqOhw_wJt6VGUA,10178
219
+ sknetwork/visualization/graphs.py,sha256=SJDta3IUolBDI69kFdF7WGmjcLsfqkQNw5ixvJwoNuk,42214
213
220
  sknetwork/visualization/tests/__init__.py,sha256=hrso2pNVzMWn4D2pRyWA_xAMib-xacKjm-rf91MyGGk,31
214
- sknetwork/visualization/tests/test_dendrograms.py,sha256=4BEdDonrQZsylKgwDpxwTdUZTnqbMKokpugTYbcAp5o,2455
215
- sknetwork/visualization/tests/test_graphs.py,sha256=FkzWHYx0KHr0sxP7Go-KZICjoiGXK1EoF8nzIMUiFBc,8968
216
- scikit_network-0.31.0.dist-info/AUTHORS.rst,sha256=SSAG2WortFtGW_lEWFDX15zhkIvoEOwc60q2yVTRN7Q,921
217
- scikit_network-0.31.0.dist-info/LICENSE,sha256=BJ1Hth1QjBmjIfHcp1sVxlkEqHYM58Vn5bcpYcggMZE,1656
218
- scikit_network-0.31.0.dist-info/METADATA,sha256=wXSb_IbBBsuXwnQq37r8hav6vMIyz0PDv3mSRNSayRY,14521
219
- scikit_network-0.31.0.dist-info/WHEEL,sha256=b_PH-i_F2xFYDXcROE5vpDbWUcY020I0eLFvEIYA9Pc,100
220
- scikit_network-0.31.0.dist-info/top_level.txt,sha256=fkwspWQ9B3csqb5ENEOoVciRY6XftnMuz4MvTDQeSsg,10
221
- scikit_network-0.31.0.dist-info/RECORD,,
221
+ sknetwork/visualization/tests/test_dendrograms.py,sha256=e0u3qL9SlWlrQiVAeCVXxq7P6-mU0GaCz3FBu6cm_HA,2519
222
+ sknetwork/visualization/tests/test_graphs.py,sha256=FPZcgGj9asTjOvtkXpENYjeE8xtwh1ES4XYWcYe56Jo,9597
223
+ scikit_network-0.32.1.dist-info/AUTHORS.rst,sha256=t2CJQFYm_OvWod1zQx4Tw-BeKLVlpQjQ0APBIOnYRPE,968
224
+ scikit_network-0.32.1.dist-info/LICENSE,sha256=BJ1Hth1QjBmjIfHcp1sVxlkEqHYM58Vn5bcpYcggMZE,1656
225
+ scikit_network-0.32.1.dist-info/METADATA,sha256=cmHp6cheSqpUDU3TEOHmo-VKw-6fBXvAw2U5SewlIFQ,14907
226
+ scikit_network-0.32.1.dist-info/WHEEL,sha256=3SeyPJ5-Us2Ct5GSftUVKtLSlm-bNefW4m5qd0GLzww,100
227
+ scikit_network-0.32.1.dist-info/top_level.txt,sha256=fkwspWQ9B3csqb5ENEOoVciRY6XftnMuz4MvTDQeSsg,10
228
+ scikit_network-0.32.1.dist-info/RECORD,,
@@ -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: cp38-cp38-win_amd64
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.1'
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