scikit-network 0.33.0__cp312-cp312-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of scikit-network might be problematic. Click here for more details.
- 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 +228 -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.cp312-win_amd64.pyd +0 -0
- sknetwork/classification/vote.cpp +27577 -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.cp312-win_amd64.pyd +0 -0
- sknetwork/clustering/leiden_core.cpp +31564 -0
- sknetwork/clustering/leiden_core.pyx +124 -0
- sknetwork/clustering/louvain.py +286 -0
- sknetwork/clustering/louvain_core.cp312-win_amd64.pyd +0 -0
- sknetwork/clustering/louvain_core.cpp +31209 -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.cp312-win_amd64.pyd +0 -0
- sknetwork/hierarchy/paris.cpp +37264 -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.cp312-win_amd64.pyd +0 -0
- sknetwork/linalg/diteration.cpp +27393 -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.cp312-win_amd64.pyd +0 -0
- sknetwork/linalg/push.cpp +30474 -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.cp312-win_amd64.pyd +0 -0
- sknetwork/ranking/betweenness.cpp +9701 -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.cp312-win_amd64.pyd +0 -0
- sknetwork/topology/cliques.cpp +31964 -0
- sknetwork/topology/cliques.pyx +149 -0
- sknetwork/topology/core.cp312-win_amd64.pyd +0 -0
- sknetwork/topology/core.cpp +30053 -0
- sknetwork/topology/core.pyx +90 -0
- sknetwork/topology/cycles.py +243 -0
- sknetwork/topology/minheap.cp312-win_amd64.pyd +0 -0
- sknetwork/topology/minheap.cpp +27322 -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.cp312-win_amd64.pyd +0 -0
- sknetwork/topology/triangles.cpp +8889 -0
- sknetwork/topology/triangles.pyx +151 -0
- sknetwork/topology/weisfeiler_lehman.py +133 -0
- sknetwork/topology/weisfeiler_lehman_core.cp312-win_amd64.pyd +0 -0
- sknetwork/topology/weisfeiler_lehman_core.cpp +27628 -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,228 @@
|
|
|
1
|
+
sknetwork/__init__.py,sha256=qVhfMlfW4ek8wa9mv2zIyb_BiMWl5twz8457vyHTAEg,554
|
|
2
|
+
sknetwork/base.py,sha256=_63mkwqXFDke_0ve9DIZJiMHboMYqBONa7B08gao440,2018
|
|
3
|
+
sknetwork/log.py,sha256=qDR-dnlzJC0ETlotPAy_IbLiQPgu8Vn90mgkqfvT5W0,462
|
|
4
|
+
sknetwork/sknetwork.py,sha256=Qtq3EpSkdAFqQNQPDXTAouXS784LkR8Rh2D5s5w5_tc,47
|
|
5
|
+
sknetwork/test_base.py,sha256=hdbe2ldftbPp6Y0-bAWehKy9cyyd3Adj9UX6NgYq0QQ,947
|
|
6
|
+
sknetwork/test_log.py,sha256=ucX3w138eDyD0Wnpk9QEsPoQgAPTJNPy9twzMf5TjQ8,334
|
|
7
|
+
sknetwork/classification/__init__.py,sha256=QoS3fTnCZ0nFdlDkEphEYqj1NDEf23_aqsfP0G4zLMM,483
|
|
8
|
+
sknetwork/classification/base.py,sha256=a6JczKf23arkC4Xx6rUEI0gLFAPoyPXKTXCdhV6_bWI,4432
|
|
9
|
+
sknetwork/classification/base_rank.py,sha256=BChHu6sDkdq_M6coJsC3hac3HWPE2lholi3g97J6lWw,4655
|
|
10
|
+
sknetwork/classification/diffusion.py,sha256=WPNeSya95g3X3wEG_X-7aTIvAoBFIGQcXHMts58i1ts,5698
|
|
11
|
+
sknetwork/classification/knn.py,sha256=OHKNzFQlSPtkdi8Ih7HgiIh2fn6fv0T7-Eu66CsdBHg,5472
|
|
12
|
+
sknetwork/classification/metrics.py,sha256=S_Ze1gqsC9KMZs2K81BDtxRpsv6YvwEss3-v-ekdqmM,7011
|
|
13
|
+
sknetwork/classification/pagerank.py,sha256=Nvmj-Y1YFXQxCZpcUhXfKlc6S5BebnIkJZ8DRsyzDTs,2652
|
|
14
|
+
sknetwork/classification/propagation.py,sha256=jH5UOM2JkjW-1oxBLx7NaceOwKDBw0hiYKp415Hc8q4,5945
|
|
15
|
+
sknetwork/classification/vote.cp312-win_amd64.pyd,sha256=6IimOit_PntLy1M--k_ZefaY4DqEYtAlFC02B87DmzA,159744
|
|
16
|
+
sknetwork/classification/vote.cpp,sha256=W2Ya3-aSefcO-HbWV-NntO3xuVz1VrJevbCGHGNbcSo,1023081
|
|
17
|
+
sknetwork/classification/vote.pyx,sha256=-mNsL96aaA1UL-qfeUgZlbdvKZUK9R4MLmq0BNFWVKA,1640
|
|
18
|
+
sknetwork/classification/tests/__init__.py,sha256=Per0oy1Frnm5jB7dnpod1g_xbgYhqkNteWQV5cemcH0,32
|
|
19
|
+
sknetwork/classification/tests/test_API.py,sha256=WV5cY8yhTHBHYRbDE3InZ4v-agymxLPMKxa2NqjbWZo,1154
|
|
20
|
+
sknetwork/classification/tests/test_diffusion.py,sha256=GuWNuE4PGZ4hqCLtRe-DfwjD3uUBFeHa0ByMEtsAUMM,3260
|
|
21
|
+
sknetwork/classification/tests/test_knn.py,sha256=EWuWiJJSsfthfvb3x0ejUjdccRBZIFpmG6nv7F8VkOk,807
|
|
22
|
+
sknetwork/classification/tests/test_metrics.py,sha256=9eqBvRiMdVUHf7WhjfwzMcUJFALt4Ufmx5LhBzou8Ww,2356
|
|
23
|
+
sknetwork/classification/tests/test_pagerank.py,sha256=8ywBVzfJOtz_gTIn7XYr0nvHlVwvmZERLrG3LkQHeTU,640
|
|
24
|
+
sknetwork/classification/tests/test_propagation.py,sha256=GzhpCpg0ijLvXuWtABolq02k0-Yh3UHJ2rAKpdQlTxI,874
|
|
25
|
+
sknetwork/clustering/__init__.py,sha256=Ju06e1zwMUfOn_1soTOlxJJu1F5u9VNxFXWN8TTParo,443
|
|
26
|
+
sknetwork/clustering/base.py,sha256=LsH_wlP19lDnIZWVUXbKwSta05ii5dWMqS-J-AkY6HE,6104
|
|
27
|
+
sknetwork/clustering/kcenters.py,sha256=MKmsR7zWTITeEAqFyRDKpglU7yZZEjR8H0TLJXdDjtw,8942
|
|
28
|
+
sknetwork/clustering/leiden.py,sha256=THQdYR_DhGF8xJLTEiSmd8cx0Y70ms5nZ1emnoqcxBg,9924
|
|
29
|
+
sknetwork/clustering/leiden_core.cp312-win_amd64.pyd,sha256=GXaG8trMVdrKSq1GRS7O9stQ8-qrbUMSB-qkUi7adrs,206336
|
|
30
|
+
sknetwork/clustering/leiden_core.cpp,sha256=b8wszULBkNgi7pLeSVYGAdVrPr2RguHCTJj8CvX8lYo,1205017
|
|
31
|
+
sknetwork/clustering/leiden_core.pyx,sha256=kEppO0iSs0UqK3ybtSVIHRSojJ4KNfe6pUNo9sShh7E,4424
|
|
32
|
+
sknetwork/clustering/louvain.py,sha256=BjBlOw70MVgZHwpIWYo4CmLlzC58jALSTqbRE7x8z4I,11111
|
|
33
|
+
sknetwork/clustering/louvain_core.cp312-win_amd64.pyd,sha256=rihDs4i9ilJZm7EOOOZrYuOuTVqV1guEIl-lAsaXMy0,202240
|
|
34
|
+
sknetwork/clustering/louvain_core.cpp,sha256=0yD7iUJJOgGSOSUaFI7Ep1emYicMfww_OylwPhj8org,1185581
|
|
35
|
+
sknetwork/clustering/louvain_core.pyx,sha256=2KPnBhBeSlIxmoScZW7jwsmVxJyAyHQs3pcH9AfBM2Y,4213
|
|
36
|
+
sknetwork/clustering/metrics.py,sha256=ptLLtUpFtdKLZ4lcx_MN-PpOrzv--PWhAcEFoFghccM,3151
|
|
37
|
+
sknetwork/clustering/postprocess.py,sha256=uynPXvjYXiFNShxGZyLkpIwRl5nIlIVEm-auMCNZA0o,2105
|
|
38
|
+
sknetwork/clustering/propagation_clustering.py,sha256=s-Y7EQEqGM2wdl1zAOQzfmy-8LGab1eB00u_AOkYzl0,3885
|
|
39
|
+
sknetwork/clustering/tests/__init__.py,sha256=tCA27jkL3pdstka9XWQEA1NbC6ZqL7Rf-1V1UcySCEE,28
|
|
40
|
+
sknetwork/clustering/tests/test_API.py,sha256=PKxuTh49IyKzwkLfgFAmJiuBhWJQBEYtNxzOEYgc5uE,1566
|
|
41
|
+
sknetwork/clustering/tests/test_kcenters.py,sha256=BWvcTo8iNDFbKawVrRe8N6q4ujS0Co4MHpkT-P8_A9U,2037
|
|
42
|
+
sknetwork/clustering/tests/test_leiden.py,sha256=oEN0Dz9popCEYE-qqEdmTEqqr3af9TB3WDmRNWYAidE,1189
|
|
43
|
+
sknetwork/clustering/tests/test_louvain.py,sha256=rYZLrb8Ld_F2KDCos5RP9-1szkVXHnXLWHd4SbOwvAY,4807
|
|
44
|
+
sknetwork/clustering/tests/test_metrics.py,sha256=ZTr4T-d-g6kQJinei9VH6Teb_rOScmj5XLG168EI5LQ,1868
|
|
45
|
+
sknetwork/clustering/tests/test_postprocess.py,sha256=41l4coS_1CHqGOCnnucqxU6UkXws89YVMjef162ZTEQ,1417
|
|
46
|
+
sknetwork/data/__init__.py,sha256=qt9xm8RuVQqJQct_A2aCytKjTkMmegnPaRFcHqFbyDY,261
|
|
47
|
+
sknetwork/data/base.py,sha256=m0nrETIA9bDkqP_hkUVjQlmbwgdQI_Z0M6wctao6N2A,706
|
|
48
|
+
sknetwork/data/load.py,sha256=cIHn3LDRo208n1Yrqq_kaqgrHKEn8qmi5YiX4gGGx3Y,14762
|
|
49
|
+
sknetwork/data/models.py,sha256=x4s-Ty3Rj0S6MZ4ml2qf9BJFGeUXh8_YzIzbOikBo5Q,13645
|
|
50
|
+
sknetwork/data/parse.py,sha256=k9iJSOrA3cPZwBYuMnTLvaBK3ycDsRStcVq00HCjNO0,27639
|
|
51
|
+
sknetwork/data/test_graphs.py,sha256=KRRok5ElYWh1NV3i_2enLLjdeKe8zBg_3xqFXgOOY6I,2568
|
|
52
|
+
sknetwork/data/timeout.py,sha256=mXSqgKFRc6AVZBlIobN2xPYJjAyQOClKH3KQJ5M_4Sw,1085
|
|
53
|
+
sknetwork/data/toy_graphs.py,sha256=VDEwMLEuu562G2u22xpwobcNTl756ZiL6Moc4XtJbn4,25243
|
|
54
|
+
sknetwork/data/tests/__init__.py,sha256=LtUcKFe5CeBpspRwa6A2uX2cVEf_uPpOo2mGkH7W8cI,20
|
|
55
|
+
sknetwork/data/tests/test_API.py,sha256=4T9-zFggcr-0aJAENR8ZMOnOvmbltepFhdiQjPt5jC0,993
|
|
56
|
+
sknetwork/data/tests/test_base.py,sha256=2UZOH_c12jCOy-77-ahoj1uGdbmA42pFVrFV9NCAYbU,326
|
|
57
|
+
sknetwork/data/tests/test_load.py,sha256=wuLVlJ-lquoIrsr0UBI-gakW7BjGBZaSyEPavxX0NVY,3645
|
|
58
|
+
sknetwork/data/tests/test_models.py,sha256=_2y5xZrWbE3XZltd4n-z84YwyJhPcpaBa2TxXMvhXF4,1967
|
|
59
|
+
sknetwork/data/tests/test_parse.py,sha256=K_HTO7L5axpnt2Fs3hmOMudufZZ2shps94COEABcMx4,12967
|
|
60
|
+
sknetwork/data/tests/test_test_graphs.py,sha256=3QWshIikkBtRl3C7ATc_zO5UkwOh1wZwD7gYm0CEj8o,878
|
|
61
|
+
sknetwork/data/tests/test_toy_graphs.py,sha256=vn-TTT9w8TX8Lzof9fV8eEnJr5_NyBj1Zd3rSPB7IU4,2265
|
|
62
|
+
sknetwork/embedding/__init__.py,sha256=hTtHHVXNdwdGSZuAmLvTm3yMmHWxYKrFwwo1MuOPTUI,418
|
|
63
|
+
sknetwork/embedding/base.py,sha256=cm52qsqGsPesvDOF5LxOp8rwLhs36dvNlDu_e9jBU0A,2757
|
|
64
|
+
sknetwork/embedding/force_atlas.py,sha256=yjlL5Qfv19KJdwtziTDOklrW_HP5CkMJIoOL6t2cYsA,7650
|
|
65
|
+
sknetwork/embedding/louvain_embedding.py,sha256=MWPaZyDtmeEsjDaHMqaztn-3T5U_Q7kWnaHTchPzITc,6230
|
|
66
|
+
sknetwork/embedding/random_projection.py,sha256=b5zGehuWT-dpA1KSw5xv3UZXZGNcP8PalEjXYWfgPT8,5137
|
|
67
|
+
sknetwork/embedding/spectral.py,sha256=xN_5yxJV2KJ--DOpv7tyy5yU25BHVBWnXbywQ0L_6YE,5689
|
|
68
|
+
sknetwork/embedding/spring.py,sha256=Cl1airI_mSWmV1isKmcxqjY1uxw7NcH7xMwHc8ADmHA,7349
|
|
69
|
+
sknetwork/embedding/svd.py,sha256=ycn5fIaw7K7vTz7_MGxKN8XtDsnTqUIqXIADO8_M_GE,15001
|
|
70
|
+
sknetwork/embedding/tests/__init__.py,sha256=PsZQYFNrSmRW_KIuNX3qVtxtZVn8yV18d0mk8Y6ieck,27
|
|
71
|
+
sknetwork/embedding/tests/test_API.py,sha256=0KKY3p_bF2f3QPsReW9IrAtC5KGw1Ok3J0kYUT1hrl8,1538
|
|
72
|
+
sknetwork/embedding/tests/test_force_atlas.py,sha256=dYiyWroqB7UKNW9MTYpGP6e7tF_qPWqVZNmZBndd_ks,1155
|
|
73
|
+
sknetwork/embedding/tests/test_louvain_embedding.py,sha256=0WTNALEfnJoDo5P84DyXmwpcmbuUXqR3G5S_iM0W30A,1149
|
|
74
|
+
sknetwork/embedding/tests/test_random_projection.py,sha256=zz6q0G-pG-G2gOefhr-yuPBQhNDNtXB8jz7_dld1ZpE,1221
|
|
75
|
+
sknetwork/embedding/tests/test_spectral.py,sha256=w-gokQ_UgeXSQv69BB_Dk6shkWiO6iJbJGl5ih0JNRI,3978
|
|
76
|
+
sknetwork/embedding/tests/test_spring.py,sha256=z3eT-mFcfNSoMWPKQF-Dz_ZjAsJplQrx1yspiaeFRBw,1693
|
|
77
|
+
sknetwork/embedding/tests/test_svd.py,sha256=LXIDhxUDxJBLnVnq567yVqs0eTJFPqBhzriPBOqa6k0,1506
|
|
78
|
+
sknetwork/gnn/__init__.py,sha256=808PNZEYNHZrIBpKqPzAMKES8yhN6QXEVUWkZVJIJWI,529
|
|
79
|
+
sknetwork/gnn/activation.py,sha256=rhvEXgrIix4nZ9I3WYZ0e1MID_DESCCC_XlVcOa4Wpo,3677
|
|
80
|
+
sknetwork/gnn/base.py,sha256=qHnKsfsUW4LIdwm3vzfAahBjweCkIDRzk62i4piNBuc,5889
|
|
81
|
+
sknetwork/gnn/base_activation.py,sha256=Kxs_d4aPOpMRXZMBAW7WKkA_uWLXRM7XM-JqE4nFHhc,2395
|
|
82
|
+
sknetwork/gnn/base_layer.py,sha256=_zL_SyVYvhxch9N1i44Qkgar_M5xVRz7JcxqUjVwDjY,4057
|
|
83
|
+
sknetwork/gnn/gnn_classifier.py,sha256=RmqgyRgKkdU1Bht5i390xulBzLkuvFwqFkUnZGx7r9c,12915
|
|
84
|
+
sknetwork/gnn/layer.py,sha256=JBNFABBgGtMeXdQaS8wGnsSd7Jqs18jbIguITTOCQRE,5679
|
|
85
|
+
sknetwork/gnn/loss.py,sha256=FwULPjbUe3OFIhIBKJoNfdYX41ALckX2ANKvC69yyoI,5342
|
|
86
|
+
sknetwork/gnn/neighbor_sampler.py,sha256=l5OkylbRQsDpmkfeHAaSA7gHi5l7OUKtL4YvH-YTMWM,1929
|
|
87
|
+
sknetwork/gnn/optimizer.py,sha256=Ijtt0VhhD_pUI2Qk8u3GLuO2mQvfVkBqW0cYF-Zqo2I,5946
|
|
88
|
+
sknetwork/gnn/utils.py,sha256=7sNUhWyO_juS3Of67qSwbMThGH-C-Y3NzHxLq2x7S68,4476
|
|
89
|
+
sknetwork/gnn/tests/__init__.py,sha256=_q1IzwMWdNgX90qzdbVkr0LV4NTjFzXg81z4-TM93cw,21
|
|
90
|
+
sknetwork/gnn/tests/test_activation.py,sha256=UznwTCvOeCX80n5urtoDhnM8lskDM67AsVFiY-ViqzU,2543
|
|
91
|
+
sknetwork/gnn/tests/test_base.py,sha256=EN3QjzsSwzpOgyIYHwA6mgCDRBigx7YQ5iSQXQbw_pM,3468
|
|
92
|
+
sknetwork/gnn/tests/test_base_layer.py,sha256=1TfVD7xaI6VUVWZuSmOwDR7Ct0iVFvpmcxUf8L6EaqY,1418
|
|
93
|
+
sknetwork/gnn/tests/test_gnn_classifier.py,sha256=MQYFGWQRF5bTzKB_td3wmtcUZvJl4uoc4pXmOHiutls,5873
|
|
94
|
+
sknetwork/gnn/tests/test_layers.py,sha256=6Rbz_jJm3m5e6XWZA3P8Bfzlss9nBoiE4rSz2Tc-QKo,3256
|
|
95
|
+
sknetwork/gnn/tests/test_loss.py,sha256=QvzXKW_xzirXUSkiDm9HgqJPHJdd55FOpuHWZzxyeKs,1078
|
|
96
|
+
sknetwork/gnn/tests/test_neigh_sampler.py,sha256=7yhKZSRg2sZd3kFNs-qdj1LKgM7X8xZBNoOYYkYRfek,721
|
|
97
|
+
sknetwork/gnn/tests/test_optimizer.py,sha256=OZnIeO__kNt8HXLHr-WHGzvDsTy4LvJ19p9jcFVzXME,1823
|
|
98
|
+
sknetwork/gnn/tests/test_utils.py,sha256=MJvOXEWouRiIVaPM76W0hizt3jFb-1_BXHLd1zkPzSg,1884
|
|
99
|
+
sknetwork/hierarchy/__init__.py,sha256=-2-y7iBVQRanXLSl9kY8VASJVqx37trYmVNcz74QsUc,418
|
|
100
|
+
sknetwork/hierarchy/base.py,sha256=DvVUNgJgfaFlWyl4QbdHmp-VldPMFLPx9irt74kpyrU,2789
|
|
101
|
+
sknetwork/hierarchy/louvain_hierarchy.py,sha256=MoO0mlvuFUFNYssl1zOAWlcyg-2OLzJI6VFPjIS1FiA,10118
|
|
102
|
+
sknetwork/hierarchy/metrics.py,sha256=5WZLsSLYKifLIQ9aPrXyzvPtTFN5ROSlNivhV-n9VuY,8280
|
|
103
|
+
sknetwork/hierarchy/paris.cp312-win_amd64.pyd,sha256=acsPkIJCawSGVcDN_dZw1hnxP1-02a7WMZivogbFEgk,229888
|
|
104
|
+
sknetwork/hierarchy/paris.cpp,sha256=Q7wqSty59BrGG808ofX_rqGjtChW-CoTcg8teUp5hGY,1472626
|
|
105
|
+
sknetwork/hierarchy/paris.pyx,sha256=CSr7eJBGPQoHff3czQpDuaW3V16ZsgdnVoFQ_rkFWBk,12129
|
|
106
|
+
sknetwork/hierarchy/postprocess.py,sha256=81Hj7eCHvU_2mdq0FTeYuZAqk4FIudZfZbvU39_sqyM,12422
|
|
107
|
+
sknetwork/hierarchy/tests/__init__.py,sha256=jRlC4pbyKuxaiXvByYK-4ix7DwYWxpjwKNvSXZ7rQJE,27
|
|
108
|
+
sknetwork/hierarchy/tests/test_API.py,sha256=f0QtuCDA5dRwhPogtwbjsVlDRTpk84ewkXgc6rHCSWU,744
|
|
109
|
+
sknetwork/hierarchy/tests/test_algos.py,sha256=HbF1QCFcpbrybRLrz7C0-2yY7s97vciWNiktbbvubwg,1395
|
|
110
|
+
sknetwork/hierarchy/tests/test_metrics.py,sha256=sljCTCIXNvanQ3Bf-g0x0jyjXs05EBlCR9Rcy-j9kTU,3222
|
|
111
|
+
sknetwork/hierarchy/tests/test_postprocess.py,sha256=Bm1_XU6OgwZr_1B28IA5m_HZRqI7GMwlTLpzkXux__Y,2266
|
|
112
|
+
sknetwork/linalg/__init__.py,sha256=COkAHs_EsxWzd_tHl6qq8laEfSsjoMuWVx3VbNFEgzU,542
|
|
113
|
+
sknetwork/linalg/basics.py,sha256=WDlylrkBTCQpjXGtzs8kshJYfpo0h3uM8TMhHmnAnnM,1179
|
|
114
|
+
sknetwork/linalg/diteration.cp312-win_amd64.pyd,sha256=YMhTSp_tSlsCusJoeBXxZxa8wp1IzIzdvcyQjFc346E,150016
|
|
115
|
+
sknetwork/linalg/diteration.cpp,sha256=xfZuqNAb_zScMfOuGhWBzaQMz0KaoJVECJ3-rARoEQg,1019891
|
|
116
|
+
sknetwork/linalg/diteration.pyx,sha256=1r7a1usqftiBNTPOAwHFQPK__nZ67J-87wQLM25GqEU,1431
|
|
117
|
+
sknetwork/linalg/eig_solver.py,sha256=lMqxTg66_T-LsgGqc9oo_ngxpTceekavnCFOANWEpPA,2793
|
|
118
|
+
sknetwork/linalg/laplacian.py,sha256=qifd-8iltcTKCQW-7fG5z3XfwVrrrCeaBqbViBQCLf0,416
|
|
119
|
+
sknetwork/linalg/normalizer.py,sha256=Z0-paMHwp51aY_ssCP2RfXNVQqTFA9gsIHfy-fhG5QI,2559
|
|
120
|
+
sknetwork/linalg/operators.py,sha256=nNTtdI_I0HEhnpHOxUYRHmEzUDcz9CbwjDc5eEKzlNQ,7657
|
|
121
|
+
sknetwork/linalg/polynome.py,sha256=qnIhfpRk26JMinuNCrZO1EDj5ci65ZLxkKJyhO7HxpE,2201
|
|
122
|
+
sknetwork/linalg/ppr_solver.py,sha256=D7LUMQgFAtnGhh8pxpKrISH1H9d5MknFpHib8bPA5x4,6703
|
|
123
|
+
sknetwork/linalg/push.cp312-win_amd64.pyd,sha256=vGqamM7dyTu2eycDcgXdQwB6lnWhdB3BS9vhqIJayFw,168448
|
|
124
|
+
sknetwork/linalg/push.cpp,sha256=i6zaD9TN2Gws6TTaZL8m3y7oWzIYN4NTeDAiruKQX0I,1156910
|
|
125
|
+
sknetwork/linalg/push.pyx,sha256=79ycseJ1jOznzc1_KSexTGy_0dlX1jQVnf_WI8Ufvgc,2429
|
|
126
|
+
sknetwork/linalg/sparse_lowrank.py,sha256=-6-cNRs6tpiNqA8ah3mBKWap3Nh9GQHTFIarPjIiC7U,5170
|
|
127
|
+
sknetwork/linalg/svd_solver.py,sha256=XxP4AyKQInBQN3imcbtahXseZ4YyKj4ZI2UAJK1mDs4,2772
|
|
128
|
+
sknetwork/linalg/tests/__init__.py,sha256=i2cO6oXoryXdEJ-HdSFZsY7LZdNit7W3GC8J8LAUMU4,24
|
|
129
|
+
sknetwork/linalg/tests/test_eig.py,sha256=c_BpjP_S7xCwYgk2N7kaFfsjV1-nfUYCu3Rys07bPeo,1548
|
|
130
|
+
sknetwork/linalg/tests/test_laplacian.py,sha256=iGI4bFmYfhCbymlN4wcnE0tV9GmApC3g7bDL3Qx8dR0,452
|
|
131
|
+
sknetwork/linalg/tests/test_normalization.py,sha256=tYw6JKDekgsNJEZDvxdtCSHoltvWAu7XgZ6BtVy85e0,921
|
|
132
|
+
sknetwork/linalg/tests/test_operators.py,sha256=AaOekSv0_mnt7KKs61gve4drT_I7PdG5CxLQSgUXYXQ,2985
|
|
133
|
+
sknetwork/linalg/tests/test_polynome.py,sha256=-F0iMhYd1lVFau6ILxq7Mr5BtJxJPB-TX3ya3tQwzOM,1015
|
|
134
|
+
sknetwork/linalg/tests/test_ppr.py,sha256=6FlYnOlpWw2A98iH2Xp45DjbtqB5pPfymVVKhNFmCws,2143
|
|
135
|
+
sknetwork/linalg/tests/test_sparse_lowrank.py,sha256=Vqeey1W8jB85zT0L4c5TEGTL0hyQ9zX4FQ6EEI4tmHE,2337
|
|
136
|
+
sknetwork/linalg/tests/test_svd.py,sha256=9Uu89-1vTlaJ_H82MUwzGz-iiYf_wFiZMyfelVBRHMI,1323
|
|
137
|
+
sknetwork/linkpred/__init__.py,sha256=a7t20Q3xpm1M5IXnyErmucoQuHnGwPTNKAD42oYHEWQ,74
|
|
138
|
+
sknetwork/linkpred/base.py,sha256=hEImortSlZbfMav5uG8AR3ajKn9IXuookuIXhyBuvSw,1041
|
|
139
|
+
sknetwork/linkpred/nn.py,sha256=y0RB1rrKTr23PFklH2M2V7jcXfssl9SLdidtFozFxKg,4156
|
|
140
|
+
sknetwork/linkpred/tests/__init__.py,sha256=vghxhmK0F5SJOYIb9HZV0h3AVXsCVEPwkgfM7aPpV9M,33
|
|
141
|
+
sknetwork/linkpred/tests/test_nn.py,sha256=-1r8LyU34XXvhHnvJA53fGmOd6Ei2jGG6-LHtYvHYGc,1010
|
|
142
|
+
sknetwork/path/__init__.py,sha256=FU7sn-HrqXGbJQzCIlQgE95LGDwwMRzBe-qp4rTt-3A,227
|
|
143
|
+
sknetwork/path/dag.py,sha256=UAhn3uL2hlCybyOY0ZBnFh1aJnWwWpZ4pfhg-Ay2JKU,1722
|
|
144
|
+
sknetwork/path/distances.py,sha256=HsehKUOtoL8dCybTTm_mALTH9szOHkCRKkw3ref7-PA,3666
|
|
145
|
+
sknetwork/path/search.py,sha256=SD6iV6m_OdygudaJ3vaNyLQtlGZrHjfCvA0BIFPPAN0,807
|
|
146
|
+
sknetwork/path/shortest_path.py,sha256=gr7nB8woh3xBrS0gybylpQ31uDYCE2N4WEi2vTpke2Y,2511
|
|
147
|
+
sknetwork/path/tests/__init__.py,sha256=ntNGJ8p6RZkIrYnePF-TESyoidEXx8fw6A9OBNAlIqo,29
|
|
148
|
+
sknetwork/path/tests/test_dag.py,sha256=lualgStm0Boqx88j38tNuRKrW7Ala5ZfIHzlKdFbVRM,975
|
|
149
|
+
sknetwork/path/tests/test_distances.py,sha256=V9ZukcbwZ9HUDIg1-bKunkT4RHN94y2tkl0DRTKpefY,2757
|
|
150
|
+
sknetwork/path/tests/test_search.py,sha256=wJzwbbe86axJRmausJp-KcsNTB9n7kpo6YBd77SjV20,1239
|
|
151
|
+
sknetwork/path/tests/test_shortest_path.py,sha256=zeM-qgbTs3i29gvF568otKOKgv_pbryV_yGefThLEIY,1422
|
|
152
|
+
sknetwork/ranking/__init__.py,sha256=lbkUSZ3alkLK0xGiUx5ptPqhQKIjIKK80uPk0KymJPc,356
|
|
153
|
+
sknetwork/ranking/base.py,sha256=W3gw9j_ikhyETr3dpEYo9RINUUHlSn8Dez_eAnlIsDg,1573
|
|
154
|
+
sknetwork/ranking/betweenness.cp312-win_amd64.pyd,sha256=3CFy7bdoECAjSvujZ5RqRM7YsrJnqSmYcg2ZJ34E14I,74752
|
|
155
|
+
sknetwork/ranking/betweenness.cpp,sha256=a3sY1Q8v0En5OKzk6DCetlzDkC4HlFX0th3RuzO8t4Q,380617
|
|
156
|
+
sknetwork/ranking/betweenness.pyx,sha256=fe5_gwRQ0TaFi_0-vUGfy6XC5kW5un5xly7-xVDgxrU,3184
|
|
157
|
+
sknetwork/ranking/closeness.py,sha256=CvdAaqsM8HvAi6zGCuLcVF0BUu9n9UPBz_YxZhFF_sM,2932
|
|
158
|
+
sknetwork/ranking/hits.py,sha256=uhGJH2C0U9hLsVRutI6M1ulbEIM7L6dCeYqiAhtTD9A,2855
|
|
159
|
+
sknetwork/ranking/katz.py,sha256=WQpxJq_qqvjFm1ZG_P1ynfpzLlPu-dXCJ9luK-8sRjY,2618
|
|
160
|
+
sknetwork/ranking/pagerank.py,sha256=jzh5dFuM4k5E6UknDFx6WVU2HA30enYbe95RUYmssi0,4859
|
|
161
|
+
sknetwork/ranking/postprocess.py,sha256=F2yP6AsaK9ylTzukLCdtJET7_KnprrxkyWTSKQOnODk,956
|
|
162
|
+
sknetwork/ranking/tests/__init__.py,sha256=46AJCs9irV6PtFg8CVH8TqpqHA6ajs29-3rsL3zxZQ8,25
|
|
163
|
+
sknetwork/ranking/tests/test_API.py,sha256=wPRPjYGcyxEqRt7g4SH7FEZt1sFKBqo2LhCRq0g9pF4,1035
|
|
164
|
+
sknetwork/ranking/tests/test_betweenness.py,sha256=CEqRSOYOgnLUND54GBglDAUdzr6EGRxEPN3iMrYpE34,1173
|
|
165
|
+
sknetwork/ranking/tests/test_closeness.py,sha256=7LSiT-H5S1vuaOj4NHpotg0voIWjgJfVlgR96_V2ny8,853
|
|
166
|
+
sknetwork/ranking/tests/test_hits.py,sha256=aOPsAyU3GNyb_Mcujd7U_TLBtzWn91SuOPyZZRUF9MU,511
|
|
167
|
+
sknetwork/ranking/tests/test_pagerank.py,sha256=LlRJLoq-By1WVOuY71OAh46vCIvERQ0qiIgOgpvw6aM,2305
|
|
168
|
+
sknetwork/ranking/tests/test_postprocess.py,sha256=TpyU3_DKbnSwuf0HEuEYMiNbdI6Z5oP1JNO6kWigFkc,729
|
|
169
|
+
sknetwork/regression/__init__.py,sha256=FYnlc-DKS1Mz2lKVCtKldjSgtvzxMmkd5kwKq2HdNmE,145
|
|
170
|
+
sknetwork/regression/base.py,sha256=gTBqtaE-tMmtcnWh0pPsK9fg7eEUF1UaDdINE2nLNI8,1557
|
|
171
|
+
sknetwork/regression/diffusion.py,sha256=CopcR4EN8xN3T-7bz5g65eJLoMioCN0jtSY77w9HR40,8115
|
|
172
|
+
sknetwork/regression/tests/__init__.py,sha256=GvqvsSMbqMYwRmWw4VrZntwccz1jOPqrqufAZqw_NAc,28
|
|
173
|
+
sknetwork/regression/tests/test_API.py,sha256=7x_n8bG8hUcJVRYDbdC6GvPmwW5cE7HmASlu5SHnwFI,1056
|
|
174
|
+
sknetwork/regression/tests/test_diffusion.py,sha256=_ivBfsfmRQyiFChMS8N1J7HoJDhZtKdeydBIu7SuSvU,2117
|
|
175
|
+
sknetwork/topology/__init__.py,sha256=Ho06JPdSeiy5sq-Cv3e9y4AiFVMUQ_RUNUDDpKegWnM,542
|
|
176
|
+
sknetwork/topology/cliques.cp312-win_amd64.pyd,sha256=uJ__FWS_z9QRsHq0EwsOkDlCQYHVjquP7Waql3Kbbwc,186880
|
|
177
|
+
sknetwork/topology/cliques.cpp,sha256=Y9y9rOTOMB5T3Uhr_ONUTE8RbEJinRoJCs8B9XsL9MI,1223705
|
|
178
|
+
sknetwork/topology/cliques.pyx,sha256=y6Ee5oaX7IdVhXXjSOazqT5dYo4gSTQ8Mq0u1Abg0vw,4659
|
|
179
|
+
sknetwork/topology/core.cp312-win_amd64.pyd,sha256=VaLHpMAcgOgoMUWiGaoXwHgr2SkElAAdRpDtmSbjrbw,159744
|
|
180
|
+
sknetwork/topology/core.cpp,sha256=SPwgp1ekNYpO7W4-cuH7oFh85Kp9OQKD6gcxdy-ee1Q,1132988
|
|
181
|
+
sknetwork/topology/core.pyx,sha256=0PO4HnOYivjrFY1NMlXHd7wscu0R5Fg-Toj3YVRwXDo,2555
|
|
182
|
+
sknetwork/topology/cycles.py,sha256=EgVtANHvY-MBcIe3yRVaBYzz1amsiV6GfuDEMIO3Kl0,9246
|
|
183
|
+
sknetwork/topology/minheap.cp312-win_amd64.pyd,sha256=ZsQmsa-TSHA25mboTyNeNW1c0pNUwsfm3onYiscSt3c,137216
|
|
184
|
+
sknetwork/topology/minheap.cpp,sha256=OX4WaUJJkaFj1MrV9-0otBXwd9op_k_kio1V2ubzK40,1016263
|
|
185
|
+
sknetwork/topology/minheap.pxd,sha256=AHeBNN8wGzT429K6AyhbrFUoBkWVwbkyUIY6TkeJ80g,584
|
|
186
|
+
sknetwork/topology/minheap.pyx,sha256=KOmjjlljgkGUJNL8PQ6WaNzx-Ro84QoSve_8baDN1B0,3419
|
|
187
|
+
sknetwork/topology/structure.py,sha256=28mSnrukLU_GDil8e5ouLZ9PuoQyJ0UmQ4WgMu9Wzew,7479
|
|
188
|
+
sknetwork/topology/triangles.cp312-win_amd64.pyd,sha256=Z5FZt8Eb3661uzLVmeCOJkiEh3t0PiiQgdt0Lmxj5XE,60416
|
|
189
|
+
sknetwork/topology/triangles.cpp,sha256=8YYQ-JU92sfOzfVSBuPXjXvYUs_U5OjsnttxXT_iEhU,354317
|
|
190
|
+
sknetwork/topology/triangles.pyx,sha256=q_f23ZidyizvR9P4X4OIX8o8bAZZTtV7tnjXqmyYZuY,4500
|
|
191
|
+
sknetwork/topology/weisfeiler_lehman.py,sha256=U5b5RoTFtqBeFwkuBXs4g0Px2UWRFePyneu-tfgnY_I,4441
|
|
192
|
+
sknetwork/topology/weisfeiler_lehman_core.cp312-win_amd64.pyd,sha256=hqzrYrp3biiK0zfavMPxVuPryr0NpUyGvFK50PQSuRU,159232
|
|
193
|
+
sknetwork/topology/weisfeiler_lehman_core.cpp,sha256=ib8Ot3Qpp5wdmZAapxxExD0Wo1F01zi59zktH78YSbo,1027133
|
|
194
|
+
sknetwork/topology/weisfeiler_lehman_core.pyx,sha256=lpUV1BpxtedsGBfOl19b8OFXCIbyaAA4ZYlW6BzSxbw,3148
|
|
195
|
+
sknetwork/topology/tests/__init__.py,sha256=84T-xv8JCFeA9D7Rxw9gy3_dNAoE8CY1k1pYcuG8K3s,26
|
|
196
|
+
sknetwork/topology/tests/test_cliques.py,sha256=vdRMDmF8AKkIWE-LnU2yGzk1wzwzq9PdggpeS-8wfRw,866
|
|
197
|
+
sknetwork/topology/tests/test_core.py,sha256=7w9lrzsQ5Pn7QzxA0F_L58cXCABFir7rtLn2DZdPKsk,570
|
|
198
|
+
sknetwork/topology/tests/test_cycles.py,sha256=iKhfvZf-GjlcVCFwRzo9OkxPfnT_pM-eLKW72VIvRy0,3215
|
|
199
|
+
sknetwork/topology/tests/test_structure.py,sha256=BIJuO39ROQRA-xipUfk8PajHQ0Uk9EY6C-c3JYkmBSg,4033
|
|
200
|
+
sknetwork/topology/tests/test_triangles.py,sha256=5AYxNQ8DkKTvpShWEWV-v1r7WZx1DuylChcEmVF0yTk,1313
|
|
201
|
+
sknetwork/topology/tests/test_wl.py,sha256=vesYcnlJHPphk2RJLzKJH9N6aYpPeKLFJko1E8kBdtc,2290
|
|
202
|
+
sknetwork/utils/__init__.py,sha256=ZF_Xx7FhOeHOsqmiBpwO1_bmGj2uoE6knq47oMpMN70,332
|
|
203
|
+
sknetwork/utils/check.py,sha256=LWUkHwDzr9Z9IyT7AIsrQyDrRAMjO2bzWyFsv_P9Ask,13295
|
|
204
|
+
sknetwork/utils/format.py,sha256=g_cfUlETJp7AppCiVKG2VZPexH-H9rVNGF4hXh2rshM,8987
|
|
205
|
+
sknetwork/utils/membership.py,sha256=kan9WuytJCyBAZi0CfM0SJEf527XB4WAYMkIctD5D9w,2244
|
|
206
|
+
sknetwork/utils/neighbors.py,sha256=-EwBXigM3mn2qvVTi_aPmG0XifDMojZgsMQ9_A8cLkk,3466
|
|
207
|
+
sknetwork/utils/tfidf.py,sha256=vvISEaZJa7RZrNNgQEAHgMH2rJToARuNWcVjnA8u7po,993
|
|
208
|
+
sknetwork/utils/values.py,sha256=fqD2iGRwzPG44Vy6c1Us8koggqkWkRGSENZfJonJ2Uw,2671
|
|
209
|
+
sknetwork/utils/tests/__init__.py,sha256=JQuARG8Ycb5apL6PUy_wuEHsLjmEZFOPQUKWRgTMdCY,23
|
|
210
|
+
sknetwork/utils/tests/test_check.py,sha256=LxYAubg6YZ0RHYFz_R3byNtw3EQ6hsHxPPI3QgP1DLg,6954
|
|
211
|
+
sknetwork/utils/tests/test_format.py,sha256=NJrRBI-kFF8dYFmTwuFF7VUnHS6Mz75DG-RB-iGk8ag,2308
|
|
212
|
+
sknetwork/utils/tests/test_membership.py,sha256=d_TobwpRl2K3qCcFBDQV1bGCSmF7Ls3r2s_XGvJC3Sg,772
|
|
213
|
+
sknetwork/utils/tests/test_neighbors.py,sha256=Q7-Y23CcF4vn5lcyEqjaojEAk7-pG03Mf59O1Rz3IUs,1467
|
|
214
|
+
sknetwork/utils/tests/test_tfidf.py,sha256=KYz_LSxi625kKL-v5-uA1-YQOliIfgXCmNXTAZtgpmw,463
|
|
215
|
+
sknetwork/utils/tests/test_values.py,sha256=K3ctTXpSy9fwiHnpFVlHX5KeTd2wNF4kbFiTXe_gQq8,2334
|
|
216
|
+
sknetwork/visualization/__init__.py,sha256=Ww8O1hby1xf_mtRgFftc9srMzvbFgWOzj_khKkqq9Mg,220
|
|
217
|
+
sknetwork/visualization/colors.py,sha256=NhyMQeetfH16khnJD2gD_uZJkBD3JQDV0K3Jzacamqw,2543
|
|
218
|
+
sknetwork/visualization/dendrograms.py,sha256=HtubynuGsJ5b7bD5I8dIKL5UqhqynmqOhw_wJt6VGUA,10178
|
|
219
|
+
sknetwork/visualization/graphs.py,sha256=vLsuL2AUyrc8B5nxM2K713QPRjf7i1PRaoRXYbY44L4,42215
|
|
220
|
+
sknetwork/visualization/tests/__init__.py,sha256=hrso2pNVzMWn4D2pRyWA_xAMib-xacKjm-rf91MyGGk,31
|
|
221
|
+
sknetwork/visualization/tests/test_dendrograms.py,sha256=e0u3qL9SlWlrQiVAeCVXxq7P6-mU0GaCz3FBu6cm_HA,2519
|
|
222
|
+
sknetwork/visualization/tests/test_graphs.py,sha256=FPZcgGj9asTjOvtkXpENYjeE8xtwh1ES4XYWcYe56Jo,9597
|
|
223
|
+
scikit_network-0.33.0.dist-info/AUTHORS.rst,sha256=_GVYaZmiOIOk8o_2X2dGicyCy-1seStrLAZdsk8zKEI,966
|
|
224
|
+
scikit_network-0.33.0.dist-info/LICENSE,sha256=BJ1Hth1QjBmjIfHcp1sVxlkEqHYM58Vn5bcpYcggMZE,1656
|
|
225
|
+
scikit_network-0.33.0.dist-info/METADATA,sha256=PzTdCbvlCrvHqifMwdHv1PYO6hV3Z5SlhJFXu883PgU,14992
|
|
226
|
+
scikit_network-0.33.0.dist-info/WHEEL,sha256=zUKlehupiwlnUEPaWzoeU3i_GPyMnWLKYSUI9sqi8Vs,101
|
|
227
|
+
scikit_network-0.33.0.dist-info/top_level.txt,sha256=fkwspWQ9B3csqb5ENEOoVciRY6XftnMuz4MvTDQeSsg,10
|
|
228
|
+
scikit_network-0.33.0.dist-info/RECORD,,
|
|
@@ -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
|