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.
- {scikit_network-0.32.0.dist-info → scikit_network-0.33.0.dist-info}/AUTHORS.rst +0 -1
- {scikit_network-0.32.0.dist-info → scikit_network-0.33.0.dist-info}/METADATA +16 -4
- {scikit_network-0.32.0.dist-info → scikit_network-0.33.0.dist-info}/RECORD +48 -48
- {scikit_network-0.32.0.dist-info → scikit_network-0.33.0.dist-info}/WHEEL +1 -1
- sknetwork/__init__.py +1 -1
- sknetwork/classification/diffusion.py +4 -3
- sknetwork/classification/knn.py +4 -3
- sknetwork/classification/metrics.py +3 -3
- sknetwork/classification/propagation.py +6 -5
- sknetwork/classification/vote.cpython-310-darwin.so +0 -0
- sknetwork/clustering/leiden.py +2 -1
- sknetwork/clustering/leiden_core.cpython-310-darwin.so +0 -0
- sknetwork/clustering/louvain.py +3 -3
- sknetwork/clustering/louvain_core.cpython-310-darwin.so +0 -0
- sknetwork/clustering/tests/test_kcenters.py +5 -37
- sknetwork/data/__init__.py +1 -1
- sknetwork/data/base.py +7 -2
- sknetwork/data/load.py +18 -21
- sknetwork/data/models.py +15 -15
- sknetwork/data/parse.py +19 -17
- sknetwork/data/tests/test_API.py +3 -3
- sknetwork/data/tests/test_base.py +2 -2
- sknetwork/data/tests/test_toy_graphs.py +33 -33
- sknetwork/data/toy_graphs.py +35 -43
- sknetwork/embedding/base.py +3 -0
- sknetwork/embedding/louvain_embedding.py +0 -26
- sknetwork/embedding/svd.py +0 -4
- sknetwork/embedding/tests/test_louvain_embedding.py +9 -4
- sknetwork/embedding/tests/test_svd.py +6 -0
- sknetwork/gnn/gnn_classifier.py +1 -1
- sknetwork/hierarchy/louvain_hierarchy.py +10 -6
- sknetwork/hierarchy/paris.cpython-310-darwin.so +0 -0
- sknetwork/hierarchy/paris.pyx +4 -3
- sknetwork/hierarchy/tests/test_metrics.py +4 -4
- sknetwork/linalg/diteration.cpython-310-darwin.so +0 -0
- sknetwork/linalg/push.cpython-310-darwin.so +0 -0
- sknetwork/ranking/betweenness.cpython-310-darwin.so +0 -0
- sknetwork/regression/diffusion.py +6 -4
- sknetwork/topology/cliques.cpython-310-darwin.so +0 -0
- sknetwork/topology/core.cpython-310-darwin.so +0 -0
- sknetwork/topology/minheap.cpython-310-darwin.so +0 -0
- sknetwork/topology/triangles.cpython-310-darwin.so +0 -0
- sknetwork/topology/weisfeiler_lehman_core.cpython-310-darwin.so +0 -0
- sknetwork/utils/__init__.py +1 -1
- sknetwork/utils/values.py +5 -3
- sknetwork/visualization/graphs.py +1 -1
- {scikit_network-0.32.0.dist-info → scikit_network-0.33.0.dist-info}/LICENSE +0 -0
- {scikit_network-0.32.0.dist-info → scikit_network-0.33.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: scikit-network
|
|
3
|
-
Version: 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
|
-
|
|
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.
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
19
|
-
sknetwork/classification/vote.cpython-310-darwin.so,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
51
|
-
sknetwork/topology/core.cpython-310-darwin.so,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
100
|
-
sknetwork/hierarchy/paris.cpython-310-darwin.so,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
127
|
-
sknetwork/embedding/base.py,sha256=
|
|
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=
|
|
130
|
-
sknetwork/embedding/tests/test_louvain_embedding.py,sha256=
|
|
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=
|
|
139
|
-
sknetwork/clustering/leiden_core.cpython-310-darwin.so,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
205
|
-
sknetwork/data/toy_graphs.py,sha256=
|
|
206
|
-
sknetwork/data/parse.py,sha256=
|
|
207
|
-
sknetwork/data/load.py,sha256=
|
|
208
|
-
sknetwork/data/base.py,sha256=
|
|
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=
|
|
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=
|
|
215
|
-
sknetwork/data/tests/test_base.py,sha256=
|
|
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
|
sknetwork/__init__.py
CHANGED
|
@@ -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
|
-
>>>
|
|
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,
|
|
78
|
-
|
|
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
|
|
sknetwork/classification/knn.py
CHANGED
|
@@ -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
|
-
>>>
|
|
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,
|
|
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
|
-
>>>
|
|
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
|
-
>>>
|
|
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,
|
|
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 :
|
|
103
|
+
labels : array, list or dict
|
|
103
104
|
Known labels. Negative values ignored.
|
|
104
|
-
labels_row :
|
|
105
|
+
labels_row : array, list or dict
|
|
105
106
|
Known labels of rows, for bipartite graphs.
|
|
106
|
-
labels_col :
|
|
107
|
+
labels_col : array, list or dict
|
|
107
108
|
Known labels of columns, for bipartite graphs.
|
|
108
109
|
|
|
109
110
|
Returns
|
|
Binary file
|
sknetwork/clustering/leiden.py
CHANGED
|
@@ -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
|
-
|
|
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,
|
|
Binary file
|
sknetwork/clustering/louvain.py
CHANGED
|
@@ -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.
|
|
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)
|
|
Binary file
|
|
@@ -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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
77
|
-
biadjacency =
|
|
44
|
+
adjacency = test_graph()
|
|
45
|
+
biadjacency = test_bigraph()
|
|
78
46
|
|
|
79
47
|
# test n_clusters error
|
|
80
48
|
kcenters = KCenters(n_clusters=1)
|
sknetwork/data/__init__.py
CHANGED
sknetwork/data/base.py
CHANGED
|
@@ -6,10 +6,10 @@ Created in May 2023
|
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
class
|
|
9
|
+
class Dataset(dict):
|
|
10
10
|
"""Container object for datasets.
|
|
11
11
|
Dictionary-like object that exposes its keys as attributes.
|
|
12
|
-
>>> 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
|
+
|