scikit-network 0.32.0__cp310-cp310-macosx_11_0_arm64.whl → 0.33.0__cp310-cp310-macosx_11_0_arm64.whl

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

Potentially problematic release.


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

Files changed (48) hide show
  1. {scikit_network-0.32.0.dist-info → scikit_network-0.33.0.dist-info}/AUTHORS.rst +0 -1
  2. {scikit_network-0.32.0.dist-info → scikit_network-0.33.0.dist-info}/METADATA +16 -4
  3. {scikit_network-0.32.0.dist-info → scikit_network-0.33.0.dist-info}/RECORD +48 -48
  4. {scikit_network-0.32.0.dist-info → scikit_network-0.33.0.dist-info}/WHEEL +1 -1
  5. sknetwork/__init__.py +1 -1
  6. sknetwork/classification/diffusion.py +4 -3
  7. sknetwork/classification/knn.py +4 -3
  8. sknetwork/classification/metrics.py +3 -3
  9. sknetwork/classification/propagation.py +6 -5
  10. sknetwork/classification/vote.cpython-310-darwin.so +0 -0
  11. sknetwork/clustering/leiden.py +2 -1
  12. sknetwork/clustering/leiden_core.cpython-310-darwin.so +0 -0
  13. sknetwork/clustering/louvain.py +3 -3
  14. sknetwork/clustering/louvain_core.cpython-310-darwin.so +0 -0
  15. sknetwork/clustering/tests/test_kcenters.py +5 -37
  16. sknetwork/data/__init__.py +1 -1
  17. sknetwork/data/base.py +7 -2
  18. sknetwork/data/load.py +18 -21
  19. sknetwork/data/models.py +15 -15
  20. sknetwork/data/parse.py +19 -17
  21. sknetwork/data/tests/test_API.py +3 -3
  22. sknetwork/data/tests/test_base.py +2 -2
  23. sknetwork/data/tests/test_toy_graphs.py +33 -33
  24. sknetwork/data/toy_graphs.py +35 -43
  25. sknetwork/embedding/base.py +3 -0
  26. sknetwork/embedding/louvain_embedding.py +0 -26
  27. sknetwork/embedding/svd.py +0 -4
  28. sknetwork/embedding/tests/test_louvain_embedding.py +9 -4
  29. sknetwork/embedding/tests/test_svd.py +6 -0
  30. sknetwork/gnn/gnn_classifier.py +1 -1
  31. sknetwork/hierarchy/louvain_hierarchy.py +10 -6
  32. sknetwork/hierarchy/paris.cpython-310-darwin.so +0 -0
  33. sknetwork/hierarchy/paris.pyx +4 -3
  34. sknetwork/hierarchy/tests/test_metrics.py +4 -4
  35. sknetwork/linalg/diteration.cpython-310-darwin.so +0 -0
  36. sknetwork/linalg/push.cpython-310-darwin.so +0 -0
  37. sknetwork/ranking/betweenness.cpython-310-darwin.so +0 -0
  38. sknetwork/regression/diffusion.py +6 -4
  39. sknetwork/topology/cliques.cpython-310-darwin.so +0 -0
  40. sknetwork/topology/core.cpython-310-darwin.so +0 -0
  41. sknetwork/topology/minheap.cpython-310-darwin.so +0 -0
  42. sknetwork/topology/triangles.cpython-310-darwin.so +0 -0
  43. sknetwork/topology/weisfeiler_lehman_core.cpython-310-darwin.so +0 -0
  44. sknetwork/utils/__init__.py +1 -1
  45. sknetwork/utils/values.py +5 -3
  46. sknetwork/visualization/graphs.py +1 -1
  47. {scikit_network-0.32.0.dist-info → scikit_network-0.33.0.dist-info}/LICENSE +0 -0
  48. {scikit_network-0.32.0.dist-info → scikit_network-0.33.0.dist-info}/top_level.txt +0 -0
@@ -13,7 +13,6 @@ Development Lead
13
13
  * Simon Delarue <simon.delarue@telecom-paris.fr>
14
14
  * Marc Jeanmougin <marc.jeanmougin@telecom-paris.fr>
15
15
 
16
-
17
16
  Former lead
18
17
  -----------
19
18
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: scikit-network
3
- Version: 0.32.0
3
+ Version: 0.33.0
4
4
  Summary: Graph algorithms
5
5
  Home-page: https://github.com/sknetwork-team/scikit-network
6
6
  Author: Scikit-network team
@@ -15,11 +15,11 @@ Classifier: Intended Audience :: Science/Research
15
15
  Classifier: License :: OSI Approved :: BSD License
16
16
  Classifier: Natural Language :: English
17
17
  Classifier: Programming Language :: Cython
18
- Classifier: Programming Language :: Python :: 3.8
19
18
  Classifier: Programming Language :: Python :: 3.9
20
19
  Classifier: Programming Language :: Python :: 3.10
21
20
  Classifier: Programming Language :: Python :: 3.11
22
- Requires-Python: >=3.8
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Requires-Python: >=3.9
23
23
  Description-Content-Type: text/x-rst
24
24
  License-File: LICENSE
25
25
  License-File: AUTHORS.rst
@@ -118,7 +118,19 @@ the `Journal of Machine Learning Research <https://jmlr.org>`_:
118
118
  History
119
119
  =======
120
120
 
121
- 0.32.0 (2024-03-28)
121
+ 0.33.0 (2024-07-16)
122
+ -------------------
123
+
124
+ * Add Python 3.12
125
+ * Drop Python 3.8
126
+
127
+ 0.32.1 (2024-04-02)
128
+ -------------------
129
+
130
+ * Fix documentation
131
+ * Fix wheel upload
132
+
133
+ 0.32.0 (2024-03-29)
122
134
  -------------------
123
135
 
124
136
  * Add Leiden clustering algorithm
@@ -1,25 +1,19 @@
1
- scikit_network-0.32.0.dist-info/RECORD,,
2
- scikit_network-0.32.0.dist-info/LICENSE,sha256=zKbJMpbSKgGEUaNr_fKgvJrvw_3W4gnJs5XdLCK5Sxo,1622
3
- scikit_network-0.32.0.dist-info/WHEEL,sha256=YryPFYalc7zt-wi82wLNxE5k4S4dtsQOnz0S1sKWvLs,110
4
- scikit_network-0.32.0.dist-info/AUTHORS.rst,sha256=OZUa1KqaPu_waik7LZVTdyXcvmQWkD3M3HBDVGEtkG0,924
5
- scikit_network-0.32.0.dist-info/top_level.txt,sha256=fkwspWQ9B3csqb5ENEOoVciRY6XftnMuz4MvTDQeSsg,10
6
- scikit_network-0.32.0.dist-info/METADATA,sha256=9WVmakDcqXwL8kwVUdv81YsSWyghTQUtkrKPTcENiC8,14311
7
1
  sknetwork/log.py,sha256=ORInAVh_cWIfxwaFWSblSRxwT-jG05XPRnYTTAHSKy4,443
8
- sknetwork/__init__.py,sha256=4IL5uWYJW0OGiWzBN8VYJV77yZZkzHhAenwjX5pk26Q,533
2
+ sknetwork/__init__.py,sha256=SZAI5otUFjW-KNf_HNvDY7g_mjFAcPTNg5SIcBjU4WM,533
9
3
  sknetwork/test_log.py,sha256=V4t6Ggi_fh8px5Iq7CDLlJvbXfz24macQ43Ss0tPb5I,319
10
4
  sknetwork/test_base.py,sha256=PB_kJ7cNvhBXmlL-KzyLu2hf6mG7b1OQY759aYplW4k,912
11
5
  sknetwork/sknetwork.py,sha256=VYoI-gwqwBKPx84cA0KnYDRofrgIXs8xtASD2nu5fE0,44
12
6
  sknetwork/base.py,sha256=XJJ6MicVcSiQBWQ9fYlmUJYkXq0PRldQzExhZKuaFBo,1951
13
- sknetwork/classification/metrics.py,sha256=kn6rkcn6r9jOsF7_bhP4SX20hrgydiA2UfCTdM12dKA,6802
7
+ sknetwork/classification/metrics.py,sha256=aaIfYddIAJsGXpXJ6TGcQScjzyJOo8kiWgcIE1kefSM,6806
14
8
  sknetwork/classification/vote.pyx,sha256=Bbf74XCPH8uYDP-SrXRaA7k6Ax2x-wDzpbHMeg9le7A,1584
15
- sknetwork/classification/diffusion.py,sha256=zE3_TRi05GgQU9TqMSuMKieVR1srnZONnpGLCUrnHWQ,5537
9
+ sknetwork/classification/diffusion.py,sha256=h4l43kA_MR_hMthc5mqW__5jTkQq9Ne9Q_H8bLPhM6Q,5564
16
10
  sknetwork/classification/__init__.py,sha256=yVv7wSuUfNLxeNBF-AhWCJys3C-XatPtMzi1wyp9Bz4,475
17
11
  sknetwork/classification/base_rank.py,sha256=RGElYD6PuP4nhnenNnzpOiBojs49Afg5ahjBFEi566I,4522
18
- sknetwork/classification/propagation.py,sha256=TqTNqnuZjelX3A7Ghw3M6k8u9fOh-Ag_eBh6FN0f5gI,5754
19
- sknetwork/classification/vote.cpython-310-darwin.so,sha256=1uSKtt1VjwnK7SR8K7WwOu21Tq8iRSYLBWAEHE5lbk0,221303
12
+ sknetwork/classification/propagation.py,sha256=0Cb1-mIMcPoes5oXR7BqhqEmlFMEMcTOMy_BNjX0lvY,5793
13
+ sknetwork/classification/vote.cpython-310-darwin.so,sha256=BiwXtF8QkdzMgEBIFNIfGye5tDRJVUQvNgyJ7oOFjBo,212568
20
14
  sknetwork/classification/pagerank.py,sha256=CBUeCqZisr6s5lh3VXYWA6rbiPdLyNzuSMbjazy80eA,2586
21
15
  sknetwork/classification/base.py,sha256=WS-QHh4553Dr1VwJqjggSqO6hHFIAs50oPah_L23eFo,4290
22
- sknetwork/classification/knn.py,sha256=7tiXPNOzRLPCAoELXWtqXdnPUIIDqtGdku3r1KGiE8Q,5306
16
+ sknetwork/classification/knn.py,sha256=fLRZF2jhHq105QHMeW328JcF71wTaGP-ukmbJdyiw44,5333
23
17
  sknetwork/classification/tests/test_metrics.py,sha256=eBs-5uAEz2s8gukMyfhQ07GSFoyvxtsslLuc6VgUxBU,2303
24
18
  sknetwork/classification/tests/__init__.py,sha256=sy9uRiPhYG2i7uqM3P07-VUf4UcZEHeOoH9BvKCpU3s,31
25
19
  sknetwork/classification/tests/test_pagerank.py,sha256=5IJpYqnz31cWT0iXjTdo1xE8Kfj3YTK0cSZnnTlyJBs,620
@@ -29,26 +23,26 @@ sknetwork/classification/tests/test_API.py,sha256=FA1d0NQz3vaNVVeFbhEljPe0fD_ryR
29
23
  sknetwork/classification/tests/test_propagation.py,sha256=m0Jyq59k3taoikyBxcZGILzG7dWQV3SGE45MPm0RPao,850
30
24
  sknetwork/visualization/dendrograms.py,sha256=m4FbBfvJUW_gXccZWF8OWxAsbhsEcKa1fXNNCp_y4MA,9901
31
25
  sknetwork/visualization/__init__.py,sha256=8rLiR13WHSWLsEVTTL6lzOZms0LZf-ZujBqOI5VnKxk,216
32
- sknetwork/visualization/graphs.py,sha256=7iNHW3NJ7kxLw2y3SoEY_rmyCfmxLPmi0tCJ2dkS3q0,41175
26
+ sknetwork/visualization/graphs.py,sha256=kxFjEbg5b_bHpapLyf1L01CIwzxpWE6KLtS_ji2yZyY,41176
33
27
  sknetwork/visualization/colors.py,sha256=DjcXt9aMgLan7bRg7TZI8m_8SLWQOZ-g2HoguB1-3qA,2509
34
28
  sknetwork/visualization/tests/test_graphs.py,sha256=g2YPJn9m8wD-UHZ_BL37xuJqE7ygOx3EztKLVVqphYk,9421
35
29
  sknetwork/visualization/tests/__init__.py,sha256=yOVrqUD9UuI_HdYuqRP5PS7QhS-pO4RE_Ls5PLiIC_w,30
36
30
  sknetwork/visualization/tests/test_dendrograms.py,sha256=UuS3VZ5XnV1u5BtW-QKbFv0wavllQpbgtsOIe5XvTlg,2466
37
- sknetwork/topology/minheap.cpython-310-darwin.so,sha256=MRFuAzpJ0N3C9yyFr0TSqtlL_TCsusjqgsy_Ocurx_I,204122
31
+ sknetwork/topology/minheap.cpython-310-darwin.so,sha256=UdmIAA1DFOK4oUdSlDgchcUKUGJ_5NYRP5MrlZ4RuUI,195008
38
32
  sknetwork/topology/cliques.pyx,sha256=BuezL9-zJOicL1zffkpcf8uIEgqhik6dgK_agXX4gaU,4510
39
33
  sknetwork/topology/minheap.pyx,sha256=iFWpXPYSAmWjYphYByAM6auUj1XHly6QovZvuy2Lpyc,3310
40
34
  sknetwork/topology/weisfeiler_lehman_core.pyx,sha256=fi0rRrXHVZuIQYzPDcPCamCRQLKquchjV3N9dNuQ1Pk,3034
41
35
  sknetwork/topology/__init__.py,sha256=T2W2cWwcUdhfA86VuZAZqksbrgct4hiyp0HuizEnLg4,534
42
36
  sknetwork/topology/cycles.py,sha256=EV2UMDktEGdJxEmAZyyjBMttJ6DqYvvfZ6mqwIQqFu0,9003
43
37
  sknetwork/topology/weisfeiler_lehman.py,sha256=ACJDAmZbwDrZAvO-LsHnRaef-8KX7esM1LxVUglXtLw,4308
44
- sknetwork/topology/triangles.cpython-310-darwin.so,sha256=1upwo-5TOvVo6x6HCB_MId60LdUmlXBqdlXYM3yK90g,108668
38
+ sknetwork/topology/triangles.cpython-310-darwin.so,sha256=8dfD4iLQg-dmuVg_bwBdNmKdbHLRFqxSUtqsbV6QCHQ,106160
45
39
  sknetwork/topology/minheap.pxd,sha256=Y_oRh8H-sNZYAWv0XM9T-ZLzYBhb5TrBM4VjlH-ZqPQ,564
46
40
  sknetwork/topology/structure.py,sha256=CDfN7SL70wTHm2HPfqd7ncsZEaV1SQO3tJKYl1CdtNI,7285
47
41
  sknetwork/topology/triangles.pyx,sha256=JOkA9k0CQTsT7zdPaEoW7-PdHYuoXHsB0XSuPKFLJSI,4349
48
- sknetwork/topology/weisfeiler_lehman_core.cpython-310-darwin.so,sha256=3Wgjds-wljKnGvkEfgPcwTAtq33poPkLAhAMdvSi2Zw,222185
42
+ sknetwork/topology/weisfeiler_lehman_core.cpython-310-darwin.so,sha256=JHG2p1Irw8seGQxgQc9yyrndhj6pUBkkV-RI_ANrmFE,213872
49
43
  sknetwork/topology/core.pyx,sha256=HwGbC84p9F9fkEw8ouNNMQtlYrAoEWhQS5hU9Cf1h94,2465
50
- sknetwork/topology/cliques.cpython-310-darwin.so,sha256=ApV7upBMEk60lgzyZES7SJbqCjb0iGxy0jRTSjAIbS0,259354
51
- sknetwork/topology/core.cpython-310-darwin.so,sha256=C5oTuXg0C_-GmrdK8Gs2NLv9SU-Ymi-EYwxoDts46wI,218039
44
+ sknetwork/topology/cliques.cpython-310-darwin.so,sha256=0dZBSNa1CApxseMC0LIpiyHYRUPucNhDvVW9WCJF_z8,249280
45
+ sknetwork/topology/core.cpython-310-darwin.so,sha256=DoyVbrh-mS20fCKNpogg4-8WMUivQj6qeLW5iMSTqRo,209928
52
46
  sknetwork/topology/tests/test_cycles.py,sha256=KZzMKS5ILfC_J0Fj5MFlEOL7Z9nOnlRfo4TnGdXEPWY,3150
53
47
  sknetwork/topology/tests/test_structure.py,sha256=CzcZ1LxV-mI_buxz6LcTeCy3h5ofMLfOu2HUHwNSMi8,3948
54
48
  sknetwork/topology/tests/test_wl.py,sha256=EJY_4xTi_-qzFsqZJkgnwLteoakdkpRAczzdMCGeXe0,2218
@@ -62,7 +56,7 @@ sknetwork/ranking/closeness.py,sha256=pETMD8uaXfADZhmzVaH4YIGX57S2vvhzVInONaAwBU
62
56
  sknetwork/ranking/katz.py,sha256=uPyXkEL73_6MS4dP5XTSVSIrD5h5QJipVTVEa0L_y48,2535
63
57
  sknetwork/ranking/hits.py,sha256=L39a9Ze3ITUbikmNhA_Lx-V5s_RQr0XnNkOsIgG8m98,2761
64
58
  sknetwork/ranking/pagerank.py,sha256=Qt2SOUoLO76JVDnT4-x-b-hah9IlaHECsYNu45AnpY8,4749
65
- sknetwork/ranking/betweenness.cpython-310-darwin.so,sha256=5-x9ZZu9L7S3nwZgRc-T6KbOc_gEVe117b2Mi6ijY3A,130158
59
+ sknetwork/ranking/betweenness.cpython-310-darwin.so,sha256=kyLr8IVFc6B8wupumDelAg-bF3gJG4DPhIwPrCnWKEQ,127184
66
60
  sknetwork/ranking/base.py,sha256=Jo9LBK3TfXiYdxYqSmfeVC8O2D6fA5L-SRzQh3eqtnA,1512
67
61
  sknetwork/ranking/betweenness.pyx,sha256=Pq9EqOHV0P8TDN_w9siP3h8HyechaAErysNwz0JT0ow,3087
68
62
  sknetwork/ranking/tests/test_postprocess.py,sha256=jPLJKJYEltFpY2uct0JyJEkD1haOyNU8h_1KwiLMgZM,703
@@ -74,7 +68,7 @@ sknetwork/ranking/tests/test_betweenness.py,sha256=8XA1ycLQQ7-Cm3CBfkcSDQOvD6xag
74
68
  sknetwork/ranking/tests/test_hits.py,sha256=zStzrWZ-pv2Nsd-pB282FgW3KAn1TyKjz_l85tJaPJ0,491
75
69
  sknetwork/linalg/diteration.pyx,sha256=gk9W6SwIxXgmjQujXWBUIoM_OwevjE3jTzFrIEkGnWI,1384
76
70
  sknetwork/linalg/__init__.py,sha256=awBDY2wWiO40L5eED3H8K1BM8qtHz7aQRv1p3PcSK94,533
77
- sknetwork/linalg/diteration.cpython-310-darwin.so,sha256=zjedkIb0tU8UFK43h8Ext_bXR7b0mOQ_1XbPfpjp3Jo,216973
71
+ sknetwork/linalg/diteration.cpython-310-darwin.so,sha256=zAliu_tnBx4p0rfyDvwcnKx830ITYP-COULxk739QUQ,192336
78
72
  sknetwork/linalg/laplacian.py,sha256=_gQr8YLqMUtK_IMNgvJoQX7-uODVlvCVmc-oTsgw7MA,401
79
73
  sknetwork/linalg/eig_solver.py,sha256=yq_prP5p1jbALby69wkzzH0vYKc1btmRQoiVUtTh-eA,2700
80
74
  sknetwork/linalg/push.pyx,sha256=caxCZa5h9zsHhxJgDBaaetqpB0wUbFLdOUwHwj0q_t0,2358
@@ -83,7 +77,7 @@ sknetwork/linalg/sparse_lowrank.py,sha256=LUhbqa01p51SYhoIb2Dmx2b9fMc-iOu69CAVHs
83
77
  sknetwork/linalg/basics.py,sha256=8AFph_1G5SZP_24jrIv6qIWooO0UMglL4jMgx3ZdYIQ,1142
84
78
  sknetwork/linalg/normalizer.py,sha256=kOFDPPdiGqG-KcWNiRwbS_y_nmw5fTKYTvuj_x8yBd0,2473
85
79
  sknetwork/linalg/operators.py,sha256=fxitao4UYW4Hq7B258T_cAq2H3R2FN1-mwdy138w8fE,7432
86
- sknetwork/linalg/push.cpython-310-darwin.so,sha256=s7RW9RZoKsjgPxPEWR86WbL5yJQ7Nwj5kzjBcs1tuGU,237703
80
+ sknetwork/linalg/push.cpython-310-darwin.so,sha256=d5AjLy8cN1rpVRnLcRZGwnuwulb5YlCR7ymICkey5ug,212168
87
81
  sknetwork/linalg/polynome.py,sha256=_dP9Nu_6XCV0-WEQJ7E5nG6pxZWMtbj-LREu0vtxeWk,2125
88
82
  sknetwork/linalg/svd_solver.py,sha256=vhcXwCsOar0cYDPZo7IF_ulRDsGGvZzePIeSpSCVgLk,2681
89
83
  sknetwork/linalg/tests/test_svd.py,sha256=eLRmSiHt8uWzknImZtRSZmJC8OX0YDgUt9-8PePc3OA,1285
@@ -96,14 +90,14 @@ sknetwork/linalg/tests/test_laplacian.py,sha256=B6UhJOmYUdNlXwNoxLLtb--nv9mx96Or
96
90
  sknetwork/linalg/tests/test_eig.py,sha256=lUAgo4UfWuuSG5DhSk5SIT7ToLDgPG-5JCgmOe_M7Vw,1504
97
91
  sknetwork/linalg/tests/test_normalization.py,sha256=nASuMYxKcsWj3gk9DF5uPKYOw93oJ-UQUWi99Fw3kmE,887
98
92
  sknetwork/hierarchy/metrics.py,sha256=_wYGKx_VDE_sfbg-uUEFMhOjSLFqzC8rFHjJo1hdVL8,8046
99
- sknetwork/hierarchy/paris.pyx,sha256=10Fu048FPklcgYiLmMKWpRW87UY04ubU0NpjESTOsLA,11683
100
- sknetwork/hierarchy/paris.cpython-310-darwin.so,sha256=MbwX9fcUR-tIs1R-auIbeL_4WjruT_2r8Q7mP3jJUfg,302728
93
+ sknetwork/hierarchy/paris.pyx,sha256=DX8p3LOtrNxyQ8pOZZE_Q2b5rBKjYwKArsmMZbvb0xY,11813
94
+ sknetwork/hierarchy/paris.cpython-310-darwin.so,sha256=awxfSA-5WJu6YVz1jL0lrW7L6e1OyyXw5Os4HgmD2Rs,292504
101
95
  sknetwork/hierarchy/postprocess.py,sha256=d1Fll3eqDIjiMf1c5nGuKF6I0fN93elnglkp59LARGU,12072
102
96
  sknetwork/hierarchy/__init__.py,sha256=YgE2eqnwS8Q2NWP9pNY-M1bpdxRn5-C-CdykydNW7iM,412
103
- sknetwork/hierarchy/louvain_hierarchy.py,sha256=YfwhhEe1eL7DBbs0t1-a-vdzFB2xA5LXh0VT9OL-jus,9558
97
+ sknetwork/hierarchy/louvain_hierarchy.py,sha256=PhetHYpmsnI7yC-rbYAUXhNiBV9QNKMDbrfz9l0fskc,9846
104
98
  sknetwork/hierarchy/base.py,sha256=MoxBiSsEJOq77YmXj_bpf4vUiPLSpQn8fnUX7YIqyd8,2693
105
99
  sknetwork/hierarchy/tests/test_postprocess.py,sha256=OSrWE0gT0AcPI4LKmUL-Blfg5ErxnjS3d4rPNnA63_Y,2209
106
- sknetwork/hierarchy/tests/test_metrics.py,sha256=UydXtXgGud9MgTKT4l_j7BplKToO2cQKuoGvkBPirAw,3160
100
+ sknetwork/hierarchy/tests/test_metrics.py,sha256=IHlsdJXeHqPU8_SBm4eIXua5ZhyRIAUH4cAtVNNR7Ng,3160
107
101
  sknetwork/hierarchy/tests/__init__.py,sha256=l2HHDiDLpoTQlwzh1mtCyp6bS8RxBdJK2DP1FGiQJMY,26
108
102
  sknetwork/hierarchy/tests/test_algos.py,sha256=xMt2xzAYEm6MuK-8OKOqBwZS89aJspX2tr7T6QMHz6E,1361
109
103
  sknetwork/hierarchy/tests/test_API.py,sha256=tLF-jLsfM2OFqbyVHK1o9jXVW_1PbTkMcxkAXuGjMO8,720
@@ -119,15 +113,15 @@ sknetwork/path/tests/__init__.py,sha256=_COAjci7RJ_XtBDGwy5aOgZ9dPSQH3j7d6qMlLHs
119
113
  sknetwork/path/tests/test_distances.py,sha256=zItygI9cLMrQonLhOubvorElU5qaZumFfjMethx4rDw,2695
120
114
  sknetwork/embedding/random_projection.py,sha256=NuJoPHYLjdb8dUdKOwGr7Q6lGZBSPbwmMuuY6CRzgoI,5002
121
115
  sknetwork/embedding/__init__.py,sha256=ASeieiOc46EuKMUArW3kt_WJbsLxUzz0BVYycmag5Pw,410
122
- sknetwork/embedding/svd.py,sha256=0q6a2EwnbXGxzsDpmQu0HUS_9e_VwA0lMKqes2e-77I,14734
116
+ sknetwork/embedding/svd.py,sha256=fK84a57Js4Hvh9Rtz2FDFA7eKhLThUO256e8xdIkJm4,14642
123
117
  sknetwork/embedding/force_atlas.py,sha256=amYr0E08F8TDoIxjPx3lx35JFwEP41jc4KKed1PQeZs,7452
124
118
  sknetwork/embedding/spring.py,sha256=5fyHQzmIp8gY9DdI-DFvMc37mjMb64bs22ZZZ9YFDXM,7151
125
119
  sknetwork/embedding/spectral.py,sha256=ds91hH6JFBsfLcTS8QEz-gP5tZUcrrGqjfnL-xMIdU0,5548
126
- sknetwork/embedding/louvain_embedding.py,sha256=QYKxrTNLEm69PS7D0YR_k3diZQKBt6PT1T6N3xPGrMU,6950
127
- sknetwork/embedding/base.py,sha256=D-UkpCOTw_PAjs1YFyq7jdrn3Akx4yjl5nxN2iMnd0Q,2590
120
+ sknetwork/embedding/louvain_embedding.py,sha256=Q51zN2yNVeUrwfF98nnozpSaB_vUSVUi4pi9KwNkUOA,6082
121
+ sknetwork/embedding/base.py,sha256=zIaj7TdsRzBXYdl3MCuiDf4ShV6T8sAtm22IzGajho4,2663
128
122
  sknetwork/embedding/tests/test_spring.py,sha256=tanArc4vstNZ36CLr7S8uEVdXX0iP2K9UWKQLTcsPsQ,1643
129
- sknetwork/embedding/tests/test_svd.py,sha256=Yg9qgSdPPZR4n_DYN5bXZMJLIEz1tny1rirsPL8ejQc,1195
130
- sknetwork/embedding/tests/test_louvain_embedding.py,sha256=GtHU8vt4X8nNLLVol08Ot4NgbMcDzQEvWcm7qWbN_BA,825
123
+ sknetwork/embedding/tests/test_svd.py,sha256=xkfgHiQCDTRp8seWCdBvQFGwONoM6VYn6g9xp3FJIOs,1463
124
+ sknetwork/embedding/tests/test_louvain_embedding.py,sha256=XXz_2Jul1Rv3sILYFz4HLy2OWRsdZWRWWRnVBxOU68o,1116
131
125
  sknetwork/embedding/tests/__init__.py,sha256=QkDQtTJReK7Ldp0Y4f5-tbTdcp224r1AF7jU26alSgQ,26
132
126
  sknetwork/embedding/tests/test_API.py,sha256=2c0O8S0u0hF23iys7QLHJJOz2W79rHMeEO2OMDQbglk,1489
133
127
  sknetwork/embedding/tests/test_force_atlas.py,sha256=-YM4HSF5Nvpm8e4SoCHiA2o7yAkm0h_ys7GRaJ1wloI,1120
@@ -135,18 +129,18 @@ sknetwork/embedding/tests/test_random_projection.py,sha256=2bUOCw66tUKP775pGPd5S
135
129
  sknetwork/embedding/tests/test_spectral.py,sha256=CH-F8fM3cYoxhjpob1m7wZV-tEr8XFD6Lxa_bFsLv3A,3897
136
130
  sknetwork/clustering/leiden_core.pyx,sha256=7HGdeX6iMnSs52Px44-__kN9JhHueaQUvCmrkIGTalg,4300
137
131
  sknetwork/clustering/metrics.py,sha256=VJPgmB1OvxA0SOaIQIGyJDUP1cgWFElnfdVaQ2krYrg,3060
138
- sknetwork/clustering/leiden.py,sha256=w0oUbQLR7zCMy4wXgDa7eN2K488jjGuTdOcgWG6Eb9A,9680
139
- sknetwork/clustering/leiden_core.cpython-310-darwin.so,sha256=wsLfJhFs2FCSSKxEJsTckQ5-AHD8rh_JoPZxxv4XKDA,261470
132
+ sknetwork/clustering/leiden.py,sha256=yL5N-9ny6XAj6La2-PBcsieRl4SVx8wxwVGvS1tMr-o,9682
133
+ sknetwork/clustering/leiden_core.cpython-310-darwin.so,sha256=nJc8asB5FRmgLKnukCnC_uIamA8DCNfR8VIgK2ZXfpY,250704
140
134
  sknetwork/clustering/postprocess.py,sha256=4hx5VTQmqS2Ld2P2kvXoyvVanXVg3bMA619IHS2jWHM,2039
141
135
  sknetwork/clustering/__init__.py,sha256=Ab-rmioxlaMoghrzd1RMr-L4zyrqIM8XznqrjBPGE28,435
142
136
  sknetwork/clustering/kcenters.py,sha256=RFEx35vPUm9a4mzCbDwv-PmePCsdQwbuKAeaRizBMxY,8689
143
- sknetwork/clustering/louvain.py,sha256=1mGcmy_Fd97V6bDmZb2Aa4JziCusru-gFHv5Vdxfm_0,10791
137
+ sknetwork/clustering/louvain.py,sha256=nFKEsrEuOH2k9iruT7SGo0kGDtcYzW2Xn7wBAxe767o,10825
144
138
  sknetwork/clustering/propagation_clustering.py,sha256=ABZZtyojkrXfzsMwEcxqphzHgFC5q8sECOyanvK9D3o,3781
145
139
  sknetwork/clustering/louvain_core.pyx,sha256=pMqt7WukTkBOpjofmiXMYHqRX69mkquEMapDdoskiQM,4089
146
140
  sknetwork/clustering/base.py,sha256=dCF4K3nbKY24kzFeDAy7Fp-b9jDBzEoG3jj1ozuu_W8,5932
147
- sknetwork/clustering/louvain_core.cpython-310-darwin.so,sha256=_S0UZ-BKcaFJtGcrjW7K9anr1XTzJo5UlSRm5Pp7EJw,260415
141
+ sknetwork/clustering/louvain_core.cpython-310-darwin.so,sha256=zqhCcUibL4C5kBcj60Eij4Jgv-21cBkzojMSfE-L5Ek,250048
148
142
  sknetwork/clustering/tests/test_postprocess.py,sha256=WSmAlqB-6Nw3eoL3NaOyNlpPr7GVnNnllkPVdyE9rXI,1378
149
- sknetwork/clustering/tests/test_kcenters.py,sha256=3euzkt79tPZul5rP_HuJZHXydUdqT-Xk5N01qWOuaks,3477
143
+ sknetwork/clustering/tests/test_kcenters.py,sha256=laO1QSJ-yGlroB5XtrC15jbRK0krYZK5sIRDHBUZL30,1977
150
144
  sknetwork/clustering/tests/test_metrics.py,sha256=fbVYg2s8DXQdiYHUNuVjFMtEJg4od1Vej25mgHhGDu0,1818
151
145
  sknetwork/clustering/tests/__init__.py,sha256=Ta0XKY7pklRvHyUY3Jlow3A2V4REa5geZG74xPz80Tc,27
152
146
  sknetwork/clustering/tests/test_leiden.py,sha256=3KSXvxUP9H4tCJQXUfWt-45-ltyD0FrVgYjXDvRN-yQ,1155
@@ -157,10 +151,10 @@ sknetwork/linkpred/__init__.py,sha256=pFtM52OhDK69ceeiRyH1MDse0EbD8fqyhOsWWih47g
157
151
  sknetwork/linkpred/base.py,sha256=aXgWqajDYjDE-YQcooI6j0qEByJxHQiQtSjmFiID3Qk,995
158
152
  sknetwork/linkpred/tests/__init__.py,sha256=05sK8Ihh9Gi2_uobPC_ErMVE4KOt0761NzzV_vJh15U,32
159
153
  sknetwork/linkpred/tests/test_nn.py,sha256=T79txY2DlPgnI4JqzC88EcwCobJiM9P9v_5_ZvBTDeU,983
160
- sknetwork/utils/values.py,sha256=UK6wck_frtPz0Q6hRugpUMNg6AARcBQ0_MIlG5CyAkc,2510
154
+ sknetwork/utils/values.py,sha256=E-_gcqVOYjUPiG_iz9j2avVh1ENANVIZt7AydYzyeyg,2595
161
155
  sknetwork/utils/check.py,sha256=tNOelam8GGdVjMzmk-7otNTyFBgJNKwq1z-zWmHOb9Y,12940
162
156
  sknetwork/utils/neighbors.py,sha256=XNqwPM_PPpf_x-YhjEMVZJDxmazrVw9Eky3hNv9IGz0,3351
163
- sknetwork/utils/__init__.py,sha256=FX-906qqZsXt9Q2nZdd3JT4rM0Aj39bc2O0wDpp_q-0,329
157
+ sknetwork/utils/__init__.py,sha256=z1kLaO6ZFBg9g3MoeuxV-6UPmcqKAxTs0fjqoYQOgc4,325
164
158
  sknetwork/utils/format.py,sha256=qAa5jmp_fkQBlVL4LW14N7rrMPNk3yMApNFLxREPuiU,8766
165
159
  sknetwork/utils/membership.py,sha256=dG2xJTWEjRcxyKTs5A7DFyNhO50-7UKpBIaWFfmyH_M,2162
166
160
  sknetwork/utils/tfidf.py,sha256=C1qZCwZSwypi-C_II9D7lkfyxsOFefiDopTO3pBEwkc,956
@@ -178,7 +172,7 @@ sknetwork/gnn/loss.py,sha256=P0un3iqbnFLrBbYODznVAoU_J2qAZuqHAPLiae0LCtI,5162
178
172
  sknetwork/gnn/activation.py,sha256=D7o4FdbDMrBa2PQrWrvplCf14QOSzZ67d9eWN9bHY-M,3560
179
173
  sknetwork/gnn/neighbor_sampler.py,sha256=TXdMRFwiT8sOdl6-S-flQZ5Rjrx1hwTzFqqiR_8PHTQ,1864
180
174
  sknetwork/gnn/utils.py,sha256=A0kuBe29Eg90cEzRAgw4YmnShnzoq6ai_-01IBAf63g,4349
181
- sknetwork/gnn/gnn_classifier.py,sha256=wSZQXjRu9ou9cEqcOXPD4gY_vKOYeC8iWXj6j1-uFrM,12613
175
+ sknetwork/gnn/gnn_classifier.py,sha256=yvh5P3T3AmpEI8xNBERSkLumifBzz6gRLgQQ5aaASd0,12610
182
176
  sknetwork/gnn/layer.py,sha256=i0XiAutNal9ImAGqMtSLVEq_QiqZoGAlAWwlSGrNY8Q,5526
183
177
  sknetwork/gnn/optimizer.py,sha256=vsCgfPoJtYMWREnR4tBsfPb0Ed-rHR0poBr-75lE57s,5782
184
178
  sknetwork/gnn/base.py,sha256=QZ_pNi2-edAUpu-2C93DWfooS_sHulO6HL6vK108lhc,5708
@@ -192,25 +186,31 @@ sknetwork/gnn/tests/test_neigh_sampler.py,sha256=zc_6G3JhZvKrFLJAk2UJSOHZwN7sGoj
192
186
  sknetwork/gnn/tests/test_base_layer.py,sha256=1PXvS3338vu-fI77ZnGgHfY20zkPRv_GcZKxLQmyj7I,1381
193
187
  sknetwork/gnn/tests/test_loss.py,sha256=W5DA6FRd-OppeRKFgj2gtLqNvjkXkCQPmV6lg3ENu-c,1045
194
188
  sknetwork/gnn/tests/test_base.py,sha256=HVsz5zABud8ZlrIJIFuAKP6N7mu2ClrTaleZbPhGOR0,3393
195
- sknetwork/regression/diffusion.py,sha256=dV-uPGEaBLpI_sY6pl52rkKeSDQV9MZsQfSo1frYKbc,7845
189
+ sknetwork/regression/diffusion.py,sha256=p4o62jxuz3z3Kd2WizmV1GYM9MO_c3yp70_KQUim0jM,7905
196
190
  sknetwork/regression/__init__.py,sha256=nRlbcR8bA2Lz-OmLPMIPhBzgDCol8oSA19qL3IninXA,141
197
191
  sknetwork/regression/base.py,sha256=KIsVpnbACRH4h5W3ifMJOTlZNuztGbQP1QbZKj5aj_0,1496
198
192
  sknetwork/regression/tests/__init__.py,sha256=BT8kCCMN_pv7znhIR5GSQ_XxU5brmrCYDwm4QJNRCV0,27
199
193
  sknetwork/regression/tests/test_diffusion.py,sha256=-QBRgES_BF-QIgFevozLt9YXmGxJ6vxgLeYVZe92Wn8,2061
200
194
  sknetwork/regression/tests/test_API.py,sha256=7fQulvKzF9yEBlLie7fL5G1ZdyiG4DAFZQZ4Lix96qs,1024
201
- sknetwork/data/models.py,sha256=QyC_5ft7lkYzp3smmv54fHnyMUs88TYUq2FBU_KStMs,13156
195
+ sknetwork/data/models.py,sha256=j3k2LKtxNjyihfJH3SyzA5jhFNBgaA17UCzihD59Lqo,13186
202
196
  sknetwork/data/test_graphs.py,sha256=OM6-7CiBN4UEAQUtE_2k5e5I72zDBL3r5fj_C2JXzNw,2484
203
197
  sknetwork/data/timeout.py,sha256=kwHOLZFnOTrRhiEjtcwATYhsXbf5e8zV1OCoEKuG8Zg,1047
204
- sknetwork/data/__init__.py,sha256=ejVS9hqX1Jf912UAazfaqIsNlppXCahEVDBv2IFdRUM,259
205
- sknetwork/data/toy_graphs.py,sha256=2Cy7EABhYKPtjtfrW71Drz51A3mSuGu7G0P24tYiwHY,25035
206
- sknetwork/data/parse.py,sha256=bRawtsCpm0CNgxjZ9CqpR_8nRJnW0ac561GoIlMOq1Y,26897
207
- sknetwork/data/load.py,sha256=gC61jqFdyhPXc4-vazK85UdB4hnFQFjH9f1xpQ7JScI,14360
208
- sknetwork/data/base.py,sha256=jeCwL-1O21CNkX1F9_eX4gl_BVNbeYabq_DSZr6ukB8,630
198
+ sknetwork/data/__init__.py,sha256=xTK1qf-dIJomjDwSLXrYL6nUcNwo118YxN7b_6gozak,255
199
+ sknetwork/data/toy_graphs.py,sha256=8-QKuwURndJ1_KEWlDqs-lBWBeoFxU3V3oUui4PsSDY,24632
200
+ sknetwork/data/parse.py,sha256=Qrn2_i8XdVx7QNWhweI9Fu3i33C8PO_sOb8vPzReaYM,26995
201
+ sknetwork/data/load.py,sha256=zN0fhEjEm0Mxp0bsdc13CW1zkb877vbo3om25nwpKrY,14356
202
+ sknetwork/data/base.py,sha256=Jp0MJKcpfJCRZO_Nz18g1JqYFMMD1Rz8zLhnqlgO7tg,673
209
203
  sknetwork/data/tests/test_test_graphs.py,sha256=dVRds-3P8JVnwfAp32fGif3zhocfPK0p2rgcYwJWsUQ,849
210
204
  sknetwork/data/tests/test_parse.py,sha256=JOTFNWr77ZxKUKjw8TSbN-2dk-6YwmqN2OcrNkh7JVc,12717
211
205
  sknetwork/data/tests/__init__.py,sha256=FSfkSYRKjDqIuEiEZ39Otve50qSxi7QObNnNrHHPx5s,19
212
- sknetwork/data/tests/test_toy_graphs.py,sha256=kxOb7QpXGi8O7Kb6RmWoRUbAoyllM_-SXCRcYoH8B00,2137
206
+ sknetwork/data/tests/test_toy_graphs.py,sha256=lknaYy5AWJjiqKfhgWhQEolN8e4CDe5ilNDpC5lenww,2197
213
207
  sknetwork/data/tests/test_models.py,sha256=oP-X_k0vbSB4CwlV4GQVVBAQ9uI_8frFicde5yhVYAc,1915
214
- sknetwork/data/tests/test_API.py,sha256=wJ4F4wPI3uI5WF_Pj2pMNSxSkY24Q7CO3kU8Sd5E-ac,957
215
- sknetwork/data/tests/test_base.py,sha256=I_0BXdj-BKvdm1LpPIRtlnPChVoYRTCC9ZvTuLT2_W8,308
208
+ sknetwork/data/tests/test_API.py,sha256=LUWZX9pPpZLVuzgAz85sJk6tgKDaXKqc2Fhp91x-E6c,963
209
+ sknetwork/data/tests/test_base.py,sha256=b-0CM1ResLoJXg6-jGmBWFii5JtZrXAhfYiAG70dW1w,312
216
210
  sknetwork/data/tests/test_load.py,sha256=9EXkw2TbDAUmpwE-kUTgxZieB4XDLF5drLVvyugX96M,3550
211
+ scikit_network-0.33.0.dist-info/RECORD,,
212
+ scikit_network-0.33.0.dist-info/LICENSE,sha256=zKbJMpbSKgGEUaNr_fKgvJrvw_3W4gnJs5XdLCK5Sxo,1622
213
+ scikit_network-0.33.0.dist-info/WHEEL,sha256=fquGSQcrf6h1_O3UYXCYNtgMDyMmum-8SgSiOTkx5gM,109
214
+ scikit_network-0.33.0.dist-info/AUTHORS.rst,sha256=MIEWJmfpIVmBPo03Xl_6j8kg7cjXicp9WVRQpuVDj9o,923
215
+ scikit_network-0.33.0.dist-info/top_level.txt,sha256=fkwspWQ9B3csqb5ENEOoVciRY6XftnMuz4MvTDQeSsg,10
216
+ scikit_network-0.33.0.dist-info/METADATA,sha256=KSryYoew7nGXScWKHnpxhItQbesZ7N1FBL7mKyZMg_U,14471
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: setuptools (70.3.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp310-cp310-macosx_11_0_arm64
5
5
 
sknetwork/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  __author__ = """scikit-network team"""
6
6
  __email__ = "thomas.bonald@telecom-paris.fr"
7
- __version__ = '0.32.0'
7
+ __version__ = '0.33.0'
8
8
 
9
9
  import sknetwork.topology
10
10
  import sknetwork.path
@@ -55,7 +55,7 @@ class DiffusionClassifier(BaseClassifier):
55
55
  >>> labels_true = graph.labels
56
56
  >>> labels = {0: labels_true[0], 33: labels_true[33]}
57
57
  >>> labels_pred = diffusion.fit_predict(adjacency, labels)
58
- >>> np.round(np.mean(labels_pred == labels_true), 2)
58
+ >>> round(np.mean(labels_pred == labels_true), 2)
59
59
  0.97
60
60
 
61
61
  References
@@ -74,8 +74,9 @@ class DiffusionClassifier(BaseClassifier):
74
74
  self.scale = scale
75
75
 
76
76
  def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray],
77
- labels: Optional[Union[dict, np.ndarray]] = None, labels_row: Optional[Union[dict, np.ndarray]] = None,
78
- labels_col: Optional[Union[dict, np.ndarray]] = None, force_bipartite: bool = False) \
77
+ labels: Optional[Union[dict, list, np.ndarray]] = None,
78
+ labels_row: Optional[Union[dict, list, np.ndarray]] = None,
79
+ labels_col: Optional[Union[dict, list, np.ndarray]] = None, force_bipartite: bool = False) \
79
80
  -> 'DiffusionClassifier':
80
81
  """Compute the solution to the Dirichlet problem (temperatures at equilibrium).
81
82
 
@@ -55,7 +55,7 @@ class NNClassifier(BaseClassifier):
55
55
  >>> labels_true = graph.labels
56
56
  >>> labels = {0: labels_true[0], 33: labels_true[33]}
57
57
  >>> labels_pred = classifier.fit_predict(adjacency, labels)
58
- >>> np.round(np.mean(labels_pred == labels_true), 2)
58
+ >>> round(np.mean(labels_pred == labels_true), 2)
59
59
  0.82
60
60
  """
61
61
  def __init__(self, n_neighbors: int = 3, embedding_method: Optional[BaseEmbedding] = None, normalize: bool = True):
@@ -97,8 +97,9 @@ class NNClassifier(BaseClassifier):
97
97
 
98
98
  return probs, labels
99
99
 
100
- def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: Union[np.ndarray, dict] = None,
101
- labels_row: Union[np.ndarray, dict] = None, labels_col: Union[np.ndarray, dict] = None) -> 'NNClassifier':
100
+ def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: Union[np.ndarray, list, dict] = None,
101
+ labels_row: Union[np.ndarray, list, dict] = None,
102
+ labels_col: Union[np.ndarray, list, dict] = None) -> 'NNClassifier':
102
103
  """Node classification by k-nearest neighbors in the embedding space.
103
104
 
104
105
  Parameters
@@ -34,7 +34,7 @@ def get_accuracy_score(labels_true: np.ndarray, labels_pred: np.ndarray) -> floa
34
34
  >>> import numpy as np
35
35
  >>> labels_true = np.array([0, 0, 1, 1])
36
36
  >>> labels_pred = np.array([0, 0, 0, 1])
37
- >>> get_accuracy_score(labels_true, labels_pred)
37
+ >>> round(get_accuracy_score(labels_true, labels_pred), 2)
38
38
  0.75
39
39
  """
40
40
  check_vector_format(labels_true, labels_pred)
@@ -105,7 +105,7 @@ def get_f1_score(labels_true: np.ndarray, labels_pred: np.ndarray, return_precis
105
105
  >>> import numpy as np
106
106
  >>> labels_true = np.array([0, 0, 1, 1])
107
107
  >>> labels_pred = np.array([0, 0, 0, 1])
108
- >>> np.round(get_f1_score(labels_true, labels_pred), 2)
108
+ >>> round(get_f1_score(labels_true, labels_pred), 2)
109
109
  0.67
110
110
  """
111
111
  values = set(labels_true[labels_true >= 0]) | set(labels_pred[labels_pred >= 0])
@@ -188,7 +188,7 @@ def get_average_f1_score(labels_true: np.ndarray, labels_pred: np.ndarray, avera
188
188
  >>> import numpy as np
189
189
  >>> labels_true = np.array([0, 0, 1, 1])
190
190
  >>> labels_pred = np.array([0, 0, 0, 1])
191
- >>> np.round(get_average_f1_score(labels_true, labels_pred), 2)
191
+ >>> round(get_average_f1_score(labels_true, labels_pred), 2)
192
192
  0.73
193
193
  """
194
194
  if average == 'micro':
@@ -91,19 +91,20 @@ class Propagation(BaseClassifier):
91
91
  labels = labels[index_seed]
92
92
  return index_seed.astype(np.int32), index_remain.astype(np.int32), labels.astype(np.int32)
93
93
 
94
- def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: Union[np.ndarray, dict] = None,
95
- labels_row: Union[np.ndarray, dict] = None, labels_col: Union[np.ndarray, dict] = None) -> 'Propagation':
94
+ def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: Union[np.ndarray, list, dict] = None,
95
+ labels_row: Union[np.ndarray, list, dict] = None,
96
+ labels_col: Union[np.ndarray, list, dict] = None) -> 'Propagation':
96
97
  """Node classification by label propagation.
97
98
 
98
99
  Parameters
99
100
  ----------
100
101
  input_matrix : sparse.csr_matrix, np.ndarray
101
102
  Adjacency matrix or biadjacency matrix of the graph.
102
- labels : np.ndarray, dict
103
+ labels : array, list or dict
103
104
  Known labels. Negative values ignored.
104
- labels_row : np.ndarray, dict
105
+ labels_row : array, list or dict
105
106
  Known labels of rows, for bipartite graphs.
106
- labels_col : np.ndarray, dict
107
+ labels_col : array, list or dict
107
108
  Known labels of columns, for bipartite graphs.
108
109
 
109
110
  Returns
@@ -76,7 +76,8 @@ class Leiden(Louvain):
76
76
  References
77
77
  ----------
78
78
  * Traag, V. A., Waltman, L., & Van Eck, N. J. (2019).
79
- `From Louvain to Leiden: guaranteeing well-connected communities`, Scientific reports.
79
+ `From Louvain to Leiden: guaranteeing well-connected communities`, Scientific reports.
80
+
80
81
  """
81
82
 
82
83
  def __init__(self, resolution: float = 1, modularity: str = 'dugue', tol_optimization: float = 1e-3,
@@ -131,9 +131,9 @@ class Louvain(BaseClustering, Log):
131
131
  increase :
132
132
  Gain in modularity after optimization.
133
133
  """
134
- labels = labels.astype(np.int32)
135
- indices = adjacency.indices
136
- indptr = adjacency.indptr
134
+ labels = labels.astype(np.int64)
135
+ indices = adjacency.indices.astype(np.int64)
136
+ indptr = adjacency.indptr.astype(np.int64)
137
137
  data = adjacency.data.astype(np.float32)
138
138
  out_weights = out_weights.astype(np.float32)
139
139
  in_weights = in_weights.astype(np.float32)
@@ -4,7 +4,6 @@
4
4
  import unittest
5
5
 
6
6
  from sknetwork.clustering import KCenters
7
- from sknetwork.data import karate_club, painters, star_wars
8
7
  from sknetwork.data.test_graphs import *
9
8
 
10
9
 
@@ -13,7 +12,7 @@ class TestKCentersClustering(unittest.TestCase):
13
12
  def test_kcenters(self):
14
13
  # Test undirected graph
15
14
  n_clusters = 2
16
- adjacency = karate_club()
15
+ adjacency = test_graph()
17
16
  n_row = adjacency.shape[0]
18
17
  kcenters = KCenters(n_clusters=n_clusters)
19
18
  labels = kcenters.fit_predict(adjacency)
@@ -22,7 +21,7 @@ class TestKCentersClustering(unittest.TestCase):
22
21
 
23
22
  # Test directed graph
24
23
  n_clusters = 3
25
- adjacency = painters()
24
+ adjacency = test_digraph()
26
25
  n_row = adjacency.shape[0]
27
26
  kcenters = KCenters(n_clusters=n_clusters, directed=True)
28
27
  labels = kcenters.fit_predict(adjacency)
@@ -31,7 +30,7 @@ class TestKCentersClustering(unittest.TestCase):
31
30
 
32
31
  # Test bipartite graph
33
32
  n_clusters = 2
34
- biadjacency = star_wars()
33
+ biadjacency = test_bigraph()
35
34
  n_row, n_col = biadjacency.shape
36
35
  kcenters = KCenters(n_clusters=n_clusters)
37
36
  kcenters.fit(biadjacency)
@@ -40,41 +39,10 @@ class TestKCentersClustering(unittest.TestCase):
40
39
  self.assertEqual(len(kcenters.labels_col_), n_col)
41
40
  self.assertEqual(len(set(labels)), n_clusters)
42
41
 
43
- def test_kcenters_centers(self):
44
- # Test centers for undirected graphs
45
- n_clusters = 2
46
- adjacency = karate_club()
47
- kcenters = KCenters(n_clusters=n_clusters)
48
- kcenters.fit(adjacency)
49
- centers = kcenters.centers_
50
- self.assertEqual(n_clusters, len(set(centers)))
51
-
52
- # Test centers for bipartite graphs
53
- n_clusters = 2
54
- biadjacency = star_wars()
55
- n_row, n_col = biadjacency.shape
56
- for position in ["row", "col", "both"]:
57
- kcenters = KCenters(n_clusters=n_clusters, center_position=position)
58
- kcenters.fit(biadjacency)
59
- centers_row = kcenters.centers_row_
60
- centers_col = kcenters.centers_col_
61
- if position == "row":
62
- self.assertEqual(n_clusters, len(set(centers_row)))
63
- self.assertTrue(np.all(centers_row < n_row))
64
- self.assertTrue(centers_col is None)
65
- if position == "col":
66
- self.assertEqual(n_clusters, len(set(centers_col)))
67
- self.assertTrue(np.all((centers_col < n_col) & (0 <= centers_col)))
68
- self.assertTrue(centers_row is None)
69
- if position == "both":
70
- self.assertEqual(n_clusters, len(set(centers_row)) + len(set(centers_col)))
71
- self.assertTrue(np.all(centers_row < n_row))
72
- self.assertTrue(np.all((centers_col < n_col) & (0 <= centers_col)))
73
-
74
42
  def test_kcenters_error(self):
75
43
  # Test value errors
76
- adjacency = karate_club()
77
- biadjacency = star_wars()
44
+ adjacency = test_graph()
45
+ biadjacency = test_bigraph()
78
46
 
79
47
  # test n_clusters error
80
48
  kcenters = KCenters(n_clusters=1)
@@ -1,5 +1,5 @@
1
1
  """data module"""
2
- from sknetwork.data.base import Bunch
2
+ from sknetwork.data.base import *
3
3
  from sknetwork.data.load import *
4
4
  from sknetwork.data.models import *
5
5
  from sknetwork.data.parse import from_edge_list, from_adjacency_list, from_csv, from_graphml
sknetwork/data/base.py CHANGED
@@ -6,10 +6,10 @@ Created in May 2023
6
6
  """
7
7
 
8
8
 
9
- class Bunch(dict):
9
+ class Dataset(dict):
10
10
  """Container object for datasets.
11
11
  Dictionary-like object that exposes its keys as attributes.
12
- >>> dataset = Bunch(name='dataset')
12
+ >>> dataset = Dataset(name='dataset')
13
13
  >>> dataset['name']
14
14
  'dataset'
15
15
  >>> dataset.name
@@ -26,3 +26,8 @@ class Bunch(dict):
26
26
  return self[key]
27
27
  except KeyError:
28
28
  raise AttributeError(key)
29
+
30
+
31
+ # alias for Dataset
32
+ Bunch = Dataset
33
+