scikit-network 0.33.0__cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.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 (217) hide show
  1. scikit_network-0.33.0.dist-info/AUTHORS.rst +43 -0
  2. scikit_network-0.33.0.dist-info/LICENSE +34 -0
  3. scikit_network-0.33.0.dist-info/METADATA +517 -0
  4. scikit_network-0.33.0.dist-info/RECORD +217 -0
  5. scikit_network-0.33.0.dist-info/WHEEL +6 -0
  6. scikit_network-0.33.0.dist-info/top_level.txt +1 -0
  7. scikit_network.libs/libgomp-a34b3233.so.1.0.0 +0 -0
  8. sknetwork/__init__.py +21 -0
  9. sknetwork/base.py +67 -0
  10. sknetwork/classification/__init__.py +8 -0
  11. sknetwork/classification/base.py +142 -0
  12. sknetwork/classification/base_rank.py +133 -0
  13. sknetwork/classification/diffusion.py +134 -0
  14. sknetwork/classification/knn.py +139 -0
  15. sknetwork/classification/metrics.py +205 -0
  16. sknetwork/classification/pagerank.py +66 -0
  17. sknetwork/classification/propagation.py +152 -0
  18. sknetwork/classification/tests/__init__.py +1 -0
  19. sknetwork/classification/tests/test_API.py +30 -0
  20. sknetwork/classification/tests/test_diffusion.py +77 -0
  21. sknetwork/classification/tests/test_knn.py +23 -0
  22. sknetwork/classification/tests/test_metrics.py +53 -0
  23. sknetwork/classification/tests/test_pagerank.py +20 -0
  24. sknetwork/classification/tests/test_propagation.py +24 -0
  25. sknetwork/classification/vote.cpython-312-x86_64-linux-gnu.so +0 -0
  26. sknetwork/classification/vote.pyx +56 -0
  27. sknetwork/clustering/__init__.py +8 -0
  28. sknetwork/clustering/base.py +172 -0
  29. sknetwork/clustering/kcenters.py +253 -0
  30. sknetwork/clustering/leiden.py +242 -0
  31. sknetwork/clustering/leiden_core.cpython-312-x86_64-linux-gnu.so +0 -0
  32. sknetwork/clustering/leiden_core.pyx +124 -0
  33. sknetwork/clustering/louvain.py +286 -0
  34. sknetwork/clustering/louvain_core.cpython-312-x86_64-linux-gnu.so +0 -0
  35. sknetwork/clustering/louvain_core.pyx +124 -0
  36. sknetwork/clustering/metrics.py +91 -0
  37. sknetwork/clustering/postprocess.py +66 -0
  38. sknetwork/clustering/propagation_clustering.py +104 -0
  39. sknetwork/clustering/tests/__init__.py +1 -0
  40. sknetwork/clustering/tests/test_API.py +38 -0
  41. sknetwork/clustering/tests/test_kcenters.py +60 -0
  42. sknetwork/clustering/tests/test_leiden.py +34 -0
  43. sknetwork/clustering/tests/test_louvain.py +129 -0
  44. sknetwork/clustering/tests/test_metrics.py +50 -0
  45. sknetwork/clustering/tests/test_postprocess.py +39 -0
  46. sknetwork/data/__init__.py +6 -0
  47. sknetwork/data/base.py +33 -0
  48. sknetwork/data/load.py +406 -0
  49. sknetwork/data/models.py +459 -0
  50. sknetwork/data/parse.py +644 -0
  51. sknetwork/data/test_graphs.py +84 -0
  52. sknetwork/data/tests/__init__.py +1 -0
  53. sknetwork/data/tests/test_API.py +30 -0
  54. sknetwork/data/tests/test_base.py +14 -0
  55. sknetwork/data/tests/test_load.py +95 -0
  56. sknetwork/data/tests/test_models.py +52 -0
  57. sknetwork/data/tests/test_parse.py +250 -0
  58. sknetwork/data/tests/test_test_graphs.py +29 -0
  59. sknetwork/data/tests/test_toy_graphs.py +68 -0
  60. sknetwork/data/timeout.py +38 -0
  61. sknetwork/data/toy_graphs.py +611 -0
  62. sknetwork/embedding/__init__.py +8 -0
  63. sknetwork/embedding/base.py +94 -0
  64. sknetwork/embedding/force_atlas.py +198 -0
  65. sknetwork/embedding/louvain_embedding.py +148 -0
  66. sknetwork/embedding/random_projection.py +135 -0
  67. sknetwork/embedding/spectral.py +141 -0
  68. sknetwork/embedding/spring.py +198 -0
  69. sknetwork/embedding/svd.py +359 -0
  70. sknetwork/embedding/tests/__init__.py +1 -0
  71. sknetwork/embedding/tests/test_API.py +49 -0
  72. sknetwork/embedding/tests/test_force_atlas.py +35 -0
  73. sknetwork/embedding/tests/test_louvain_embedding.py +33 -0
  74. sknetwork/embedding/tests/test_random_projection.py +28 -0
  75. sknetwork/embedding/tests/test_spectral.py +81 -0
  76. sknetwork/embedding/tests/test_spring.py +50 -0
  77. sknetwork/embedding/tests/test_svd.py +43 -0
  78. sknetwork/gnn/__init__.py +10 -0
  79. sknetwork/gnn/activation.py +117 -0
  80. sknetwork/gnn/base.py +181 -0
  81. sknetwork/gnn/base_activation.py +89 -0
  82. sknetwork/gnn/base_layer.py +109 -0
  83. sknetwork/gnn/gnn_classifier.py +305 -0
  84. sknetwork/gnn/layer.py +153 -0
  85. sknetwork/gnn/loss.py +180 -0
  86. sknetwork/gnn/neighbor_sampler.py +65 -0
  87. sknetwork/gnn/optimizer.py +164 -0
  88. sknetwork/gnn/tests/__init__.py +1 -0
  89. sknetwork/gnn/tests/test_activation.py +56 -0
  90. sknetwork/gnn/tests/test_base.py +75 -0
  91. sknetwork/gnn/tests/test_base_layer.py +37 -0
  92. sknetwork/gnn/tests/test_gnn_classifier.py +130 -0
  93. sknetwork/gnn/tests/test_layers.py +80 -0
  94. sknetwork/gnn/tests/test_loss.py +33 -0
  95. sknetwork/gnn/tests/test_neigh_sampler.py +23 -0
  96. sknetwork/gnn/tests/test_optimizer.py +43 -0
  97. sknetwork/gnn/tests/test_utils.py +41 -0
  98. sknetwork/gnn/utils.py +127 -0
  99. sknetwork/hierarchy/__init__.py +6 -0
  100. sknetwork/hierarchy/base.py +96 -0
  101. sknetwork/hierarchy/louvain_hierarchy.py +272 -0
  102. sknetwork/hierarchy/metrics.py +234 -0
  103. sknetwork/hierarchy/paris.cpython-312-x86_64-linux-gnu.so +0 -0
  104. sknetwork/hierarchy/paris.pyx +316 -0
  105. sknetwork/hierarchy/postprocess.py +350 -0
  106. sknetwork/hierarchy/tests/__init__.py +1 -0
  107. sknetwork/hierarchy/tests/test_API.py +24 -0
  108. sknetwork/hierarchy/tests/test_algos.py +34 -0
  109. sknetwork/hierarchy/tests/test_metrics.py +62 -0
  110. sknetwork/hierarchy/tests/test_postprocess.py +57 -0
  111. sknetwork/linalg/__init__.py +9 -0
  112. sknetwork/linalg/basics.py +37 -0
  113. sknetwork/linalg/diteration.cpython-312-x86_64-linux-gnu.so +0 -0
  114. sknetwork/linalg/diteration.pyx +47 -0
  115. sknetwork/linalg/eig_solver.py +93 -0
  116. sknetwork/linalg/laplacian.py +15 -0
  117. sknetwork/linalg/normalizer.py +86 -0
  118. sknetwork/linalg/operators.py +225 -0
  119. sknetwork/linalg/polynome.py +76 -0
  120. sknetwork/linalg/ppr_solver.py +170 -0
  121. sknetwork/linalg/push.cpython-312-x86_64-linux-gnu.so +0 -0
  122. sknetwork/linalg/push.pyx +71 -0
  123. sknetwork/linalg/sparse_lowrank.py +142 -0
  124. sknetwork/linalg/svd_solver.py +91 -0
  125. sknetwork/linalg/tests/__init__.py +1 -0
  126. sknetwork/linalg/tests/test_eig.py +44 -0
  127. sknetwork/linalg/tests/test_laplacian.py +18 -0
  128. sknetwork/linalg/tests/test_normalization.py +34 -0
  129. sknetwork/linalg/tests/test_operators.py +66 -0
  130. sknetwork/linalg/tests/test_polynome.py +38 -0
  131. sknetwork/linalg/tests/test_ppr.py +50 -0
  132. sknetwork/linalg/tests/test_sparse_lowrank.py +61 -0
  133. sknetwork/linalg/tests/test_svd.py +38 -0
  134. sknetwork/linkpred/__init__.py +2 -0
  135. sknetwork/linkpred/base.py +46 -0
  136. sknetwork/linkpred/nn.py +126 -0
  137. sknetwork/linkpred/tests/__init__.py +1 -0
  138. sknetwork/linkpred/tests/test_nn.py +27 -0
  139. sknetwork/log.py +19 -0
  140. sknetwork/path/__init__.py +5 -0
  141. sknetwork/path/dag.py +54 -0
  142. sknetwork/path/distances.py +98 -0
  143. sknetwork/path/search.py +31 -0
  144. sknetwork/path/shortest_path.py +61 -0
  145. sknetwork/path/tests/__init__.py +1 -0
  146. sknetwork/path/tests/test_dag.py +37 -0
  147. sknetwork/path/tests/test_distances.py +62 -0
  148. sknetwork/path/tests/test_search.py +40 -0
  149. sknetwork/path/tests/test_shortest_path.py +40 -0
  150. sknetwork/ranking/__init__.py +8 -0
  151. sknetwork/ranking/base.py +61 -0
  152. sknetwork/ranking/betweenness.cpython-312-x86_64-linux-gnu.so +0 -0
  153. sknetwork/ranking/betweenness.pyx +97 -0
  154. sknetwork/ranking/closeness.py +92 -0
  155. sknetwork/ranking/hits.py +94 -0
  156. sknetwork/ranking/katz.py +83 -0
  157. sknetwork/ranking/pagerank.py +110 -0
  158. sknetwork/ranking/postprocess.py +37 -0
  159. sknetwork/ranking/tests/__init__.py +1 -0
  160. sknetwork/ranking/tests/test_API.py +32 -0
  161. sknetwork/ranking/tests/test_betweenness.py +38 -0
  162. sknetwork/ranking/tests/test_closeness.py +30 -0
  163. sknetwork/ranking/tests/test_hits.py +20 -0
  164. sknetwork/ranking/tests/test_pagerank.py +62 -0
  165. sknetwork/ranking/tests/test_postprocess.py +26 -0
  166. sknetwork/regression/__init__.py +4 -0
  167. sknetwork/regression/base.py +61 -0
  168. sknetwork/regression/diffusion.py +210 -0
  169. sknetwork/regression/tests/__init__.py +1 -0
  170. sknetwork/regression/tests/test_API.py +32 -0
  171. sknetwork/regression/tests/test_diffusion.py +56 -0
  172. sknetwork/sknetwork.py +3 -0
  173. sknetwork/test_base.py +35 -0
  174. sknetwork/test_log.py +15 -0
  175. sknetwork/topology/__init__.py +8 -0
  176. sknetwork/topology/cliques.cpython-312-x86_64-linux-gnu.so +0 -0
  177. sknetwork/topology/cliques.pyx +149 -0
  178. sknetwork/topology/core.cpython-312-x86_64-linux-gnu.so +0 -0
  179. sknetwork/topology/core.pyx +90 -0
  180. sknetwork/topology/cycles.py +243 -0
  181. sknetwork/topology/minheap.cpython-312-x86_64-linux-gnu.so +0 -0
  182. sknetwork/topology/minheap.pxd +20 -0
  183. sknetwork/topology/minheap.pyx +109 -0
  184. sknetwork/topology/structure.py +194 -0
  185. sknetwork/topology/tests/__init__.py +1 -0
  186. sknetwork/topology/tests/test_cliques.py +28 -0
  187. sknetwork/topology/tests/test_core.py +19 -0
  188. sknetwork/topology/tests/test_cycles.py +65 -0
  189. sknetwork/topology/tests/test_structure.py +85 -0
  190. sknetwork/topology/tests/test_triangles.py +38 -0
  191. sknetwork/topology/tests/test_wl.py +72 -0
  192. sknetwork/topology/triangles.cpython-312-x86_64-linux-gnu.so +0 -0
  193. sknetwork/topology/triangles.pyx +151 -0
  194. sknetwork/topology/weisfeiler_lehman.py +133 -0
  195. sknetwork/topology/weisfeiler_lehman_core.cpython-312-x86_64-linux-gnu.so +0 -0
  196. sknetwork/topology/weisfeiler_lehman_core.pyx +114 -0
  197. sknetwork/utils/__init__.py +7 -0
  198. sknetwork/utils/check.py +355 -0
  199. sknetwork/utils/format.py +221 -0
  200. sknetwork/utils/membership.py +82 -0
  201. sknetwork/utils/neighbors.py +115 -0
  202. sknetwork/utils/tests/__init__.py +1 -0
  203. sknetwork/utils/tests/test_check.py +190 -0
  204. sknetwork/utils/tests/test_format.py +63 -0
  205. sknetwork/utils/tests/test_membership.py +24 -0
  206. sknetwork/utils/tests/test_neighbors.py +41 -0
  207. sknetwork/utils/tests/test_tfidf.py +18 -0
  208. sknetwork/utils/tests/test_values.py +66 -0
  209. sknetwork/utils/tfidf.py +37 -0
  210. sknetwork/utils/values.py +76 -0
  211. sknetwork/visualization/__init__.py +4 -0
  212. sknetwork/visualization/colors.py +34 -0
  213. sknetwork/visualization/dendrograms.py +277 -0
  214. sknetwork/visualization/graphs.py +1039 -0
  215. sknetwork/visualization/tests/__init__.py +1 -0
  216. sknetwork/visualization/tests/test_dendrograms.py +53 -0
  217. sknetwork/visualization/tests/test_graphs.py +176 -0
@@ -0,0 +1,217 @@
1
+ scikit_network.libs/libgomp-a34b3233.so.1.0.0,sha256=On6uznIxkRvi-7Gz58tMtcLg-E4MK7c3OUcrWh_uyME,168193
2
+ sknetwork/__init__.py,sha256=SZAI5otUFjW-KNf_HNvDY7g_mjFAcPTNg5SIcBjU4WM,533
3
+ sknetwork/base.py,sha256=XJJ6MicVcSiQBWQ9fYlmUJYkXq0PRldQzExhZKuaFBo,1951
4
+ sknetwork/test_log.py,sha256=V4t6Ggi_fh8px5Iq7CDLlJvbXfz24macQ43Ss0tPb5I,319
5
+ sknetwork/test_base.py,sha256=PB_kJ7cNvhBXmlL-KzyLu2hf6mG7b1OQY759aYplW4k,912
6
+ sknetwork/log.py,sha256=ORInAVh_cWIfxwaFWSblSRxwT-jG05XPRnYTTAHSKy4,443
7
+ sknetwork/sknetwork.py,sha256=VYoI-gwqwBKPx84cA0KnYDRofrgIXs8xtASD2nu5fE0,44
8
+ sknetwork/topology/minheap.pxd,sha256=Y_oRh8H-sNZYAWv0XM9T-ZLzYBhb5TrBM4VjlH-ZqPQ,564
9
+ sknetwork/topology/minheap.cpython-312-x86_64-linux-gnu.so,sha256=mj36m-E2G8rFZr1KrUA_D9fjJUoppnkqf-bSZym2ARI,1548441
10
+ sknetwork/topology/__init__.py,sha256=T2W2cWwcUdhfA86VuZAZqksbrgct4hiyp0HuizEnLg4,534
11
+ sknetwork/topology/cliques.cpython-312-x86_64-linux-gnu.so,sha256=9seSVLIlEuBVSFex_LdqIXsiKNZmUJi7IEgMMqDqjdI,1999201
12
+ sknetwork/topology/triangles.pyx,sha256=JOkA9k0CQTsT7zdPaEoW7-PdHYuoXHsB0XSuPKFLJSI,4349
13
+ sknetwork/topology/weisfeiler_lehman_core.cpython-312-x86_64-linux-gnu.so,sha256=jAaSirHypiSeUJjDzs1O5DXcTmPV7OcueL6xhmEfk2E,1676065
14
+ sknetwork/topology/cliques.pyx,sha256=BuezL9-zJOicL1zffkpcf8uIEgqhik6dgK_agXX4gaU,4510
15
+ sknetwork/topology/minheap.pyx,sha256=iFWpXPYSAmWjYphYByAM6auUj1XHly6QovZvuy2Lpyc,3310
16
+ sknetwork/topology/cycles.py,sha256=EV2UMDktEGdJxEmAZyyjBMttJ6DqYvvfZ6mqwIQqFu0,9003
17
+ sknetwork/topology/triangles.cpython-312-x86_64-linux-gnu.so,sha256=UMqyG7CJsUNcrnJL1P3Q0yu5zAvdrcbNmHGXAnYE8dM,708241
18
+ sknetwork/topology/core.pyx,sha256=HwGbC84p9F9fkEw8ouNNMQtlYrAoEWhQS5hU9Cf1h94,2465
19
+ sknetwork/topology/weisfeiler_lehman.py,sha256=ACJDAmZbwDrZAvO-LsHnRaef-8KX7esM1LxVUglXtLw,4308
20
+ sknetwork/topology/core.cpython-312-x86_64-linux-gnu.so,sha256=upBqjJ2xNX06TVv8VfbjXYLEO-1KbN7XoER6wJLyrqY,1670881
21
+ sknetwork/topology/structure.py,sha256=CDfN7SL70wTHm2HPfqd7ncsZEaV1SQO3tJKYl1CdtNI,7285
22
+ sknetwork/topology/weisfeiler_lehman_core.pyx,sha256=fi0rRrXHVZuIQYzPDcPCamCRQLKquchjV3N9dNuQ1Pk,3034
23
+ sknetwork/topology/tests/__init__.py,sha256=9lKrPX4BnSJbK-VlDi9TsmAgDwqF3H423KhJ1u1Uaos,25
24
+ sknetwork/topology/tests/test_triangles.py,sha256=9g3nml3TNOiIFHLJDih5PTxWunDJemmpLQy2tmoQw4Y,1275
25
+ sknetwork/topology/tests/test_cycles.py,sha256=KZzMKS5ILfC_J0Fj5MFlEOL7Z9nOnlRfo4TnGdXEPWY,3150
26
+ sknetwork/topology/tests/test_structure.py,sha256=CzcZ1LxV-mI_buxz6LcTeCy3h5ofMLfOu2HUHwNSMi8,3948
27
+ sknetwork/topology/tests/test_wl.py,sha256=EJY_4xTi_-qzFsqZJkgnwLteoakdkpRAczzdMCGeXe0,2218
28
+ sknetwork/topology/tests/test_core.py,sha256=Zh9IYHGfqDqIlLycucLzqZbHvYmU-IB-J03-jlikPcI,551
29
+ sknetwork/topology/tests/test_cliques.py,sha256=t97pKDMxT9RC-_YsgY-c8tQxrekyAE6i2_guvxAYHhQ,838
30
+ sknetwork/visualization/graphs.py,sha256=kxFjEbg5b_bHpapLyf1L01CIwzxpWE6KLtS_ji2yZyY,41176
31
+ sknetwork/visualization/__init__.py,sha256=8rLiR13WHSWLsEVTTL6lzOZms0LZf-ZujBqOI5VnKxk,216
32
+ sknetwork/visualization/colors.py,sha256=DjcXt9aMgLan7bRg7TZI8m_8SLWQOZ-g2HoguB1-3qA,2509
33
+ sknetwork/visualization/dendrograms.py,sha256=m4FbBfvJUW_gXccZWF8OWxAsbhsEcKa1fXNNCp_y4MA,9901
34
+ sknetwork/visualization/tests/test_graphs.py,sha256=g2YPJn9m8wD-UHZ_BL37xuJqE7ygOx3EztKLVVqphYk,9421
35
+ sknetwork/visualization/tests/__init__.py,sha256=yOVrqUD9UuI_HdYuqRP5PS7QhS-pO4RE_Ls5PLiIC_w,30
36
+ sknetwork/visualization/tests/test_dendrograms.py,sha256=UuS3VZ5XnV1u5BtW-QKbFv0wavllQpbgtsOIe5XvTlg,2466
37
+ sknetwork/clustering/louvain_core.cpython-312-x86_64-linux-gnu.so,sha256=dw2v_TFx9hKtHAU_6P68pdkPY3NhVb0u77kVYkfMT3A,2191945
38
+ sknetwork/clustering/__init__.py,sha256=Ab-rmioxlaMoghrzd1RMr-L4zyrqIM8XznqrjBPGE28,435
39
+ sknetwork/clustering/louvain.py,sha256=nFKEsrEuOH2k9iruT7SGo0kGDtcYzW2Xn7wBAxe767o,10825
40
+ sknetwork/clustering/base.py,sha256=dCF4K3nbKY24kzFeDAy7Fp-b9jDBzEoG3jj1ozuu_W8,5932
41
+ sknetwork/clustering/leiden_core.pyx,sha256=7HGdeX6iMnSs52Px44-__kN9JhHueaQUvCmrkIGTalg,4300
42
+ sknetwork/clustering/propagation_clustering.py,sha256=ABZZtyojkrXfzsMwEcxqphzHgFC5q8sECOyanvK9D3o,3781
43
+ sknetwork/clustering/leiden_core.cpython-312-x86_64-linux-gnu.so,sha256=Og4B2TD2vR2WlNhrtHK6Xjb95GokzY4LD5dqZybDceI,2233169
44
+ sknetwork/clustering/postprocess.py,sha256=4hx5VTQmqS2Ld2P2kvXoyvVanXVg3bMA619IHS2jWHM,2039
45
+ sknetwork/clustering/louvain_core.pyx,sha256=pMqt7WukTkBOpjofmiXMYHqRX69mkquEMapDdoskiQM,4089
46
+ sknetwork/clustering/leiden.py,sha256=yL5N-9ny6XAj6La2-PBcsieRl4SVx8wxwVGvS1tMr-o,9682
47
+ sknetwork/clustering/metrics.py,sha256=VJPgmB1OvxA0SOaIQIGyJDUP1cgWFElnfdVaQ2krYrg,3060
48
+ sknetwork/clustering/kcenters.py,sha256=RFEx35vPUm9a4mzCbDwv-PmePCsdQwbuKAeaRizBMxY,8689
49
+ sknetwork/clustering/tests/__init__.py,sha256=Ta0XKY7pklRvHyUY3Jlow3A2V4REa5geZG74xPz80Tc,27
50
+ sknetwork/clustering/tests/test_postprocess.py,sha256=WSmAlqB-6Nw3eoL3NaOyNlpPr7GVnNnllkPVdyE9rXI,1378
51
+ sknetwork/clustering/tests/test_metrics.py,sha256=fbVYg2s8DXQdiYHUNuVjFMtEJg4od1Vej25mgHhGDu0,1818
52
+ sknetwork/clustering/tests/test_kcenters.py,sha256=laO1QSJ-yGlroB5XtrC15jbRK0krYZK5sIRDHBUZL30,1977
53
+ sknetwork/clustering/tests/test_louvain.py,sha256=6eQPoKodZLBafNgpX1_zBzPzGY5w7QKzWsLuoEVZEaE,4678
54
+ sknetwork/clustering/tests/test_leiden.py,sha256=3KSXvxUP9H4tCJQXUfWt-45-ltyD0FrVgYjXDvRN-yQ,1155
55
+ sknetwork/clustering/tests/test_API.py,sha256=Eez17EngcirVHVVoybClXS5314_Yz54JFzXldubEdgg,1528
56
+ sknetwork/hierarchy/paris.cpython-312-x86_64-linux-gnu.so,sha256=4mRGuIFEPDwU8WZ3k56eXDEwZDdNCLykw6bjgJF3yAw,2601817
57
+ sknetwork/hierarchy/__init__.py,sha256=YgE2eqnwS8Q2NWP9pNY-M1bpdxRn5-C-CdykydNW7iM,412
58
+ sknetwork/hierarchy/base.py,sha256=MoxBiSsEJOq77YmXj_bpf4vUiPLSpQn8fnUX7YIqyd8,2693
59
+ sknetwork/hierarchy/postprocess.py,sha256=d1Fll3eqDIjiMf1c5nGuKF6I0fN93elnglkp59LARGU,12072
60
+ sknetwork/hierarchy/paris.pyx,sha256=DX8p3LOtrNxyQ8pOZZE_Q2b5rBKjYwKArsmMZbvb0xY,11813
61
+ sknetwork/hierarchy/metrics.py,sha256=_wYGKx_VDE_sfbg-uUEFMhOjSLFqzC8rFHjJo1hdVL8,8046
62
+ sknetwork/hierarchy/louvain_hierarchy.py,sha256=PhetHYpmsnI7yC-rbYAUXhNiBV9QNKMDbrfz9l0fskc,9846
63
+ sknetwork/hierarchy/tests/__init__.py,sha256=l2HHDiDLpoTQlwzh1mtCyp6bS8RxBdJK2DP1FGiQJMY,26
64
+ sknetwork/hierarchy/tests/test_postprocess.py,sha256=OSrWE0gT0AcPI4LKmUL-Blfg5ErxnjS3d4rPNnA63_Y,2209
65
+ sknetwork/hierarchy/tests/test_algos.py,sha256=xMt2xzAYEm6MuK-8OKOqBwZS89aJspX2tr7T6QMHz6E,1361
66
+ sknetwork/hierarchy/tests/test_metrics.py,sha256=IHlsdJXeHqPU8_SBm4eIXua5ZhyRIAUH4cAtVNNR7Ng,3160
67
+ sknetwork/hierarchy/tests/test_API.py,sha256=tLF-jLsfM2OFqbyVHK1o9jXVW_1PbTkMcxkAXuGjMO8,720
68
+ sknetwork/linkpred/__init__.py,sha256=pFtM52OhDK69ceeiRyH1MDse0EbD8fqyhOsWWih47gM,72
69
+ sknetwork/linkpred/base.py,sha256=aXgWqajDYjDE-YQcooI6j0qEByJxHQiQtSjmFiID3Qk,995
70
+ sknetwork/linkpred/nn.py,sha256=tY-qYlp0j9WCvdoHkZ9EKzCD_GlDu7tQpKD7-aC20rE,4030
71
+ sknetwork/linkpred/tests/__init__.py,sha256=05sK8Ihh9Gi2_uobPC_ErMVE4KOt0761NzzV_vJh15U,32
72
+ sknetwork/linkpred/tests/test_nn.py,sha256=T79txY2DlPgnI4JqzC88EcwCobJiM9P9v_5_ZvBTDeU,983
73
+ sknetwork/data/test_graphs.py,sha256=OM6-7CiBN4UEAQUtE_2k5e5I72zDBL3r5fj_C2JXzNw,2484
74
+ sknetwork/data/parse.py,sha256=Qrn2_i8XdVx7QNWhweI9Fu3i33C8PO_sOb8vPzReaYM,26995
75
+ sknetwork/data/__init__.py,sha256=xTK1qf-dIJomjDwSLXrYL6nUcNwo118YxN7b_6gozak,255
76
+ sknetwork/data/base.py,sha256=Jp0MJKcpfJCRZO_Nz18g1JqYFMMD1Rz8zLhnqlgO7tg,673
77
+ sknetwork/data/load.py,sha256=zN0fhEjEm0Mxp0bsdc13CW1zkb877vbo3om25nwpKrY,14356
78
+ sknetwork/data/models.py,sha256=j3k2LKtxNjyihfJH3SyzA5jhFNBgaA17UCzihD59Lqo,13186
79
+ sknetwork/data/timeout.py,sha256=kwHOLZFnOTrRhiEjtcwATYhsXbf5e8zV1OCoEKuG8Zg,1047
80
+ sknetwork/data/toy_graphs.py,sha256=8-QKuwURndJ1_KEWlDqs-lBWBeoFxU3V3oUui4PsSDY,24632
81
+ sknetwork/data/tests/__init__.py,sha256=FSfkSYRKjDqIuEiEZ39Otve50qSxi7QObNnNrHHPx5s,19
82
+ sknetwork/data/tests/test_models.py,sha256=oP-X_k0vbSB4CwlV4GQVVBAQ9uI_8frFicde5yhVYAc,1915
83
+ sknetwork/data/tests/test_base.py,sha256=b-0CM1ResLoJXg6-jGmBWFii5JtZrXAhfYiAG70dW1w,312
84
+ sknetwork/data/tests/test_toy_graphs.py,sha256=lknaYy5AWJjiqKfhgWhQEolN8e4CDe5ilNDpC5lenww,2197
85
+ sknetwork/data/tests/test_API.py,sha256=LUWZX9pPpZLVuzgAz85sJk6tgKDaXKqc2Fhp91x-E6c,963
86
+ sknetwork/data/tests/test_load.py,sha256=9EXkw2TbDAUmpwE-kUTgxZieB4XDLF5drLVvyugX96M,3550
87
+ sknetwork/data/tests/test_parse.py,sha256=JOTFNWr77ZxKUKjw8TSbN-2dk-6YwmqN2OcrNkh7JVc,12717
88
+ sknetwork/data/tests/test_test_graphs.py,sha256=dVRds-3P8JVnwfAp32fGif3zhocfPK0p2rgcYwJWsUQ,849
89
+ sknetwork/utils/neighbors.py,sha256=XNqwPM_PPpf_x-YhjEMVZJDxmazrVw9Eky3hNv9IGz0,3351
90
+ sknetwork/utils/__init__.py,sha256=z1kLaO6ZFBg9g3MoeuxV-6UPmcqKAxTs0fjqoYQOgc4,325
91
+ sknetwork/utils/format.py,sha256=qAa5jmp_fkQBlVL4LW14N7rrMPNk3yMApNFLxREPuiU,8766
92
+ sknetwork/utils/tfidf.py,sha256=C1qZCwZSwypi-C_II9D7lkfyxsOFefiDopTO3pBEwkc,956
93
+ sknetwork/utils/check.py,sha256=tNOelam8GGdVjMzmk-7otNTyFBgJNKwq1z-zWmHOb9Y,12940
94
+ sknetwork/utils/values.py,sha256=E-_gcqVOYjUPiG_iz9j2avVh1ENANVIZt7AydYzyeyg,2595
95
+ sknetwork/utils/membership.py,sha256=dG2xJTWEjRcxyKTs5A7DFyNhO50-7UKpBIaWFfmyH_M,2162
96
+ sknetwork/utils/tests/__init__.py,sha256=y7PVVv2Wiz1msA5jqKOuB5BbB4UzCmDZ-pml9hIQyjo,22
97
+ sknetwork/utils/tests/test_tfidf.py,sha256=X69sepETWH1po9YXFubppvZlLeGdflqxoNEBinihp3A,445
98
+ sknetwork/utils/tests/test_neighbors.py,sha256=vF697D0cTfx4Limcmbre5JkJcLi1rUX0tS_JviX11Zg,1426
99
+ sknetwork/utils/tests/test_values.py,sha256=BswuHPma0xCxr4gVkrkfPdMaIW6gw6ylCd5MTseo7tw,2268
100
+ sknetwork/utils/tests/test_format.py,sha256=xSvz_IbxNnei8IrEysIOi8YpX_a6edxVE41g_lSx1mk,2245
101
+ sknetwork/utils/tests/test_check.py,sha256=WOLQ7J4eM4YHsSxyBNU5yPquq-0dB5FyD_tttZ1RgsQ,6764
102
+ sknetwork/utils/tests/test_membership.py,sha256=y4BiaCHUw5c1dJPOSJA6vgkBQlPxQ2bepL7hDV1es5U,748
103
+ sknetwork/embedding/svd.py,sha256=fK84a57Js4Hvh9Rtz2FDFA7eKhLThUO256e8xdIkJm4,14642
104
+ sknetwork/embedding/__init__.py,sha256=ASeieiOc46EuKMUArW3kt_WJbsLxUzz0BVYycmag5Pw,410
105
+ sknetwork/embedding/louvain_embedding.py,sha256=Q51zN2yNVeUrwfF98nnozpSaB_vUSVUi4pi9KwNkUOA,6082
106
+ sknetwork/embedding/base.py,sha256=zIaj7TdsRzBXYdl3MCuiDf4ShV6T8sAtm22IzGajho4,2663
107
+ sknetwork/embedding/spring.py,sha256=5fyHQzmIp8gY9DdI-DFvMc37mjMb64bs22ZZZ9YFDXM,7151
108
+ sknetwork/embedding/spectral.py,sha256=ds91hH6JFBsfLcTS8QEz-gP5tZUcrrGqjfnL-xMIdU0,5548
109
+ sknetwork/embedding/random_projection.py,sha256=NuJoPHYLjdb8dUdKOwGr7Q6lGZBSPbwmMuuY6CRzgoI,5002
110
+ sknetwork/embedding/force_atlas.py,sha256=amYr0E08F8TDoIxjPx3lx35JFwEP41jc4KKed1PQeZs,7452
111
+ sknetwork/embedding/tests/test_spring.py,sha256=tanArc4vstNZ36CLr7S8uEVdXX0iP2K9UWKQLTcsPsQ,1643
112
+ sknetwork/embedding/tests/__init__.py,sha256=QkDQtTJReK7Ldp0Y4f5-tbTdcp224r1AF7jU26alSgQ,26
113
+ sknetwork/embedding/tests/test_random_projection.py,sha256=2bUOCw66tUKP775pGPd5STj0UmRuwvBtI5CgY8HeHKI,1193
114
+ sknetwork/embedding/tests/test_spectral.py,sha256=CH-F8fM3cYoxhjpob1m7wZV-tEr8XFD6Lxa_bFsLv3A,3897
115
+ sknetwork/embedding/tests/test_svd.py,sha256=xkfgHiQCDTRp8seWCdBvQFGwONoM6VYn6g9xp3FJIOs,1463
116
+ sknetwork/embedding/tests/test_force_atlas.py,sha256=-YM4HSF5Nvpm8e4SoCHiA2o7yAkm0h_ys7GRaJ1wloI,1120
117
+ sknetwork/embedding/tests/test_louvain_embedding.py,sha256=XXz_2Jul1Rv3sILYFz4HLy2OWRsdZWRWWRnVBxOU68o,1116
118
+ sknetwork/embedding/tests/test_API.py,sha256=2c0O8S0u0hF23iys7QLHJJOz2W79rHMeEO2OMDQbglk,1489
119
+ sknetwork/gnn/neighbor_sampler.py,sha256=TXdMRFwiT8sOdl6-S-flQZ5Rjrx1hwTzFqqiR_8PHTQ,1864
120
+ sknetwork/gnn/optimizer.py,sha256=vsCgfPoJtYMWREnR4tBsfPb0Ed-rHR0poBr-75lE57s,5782
121
+ sknetwork/gnn/base_activation.py,sha256=XogZDdhl3QDyADvWJhMTGSnVYsKPI3PDHPu89yPL1VI,2306
122
+ sknetwork/gnn/__init__.py,sha256=m2lkDJoJZocJ18scpArsUHuzePZ8Q-ue7D3yXQ5H_RM,519
123
+ sknetwork/gnn/activation.py,sha256=D7o4FdbDMrBa2PQrWrvplCf14QOSzZ67d9eWN9bHY-M,3560
124
+ sknetwork/gnn/base.py,sha256=QZ_pNi2-edAUpu-2C93DWfooS_sHulO6HL6vK108lhc,5708
125
+ sknetwork/gnn/loss.py,sha256=P0un3iqbnFLrBbYODznVAoU_J2qAZuqHAPLiae0LCtI,5162
126
+ sknetwork/gnn/base_layer.py,sha256=o5CbTVXY7Y1_TyNEMkp7P2va2HLLIq_MgnOxZ7PGQmg,3948
127
+ sknetwork/gnn/layer.py,sha256=i0XiAutNal9ImAGqMtSLVEq_QiqZoGAlAWwlSGrNY8Q,5526
128
+ sknetwork/gnn/gnn_classifier.py,sha256=yvh5P3T3AmpEI8xNBERSkLumifBzz6gRLgQQ5aaASd0,12610
129
+ sknetwork/gnn/utils.py,sha256=A0kuBe29Eg90cEzRAgw4YmnShnzoq6ai_-01IBAf63g,4349
130
+ sknetwork/gnn/tests/__init__.py,sha256=SvFOB5nn_yN-JCaYFAtzesL0zU0OihQp0s0dOP1-MKE,20
131
+ sknetwork/gnn/tests/test_layers.py,sha256=apPJGgMddw_-Qiw0OsTDL3cmMJ8GTMC08dLTmiYEWW8,3176
132
+ sknetwork/gnn/tests/test_loss.py,sha256=W5DA6FRd-OppeRKFgj2gtLqNvjkXkCQPmV6lg3ENu-c,1045
133
+ sknetwork/gnn/tests/test_utils.py,sha256=ExTZqAMT3joYU1RSQ-_d1YipysgnkLKePe7ZHuMoHeY,1843
134
+ sknetwork/gnn/tests/test_base.py,sha256=HVsz5zABud8ZlrIJIFuAKP6N7mu2ClrTaleZbPhGOR0,3393
135
+ sknetwork/gnn/tests/test_base_layer.py,sha256=1PXvS3338vu-fI77ZnGgHfY20zkPRv_GcZKxLQmyj7I,1381
136
+ sknetwork/gnn/tests/test_gnn_classifier.py,sha256=QRjXGJK2ghHtsGc9O-FwlKzG53IHocrWZuKTAVSFjFw,5743
137
+ sknetwork/gnn/tests/test_optimizer.py,sha256=4NvHQf66cFKy500kA68IBVv_-_pf75Hqdbq2odhJMr4,1780
138
+ sknetwork/gnn/tests/test_neigh_sampler.py,sha256=zc_6G3JhZvKrFLJAk2UJSOHZwN7sGojC8bXTCbmaUx4,698
139
+ sknetwork/gnn/tests/test_activation.py,sha256=HZdBaJ8P8LBJ-3_Typc8Qkvsho9gNSy1-CANEz8rQ-Q,2487
140
+ sknetwork/ranking/betweenness.pyx,sha256=Pq9EqOHV0P8TDN_w9siP3h8HyechaAErysNwz0JT0ow,3087
141
+ sknetwork/ranking/betweenness.cpython-312-x86_64-linux-gnu.so,sha256=wQctNgdpC_TTZ5uPeIyRvEKG4GW-_lZnVGBDlUtTPsY,1224569
142
+ sknetwork/ranking/__init__.py,sha256=UeYw8y0HFoBnPziqnVYXSt8jqFtkDgkCCMPhYTEIaF0,348
143
+ sknetwork/ranking/hits.py,sha256=L39a9Ze3ITUbikmNhA_Lx-V5s_RQr0XnNkOsIgG8m98,2761
144
+ sknetwork/ranking/katz.py,sha256=uPyXkEL73_6MS4dP5XTSVSIrD5h5QJipVTVEa0L_y48,2535
145
+ sknetwork/ranking/base.py,sha256=Jo9LBK3TfXiYdxYqSmfeVC8O2D6fA5L-SRzQh3eqtnA,1512
146
+ sknetwork/ranking/pagerank.py,sha256=Qt2SOUoLO76JVDnT4-x-b-hah9IlaHECsYNu45AnpY8,4749
147
+ sknetwork/ranking/postprocess.py,sha256=-3wqBPvTM7jDdfTytINEXxM2eugJjbCZRLiLy9pkmac,919
148
+ sknetwork/ranking/closeness.py,sha256=pETMD8uaXfADZhmzVaH4YIGX57S2vvhzVInONaAwBUM,2840
149
+ sknetwork/ranking/tests/__init__.py,sha256=ZVL3kCN-qV5ThJU58iaMvJKSIkZ7ke7liLtLwI4TCHY,24
150
+ sknetwork/ranking/tests/test_hits.py,sha256=zStzrWZ-pv2Nsd-pB282FgW3KAn1TyKjz_l85tJaPJ0,491
151
+ sknetwork/ranking/tests/test_postprocess.py,sha256=jPLJKJYEltFpY2uct0JyJEkD1haOyNU8h_1KwiLMgZM,703
152
+ sknetwork/ranking/tests/test_betweenness.py,sha256=8XA1ycLQQ7-Cm3CBfkcSDQOvD6xagAIP1--mPe9VFzo,1135
153
+ sknetwork/ranking/tests/test_closeness.py,sha256=ttBC8L_J1YDLCWhTIPhSFxu8jWuOWl_vupHFFaA_NP8,823
154
+ sknetwork/ranking/tests/test_pagerank.py,sha256=5WHev0-d5nTOg6AEzIZyCmWSieTO3YNLNO2kB6RTYWE,2243
155
+ sknetwork/ranking/tests/test_API.py,sha256=PZ4Q5X1WT1HSAojZX72fUm4o9Y0PwocewJEoC1pfgMo,1003
156
+ sknetwork/regression/__init__.py,sha256=nRlbcR8bA2Lz-OmLPMIPhBzgDCol8oSA19qL3IninXA,141
157
+ sknetwork/regression/base.py,sha256=KIsVpnbACRH4h5W3ifMJOTlZNuztGbQP1QbZKj5aj_0,1496
158
+ sknetwork/regression/diffusion.py,sha256=p4o62jxuz3z3Kd2WizmV1GYM9MO_c3yp70_KQUim0jM,7905
159
+ sknetwork/regression/tests/__init__.py,sha256=BT8kCCMN_pv7znhIR5GSQ_XxU5brmrCYDwm4QJNRCV0,27
160
+ sknetwork/regression/tests/test_diffusion.py,sha256=-QBRgES_BF-QIgFevozLt9YXmGxJ6vxgLeYVZe92Wn8,2061
161
+ sknetwork/regression/tests/test_API.py,sha256=7fQulvKzF9yEBlLie7fL5G1ZdyiG4DAFZQZ4Lix96qs,1024
162
+ sknetwork/path/__init__.py,sha256=OQ7dWwlncIIsPo5kQu2akUhk_m73vQuF17LaH0siqo4,222
163
+ sknetwork/path/dag.py,sha256=Se5LSgQi-RwA-nXbJ1l_upjKw_MNIckeT_dh3TYWl6w,1668
164
+ sknetwork/path/distances.py,sha256=8NJeL14UpGudTFCgQJaNDOXs2-aSHLCl5LHXexF_xuQ,3568
165
+ sknetwork/path/search.py,sha256=__63FqXFqhNTSyTGYj4yYx8ZDoew0_uCHHWhJlrIRoA,776
166
+ sknetwork/path/shortest_path.py,sha256=_trQS__X71HQOOBXu0QTlzfOgb2ydoy-KooIKjIkpvs,2450
167
+ sknetwork/path/tests/__init__.py,sha256=_COAjci7RJ_XtBDGwy5aOgZ9dPSQH3j7d6qMlLHs55o,28
168
+ sknetwork/path/tests/test_distances.py,sha256=zItygI9cLMrQonLhOubvorElU5qaZumFfjMethx4rDw,2695
169
+ sknetwork/path/tests/test_search.py,sha256=mStK4ZiN1hVdZr8Q9R78AFBouuA9RIhnQ4nwGrfCjCY,1199
170
+ sknetwork/path/tests/test_shortest_path.py,sha256=Uwq4CzzjnMV6VsTlzgKnn_GwqUr2Cc0kZTgFtv_UisQ,1382
171
+ sknetwork/path/tests/test_dag.py,sha256=EYyghTXbHRr1Ia-8KoXoyumIFD_6q6bZx5DDcaa-ODQ,938
172
+ sknetwork/linalg/__init__.py,sha256=awBDY2wWiO40L5eED3H8K1BM8qtHz7aQRv1p3PcSK94,533
173
+ sknetwork/linalg/sparse_lowrank.py,sha256=LUhbqa01p51SYhoIb2Dmx2b9fMc-iOu69CAVHscR2Xs,5028
174
+ sknetwork/linalg/laplacian.py,sha256=_gQr8YLqMUtK_IMNgvJoQX7-uODVlvCVmc-oTsgw7MA,401
175
+ sknetwork/linalg/push.pyx,sha256=caxCZa5h9zsHhxJgDBaaetqpB0wUbFLdOUwHwj0q_t0,2358
176
+ sknetwork/linalg/push.cpython-312-x86_64-linux-gnu.so,sha256=7NpxLXiH7h5ze9Ysg93gWah4ihf5NmRx2VElBcufa1I,1782057
177
+ sknetwork/linalg/basics.py,sha256=8AFph_1G5SZP_24jrIv6qIWooO0UMglL4jMgx3ZdYIQ,1142
178
+ sknetwork/linalg/operators.py,sha256=fxitao4UYW4Hq7B258T_cAq2H3R2FN1-mwdy138w8fE,7432
179
+ sknetwork/linalg/diteration.cpython-312-x86_64-linux-gnu.so,sha256=KqPG2WLCZX0pCU9LdNw_vt-Jku-rJ1oL-CRu4CRKut0,1552249
180
+ sknetwork/linalg/diteration.pyx,sha256=gk9W6SwIxXgmjQujXWBUIoM_OwevjE3jTzFrIEkGnWI,1384
181
+ sknetwork/linalg/eig_solver.py,sha256=yq_prP5p1jbALby69wkzzH0vYKc1btmRQoiVUtTh-eA,2700
182
+ sknetwork/linalg/ppr_solver.py,sha256=mQkCnik-vvv_oFa9n1vtMzxgvi78qW-QQONdcmC9CXA,6533
183
+ sknetwork/linalg/polynome.py,sha256=_dP9Nu_6XCV0-WEQJ7E5nG6pxZWMtbj-LREu0vtxeWk,2125
184
+ sknetwork/linalg/svd_solver.py,sha256=vhcXwCsOar0cYDPZo7IF_ulRDsGGvZzePIeSpSCVgLk,2681
185
+ sknetwork/linalg/normalizer.py,sha256=kOFDPPdiGqG-KcWNiRwbS_y_nmw5fTKYTvuj_x8yBd0,2473
186
+ sknetwork/linalg/tests/test_operators.py,sha256=l_pBF7JZhjUSNfTReDX-lN2nA7HU7mkz7dznJ8I6lrY,2919
187
+ sknetwork/linalg/tests/test_eig.py,sha256=lUAgo4UfWuuSG5DhSk5SIT7ToLDgPG-5JCgmOe_M7Vw,1504
188
+ sknetwork/linalg/tests/__init__.py,sha256=l6yw2Ls1ndhVVcSYc059kAjQ2-VoDGZXxnBaglFZ4zo,23
189
+ sknetwork/linalg/tests/test_laplacian.py,sha256=B6UhJOmYUdNlXwNoxLLtb--nv9mx96Orl-W1Vl6PLyM,434
190
+ sknetwork/linalg/tests/test_normalization.py,sha256=nASuMYxKcsWj3gk9DF5uPKYOw93oJ-UQUWi99Fw3kmE,887
191
+ sknetwork/linalg/tests/test_polynome.py,sha256=VYru9RlUIIN6dKNOiitSElPQqIxWI7mqx3dR5zd9Nv0,977
192
+ sknetwork/linalg/tests/test_sparse_lowrank.py,sha256=LEDo6DChembm3xQ-vjeqqZi0ugWx7piucR9_LdDecrI,2276
193
+ sknetwork/linalg/tests/test_svd.py,sha256=eLRmSiHt8uWzknImZtRSZmJC8OX0YDgUt9-8PePc3OA,1285
194
+ sknetwork/linalg/tests/test_ppr.py,sha256=Bh1n7W3We2N8u1RIWPyE5QQGE7esnNoUOLLRCL8Zye4,2093
195
+ sknetwork/classification/__init__.py,sha256=yVv7wSuUfNLxeNBF-AhWCJys3C-XatPtMzi1wyp9Bz4,475
196
+ sknetwork/classification/vote.cpython-312-x86_64-linux-gnu.so,sha256=Lw0RaRgL4H-Rev1PwGMF7xkfpzhkL66GSyDsblR9EhU,1745457
197
+ sknetwork/classification/knn.py,sha256=fLRZF2jhHq105QHMeW328JcF71wTaGP-ukmbJdyiw44,5333
198
+ sknetwork/classification/base.py,sha256=WS-QHh4553Dr1VwJqjggSqO6hHFIAs50oPah_L23eFo,4290
199
+ sknetwork/classification/base_rank.py,sha256=RGElYD6PuP4nhnenNnzpOiBojs49Afg5ahjBFEi566I,4522
200
+ sknetwork/classification/pagerank.py,sha256=CBUeCqZisr6s5lh3VXYWA6rbiPdLyNzuSMbjazy80eA,2586
201
+ sknetwork/classification/vote.pyx,sha256=Bbf74XCPH8uYDP-SrXRaA7k6Ax2x-wDzpbHMeg9le7A,1584
202
+ sknetwork/classification/diffusion.py,sha256=h4l43kA_MR_hMthc5mqW__5jTkQq9Ne9Q_H8bLPhM6Q,5564
203
+ sknetwork/classification/metrics.py,sha256=aaIfYddIAJsGXpXJ6TGcQScjzyJOo8kiWgcIE1kefSM,6806
204
+ sknetwork/classification/propagation.py,sha256=0Cb1-mIMcPoes5oXR7BqhqEmlFMEMcTOMy_BNjX0lvY,5793
205
+ sknetwork/classification/tests/__init__.py,sha256=sy9uRiPhYG2i7uqM3P07-VUf4UcZEHeOoH9BvKCpU3s,31
206
+ sknetwork/classification/tests/test_metrics.py,sha256=eBs-5uAEz2s8gukMyfhQ07GSFoyvxtsslLuc6VgUxBU,2303
207
+ sknetwork/classification/tests/test_diffusion.py,sha256=tp9qNYBcaI9T1HCC6bqMpG_-eM-na-fGNeGDzMZTu2A,3183
208
+ sknetwork/classification/tests/test_knn.py,sha256=sl5kxsaca3GUTvfdx6B9BRJ1SAdoDvxFOg9VyoA20IU,784
209
+ sknetwork/classification/tests/test_propagation.py,sha256=m0Jyq59k3taoikyBxcZGILzG7dWQV3SGE45MPm0RPao,850
210
+ sknetwork/classification/tests/test_pagerank.py,sha256=5IJpYqnz31cWT0iXjTdo1xE8Kfj3YTK0cSZnnTlyJBs,620
211
+ sknetwork/classification/tests/test_API.py,sha256=FA1d0NQz3vaNVVeFbhEljPe0fD_ryRwVP4G1hdv-u_s,1124
212
+ scikit_network-0.33.0.dist-info/LICENSE,sha256=zKbJMpbSKgGEUaNr_fKgvJrvw_3W4gnJs5XdLCK5Sxo,1622
213
+ scikit_network-0.33.0.dist-info/WHEEL,sha256=wsiykxmyvUh0LLqdPBqDSXvmfaHZUkQJQ_TW7hQmxh4,151
214
+ scikit_network-0.33.0.dist-info/top_level.txt,sha256=fkwspWQ9B3csqb5ENEOoVciRY6XftnMuz4MvTDQeSsg,10
215
+ scikit_network-0.33.0.dist-info/RECORD,,
216
+ scikit_network-0.33.0.dist-info/METADATA,sha256=KSryYoew7nGXScWKHnpxhItQbesZ7N1FBL7mKyZMg_U,14471
217
+ scikit_network-0.33.0.dist-info/AUTHORS.rst,sha256=MIEWJmfpIVmBPo03Xl_6j8kg7cjXicp9WVRQpuVDj9o,923
@@ -0,0 +1,6 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (70.3.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp312-cp312-manylinux_2_17_x86_64
5
+ Tag: cp312-cp312-manylinux2014_x86_64
6
+
@@ -0,0 +1 @@
1
+ sknetwork
sknetwork/__init__.py ADDED
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """Top-level package for scikit-network"""
4
+
5
+ __author__ = """scikit-network team"""
6
+ __email__ = "thomas.bonald@telecom-paris.fr"
7
+ __version__ = '0.33.0'
8
+
9
+ import sknetwork.topology
10
+ import sknetwork.path
11
+ import sknetwork.classification
12
+ import sknetwork.clustering
13
+ import sknetwork.embedding
14
+ import sknetwork.hierarchy
15
+ import sknetwork.linalg
16
+ import sknetwork.linkpred
17
+ import sknetwork.ranking
18
+ import sknetwork.data
19
+ import sknetwork.utils
20
+ import sknetwork.visualization
21
+ import sknetwork.gnn
sknetwork/base.py ADDED
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ Created in June 2019
5
+ @author: Quentin Lutz <qlutz@enst.fr>
6
+ """
7
+ import inspect
8
+
9
+
10
+ class Algorithm:
11
+ """Base class for all algorithms.
12
+ """
13
+ def get_params(self):
14
+ """Get parameters as dictionary.
15
+
16
+ Returns
17
+ -------
18
+ params : dict
19
+ Parameters of the algorithm.
20
+ """
21
+ signature = inspect.signature(self.__class__.__init__)
22
+ params_exclude = ['self', 'random_state', 'verbose']
23
+ params = dict()
24
+ for param in signature.parameters.values():
25
+ name = param.name
26
+ if name not in params_exclude:
27
+ try:
28
+ value = self.__dict__[name]
29
+ except KeyError:
30
+ continue
31
+ params[name] = value
32
+ return params
33
+
34
+ def set_params(self, params: dict) -> 'Algorithm':
35
+ """Set parameters of the algorithm.
36
+
37
+ Parameters
38
+ ----------
39
+ params : dict
40
+ Parameters of the algorithm.
41
+
42
+ Returns
43
+ -------
44
+ self : :class:`Algorithm`
45
+ """
46
+ valid_params = self.get_params()
47
+ if type(params) is not dict:
48
+ raise ValueError('The parameters must be given as a dictionary.')
49
+ for name, value in params.items():
50
+ if name not in valid_params:
51
+ raise ValueError(f'Invalid parameter: {name}.')
52
+ setattr(self, name, value)
53
+ return self
54
+
55
+ def __repr__(self):
56
+ params_string = []
57
+ for name, value in self.get_params().items():
58
+ if type(value) == str:
59
+ value = "'" + value + "'"
60
+ else:
61
+ value = str(value)
62
+ params_string.append(name + '=' + value)
63
+ return self.__class__.__name__ + '(' + ', '.join(params_string) + ')'
64
+
65
+ def fit(self, *args, **kwargs):
66
+ """Fit algorithm to data."""
67
+ raise NotImplementedError
@@ -0,0 +1,8 @@
1
+ """classification module"""
2
+ from sknetwork.classification.base import BaseClassifier
3
+ from sknetwork.classification.diffusion import DiffusionClassifier
4
+ from sknetwork.classification.knn import NNClassifier
5
+ from sknetwork.classification.metrics import get_accuracy_score, get_confusion_matrix, get_f1_score, get_f1_scores, \
6
+ get_average_f1_score
7
+ from sknetwork.classification.pagerank import PageRankClassifier
8
+ from sknetwork.classification.propagation import Propagation
@@ -0,0 +1,142 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ Created in November 2019
5
+ @author: Nathan de Lara <nathan.delara@polytechnique.org>
6
+ """
7
+ from abc import ABC
8
+
9
+ import numpy as np
10
+ from scipy import sparse
11
+
12
+ from sknetwork.base import Algorithm
13
+
14
+
15
+ class BaseClassifier(Algorithm, ABC):
16
+ """Base class for classifiers.
17
+
18
+ Attributes
19
+ ----------
20
+ bipartite : bool
21
+ If ``True``, the fitted graph is bipartite.
22
+ labels_ : np.ndarray, shape (n_labels,)
23
+ Labels of nodes.
24
+ probs_ : sparse.csr_matrix, shape (n_row, n_labels)
25
+ Probability distribution over labels (soft classification).
26
+ labels_row_ , labels_col_ : np.ndarray
27
+ Labels of rows and columns (for bipartite graphs).
28
+ probs_row_, probs_col_ : sparse.csr_matrix, shapes (n_row, n_labels) and (n_col, n_labels)
29
+ Probability distributions over labels for rows and columns (for bipartite graphs).
30
+ """
31
+
32
+ def __init__(self):
33
+ self.bipartite = None
34
+ self.labels_ = None
35
+ self.probs_ = None
36
+ self.labels_row_ = None
37
+ self.labels_col_ = None
38
+ self.probs_row_ = None
39
+ self.probs_col_ = None
40
+
41
+ def predict(self, columns: bool = False) -> np.ndarray:
42
+ """Return the labels predicted by the algorithm.
43
+
44
+ Parameters
45
+ ----------
46
+ columns : bool
47
+ If ``True``, return the prediction for columns.
48
+
49
+ Returns
50
+ -------
51
+ labels : np.ndarray
52
+ Labels.
53
+ """
54
+ if columns:
55
+ return self.labels_col_
56
+ return self.labels_
57
+
58
+ def fit_predict(self, *args, **kwargs) -> np.ndarray:
59
+ """Fit algorithm to the data and return the labels. Same parameters as the ``fit`` method.
60
+
61
+ Returns
62
+ -------
63
+ labels : np.ndarray
64
+ Labels.
65
+ """
66
+ self.fit(*args, **kwargs)
67
+ return self.predict()
68
+
69
+ def predict_proba(self, columns=False) -> np.ndarray:
70
+ """Return the probability distribution over labels as predicted by the algorithm.
71
+
72
+ Parameters
73
+ ----------
74
+ columns : bool
75
+ If ``True``, return the prediction for columns.
76
+
77
+ Returns
78
+ -------
79
+ probs : np.ndarray
80
+ Probability distribution over labels.
81
+ """
82
+ if columns:
83
+ return self.probs_col_.toarray()
84
+ return self.probs_.toarray()
85
+
86
+ def fit_predict_proba(self, *args, **kwargs) -> np.ndarray:
87
+ """Fit algorithm to the data and return the probability distribution over labels.
88
+ Same parameters as the ``fit`` method.
89
+
90
+ Returns
91
+ -------
92
+ probs : np.ndarray
93
+ Probability of each label.
94
+ """
95
+ self.fit(*args, **kwargs)
96
+ return self.predict_proba()
97
+
98
+ def transform(self, columns=False) -> sparse.csr_matrix:
99
+ """Return the probability distribution over labels in sparse format.
100
+
101
+ Parameters
102
+ ----------
103
+ columns : bool
104
+ If ``True``, return the prediction for columns.
105
+
106
+ Returns
107
+ -------
108
+ probs : sparse.csr_matrix
109
+ Probability distribution over labels.
110
+ """
111
+ if columns:
112
+ return self.probs_col_
113
+ return self.probs_
114
+
115
+ def fit_transform(self, *args, **kwargs) -> sparse.csr_matrix:
116
+ """Fit algorithm to the data and return the probability distribution over labels in sparse format.
117
+ Same parameters as the ``fit`` method.
118
+
119
+ Returns
120
+ -------
121
+ probs : sparse.csr_matrix
122
+ Probability distribution over labels.
123
+ """
124
+ self.fit(*args, **kwargs)
125
+ return self.transform()
126
+
127
+ def _split_vars(self, shape: tuple):
128
+ """Split variables for bipartite graphs."""
129
+ if self.bipartite:
130
+ n_row = shape[0]
131
+ self.labels_row_ = self.labels_[:n_row]
132
+ self.labels_col_ = self.labels_[n_row:]
133
+ self.labels_ = self.labels_row_
134
+ self.probs_row_ = self.probs_[:n_row]
135
+ self.probs_col_ = self.probs_[n_row:]
136
+ self.probs_ = self.probs_row_
137
+ else:
138
+ self.labels_row_ = self.labels_
139
+ self.labels_col_ = self.labels_
140
+ self.probs_row_ = self.probs_
141
+ self.probs_col_ = self.probs_
142
+ return self
@@ -0,0 +1,133 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ Created in March 2020
5
+ @author: Nathan de Lara <nathan.delara@polytechnique.org>
6
+ """
7
+ from functools import partial
8
+ from multiprocessing import Pool
9
+ from typing import Union, Optional
10
+
11
+ import numpy as np
12
+ from scipy import sparse
13
+
14
+ from sknetwork.classification.base import BaseClassifier
15
+ from sknetwork.linalg.normalizer import normalize
16
+ from sknetwork.ranking.base import BaseRanking
17
+ from sknetwork.utils.check import check_labels, check_n_jobs
18
+ from sknetwork.utils.format import get_adjacency_values
19
+
20
+
21
+ class RankClassifier(BaseClassifier):
22
+ """Generic class for ranking based classifiers.
23
+
24
+ Parameters
25
+ ----------
26
+ algorithm :
27
+ Which ranking algorithm to use.
28
+ n_jobs :
29
+ If positive, number of parallel jobs allowed (-1 means maximum number).
30
+ If ``None``, no parallel computations are made.
31
+
32
+ Attributes
33
+ ----------
34
+ labels_ : np.ndarray, shape (n_labels,)
35
+ Label of each node.
36
+ probs_ : sparse.csr_matrix, shape (n_row, n_labels)
37
+ Probability distribution over labels.
38
+ labels_row_, labels_col_ : np.ndarray
39
+ Labels of rows and columns, for bipartite graphs.
40
+ probs_row_, probs_col_ : sparse.csr_matrix, shape (n_row, n_labels)
41
+ Probability distributions over labels for rows and columns (for bipartite graphs).
42
+ """
43
+ def __init__(self, algorithm: BaseRanking, n_jobs: Optional[int] = None, verbose: bool = False):
44
+ super(RankClassifier, self).__init__()
45
+
46
+ self.algorithm = algorithm
47
+ self.n_jobs = check_n_jobs(n_jobs)
48
+ self.verbose = verbose
49
+
50
+ @staticmethod
51
+ def _process_labels(labels: np.ndarray) -> list:
52
+ """Make one-vs-all binary labels from labels.
53
+
54
+ Parameters
55
+ ----------
56
+ labels
57
+
58
+ Returns
59
+ -------
60
+ List of binary labels.
61
+ """
62
+ labels_all = []
63
+ labels_unique, _ = check_labels(labels)
64
+
65
+ for label in labels_unique:
66
+ labels_binary = np.array(labels == label).astype(int)
67
+ labels_all.append(labels_binary)
68
+
69
+ return labels_all
70
+
71
+ @staticmethod
72
+ def _process_scores(scores: np.ndarray) -> np.ndarray:
73
+ """Post-processing of the scores.
74
+
75
+ Parameters
76
+ ----------
77
+ scores
78
+ Matrix of scores, shape number of nodes x number of labels.
79
+
80
+ Returns
81
+ -------
82
+ scores : np.ndarray
83
+ """
84
+ return scores
85
+
86
+ def _split_vars(self, shape):
87
+ """Split the vector of labels and build membership matrix."""
88
+ n_row = shape[0]
89
+ self.labels_row_ = self.labels_[:n_row]
90
+ self.labels_col_ = self.labels_[n_row:]
91
+ self.labels_ = self.labels_row_
92
+ self.probs_row_ = self.probs_[:n_row]
93
+ self.probs_col_ = self.probs_[n_row:]
94
+ self.probs_ = self.probs_row_
95
+
96
+ def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: Union[np.ndarray, dict] = None,
97
+ labels_row: Union[np.ndarray, dict] = None, labels_col: Union[np.ndarray, dict] = None) -> 'RankClassifier':
98
+ """Fit algorithm to data.
99
+
100
+ Parameters
101
+ ----------
102
+ input_matrix :
103
+ 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 on rows and columns (for bipartite graphs).
108
+ Returns
109
+ -------
110
+ self: :class:`RankClassifier`
111
+ """
112
+ adjacency, seeds_labels, bipartite = get_adjacency_values(input_matrix, values=labels, values_row=labels_row,
113
+ values_col=labels_col)
114
+ seeds_labels = seeds_labels.astype(int)
115
+ labels_unique, n_classes = check_labels(seeds_labels)
116
+ seeds_all = self._process_labels(seeds_labels)
117
+ local_function = partial(self.algorithm.fit_predict, adjacency)
118
+ with Pool(self.n_jobs) as pool:
119
+ scores = np.array(pool.map(local_function, seeds_all))
120
+ scores = scores.T
121
+
122
+ scores = self._process_scores(scores)
123
+ scores = normalize(scores)
124
+
125
+ probs = sparse.coo_matrix(scores)
126
+ probs.col = labels_unique[probs.col]
127
+
128
+ labels = np.argmax(scores, axis=1)
129
+ self.labels_ = labels_unique[labels]
130
+ self.probs_ = sparse.csr_matrix(probs, shape=(adjacency.shape[0], np.max(seeds_labels) + 1))
131
+ self._split_vars(input_matrix.shape)
132
+
133
+ return self