scikit-network 0.33.0__cp312-cp312-macosx_10_9_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.
- scikit_network-0.33.0.dist-info/AUTHORS.rst +43 -0
- scikit_network-0.33.0.dist-info/LICENSE +34 -0
- scikit_network-0.33.0.dist-info/METADATA +517 -0
- scikit_network-0.33.0.dist-info/RECORD +216 -0
- scikit_network-0.33.0.dist-info/WHEEL +5 -0
- scikit_network-0.33.0.dist-info/top_level.txt +1 -0
- sknetwork/__init__.py +21 -0
- sknetwork/base.py +67 -0
- sknetwork/classification/__init__.py +8 -0
- sknetwork/classification/base.py +142 -0
- sknetwork/classification/base_rank.py +133 -0
- sknetwork/classification/diffusion.py +134 -0
- sknetwork/classification/knn.py +139 -0
- sknetwork/classification/metrics.py +205 -0
- sknetwork/classification/pagerank.py +66 -0
- sknetwork/classification/propagation.py +152 -0
- sknetwork/classification/tests/__init__.py +1 -0
- sknetwork/classification/tests/test_API.py +30 -0
- sknetwork/classification/tests/test_diffusion.py +77 -0
- sknetwork/classification/tests/test_knn.py +23 -0
- sknetwork/classification/tests/test_metrics.py +53 -0
- sknetwork/classification/tests/test_pagerank.py +20 -0
- sknetwork/classification/tests/test_propagation.py +24 -0
- sknetwork/classification/vote.cpython-312-darwin.so +0 -0
- sknetwork/classification/vote.pyx +56 -0
- sknetwork/clustering/__init__.py +8 -0
- sknetwork/clustering/base.py +172 -0
- sknetwork/clustering/kcenters.py +253 -0
- sknetwork/clustering/leiden.py +242 -0
- sknetwork/clustering/leiden_core.cpython-312-darwin.so +0 -0
- sknetwork/clustering/leiden_core.pyx +124 -0
- sknetwork/clustering/louvain.py +286 -0
- sknetwork/clustering/louvain_core.cpython-312-darwin.so +0 -0
- sknetwork/clustering/louvain_core.pyx +124 -0
- sknetwork/clustering/metrics.py +91 -0
- sknetwork/clustering/postprocess.py +66 -0
- sknetwork/clustering/propagation_clustering.py +104 -0
- sknetwork/clustering/tests/__init__.py +1 -0
- sknetwork/clustering/tests/test_API.py +38 -0
- sknetwork/clustering/tests/test_kcenters.py +60 -0
- sknetwork/clustering/tests/test_leiden.py +34 -0
- sknetwork/clustering/tests/test_louvain.py +129 -0
- sknetwork/clustering/tests/test_metrics.py +50 -0
- sknetwork/clustering/tests/test_postprocess.py +39 -0
- sknetwork/data/__init__.py +6 -0
- sknetwork/data/base.py +33 -0
- sknetwork/data/load.py +406 -0
- sknetwork/data/models.py +459 -0
- sknetwork/data/parse.py +644 -0
- sknetwork/data/test_graphs.py +84 -0
- sknetwork/data/tests/__init__.py +1 -0
- sknetwork/data/tests/test_API.py +30 -0
- sknetwork/data/tests/test_base.py +14 -0
- sknetwork/data/tests/test_load.py +95 -0
- sknetwork/data/tests/test_models.py +52 -0
- sknetwork/data/tests/test_parse.py +250 -0
- sknetwork/data/tests/test_test_graphs.py +29 -0
- sknetwork/data/tests/test_toy_graphs.py +68 -0
- sknetwork/data/timeout.py +38 -0
- sknetwork/data/toy_graphs.py +611 -0
- sknetwork/embedding/__init__.py +8 -0
- sknetwork/embedding/base.py +94 -0
- sknetwork/embedding/force_atlas.py +198 -0
- sknetwork/embedding/louvain_embedding.py +148 -0
- sknetwork/embedding/random_projection.py +135 -0
- sknetwork/embedding/spectral.py +141 -0
- sknetwork/embedding/spring.py +198 -0
- sknetwork/embedding/svd.py +359 -0
- sknetwork/embedding/tests/__init__.py +1 -0
- sknetwork/embedding/tests/test_API.py +49 -0
- sknetwork/embedding/tests/test_force_atlas.py +35 -0
- sknetwork/embedding/tests/test_louvain_embedding.py +33 -0
- sknetwork/embedding/tests/test_random_projection.py +28 -0
- sknetwork/embedding/tests/test_spectral.py +81 -0
- sknetwork/embedding/tests/test_spring.py +50 -0
- sknetwork/embedding/tests/test_svd.py +43 -0
- sknetwork/gnn/__init__.py +10 -0
- sknetwork/gnn/activation.py +117 -0
- sknetwork/gnn/base.py +181 -0
- sknetwork/gnn/base_activation.py +89 -0
- sknetwork/gnn/base_layer.py +109 -0
- sknetwork/gnn/gnn_classifier.py +305 -0
- sknetwork/gnn/layer.py +153 -0
- sknetwork/gnn/loss.py +180 -0
- sknetwork/gnn/neighbor_sampler.py +65 -0
- sknetwork/gnn/optimizer.py +164 -0
- sknetwork/gnn/tests/__init__.py +1 -0
- sknetwork/gnn/tests/test_activation.py +56 -0
- sknetwork/gnn/tests/test_base.py +75 -0
- sknetwork/gnn/tests/test_base_layer.py +37 -0
- sknetwork/gnn/tests/test_gnn_classifier.py +130 -0
- sknetwork/gnn/tests/test_layers.py +80 -0
- sknetwork/gnn/tests/test_loss.py +33 -0
- sknetwork/gnn/tests/test_neigh_sampler.py +23 -0
- sknetwork/gnn/tests/test_optimizer.py +43 -0
- sknetwork/gnn/tests/test_utils.py +41 -0
- sknetwork/gnn/utils.py +127 -0
- sknetwork/hierarchy/__init__.py +6 -0
- sknetwork/hierarchy/base.py +96 -0
- sknetwork/hierarchy/louvain_hierarchy.py +272 -0
- sknetwork/hierarchy/metrics.py +234 -0
- sknetwork/hierarchy/paris.cpython-312-darwin.so +0 -0
- sknetwork/hierarchy/paris.pyx +316 -0
- sknetwork/hierarchy/postprocess.py +350 -0
- sknetwork/hierarchy/tests/__init__.py +1 -0
- sknetwork/hierarchy/tests/test_API.py +24 -0
- sknetwork/hierarchy/tests/test_algos.py +34 -0
- sknetwork/hierarchy/tests/test_metrics.py +62 -0
- sknetwork/hierarchy/tests/test_postprocess.py +57 -0
- sknetwork/linalg/__init__.py +9 -0
- sknetwork/linalg/basics.py +37 -0
- sknetwork/linalg/diteration.cpython-312-darwin.so +0 -0
- sknetwork/linalg/diteration.pyx +47 -0
- sknetwork/linalg/eig_solver.py +93 -0
- sknetwork/linalg/laplacian.py +15 -0
- sknetwork/linalg/normalizer.py +86 -0
- sknetwork/linalg/operators.py +225 -0
- sknetwork/linalg/polynome.py +76 -0
- sknetwork/linalg/ppr_solver.py +170 -0
- sknetwork/linalg/push.cpython-312-darwin.so +0 -0
- sknetwork/linalg/push.pyx +71 -0
- sknetwork/linalg/sparse_lowrank.py +142 -0
- sknetwork/linalg/svd_solver.py +91 -0
- sknetwork/linalg/tests/__init__.py +1 -0
- sknetwork/linalg/tests/test_eig.py +44 -0
- sknetwork/linalg/tests/test_laplacian.py +18 -0
- sknetwork/linalg/tests/test_normalization.py +34 -0
- sknetwork/linalg/tests/test_operators.py +66 -0
- sknetwork/linalg/tests/test_polynome.py +38 -0
- sknetwork/linalg/tests/test_ppr.py +50 -0
- sknetwork/linalg/tests/test_sparse_lowrank.py +61 -0
- sknetwork/linalg/tests/test_svd.py +38 -0
- sknetwork/linkpred/__init__.py +2 -0
- sknetwork/linkpred/base.py +46 -0
- sknetwork/linkpred/nn.py +126 -0
- sknetwork/linkpred/tests/__init__.py +1 -0
- sknetwork/linkpred/tests/test_nn.py +27 -0
- sknetwork/log.py +19 -0
- sknetwork/path/__init__.py +5 -0
- sknetwork/path/dag.py +54 -0
- sknetwork/path/distances.py +98 -0
- sknetwork/path/search.py +31 -0
- sknetwork/path/shortest_path.py +61 -0
- sknetwork/path/tests/__init__.py +1 -0
- sknetwork/path/tests/test_dag.py +37 -0
- sknetwork/path/tests/test_distances.py +62 -0
- sknetwork/path/tests/test_search.py +40 -0
- sknetwork/path/tests/test_shortest_path.py +40 -0
- sknetwork/ranking/__init__.py +8 -0
- sknetwork/ranking/base.py +61 -0
- sknetwork/ranking/betweenness.cpython-312-darwin.so +0 -0
- sknetwork/ranking/betweenness.pyx +97 -0
- sknetwork/ranking/closeness.py +92 -0
- sknetwork/ranking/hits.py +94 -0
- sknetwork/ranking/katz.py +83 -0
- sknetwork/ranking/pagerank.py +110 -0
- sknetwork/ranking/postprocess.py +37 -0
- sknetwork/ranking/tests/__init__.py +1 -0
- sknetwork/ranking/tests/test_API.py +32 -0
- sknetwork/ranking/tests/test_betweenness.py +38 -0
- sknetwork/ranking/tests/test_closeness.py +30 -0
- sknetwork/ranking/tests/test_hits.py +20 -0
- sknetwork/ranking/tests/test_pagerank.py +62 -0
- sknetwork/ranking/tests/test_postprocess.py +26 -0
- sknetwork/regression/__init__.py +4 -0
- sknetwork/regression/base.py +61 -0
- sknetwork/regression/diffusion.py +210 -0
- sknetwork/regression/tests/__init__.py +1 -0
- sknetwork/regression/tests/test_API.py +32 -0
- sknetwork/regression/tests/test_diffusion.py +56 -0
- sknetwork/sknetwork.py +3 -0
- sknetwork/test_base.py +35 -0
- sknetwork/test_log.py +15 -0
- sknetwork/topology/__init__.py +8 -0
- sknetwork/topology/cliques.cpython-312-darwin.so +0 -0
- sknetwork/topology/cliques.pyx +149 -0
- sknetwork/topology/core.cpython-312-darwin.so +0 -0
- sknetwork/topology/core.pyx +90 -0
- sknetwork/topology/cycles.py +243 -0
- sknetwork/topology/minheap.cpython-312-darwin.so +0 -0
- sknetwork/topology/minheap.pxd +20 -0
- sknetwork/topology/minheap.pyx +109 -0
- sknetwork/topology/structure.py +194 -0
- sknetwork/topology/tests/__init__.py +1 -0
- sknetwork/topology/tests/test_cliques.py +28 -0
- sknetwork/topology/tests/test_core.py +19 -0
- sknetwork/topology/tests/test_cycles.py +65 -0
- sknetwork/topology/tests/test_structure.py +85 -0
- sknetwork/topology/tests/test_triangles.py +38 -0
- sknetwork/topology/tests/test_wl.py +72 -0
- sknetwork/topology/triangles.cpython-312-darwin.so +0 -0
- sknetwork/topology/triangles.pyx +151 -0
- sknetwork/topology/weisfeiler_lehman.py +133 -0
- sknetwork/topology/weisfeiler_lehman_core.cpython-312-darwin.so +0 -0
- sknetwork/topology/weisfeiler_lehman_core.pyx +114 -0
- sknetwork/utils/__init__.py +7 -0
- sknetwork/utils/check.py +355 -0
- sknetwork/utils/format.py +221 -0
- sknetwork/utils/membership.py +82 -0
- sknetwork/utils/neighbors.py +115 -0
- sknetwork/utils/tests/__init__.py +1 -0
- sknetwork/utils/tests/test_check.py +190 -0
- sknetwork/utils/tests/test_format.py +63 -0
- sknetwork/utils/tests/test_membership.py +24 -0
- sknetwork/utils/tests/test_neighbors.py +41 -0
- sknetwork/utils/tests/test_tfidf.py +18 -0
- sknetwork/utils/tests/test_values.py +66 -0
- sknetwork/utils/tfidf.py +37 -0
- sknetwork/utils/values.py +76 -0
- sknetwork/visualization/__init__.py +4 -0
- sknetwork/visualization/colors.py +34 -0
- sknetwork/visualization/dendrograms.py +277 -0
- sknetwork/visualization/graphs.py +1039 -0
- sknetwork/visualization/tests/__init__.py +1 -0
- sknetwork/visualization/tests/test_dendrograms.py +53 -0
- sknetwork/visualization/tests/test_graphs.py +176 -0
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
sknetwork/log.py,sha256=ORInAVh_cWIfxwaFWSblSRxwT-jG05XPRnYTTAHSKy4,443
|
|
2
|
+
sknetwork/__init__.py,sha256=SZAI5otUFjW-KNf_HNvDY7g_mjFAcPTNg5SIcBjU4WM,533
|
|
3
|
+
sknetwork/test_log.py,sha256=V4t6Ggi_fh8px5Iq7CDLlJvbXfz24macQ43Ss0tPb5I,319
|
|
4
|
+
sknetwork/test_base.py,sha256=PB_kJ7cNvhBXmlL-KzyLu2hf6mG7b1OQY759aYplW4k,912
|
|
5
|
+
sknetwork/sknetwork.py,sha256=VYoI-gwqwBKPx84cA0KnYDRofrgIXs8xtASD2nu5fE0,44
|
|
6
|
+
sknetwork/base.py,sha256=XJJ6MicVcSiQBWQ9fYlmUJYkXq0PRldQzExhZKuaFBo,1951
|
|
7
|
+
sknetwork/classification/metrics.py,sha256=aaIfYddIAJsGXpXJ6TGcQScjzyJOo8kiWgcIE1kefSM,6806
|
|
8
|
+
sknetwork/classification/vote.pyx,sha256=Bbf74XCPH8uYDP-SrXRaA7k6Ax2x-wDzpbHMeg9le7A,1584
|
|
9
|
+
sknetwork/classification/diffusion.py,sha256=h4l43kA_MR_hMthc5mqW__5jTkQq9Ne9Q_H8bLPhM6Q,5564
|
|
10
|
+
sknetwork/classification/vote.cpython-312-darwin.so,sha256=0CAx2M_AHsM6a-PCHw0SWxpLSDIgjsBqmNXXioTotsA,213248
|
|
11
|
+
sknetwork/classification/__init__.py,sha256=yVv7wSuUfNLxeNBF-AhWCJys3C-XatPtMzi1wyp9Bz4,475
|
|
12
|
+
sknetwork/classification/base_rank.py,sha256=RGElYD6PuP4nhnenNnzpOiBojs49Afg5ahjBFEi566I,4522
|
|
13
|
+
sknetwork/classification/propagation.py,sha256=0Cb1-mIMcPoes5oXR7BqhqEmlFMEMcTOMy_BNjX0lvY,5793
|
|
14
|
+
sknetwork/classification/pagerank.py,sha256=CBUeCqZisr6s5lh3VXYWA6rbiPdLyNzuSMbjazy80eA,2586
|
|
15
|
+
sknetwork/classification/base.py,sha256=WS-QHh4553Dr1VwJqjggSqO6hHFIAs50oPah_L23eFo,4290
|
|
16
|
+
sknetwork/classification/knn.py,sha256=fLRZF2jhHq105QHMeW328JcF71wTaGP-ukmbJdyiw44,5333
|
|
17
|
+
sknetwork/classification/tests/test_metrics.py,sha256=eBs-5uAEz2s8gukMyfhQ07GSFoyvxtsslLuc6VgUxBU,2303
|
|
18
|
+
sknetwork/classification/tests/__init__.py,sha256=sy9uRiPhYG2i7uqM3P07-VUf4UcZEHeOoH9BvKCpU3s,31
|
|
19
|
+
sknetwork/classification/tests/test_pagerank.py,sha256=5IJpYqnz31cWT0iXjTdo1xE8Kfj3YTK0cSZnnTlyJBs,620
|
|
20
|
+
sknetwork/classification/tests/test_diffusion.py,sha256=tp9qNYBcaI9T1HCC6bqMpG_-eM-na-fGNeGDzMZTu2A,3183
|
|
21
|
+
sknetwork/classification/tests/test_knn.py,sha256=sl5kxsaca3GUTvfdx6B9BRJ1SAdoDvxFOg9VyoA20IU,784
|
|
22
|
+
sknetwork/classification/tests/test_API.py,sha256=FA1d0NQz3vaNVVeFbhEljPe0fD_ryRwVP4G1hdv-u_s,1124
|
|
23
|
+
sknetwork/classification/tests/test_propagation.py,sha256=m0Jyq59k3taoikyBxcZGILzG7dWQV3SGE45MPm0RPao,850
|
|
24
|
+
sknetwork/visualization/dendrograms.py,sha256=m4FbBfvJUW_gXccZWF8OWxAsbhsEcKa1fXNNCp_y4MA,9901
|
|
25
|
+
sknetwork/visualization/__init__.py,sha256=8rLiR13WHSWLsEVTTL6lzOZms0LZf-ZujBqOI5VnKxk,216
|
|
26
|
+
sknetwork/visualization/graphs.py,sha256=kxFjEbg5b_bHpapLyf1L01CIwzxpWE6KLtS_ji2yZyY,41176
|
|
27
|
+
sknetwork/visualization/colors.py,sha256=DjcXt9aMgLan7bRg7TZI8m_8SLWQOZ-g2HoguB1-3qA,2509
|
|
28
|
+
sknetwork/visualization/tests/test_graphs.py,sha256=g2YPJn9m8wD-UHZ_BL37xuJqE7ygOx3EztKLVVqphYk,9421
|
|
29
|
+
sknetwork/visualization/tests/__init__.py,sha256=yOVrqUD9UuI_HdYuqRP5PS7QhS-pO4RE_Ls5PLiIC_w,30
|
|
30
|
+
sknetwork/visualization/tests/test_dendrograms.py,sha256=UuS3VZ5XnV1u5BtW-QKbFv0wavllQpbgtsOIe5XvTlg,2466
|
|
31
|
+
sknetwork/topology/triangles.cpython-312-darwin.so,sha256=ahxflmLQSa2OBZMPf17H23i2aYk3UfFJ4mXgI7sOmwk,89272
|
|
32
|
+
sknetwork/topology/weisfeiler_lehman_core.cpython-312-darwin.so,sha256=MxFK7U8sGIpOPZ7ci95MnIy9onXjGguO6cdXdOm4h6M,214336
|
|
33
|
+
sknetwork/topology/cliques.pyx,sha256=BuezL9-zJOicL1zffkpcf8uIEgqhik6dgK_agXX4gaU,4510
|
|
34
|
+
sknetwork/topology/cliques.cpython-312-darwin.so,sha256=mHPZo1EAfLYfrim4AHPSvek-AVTjWn1lVIlwjG3ZK2Q,250392
|
|
35
|
+
sknetwork/topology/minheap.pyx,sha256=iFWpXPYSAmWjYphYByAM6auUj1XHly6QovZvuy2Lpyc,3310
|
|
36
|
+
sknetwork/topology/weisfeiler_lehman_core.pyx,sha256=fi0rRrXHVZuIQYzPDcPCamCRQLKquchjV3N9dNuQ1Pk,3034
|
|
37
|
+
sknetwork/topology/core.cpython-312-darwin.so,sha256=Wz2I0lh3Ylf1DxTyPSfl7tNiEfKZC1Yd2z0dQT8GHEU,210752
|
|
38
|
+
sknetwork/topology/__init__.py,sha256=T2W2cWwcUdhfA86VuZAZqksbrgct4hiyp0HuizEnLg4,534
|
|
39
|
+
sknetwork/topology/cycles.py,sha256=EV2UMDktEGdJxEmAZyyjBMttJ6DqYvvfZ6mqwIQqFu0,9003
|
|
40
|
+
sknetwork/topology/weisfeiler_lehman.py,sha256=ACJDAmZbwDrZAvO-LsHnRaef-8KX7esM1LxVUglXtLw,4308
|
|
41
|
+
sknetwork/topology/minheap.cpython-312-darwin.so,sha256=HCZePDQpepWrboJaNW5TrsREYlKDuzIOe6GJqxxIw8g,196176
|
|
42
|
+
sknetwork/topology/minheap.pxd,sha256=Y_oRh8H-sNZYAWv0XM9T-ZLzYBhb5TrBM4VjlH-ZqPQ,564
|
|
43
|
+
sknetwork/topology/structure.py,sha256=CDfN7SL70wTHm2HPfqd7ncsZEaV1SQO3tJKYl1CdtNI,7285
|
|
44
|
+
sknetwork/topology/triangles.pyx,sha256=JOkA9k0CQTsT7zdPaEoW7-PdHYuoXHsB0XSuPKFLJSI,4349
|
|
45
|
+
sknetwork/topology/core.pyx,sha256=HwGbC84p9F9fkEw8ouNNMQtlYrAoEWhQS5hU9Cf1h94,2465
|
|
46
|
+
sknetwork/topology/tests/test_cycles.py,sha256=KZzMKS5ILfC_J0Fj5MFlEOL7Z9nOnlRfo4TnGdXEPWY,3150
|
|
47
|
+
sknetwork/topology/tests/test_structure.py,sha256=CzcZ1LxV-mI_buxz6LcTeCy3h5ofMLfOu2HUHwNSMi8,3948
|
|
48
|
+
sknetwork/topology/tests/test_wl.py,sha256=EJY_4xTi_-qzFsqZJkgnwLteoakdkpRAczzdMCGeXe0,2218
|
|
49
|
+
sknetwork/topology/tests/test_core.py,sha256=Zh9IYHGfqDqIlLycucLzqZbHvYmU-IB-J03-jlikPcI,551
|
|
50
|
+
sknetwork/topology/tests/__init__.py,sha256=9lKrPX4BnSJbK-VlDi9TsmAgDwqF3H423KhJ1u1Uaos,25
|
|
51
|
+
sknetwork/topology/tests/test_triangles.py,sha256=9g3nml3TNOiIFHLJDih5PTxWunDJemmpLQy2tmoQw4Y,1275
|
|
52
|
+
sknetwork/topology/tests/test_cliques.py,sha256=t97pKDMxT9RC-_YsgY-c8tQxrekyAE6i2_guvxAYHhQ,838
|
|
53
|
+
sknetwork/ranking/betweenness.cpython-312-darwin.so,sha256=rp0jLY8PvYefeASANzUMvLvPp-xgT9ko3ddQlv7Orlc,110368
|
|
54
|
+
sknetwork/ranking/postprocess.py,sha256=-3wqBPvTM7jDdfTytINEXxM2eugJjbCZRLiLy9pkmac,919
|
|
55
|
+
sknetwork/ranking/__init__.py,sha256=UeYw8y0HFoBnPziqnVYXSt8jqFtkDgkCCMPhYTEIaF0,348
|
|
56
|
+
sknetwork/ranking/closeness.py,sha256=pETMD8uaXfADZhmzVaH4YIGX57S2vvhzVInONaAwBUM,2840
|
|
57
|
+
sknetwork/ranking/katz.py,sha256=uPyXkEL73_6MS4dP5XTSVSIrD5h5QJipVTVEa0L_y48,2535
|
|
58
|
+
sknetwork/ranking/hits.py,sha256=L39a9Ze3ITUbikmNhA_Lx-V5s_RQr0XnNkOsIgG8m98,2761
|
|
59
|
+
sknetwork/ranking/pagerank.py,sha256=Qt2SOUoLO76JVDnT4-x-b-hah9IlaHECsYNu45AnpY8,4749
|
|
60
|
+
sknetwork/ranking/base.py,sha256=Jo9LBK3TfXiYdxYqSmfeVC8O2D6fA5L-SRzQh3eqtnA,1512
|
|
61
|
+
sknetwork/ranking/betweenness.pyx,sha256=Pq9EqOHV0P8TDN_w9siP3h8HyechaAErysNwz0JT0ow,3087
|
|
62
|
+
sknetwork/ranking/tests/test_postprocess.py,sha256=jPLJKJYEltFpY2uct0JyJEkD1haOyNU8h_1KwiLMgZM,703
|
|
63
|
+
sknetwork/ranking/tests/test_closeness.py,sha256=ttBC8L_J1YDLCWhTIPhSFxu8jWuOWl_vupHFFaA_NP8,823
|
|
64
|
+
sknetwork/ranking/tests/__init__.py,sha256=ZVL3kCN-qV5ThJU58iaMvJKSIkZ7ke7liLtLwI4TCHY,24
|
|
65
|
+
sknetwork/ranking/tests/test_pagerank.py,sha256=5WHev0-d5nTOg6AEzIZyCmWSieTO3YNLNO2kB6RTYWE,2243
|
|
66
|
+
sknetwork/ranking/tests/test_API.py,sha256=PZ4Q5X1WT1HSAojZX72fUm4o9Y0PwocewJEoC1pfgMo,1003
|
|
67
|
+
sknetwork/ranking/tests/test_betweenness.py,sha256=8XA1ycLQQ7-Cm3CBfkcSDQOvD6xagAIP1--mPe9VFzo,1135
|
|
68
|
+
sknetwork/ranking/tests/test_hits.py,sha256=zStzrWZ-pv2Nsd-pB282FgW3KAn1TyKjz_l85tJaPJ0,491
|
|
69
|
+
sknetwork/linalg/diteration.pyx,sha256=gk9W6SwIxXgmjQujXWBUIoM_OwevjE3jTzFrIEkGnWI,1384
|
|
70
|
+
sknetwork/linalg/__init__.py,sha256=awBDY2wWiO40L5eED3H8K1BM8qtHz7aQRv1p3PcSK94,533
|
|
71
|
+
sknetwork/linalg/push.cpython-312-darwin.so,sha256=JBwOFZ-w1k-4O8gplep2yTfwFm7fuNc-RT_ahQrhpm8,229560
|
|
72
|
+
sknetwork/linalg/laplacian.py,sha256=_gQr8YLqMUtK_IMNgvJoQX7-uODVlvCVmc-oTsgw7MA,401
|
|
73
|
+
sknetwork/linalg/eig_solver.py,sha256=yq_prP5p1jbALby69wkzzH0vYKc1btmRQoiVUtTh-eA,2700
|
|
74
|
+
sknetwork/linalg/push.pyx,sha256=caxCZa5h9zsHhxJgDBaaetqpB0wUbFLdOUwHwj0q_t0,2358
|
|
75
|
+
sknetwork/linalg/ppr_solver.py,sha256=mQkCnik-vvv_oFa9n1vtMzxgvi78qW-QQONdcmC9CXA,6533
|
|
76
|
+
sknetwork/linalg/sparse_lowrank.py,sha256=LUhbqa01p51SYhoIb2Dmx2b9fMc-iOu69CAVHscR2Xs,5028
|
|
77
|
+
sknetwork/linalg/basics.py,sha256=8AFph_1G5SZP_24jrIv6qIWooO0UMglL4jMgx3ZdYIQ,1142
|
|
78
|
+
sknetwork/linalg/normalizer.py,sha256=kOFDPPdiGqG-KcWNiRwbS_y_nmw5fTKYTvuj_x8yBd0,2473
|
|
79
|
+
sknetwork/linalg/operators.py,sha256=fxitao4UYW4Hq7B258T_cAq2H3R2FN1-mwdy138w8fE,7432
|
|
80
|
+
sknetwork/linalg/polynome.py,sha256=_dP9Nu_6XCV0-WEQJ7E5nG6pxZWMtbj-LREu0vtxeWk,2125
|
|
81
|
+
sknetwork/linalg/diteration.cpython-312-darwin.so,sha256=QFyHoJPBuHTY2ChvWBiqTQaETBhVz2e1RFQqnnZaIy8,193056
|
|
82
|
+
sknetwork/linalg/svd_solver.py,sha256=vhcXwCsOar0cYDPZo7IF_ulRDsGGvZzePIeSpSCVgLk,2681
|
|
83
|
+
sknetwork/linalg/tests/test_svd.py,sha256=eLRmSiHt8uWzknImZtRSZmJC8OX0YDgUt9-8PePc3OA,1285
|
|
84
|
+
sknetwork/linalg/tests/test_operators.py,sha256=l_pBF7JZhjUSNfTReDX-lN2nA7HU7mkz7dznJ8I6lrY,2919
|
|
85
|
+
sknetwork/linalg/tests/__init__.py,sha256=l6yw2Ls1ndhVVcSYc059kAjQ2-VoDGZXxnBaglFZ4zo,23
|
|
86
|
+
sknetwork/linalg/tests/test_sparse_lowrank.py,sha256=LEDo6DChembm3xQ-vjeqqZi0ugWx7piucR9_LdDecrI,2276
|
|
87
|
+
sknetwork/linalg/tests/test_polynome.py,sha256=VYru9RlUIIN6dKNOiitSElPQqIxWI7mqx3dR5zd9Nv0,977
|
|
88
|
+
sknetwork/linalg/tests/test_ppr.py,sha256=Bh1n7W3We2N8u1RIWPyE5QQGE7esnNoUOLLRCL8Zye4,2093
|
|
89
|
+
sknetwork/linalg/tests/test_laplacian.py,sha256=B6UhJOmYUdNlXwNoxLLtb--nv9mx96Orl-W1Vl6PLyM,434
|
|
90
|
+
sknetwork/linalg/tests/test_eig.py,sha256=lUAgo4UfWuuSG5DhSk5SIT7ToLDgPG-5JCgmOe_M7Vw,1504
|
|
91
|
+
sknetwork/linalg/tests/test_normalization.py,sha256=nASuMYxKcsWj3gk9DF5uPKYOw93oJ-UQUWi99Fw3kmE,887
|
|
92
|
+
sknetwork/hierarchy/metrics.py,sha256=_wYGKx_VDE_sfbg-uUEFMhOjSLFqzC8rFHjJo1hdVL8,8046
|
|
93
|
+
sknetwork/hierarchy/paris.pyx,sha256=DX8p3LOtrNxyQ8pOZZE_Q2b5rBKjYwKArsmMZbvb0xY,11813
|
|
94
|
+
sknetwork/hierarchy/postprocess.py,sha256=d1Fll3eqDIjiMf1c5nGuKF6I0fN93elnglkp59LARGU,12072
|
|
95
|
+
sknetwork/hierarchy/__init__.py,sha256=YgE2eqnwS8Q2NWP9pNY-M1bpdxRn5-C-CdykydNW7iM,412
|
|
96
|
+
sknetwork/hierarchy/louvain_hierarchy.py,sha256=PhetHYpmsnI7yC-rbYAUXhNiBV9QNKMDbrfz9l0fskc,9846
|
|
97
|
+
sknetwork/hierarchy/paris.cpython-312-darwin.so,sha256=G44oQQ_Xps38FyMlzz91w2SdtHO7e0UkgmfvfHqcmQs,293360
|
|
98
|
+
sknetwork/hierarchy/base.py,sha256=MoxBiSsEJOq77YmXj_bpf4vUiPLSpQn8fnUX7YIqyd8,2693
|
|
99
|
+
sknetwork/hierarchy/tests/test_postprocess.py,sha256=OSrWE0gT0AcPI4LKmUL-Blfg5ErxnjS3d4rPNnA63_Y,2209
|
|
100
|
+
sknetwork/hierarchy/tests/test_metrics.py,sha256=IHlsdJXeHqPU8_SBm4eIXua5ZhyRIAUH4cAtVNNR7Ng,3160
|
|
101
|
+
sknetwork/hierarchy/tests/__init__.py,sha256=l2HHDiDLpoTQlwzh1mtCyp6bS8RxBdJK2DP1FGiQJMY,26
|
|
102
|
+
sknetwork/hierarchy/tests/test_algos.py,sha256=xMt2xzAYEm6MuK-8OKOqBwZS89aJspX2tr7T6QMHz6E,1361
|
|
103
|
+
sknetwork/hierarchy/tests/test_API.py,sha256=tLF-jLsfM2OFqbyVHK1o9jXVW_1PbTkMcxkAXuGjMO8,720
|
|
104
|
+
sknetwork/path/distances.py,sha256=8NJeL14UpGudTFCgQJaNDOXs2-aSHLCl5LHXexF_xuQ,3568
|
|
105
|
+
sknetwork/path/dag.py,sha256=Se5LSgQi-RwA-nXbJ1l_upjKw_MNIckeT_dh3TYWl6w,1668
|
|
106
|
+
sknetwork/path/shortest_path.py,sha256=_trQS__X71HQOOBXu0QTlzfOgb2ydoy-KooIKjIkpvs,2450
|
|
107
|
+
sknetwork/path/__init__.py,sha256=OQ7dWwlncIIsPo5kQu2akUhk_m73vQuF17LaH0siqo4,222
|
|
108
|
+
sknetwork/path/search.py,sha256=__63FqXFqhNTSyTGYj4yYx8ZDoew0_uCHHWhJlrIRoA,776
|
|
109
|
+
sknetwork/path/tests/test_dag.py,sha256=EYyghTXbHRr1Ia-8KoXoyumIFD_6q6bZx5DDcaa-ODQ,938
|
|
110
|
+
sknetwork/path/tests/test_search.py,sha256=mStK4ZiN1hVdZr8Q9R78AFBouuA9RIhnQ4nwGrfCjCY,1199
|
|
111
|
+
sknetwork/path/tests/test_shortest_path.py,sha256=Uwq4CzzjnMV6VsTlzgKnn_GwqUr2Cc0kZTgFtv_UisQ,1382
|
|
112
|
+
sknetwork/path/tests/__init__.py,sha256=_COAjci7RJ_XtBDGwy5aOgZ9dPSQH3j7d6qMlLHs55o,28
|
|
113
|
+
sknetwork/path/tests/test_distances.py,sha256=zItygI9cLMrQonLhOubvorElU5qaZumFfjMethx4rDw,2695
|
|
114
|
+
sknetwork/embedding/random_projection.py,sha256=NuJoPHYLjdb8dUdKOwGr7Q6lGZBSPbwmMuuY6CRzgoI,5002
|
|
115
|
+
sknetwork/embedding/__init__.py,sha256=ASeieiOc46EuKMUArW3kt_WJbsLxUzz0BVYycmag5Pw,410
|
|
116
|
+
sknetwork/embedding/svd.py,sha256=fK84a57Js4Hvh9Rtz2FDFA7eKhLThUO256e8xdIkJm4,14642
|
|
117
|
+
sknetwork/embedding/force_atlas.py,sha256=amYr0E08F8TDoIxjPx3lx35JFwEP41jc4KKed1PQeZs,7452
|
|
118
|
+
sknetwork/embedding/spring.py,sha256=5fyHQzmIp8gY9DdI-DFvMc37mjMb64bs22ZZZ9YFDXM,7151
|
|
119
|
+
sknetwork/embedding/spectral.py,sha256=ds91hH6JFBsfLcTS8QEz-gP5tZUcrrGqjfnL-xMIdU0,5548
|
|
120
|
+
sknetwork/embedding/louvain_embedding.py,sha256=Q51zN2yNVeUrwfF98nnozpSaB_vUSVUi4pi9KwNkUOA,6082
|
|
121
|
+
sknetwork/embedding/base.py,sha256=zIaj7TdsRzBXYdl3MCuiDf4ShV6T8sAtm22IzGajho4,2663
|
|
122
|
+
sknetwork/embedding/tests/test_spring.py,sha256=tanArc4vstNZ36CLr7S8uEVdXX0iP2K9UWKQLTcsPsQ,1643
|
|
123
|
+
sknetwork/embedding/tests/test_svd.py,sha256=xkfgHiQCDTRp8seWCdBvQFGwONoM6VYn6g9xp3FJIOs,1463
|
|
124
|
+
sknetwork/embedding/tests/test_louvain_embedding.py,sha256=XXz_2Jul1Rv3sILYFz4HLy2OWRsdZWRWWRnVBxOU68o,1116
|
|
125
|
+
sknetwork/embedding/tests/__init__.py,sha256=QkDQtTJReK7Ldp0Y4f5-tbTdcp224r1AF7jU26alSgQ,26
|
|
126
|
+
sknetwork/embedding/tests/test_API.py,sha256=2c0O8S0u0hF23iys7QLHJJOz2W79rHMeEO2OMDQbglk,1489
|
|
127
|
+
sknetwork/embedding/tests/test_force_atlas.py,sha256=-YM4HSF5Nvpm8e4SoCHiA2o7yAkm0h_ys7GRaJ1wloI,1120
|
|
128
|
+
sknetwork/embedding/tests/test_random_projection.py,sha256=2bUOCw66tUKP775pGPd5STj0UmRuwvBtI5CgY8HeHKI,1193
|
|
129
|
+
sknetwork/embedding/tests/test_spectral.py,sha256=CH-F8fM3cYoxhjpob1m7wZV-tEr8XFD6Lxa_bFsLv3A,3897
|
|
130
|
+
sknetwork/clustering/leiden_core.pyx,sha256=7HGdeX6iMnSs52Px44-__kN9JhHueaQUvCmrkIGTalg,4300
|
|
131
|
+
sknetwork/clustering/metrics.py,sha256=VJPgmB1OvxA0SOaIQIGyJDUP1cgWFElnfdVaQ2krYrg,3060
|
|
132
|
+
sknetwork/clustering/leiden.py,sha256=yL5N-9ny6XAj6La2-PBcsieRl4SVx8wxwVGvS1tMr-o,9682
|
|
133
|
+
sknetwork/clustering/postprocess.py,sha256=4hx5VTQmqS2Ld2P2kvXoyvVanXVg3bMA619IHS2jWHM,2039
|
|
134
|
+
sknetwork/clustering/__init__.py,sha256=Ab-rmioxlaMoghrzd1RMr-L4zyrqIM8XznqrjBPGE28,435
|
|
135
|
+
sknetwork/clustering/kcenters.py,sha256=RFEx35vPUm9a4mzCbDwv-PmePCsdQwbuKAeaRizBMxY,8689
|
|
136
|
+
sknetwork/clustering/louvain_core.cpython-312-darwin.so,sha256=C1YOknz21sW424QkdcNpEFgtcaiyO4f5tNkVGgqQYFc,251368
|
|
137
|
+
sknetwork/clustering/louvain.py,sha256=nFKEsrEuOH2k9iruT7SGo0kGDtcYzW2Xn7wBAxe767o,10825
|
|
138
|
+
sknetwork/clustering/propagation_clustering.py,sha256=ABZZtyojkrXfzsMwEcxqphzHgFC5q8sECOyanvK9D3o,3781
|
|
139
|
+
sknetwork/clustering/leiden_core.cpython-312-darwin.so,sha256=XWwPaBLtinzxMvp0igho8hiTVMYqZkrZLVrT4emXrPw,252056
|
|
140
|
+
sknetwork/clustering/louvain_core.pyx,sha256=pMqt7WukTkBOpjofmiXMYHqRX69mkquEMapDdoskiQM,4089
|
|
141
|
+
sknetwork/clustering/base.py,sha256=dCF4K3nbKY24kzFeDAy7Fp-b9jDBzEoG3jj1ozuu_W8,5932
|
|
142
|
+
sknetwork/clustering/tests/test_postprocess.py,sha256=WSmAlqB-6Nw3eoL3NaOyNlpPr7GVnNnllkPVdyE9rXI,1378
|
|
143
|
+
sknetwork/clustering/tests/test_kcenters.py,sha256=laO1QSJ-yGlroB5XtrC15jbRK0krYZK5sIRDHBUZL30,1977
|
|
144
|
+
sknetwork/clustering/tests/test_metrics.py,sha256=fbVYg2s8DXQdiYHUNuVjFMtEJg4od1Vej25mgHhGDu0,1818
|
|
145
|
+
sknetwork/clustering/tests/__init__.py,sha256=Ta0XKY7pklRvHyUY3Jlow3A2V4REa5geZG74xPz80Tc,27
|
|
146
|
+
sknetwork/clustering/tests/test_leiden.py,sha256=3KSXvxUP9H4tCJQXUfWt-45-ltyD0FrVgYjXDvRN-yQ,1155
|
|
147
|
+
sknetwork/clustering/tests/test_louvain.py,sha256=6eQPoKodZLBafNgpX1_zBzPzGY5w7QKzWsLuoEVZEaE,4678
|
|
148
|
+
sknetwork/clustering/tests/test_API.py,sha256=Eez17EngcirVHVVoybClXS5314_Yz54JFzXldubEdgg,1528
|
|
149
|
+
sknetwork/linkpred/nn.py,sha256=tY-qYlp0j9WCvdoHkZ9EKzCD_GlDu7tQpKD7-aC20rE,4030
|
|
150
|
+
sknetwork/linkpred/__init__.py,sha256=pFtM52OhDK69ceeiRyH1MDse0EbD8fqyhOsWWih47gM,72
|
|
151
|
+
sknetwork/linkpred/base.py,sha256=aXgWqajDYjDE-YQcooI6j0qEByJxHQiQtSjmFiID3Qk,995
|
|
152
|
+
sknetwork/linkpred/tests/__init__.py,sha256=05sK8Ihh9Gi2_uobPC_ErMVE4KOt0761NzzV_vJh15U,32
|
|
153
|
+
sknetwork/linkpred/tests/test_nn.py,sha256=T79txY2DlPgnI4JqzC88EcwCobJiM9P9v_5_ZvBTDeU,983
|
|
154
|
+
sknetwork/utils/values.py,sha256=E-_gcqVOYjUPiG_iz9j2avVh1ENANVIZt7AydYzyeyg,2595
|
|
155
|
+
sknetwork/utils/check.py,sha256=tNOelam8GGdVjMzmk-7otNTyFBgJNKwq1z-zWmHOb9Y,12940
|
|
156
|
+
sknetwork/utils/neighbors.py,sha256=XNqwPM_PPpf_x-YhjEMVZJDxmazrVw9Eky3hNv9IGz0,3351
|
|
157
|
+
sknetwork/utils/__init__.py,sha256=z1kLaO6ZFBg9g3MoeuxV-6UPmcqKAxTs0fjqoYQOgc4,325
|
|
158
|
+
sknetwork/utils/format.py,sha256=qAa5jmp_fkQBlVL4LW14N7rrMPNk3yMApNFLxREPuiU,8766
|
|
159
|
+
sknetwork/utils/membership.py,sha256=dG2xJTWEjRcxyKTs5A7DFyNhO50-7UKpBIaWFfmyH_M,2162
|
|
160
|
+
sknetwork/utils/tfidf.py,sha256=C1qZCwZSwypi-C_II9D7lkfyxsOFefiDopTO3pBEwkc,956
|
|
161
|
+
sknetwork/utils/tests/test_membership.py,sha256=y4BiaCHUw5c1dJPOSJA6vgkBQlPxQ2bepL7hDV1es5U,748
|
|
162
|
+
sknetwork/utils/tests/__init__.py,sha256=y7PVVv2Wiz1msA5jqKOuB5BbB4UzCmDZ-pml9hIQyjo,22
|
|
163
|
+
sknetwork/utils/tests/test_tfidf.py,sha256=X69sepETWH1po9YXFubppvZlLeGdflqxoNEBinihp3A,445
|
|
164
|
+
sknetwork/utils/tests/test_values.py,sha256=BswuHPma0xCxr4gVkrkfPdMaIW6gw6ylCd5MTseo7tw,2268
|
|
165
|
+
sknetwork/utils/tests/test_check.py,sha256=WOLQ7J4eM4YHsSxyBNU5yPquq-0dB5FyD_tttZ1RgsQ,6764
|
|
166
|
+
sknetwork/utils/tests/test_neighbors.py,sha256=vF697D0cTfx4Limcmbre5JkJcLi1rUX0tS_JviX11Zg,1426
|
|
167
|
+
sknetwork/utils/tests/test_format.py,sha256=xSvz_IbxNnei8IrEysIOi8YpX_a6edxVE41g_lSx1mk,2245
|
|
168
|
+
sknetwork/gnn/base_layer.py,sha256=o5CbTVXY7Y1_TyNEMkp7P2va2HLLIq_MgnOxZ7PGQmg,3948
|
|
169
|
+
sknetwork/gnn/base_activation.py,sha256=XogZDdhl3QDyADvWJhMTGSnVYsKPI3PDHPu89yPL1VI,2306
|
|
170
|
+
sknetwork/gnn/__init__.py,sha256=m2lkDJoJZocJ18scpArsUHuzePZ8Q-ue7D3yXQ5H_RM,519
|
|
171
|
+
sknetwork/gnn/loss.py,sha256=P0un3iqbnFLrBbYODznVAoU_J2qAZuqHAPLiae0LCtI,5162
|
|
172
|
+
sknetwork/gnn/activation.py,sha256=D7o4FdbDMrBa2PQrWrvplCf14QOSzZ67d9eWN9bHY-M,3560
|
|
173
|
+
sknetwork/gnn/neighbor_sampler.py,sha256=TXdMRFwiT8sOdl6-S-flQZ5Rjrx1hwTzFqqiR_8PHTQ,1864
|
|
174
|
+
sknetwork/gnn/utils.py,sha256=A0kuBe29Eg90cEzRAgw4YmnShnzoq6ai_-01IBAf63g,4349
|
|
175
|
+
sknetwork/gnn/gnn_classifier.py,sha256=yvh5P3T3AmpEI8xNBERSkLumifBzz6gRLgQQ5aaASd0,12610
|
|
176
|
+
sknetwork/gnn/layer.py,sha256=i0XiAutNal9ImAGqMtSLVEq_QiqZoGAlAWwlSGrNY8Q,5526
|
|
177
|
+
sknetwork/gnn/optimizer.py,sha256=vsCgfPoJtYMWREnR4tBsfPb0Ed-rHR0poBr-75lE57s,5782
|
|
178
|
+
sknetwork/gnn/base.py,sha256=QZ_pNi2-edAUpu-2C93DWfooS_sHulO6HL6vK108lhc,5708
|
|
179
|
+
sknetwork/gnn/tests/test_optimizer.py,sha256=4NvHQf66cFKy500kA68IBVv_-_pf75Hqdbq2odhJMr4,1780
|
|
180
|
+
sknetwork/gnn/tests/test_utils.py,sha256=ExTZqAMT3joYU1RSQ-_d1YipysgnkLKePe7ZHuMoHeY,1843
|
|
181
|
+
sknetwork/gnn/tests/test_gnn_classifier.py,sha256=QRjXGJK2ghHtsGc9O-FwlKzG53IHocrWZuKTAVSFjFw,5743
|
|
182
|
+
sknetwork/gnn/tests/test_activation.py,sha256=HZdBaJ8P8LBJ-3_Typc8Qkvsho9gNSy1-CANEz8rQ-Q,2487
|
|
183
|
+
sknetwork/gnn/tests/test_layers.py,sha256=apPJGgMddw_-Qiw0OsTDL3cmMJ8GTMC08dLTmiYEWW8,3176
|
|
184
|
+
sknetwork/gnn/tests/__init__.py,sha256=SvFOB5nn_yN-JCaYFAtzesL0zU0OihQp0s0dOP1-MKE,20
|
|
185
|
+
sknetwork/gnn/tests/test_neigh_sampler.py,sha256=zc_6G3JhZvKrFLJAk2UJSOHZwN7sGojC8bXTCbmaUx4,698
|
|
186
|
+
sknetwork/gnn/tests/test_base_layer.py,sha256=1PXvS3338vu-fI77ZnGgHfY20zkPRv_GcZKxLQmyj7I,1381
|
|
187
|
+
sknetwork/gnn/tests/test_loss.py,sha256=W5DA6FRd-OppeRKFgj2gtLqNvjkXkCQPmV6lg3ENu-c,1045
|
|
188
|
+
sknetwork/gnn/tests/test_base.py,sha256=HVsz5zABud8ZlrIJIFuAKP6N7mu2ClrTaleZbPhGOR0,3393
|
|
189
|
+
sknetwork/regression/diffusion.py,sha256=p4o62jxuz3z3Kd2WizmV1GYM9MO_c3yp70_KQUim0jM,7905
|
|
190
|
+
sknetwork/regression/__init__.py,sha256=nRlbcR8bA2Lz-OmLPMIPhBzgDCol8oSA19qL3IninXA,141
|
|
191
|
+
sknetwork/regression/base.py,sha256=KIsVpnbACRH4h5W3ifMJOTlZNuztGbQP1QbZKj5aj_0,1496
|
|
192
|
+
sknetwork/regression/tests/__init__.py,sha256=BT8kCCMN_pv7znhIR5GSQ_XxU5brmrCYDwm4QJNRCV0,27
|
|
193
|
+
sknetwork/regression/tests/test_diffusion.py,sha256=-QBRgES_BF-QIgFevozLt9YXmGxJ6vxgLeYVZe92Wn8,2061
|
|
194
|
+
sknetwork/regression/tests/test_API.py,sha256=7fQulvKzF9yEBlLie7fL5G1ZdyiG4DAFZQZ4Lix96qs,1024
|
|
195
|
+
sknetwork/data/models.py,sha256=j3k2LKtxNjyihfJH3SyzA5jhFNBgaA17UCzihD59Lqo,13186
|
|
196
|
+
sknetwork/data/test_graphs.py,sha256=OM6-7CiBN4UEAQUtE_2k5e5I72zDBL3r5fj_C2JXzNw,2484
|
|
197
|
+
sknetwork/data/timeout.py,sha256=kwHOLZFnOTrRhiEjtcwATYhsXbf5e8zV1OCoEKuG8Zg,1047
|
|
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
|
|
203
|
+
sknetwork/data/tests/test_test_graphs.py,sha256=dVRds-3P8JVnwfAp32fGif3zhocfPK0p2rgcYwJWsUQ,849
|
|
204
|
+
sknetwork/data/tests/test_parse.py,sha256=JOTFNWr77ZxKUKjw8TSbN-2dk-6YwmqN2OcrNkh7JVc,12717
|
|
205
|
+
sknetwork/data/tests/__init__.py,sha256=FSfkSYRKjDqIuEiEZ39Otve50qSxi7QObNnNrHHPx5s,19
|
|
206
|
+
sknetwork/data/tests/test_toy_graphs.py,sha256=lknaYy5AWJjiqKfhgWhQEolN8e4CDe5ilNDpC5lenww,2197
|
|
207
|
+
sknetwork/data/tests/test_models.py,sha256=oP-X_k0vbSB4CwlV4GQVVBAQ9uI_8frFicde5yhVYAc,1915
|
|
208
|
+
sknetwork/data/tests/test_API.py,sha256=LUWZX9pPpZLVuzgAz85sJk6tgKDaXKqc2Fhp91x-E6c,963
|
|
209
|
+
sknetwork/data/tests/test_base.py,sha256=b-0CM1ResLoJXg6-jGmBWFii5JtZrXAhfYiAG70dW1w,312
|
|
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=ixb_O5lsVXLMepD9A3AdgDzVqvdgd8PzUyuV4vg4Hnk,110
|
|
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
|
|
@@ -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
|