scikit-network 0.31.0__cp310-cp310-win_amd64.whl → 0.33.0__cp310-cp310-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.31.0.dist-info → scikit_network-0.33.0.dist-info}/AUTHORS.rst +3 -1
- {scikit_network-0.31.0.dist-info → scikit_network-0.33.0.dist-info}/METADATA +27 -5
- scikit_network-0.33.0.dist-info/RECORD +228 -0
- {scikit_network-0.31.0.dist-info → scikit_network-0.33.0.dist-info}/WHEEL +1 -1
- sknetwork/__init__.py +1 -1
- sknetwork/classification/base.py +1 -1
- sknetwork/classification/base_rank.py +3 -3
- sknetwork/classification/diffusion.py +25 -16
- sknetwork/classification/knn.py +23 -16
- sknetwork/classification/metrics.py +4 -4
- sknetwork/classification/pagerank.py +12 -8
- sknetwork/classification/propagation.py +25 -17
- sknetwork/classification/tests/test_diffusion.py +10 -0
- sknetwork/classification/vote.cp310-win_amd64.pyd +0 -0
- sknetwork/classification/vote.cpp +14549 -8668
- sknetwork/clustering/__init__.py +3 -1
- sknetwork/clustering/base.py +1 -1
- sknetwork/clustering/kcenters.py +253 -0
- sknetwork/clustering/leiden.py +242 -0
- sknetwork/clustering/leiden_core.cp310-win_amd64.pyd +0 -0
- sknetwork/clustering/leiden_core.cpp +31564 -0
- sknetwork/clustering/leiden_core.pyx +124 -0
- sknetwork/clustering/louvain.py +118 -83
- sknetwork/clustering/louvain_core.cp310-win_amd64.pyd +0 -0
- sknetwork/clustering/louvain_core.cpp +21876 -16332
- sknetwork/clustering/louvain_core.pyx +86 -94
- sknetwork/clustering/postprocess.py +2 -2
- sknetwork/clustering/propagation_clustering.py +4 -4
- sknetwork/clustering/tests/test_API.py +7 -3
- sknetwork/clustering/tests/test_kcenters.py +60 -0
- sknetwork/clustering/tests/test_leiden.py +34 -0
- sknetwork/clustering/tests/test_louvain.py +2 -3
- sknetwork/data/__init__.py +1 -1
- sknetwork/data/base.py +7 -2
- sknetwork/data/load.py +20 -25
- sknetwork/data/models.py +15 -15
- sknetwork/data/parse.py +57 -34
- sknetwork/data/tests/test_API.py +3 -3
- sknetwork/data/tests/test_base.py +2 -2
- sknetwork/data/tests/test_parse.py +9 -12
- sknetwork/data/tests/test_toy_graphs.py +33 -33
- sknetwork/data/toy_graphs.py +35 -43
- sknetwork/embedding/__init__.py +0 -1
- sknetwork/embedding/base.py +23 -19
- sknetwork/embedding/force_atlas.py +3 -2
- sknetwork/embedding/louvain_embedding.py +1 -27
- sknetwork/embedding/random_projection.py +5 -3
- sknetwork/embedding/spectral.py +0 -73
- sknetwork/embedding/svd.py +0 -4
- sknetwork/embedding/tests/test_API.py +4 -28
- sknetwork/embedding/tests/test_louvain_embedding.py +13 -13
- sknetwork/embedding/tests/test_spectral.py +2 -5
- sknetwork/embedding/tests/test_svd.py +7 -1
- sknetwork/gnn/base_layer.py +3 -3
- sknetwork/gnn/gnn_classifier.py +41 -87
- sknetwork/gnn/layer.py +1 -1
- sknetwork/gnn/loss.py +1 -1
- sknetwork/gnn/optimizer.py +4 -3
- sknetwork/gnn/tests/test_base_layer.py +4 -4
- sknetwork/gnn/tests/test_gnn_classifier.py +12 -39
- sknetwork/gnn/utils.py +8 -8
- sknetwork/hierarchy/base.py +27 -0
- sknetwork/hierarchy/louvain_hierarchy.py +55 -47
- sknetwork/hierarchy/paris.cp310-win_amd64.pyd +0 -0
- sknetwork/hierarchy/paris.cpp +27667 -20915
- sknetwork/hierarchy/paris.pyx +11 -10
- sknetwork/hierarchy/postprocess.py +16 -16
- sknetwork/hierarchy/tests/test_algos.py +5 -0
- sknetwork/hierarchy/tests/test_metrics.py +4 -4
- sknetwork/linalg/__init__.py +1 -1
- sknetwork/linalg/diteration.cp310-win_amd64.pyd +0 -0
- sknetwork/linalg/diteration.cpp +13916 -8050
- sknetwork/linalg/{normalization.py → normalizer.py} +17 -14
- sknetwork/linalg/operators.py +1 -1
- sknetwork/linalg/ppr_solver.py +1 -1
- sknetwork/linalg/push.cp310-win_amd64.pyd +0 -0
- sknetwork/linalg/push.cpp +23187 -16973
- sknetwork/linalg/tests/test_normalization.py +3 -7
- sknetwork/linalg/tests/test_operators.py +2 -6
- sknetwork/linalg/tests/test_ppr.py +1 -1
- sknetwork/linkpred/base.py +12 -1
- sknetwork/linkpred/nn.py +6 -6
- sknetwork/path/distances.py +11 -4
- sknetwork/path/shortest_path.py +1 -1
- sknetwork/path/tests/test_distances.py +7 -0
- sknetwork/path/tests/test_search.py +2 -2
- sknetwork/ranking/base.py +11 -6
- sknetwork/ranking/betweenness.cp310-win_amd64.pyd +0 -0
- sknetwork/ranking/betweenness.cpp +5256 -2190
- sknetwork/ranking/pagerank.py +13 -12
- sknetwork/ranking/tests/test_API.py +0 -2
- sknetwork/ranking/tests/test_betweenness.py +1 -1
- sknetwork/ranking/tests/test_pagerank.py +11 -5
- sknetwork/regression/base.py +18 -1
- sknetwork/regression/diffusion.py +30 -14
- sknetwork/regression/tests/test_diffusion.py +8 -0
- sknetwork/topology/__init__.py +3 -1
- sknetwork/topology/cliques.cp310-win_amd64.pyd +0 -0
- sknetwork/topology/cliques.cpp +23528 -16848
- sknetwork/topology/core.cp310-win_amd64.pyd +0 -0
- sknetwork/topology/core.cpp +22849 -16581
- sknetwork/topology/cycles.py +243 -0
- sknetwork/topology/minheap.cp310-win_amd64.pyd +0 -0
- sknetwork/topology/minheap.cpp +19495 -13469
- sknetwork/topology/structure.py +2 -42
- sknetwork/topology/tests/test_cycles.py +65 -0
- sknetwork/topology/tests/test_structure.py +2 -16
- sknetwork/topology/triangles.cp310-win_amd64.pyd +0 -0
- sknetwork/topology/triangles.cpp +5283 -1397
- sknetwork/topology/triangles.pyx +7 -4
- sknetwork/topology/weisfeiler_lehman_core.cp310-win_amd64.pyd +0 -0
- sknetwork/topology/weisfeiler_lehman_core.cpp +14781 -8915
- sknetwork/utils/__init__.py +1 -1
- sknetwork/utils/format.py +1 -1
- sknetwork/utils/membership.py +2 -2
- sknetwork/utils/values.py +5 -3
- sknetwork/visualization/__init__.py +2 -2
- sknetwork/visualization/dendrograms.py +55 -7
- sknetwork/visualization/graphs.py +261 -44
- sknetwork/visualization/tests/test_dendrograms.py +9 -9
- sknetwork/visualization/tests/test_graphs.py +63 -57
- scikit_network-0.31.0.dist-info/RECORD +0 -221
- sknetwork/embedding/louvain_hierarchy.py +0 -142
- sknetwork/embedding/tests/test_louvain_hierarchy.py +0 -19
- {scikit_network-0.31.0.dist-info → scikit_network-0.33.0.dist-info}/LICENSE +0 -0
- {scikit_network-0.31.0.dist-info → scikit_network-0.33.0.dist-info}/top_level.txt +0 -0
|
@@ -13,7 +13,6 @@ Development Lead
|
|
|
13
13
|
* Simon Delarue <simon.delarue@telecom-paris.fr>
|
|
14
14
|
* Marc Jeanmougin <marc.jeanmougin@telecom-paris.fr>
|
|
15
15
|
|
|
16
|
-
|
|
17
16
|
Former lead
|
|
18
17
|
-----------
|
|
19
18
|
|
|
@@ -39,3 +38,6 @@ Contributors
|
|
|
39
38
|
* Flávio Juvenal
|
|
40
39
|
* Wenzhuo Zhao
|
|
41
40
|
* Henry Carscadden
|
|
41
|
+
* Yiwen Peng
|
|
42
|
+
* Ahmed Zaiou
|
|
43
|
+
* Laurène David
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: scikit-network
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.33.0
|
|
4
4
|
Summary: Graph algorithms
|
|
5
5
|
Home-page: https://github.com/sknetwork-team/scikit-network
|
|
6
6
|
Author: Scikit-network team
|
|
@@ -15,16 +15,16 @@ Classifier: Intended Audience :: Science/Research
|
|
|
15
15
|
Classifier: License :: OSI Approved :: BSD License
|
|
16
16
|
Classifier: Natural Language :: English
|
|
17
17
|
Classifier: Programming Language :: Cython
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.9
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
-
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Requires-Python: >=3.9
|
|
23
23
|
Description-Content-Type: text/x-rst
|
|
24
24
|
License-File: LICENSE
|
|
25
25
|
License-File: AUTHORS.rst
|
|
26
|
-
Requires-Dist: numpy
|
|
27
|
-
Requires-Dist: scipy
|
|
26
|
+
Requires-Dist: numpy >=1.22.4
|
|
27
|
+
Requires-Dist: scipy >=1.7.3
|
|
28
28
|
|
|
29
29
|
.. image:: https://perso.telecom-paristech.fr/bonald/logo_sknetwork.png
|
|
30
30
|
:align: right
|
|
@@ -118,6 +118,28 @@ the `Journal of Machine Learning Research <https://jmlr.org>`_:
|
|
|
118
118
|
History
|
|
119
119
|
=======
|
|
120
120
|
|
|
121
|
+
0.33.0 (2024-07-16)
|
|
122
|
+
-------------------
|
|
123
|
+
|
|
124
|
+
* Add Python 3.12
|
|
125
|
+
* Drop Python 3.8
|
|
126
|
+
|
|
127
|
+
0.32.1 (2024-04-02)
|
|
128
|
+
-------------------
|
|
129
|
+
|
|
130
|
+
* Fix documentation
|
|
131
|
+
* Fix wheel upload
|
|
132
|
+
|
|
133
|
+
0.32.0 (2024-03-29)
|
|
134
|
+
-------------------
|
|
135
|
+
|
|
136
|
+
* Add Leiden clustering algorithm
|
|
137
|
+
* Add k-center clustering algorithm
|
|
138
|
+
* Add functions to detect and break cycles
|
|
139
|
+
* Add damping factor in diffusion
|
|
140
|
+
* Fix F1 scores
|
|
141
|
+
* Remove hierarchical Louvain embedding
|
|
142
|
+
* Get clustering coefficient for directed graphs
|
|
121
143
|
|
|
122
144
|
0.31.0 (2023-05-22)
|
|
123
145
|
-------------------
|
|
@@ -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.cp310-win_amd64.pyd,sha256=jQLNLhpONNZR64DL-PVcJrdfeJSw0D-v3-HEQE_uF-k,156160
|
|
16
|
+
sknetwork/classification/vote.cpp,sha256=3GCPgIT2iQQSyy1TgKbL_hsEPxbjv-wrZtROmK824o8,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.cp310-win_amd64.pyd,sha256=5iwb34jhoDSVCLcAf1tlsH52CUHsVz3d8tGlTKgpbqM,200704
|
|
30
|
+
sknetwork/clustering/leiden_core.cpp,sha256=I52NETYOkCB-4ct-FD30M0EDCR21TbxleJm6z74ADu4,1205017
|
|
31
|
+
sknetwork/clustering/leiden_core.pyx,sha256=kEppO0iSs0UqK3ybtSVIHRSojJ4KNfe6pUNo9sShh7E,4424
|
|
32
|
+
sknetwork/clustering/louvain.py,sha256=BjBlOw70MVgZHwpIWYo4CmLlzC58jALSTqbRE7x8z4I,11111
|
|
33
|
+
sknetwork/clustering/louvain_core.cp310-win_amd64.pyd,sha256=0OYNO53a3xSfJM9SNY1_eSVQAl0CfvXzkVfsGnE_iBk,196608
|
|
34
|
+
sknetwork/clustering/louvain_core.cpp,sha256=IfWVTZAIsO54dMSQYQ0lFnt1YNGd-fAIXPseEdXvsq4,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.cp310-win_amd64.pyd,sha256=W4m3yJBC0dGXTz0PgP0Kb80TR-MUZs9NS0aoFLEw8qM,226304
|
|
104
|
+
sknetwork/hierarchy/paris.cpp,sha256=SFDiU2qShCGDu0HsKuKLU6G2Q806FebaSOv-DCfrTkk,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.cp310-win_amd64.pyd,sha256=uGQWmk8vg2a-f7hij78XXSlpP4Xw8__ReazGDk94C8M,146432
|
|
115
|
+
sknetwork/linalg/diteration.cpp,sha256=FHyw3dsa3533l6fxiKMgrfyWY7MZhuGRr6Gk6Hq2obo,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.cp310-win_amd64.pyd,sha256=bUZ4WNVllEmbYqBipnvrtAsr6FcEjbp8jblIy_K7eQ8,164864
|
|
124
|
+
sknetwork/linalg/push.cpp,sha256=B5tQysJHoqz88HsdNVHk1ByAN1RQZGJOU_uGA553d24,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.cp310-win_amd64.pyd,sha256=HlsWz43fPsyuwdLHoUuj3BKmpCG9XnM-Fhnc08ezvIA,74752
|
|
155
|
+
sknetwork/ranking/betweenness.cpp,sha256=XNuSK6c2MlTX1MSnXHqGZjhcP1lPBO0Jzt6-RWDvwkI,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.cp310-win_amd64.pyd,sha256=LS7Bvr3p2T8tBga_KOYuN3H_xCW8bQYyatRd-yyGNJo,185344
|
|
177
|
+
sknetwork/topology/cliques.cpp,sha256=MBWzggo5qfq2H8h1QzvHEqXzc3P2NReMjNHvr-t27vY,1223705
|
|
178
|
+
sknetwork/topology/cliques.pyx,sha256=y6Ee5oaX7IdVhXXjSOazqT5dYo4gSTQ8Mq0u1Abg0vw,4659
|
|
179
|
+
sknetwork/topology/core.cp310-win_amd64.pyd,sha256=XEQC61IpXgd2h5IXQXeJiYjbdcOyGAaMh0gonOR4kgE,155648
|
|
180
|
+
sknetwork/topology/core.cpp,sha256=va9jE886eT8HSwIo_KJTxGo-JkEEZ7HhiWqKBzVEWHg,1132988
|
|
181
|
+
sknetwork/topology/core.pyx,sha256=0PO4HnOYivjrFY1NMlXHd7wscu0R5Fg-Toj3YVRwXDo,2555
|
|
182
|
+
sknetwork/topology/cycles.py,sha256=EgVtANHvY-MBcIe3yRVaBYzz1amsiV6GfuDEMIO3Kl0,9246
|
|
183
|
+
sknetwork/topology/minheap.cp310-win_amd64.pyd,sha256=NRf8BYfZbTBf5kphIrPmO9Fr0QHqsYJQQrWgJBuHVY0,133632
|
|
184
|
+
sknetwork/topology/minheap.cpp,sha256=X-6Zm7686gV0S7GQBgj-djurl6AQCG0FVPkwViZBFGI,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.cp310-win_amd64.pyd,sha256=tQ9Pb2nDo_OK736IPR4uwSsyfSAivIoH5yjb8cyl5T0,60416
|
|
189
|
+
sknetwork/topology/triangles.cpp,sha256=c_xOxlZVDsDfBMczR1CrPr_GwhgEaWyOE-S3owwMMKw,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.cp310-win_amd64.pyd,sha256=VUah9kUgiJihcU2Kujzlz2cQ08KGtz85EKbNJdrMusA,155648
|
|
193
|
+
sknetwork/topology/weisfeiler_lehman_core.cpp,sha256=1NZrFkd3bZVyHf7d7CDLSAttwEvjL-HCMi9hm4aYgEU,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=fDXqnFpBBnqSxsDqGs4iGbeTQND-IiCQk4XZQ3lG1HU,101
|
|
227
|
+
scikit_network-0.33.0.dist-info/top_level.txt,sha256=fkwspWQ9B3csqb5ENEOoVciRY6XftnMuz4MvTDQeSsg,10
|
|
228
|
+
scikit_network-0.33.0.dist-info/RECORD,,
|
sknetwork/__init__.py
CHANGED
sknetwork/classification/base.py
CHANGED
|
@@ -38,7 +38,7 @@ class BaseClassifier(Algorithm, ABC):
|
|
|
38
38
|
self.probs_row_ = None
|
|
39
39
|
self.probs_col_ = None
|
|
40
40
|
|
|
41
|
-
def predict(self, columns=False) -> np.ndarray:
|
|
41
|
+
def predict(self, columns: bool = False) -> np.ndarray:
|
|
42
42
|
"""Return the labels predicted by the algorithm.
|
|
43
43
|
|
|
44
44
|
Parameters
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Created
|
|
4
|
+
Created in March 2020
|
|
5
5
|
@author: Nathan de Lara <nathan.delara@polytechnique.org>
|
|
6
6
|
"""
|
|
7
7
|
from functools import partial
|
|
@@ -12,7 +12,7 @@ import numpy as np
|
|
|
12
12
|
from scipy import sparse
|
|
13
13
|
|
|
14
14
|
from sknetwork.classification.base import BaseClassifier
|
|
15
|
-
from sknetwork.linalg.
|
|
15
|
+
from sknetwork.linalg.normalizer import normalize
|
|
16
16
|
from sknetwork.ranking.base import BaseRanking
|
|
17
17
|
from sknetwork.utils.check import check_labels, check_n_jobs
|
|
18
18
|
from sknetwork.utils.format import get_adjacency_values
|
|
@@ -114,7 +114,7 @@ class RankClassifier(BaseClassifier):
|
|
|
114
114
|
seeds_labels = seeds_labels.astype(int)
|
|
115
115
|
labels_unique, n_classes = check_labels(seeds_labels)
|
|
116
116
|
seeds_all = self._process_labels(seeds_labels)
|
|
117
|
-
local_function = partial(self.algorithm.
|
|
117
|
+
local_function = partial(self.algorithm.fit_predict, adjacency)
|
|
118
118
|
with Pool(self.n_jobs) as pool:
|
|
119
119
|
scores = np.array(pool.map(local_function, seeds_all))
|
|
120
120
|
scores = scores.T
|
|
@@ -11,7 +11,7 @@ from scipy import sparse
|
|
|
11
11
|
|
|
12
12
|
from sknetwork.classification.base import BaseClassifier
|
|
13
13
|
from sknetwork.path.distances import get_distances
|
|
14
|
-
from sknetwork.linalg.
|
|
14
|
+
from sknetwork.linalg.normalizer import normalize
|
|
15
15
|
from sknetwork.utils.format import get_adjacency_values
|
|
16
16
|
from sknetwork.utils.membership import get_membership
|
|
17
17
|
from sknetwork.utils.neighbors import get_degrees
|
|
@@ -38,11 +38,14 @@ class DiffusionClassifier(BaseClassifier):
|
|
|
38
38
|
Labels of nodes.
|
|
39
39
|
probs_ : sparse.csr_matrix, shape (n_row, n_labels)
|
|
40
40
|
Probability distribution over labels.
|
|
41
|
-
labels_row_
|
|
42
|
-
Labels of rows
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
labels_row_ : np.ndarray
|
|
42
|
+
Labels of rows, for bipartite graphs.
|
|
43
|
+
labels_col_ : np.ndarray
|
|
44
|
+
Labels of columns, for bipartite graphs.
|
|
45
|
+
probs_row_ : sparse.csr_matrix, shape (n_row, n_labels)
|
|
46
|
+
Probability distributions over labels of rows, for bipartite graphs.
|
|
47
|
+
probs_col_ : sparse.csr_matrix, shape (n_col, n_labels)
|
|
48
|
+
Probability distributions over labels of columns, for bipartite graphs.
|
|
46
49
|
Example
|
|
47
50
|
-------
|
|
48
51
|
>>> from sknetwork.data import karate_club
|
|
@@ -52,7 +55,7 @@ class DiffusionClassifier(BaseClassifier):
|
|
|
52
55
|
>>> labels_true = graph.labels
|
|
53
56
|
>>> labels = {0: labels_true[0], 33: labels_true[33]}
|
|
54
57
|
>>> labels_pred = diffusion.fit_predict(adjacency, labels)
|
|
55
|
-
>>>
|
|
58
|
+
>>> round(np.mean(labels_pred == labels_true), 2)
|
|
56
59
|
0.97
|
|
57
60
|
|
|
58
61
|
References
|
|
@@ -71,20 +74,23 @@ class DiffusionClassifier(BaseClassifier):
|
|
|
71
74
|
self.scale = scale
|
|
72
75
|
|
|
73
76
|
def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray],
|
|
74
|
-
labels: Optional[Union[dict,
|
|
75
|
-
|
|
77
|
+
labels: Optional[Union[dict, list, np.ndarray]] = None,
|
|
78
|
+
labels_row: Optional[Union[dict, list, np.ndarray]] = None,
|
|
79
|
+
labels_col: Optional[Union[dict, list, np.ndarray]] = None, force_bipartite: bool = False) \
|
|
76
80
|
-> 'DiffusionClassifier':
|
|
77
81
|
"""Compute the solution to the Dirichlet problem (temperatures at equilibrium).
|
|
78
82
|
|
|
79
83
|
Parameters
|
|
80
84
|
----------
|
|
81
|
-
input_matrix :
|
|
85
|
+
input_matrix : sparse.csr_matrix, np.ndarray
|
|
82
86
|
Adjacency matrix or biadjacency matrix of the graph.
|
|
83
|
-
labels :
|
|
87
|
+
labels : dict, np.ndarray
|
|
84
88
|
Known labels (dictionary or vector of int). Negative values ignored.
|
|
85
|
-
labels_row,
|
|
86
|
-
Labels of rows
|
|
87
|
-
|
|
89
|
+
labels_row : dict, np.ndarray
|
|
90
|
+
Labels of rows for bipartite graphs. Negative values ignored.
|
|
91
|
+
labels_col : dict, np.ndarray
|
|
92
|
+
Labels of columns for bipartite graphs. Negative values ignored.
|
|
93
|
+
force_bipartite : bool
|
|
88
94
|
If ``True``, consider the input matrix as a biadjacency matrix (default = ``False``).
|
|
89
95
|
|
|
90
96
|
Returns
|
|
@@ -98,7 +104,10 @@ class DiffusionClassifier(BaseClassifier):
|
|
|
98
104
|
labels = values.astype(int)
|
|
99
105
|
if (labels < 0).all():
|
|
100
106
|
raise ValueError('At least one node must be given a non-negative label.')
|
|
101
|
-
|
|
107
|
+
labels_reindex = labels.copy()
|
|
108
|
+
labels_unique, inverse = np.unique(labels[labels >= 0], return_inverse=True)
|
|
109
|
+
labels_reindex[labels >= 0] = inverse
|
|
110
|
+
temperatures = get_membership(labels_reindex).toarray()
|
|
102
111
|
temperatures_seeds = temperatures[labels >= 0]
|
|
103
112
|
temperatures[labels < 0] = 0.5
|
|
104
113
|
diffusion = normalize(adjacency)
|
|
@@ -107,7 +116,7 @@ class DiffusionClassifier(BaseClassifier):
|
|
|
107
116
|
temperatures[labels >= 0] = temperatures_seeds
|
|
108
117
|
if self.centering:
|
|
109
118
|
temperatures -= temperatures.mean(axis=0)
|
|
110
|
-
labels_ = temperatures.argmax(axis=1)
|
|
119
|
+
labels_ = labels_unique[temperatures.argmax(axis=1)]
|
|
111
120
|
|
|
112
121
|
# softmax
|
|
113
122
|
if self.centering:
|
sknetwork/classification/knn.py
CHANGED
|
@@ -12,7 +12,7 @@ from scipy import sparse
|
|
|
12
12
|
|
|
13
13
|
from sknetwork.classification.base import BaseClassifier
|
|
14
14
|
from sknetwork.embedding.base import BaseEmbedding
|
|
15
|
-
from sknetwork.linalg.
|
|
15
|
+
from sknetwork.linalg.normalizer import get_norms, normalize
|
|
16
16
|
from sknetwork.utils.check import check_n_neighbors
|
|
17
17
|
from sknetwork.utils.format import get_adjacency_values
|
|
18
18
|
|
|
@@ -22,12 +22,12 @@ class NNClassifier(BaseClassifier):
|
|
|
22
22
|
|
|
23
23
|
Parameters
|
|
24
24
|
----------
|
|
25
|
-
n_neighbors :
|
|
25
|
+
n_neighbors : int
|
|
26
26
|
Number of nearest neighbors .
|
|
27
|
-
embedding_method :
|
|
27
|
+
embedding_method : :class:`BaseEmbedding`
|
|
28
28
|
Embedding method used to represent nodes in vector space.
|
|
29
29
|
If ``None`` (default), use identity.
|
|
30
|
-
normalize :
|
|
30
|
+
normalize : bool
|
|
31
31
|
If ``True``, apply normalization so that all vectors have norm 1 in the embedding space.
|
|
32
32
|
|
|
33
33
|
Attributes
|
|
@@ -36,10 +36,14 @@ class NNClassifier(BaseClassifier):
|
|
|
36
36
|
Labels of nodes.
|
|
37
37
|
probs_ : sparse.csr_matrix, shape (n_row, n_labels)
|
|
38
38
|
Probability distribution over labels.
|
|
39
|
-
labels_row_
|
|
40
|
-
Labels of rows
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
labels_row_ : np.ndarray
|
|
40
|
+
Labels of rows, for bipartite graphs.
|
|
41
|
+
labels_col_ : np.ndarray
|
|
42
|
+
Labels of columns, for bipartite graphs.
|
|
43
|
+
probs_row_ : sparse.csr_matrix, shape (n_row, n_labels)
|
|
44
|
+
Probability distributions over labels of rows, for bipartite graphs.
|
|
45
|
+
probs_col_ : sparse.csr_matrix, shape (n_col, n_labels)
|
|
46
|
+
Probability distributions over labels of columns, for bipartite graphs.
|
|
43
47
|
|
|
44
48
|
Example
|
|
45
49
|
-------
|
|
@@ -51,7 +55,7 @@ class NNClassifier(BaseClassifier):
|
|
|
51
55
|
>>> labels_true = graph.labels
|
|
52
56
|
>>> labels = {0: labels_true[0], 33: labels_true[33]}
|
|
53
57
|
>>> labels_pred = classifier.fit_predict(adjacency, labels)
|
|
54
|
-
>>>
|
|
58
|
+
>>> round(np.mean(labels_pred == labels_true), 2)
|
|
55
59
|
0.82
|
|
56
60
|
"""
|
|
57
61
|
def __init__(self, n_neighbors: int = 3, embedding_method: Optional[BaseEmbedding] = None, normalize: bool = True):
|
|
@@ -93,18 +97,21 @@ class NNClassifier(BaseClassifier):
|
|
|
93
97
|
|
|
94
98
|
return probs, labels
|
|
95
99
|
|
|
96
|
-
def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: Union[np.ndarray, dict] = None,
|
|
97
|
-
labels_row: Union[np.ndarray,
|
|
100
|
+
def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: Union[np.ndarray, list, dict] = None,
|
|
101
|
+
labels_row: Union[np.ndarray, list, dict] = None,
|
|
102
|
+
labels_col: Union[np.ndarray, list, dict] = None) -> 'NNClassifier':
|
|
98
103
|
"""Node classification by k-nearest neighbors in the embedding space.
|
|
99
104
|
|
|
100
105
|
Parameters
|
|
101
106
|
----------
|
|
102
|
-
input_matrix :
|
|
107
|
+
input_matrix : sparse.csr_matrix, np.ndarray
|
|
103
108
|
Adjacency matrix or biadjacency matrix of the graph.
|
|
104
|
-
labels :
|
|
105
|
-
Known labels
|
|
106
|
-
labels_row,
|
|
107
|
-
Known labels of rows
|
|
109
|
+
labels : np.ndarray, dict
|
|
110
|
+
Known labels. Negative values ignored.
|
|
111
|
+
labels_row : np.ndarray, dict
|
|
112
|
+
Known labels of rows, for bipartite graphs.
|
|
113
|
+
labels_col : np.ndarray, dict
|
|
114
|
+
Known labels of columns, for bipartite graphs.
|
|
108
115
|
|
|
109
116
|
Returns
|
|
110
117
|
-------
|
|
@@ -34,7 +34,7 @@ def get_accuracy_score(labels_true: np.ndarray, labels_pred: np.ndarray) -> floa
|
|
|
34
34
|
>>> import numpy as np
|
|
35
35
|
>>> labels_true = np.array([0, 0, 1, 1])
|
|
36
36
|
>>> labels_pred = np.array([0, 0, 0, 1])
|
|
37
|
-
>>> get_accuracy_score(labels_true, labels_pred)
|
|
37
|
+
>>> round(get_accuracy_score(labels_true, labels_pred), 2)
|
|
38
38
|
0.75
|
|
39
39
|
"""
|
|
40
40
|
check_vector_format(labels_true, labels_pred)
|
|
@@ -105,7 +105,7 @@ def get_f1_score(labels_true: np.ndarray, labels_pred: np.ndarray, return_precis
|
|
|
105
105
|
>>> import numpy as np
|
|
106
106
|
>>> labels_true = np.array([0, 0, 1, 1])
|
|
107
107
|
>>> labels_pred = np.array([0, 0, 0, 1])
|
|
108
|
-
>>>
|
|
108
|
+
>>> round(get_f1_score(labels_true, labels_pred), 2)
|
|
109
109
|
0.67
|
|
110
110
|
"""
|
|
111
111
|
values = set(labels_true[labels_true >= 0]) | set(labels_pred[labels_pred >= 0])
|
|
@@ -158,7 +158,7 @@ def get_f1_scores(labels_true: np.ndarray, labels_pred: np.ndarray, return_preci
|
|
|
158
158
|
mask = counts_pred > 0
|
|
159
159
|
precisions[mask] = counts_correct[mask] / counts_pred[mask]
|
|
160
160
|
f1_scores = np.zeros(n_labels)
|
|
161
|
-
mask = (
|
|
161
|
+
mask = (precisions > 0) & (recalls > 0)
|
|
162
162
|
f1_scores[mask] = 2 / (1 / precisions[mask] + 1 / recalls[mask])
|
|
163
163
|
if return_precision_recall:
|
|
164
164
|
return f1_scores, precisions, recalls
|
|
@@ -188,7 +188,7 @@ def get_average_f1_score(labels_true: np.ndarray, labels_pred: np.ndarray, avera
|
|
|
188
188
|
>>> import numpy as np
|
|
189
189
|
>>> labels_true = np.array([0, 0, 1, 1])
|
|
190
190
|
>>> labels_pred = np.array([0, 0, 0, 1])
|
|
191
|
-
>>>
|
|
191
|
+
>>> round(get_average_f1_score(labels_true, labels_pred), 2)
|
|
192
192
|
0.73
|
|
193
193
|
"""
|
|
194
194
|
if average == 'micro':
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Created
|
|
4
|
+
Created in March 2020
|
|
5
5
|
@author: Nathan de Lara <nathan.delara@polytechnique.org>
|
|
6
6
|
"""
|
|
7
7
|
from typing import Optional
|
|
@@ -17,9 +17,9 @@ class PageRankClassifier(RankClassifier):
|
|
|
17
17
|
|
|
18
18
|
Parameters
|
|
19
19
|
----------
|
|
20
|
-
damping_factor:
|
|
20
|
+
damping_factor: float
|
|
21
21
|
Probability to continue the random walk.
|
|
22
|
-
solver :
|
|
22
|
+
solver : str
|
|
23
23
|
Which solver to use: 'piteration', 'diteration', 'bicgstab', 'lanczos'.
|
|
24
24
|
n_iter : int
|
|
25
25
|
Number of iterations for some solvers such as ``'piteration'`` or ``'diteration'``.
|
|
@@ -29,13 +29,17 @@ class PageRankClassifier(RankClassifier):
|
|
|
29
29
|
Attributes
|
|
30
30
|
----------
|
|
31
31
|
labels_ : np.ndarray, shape (n_labels,)
|
|
32
|
-
|
|
32
|
+
Labels of nodes.
|
|
33
33
|
probs_ : sparse.csr_matrix, shape (n_row, n_labels)
|
|
34
34
|
Probability distribution over labels.
|
|
35
|
-
labels_row_
|
|
36
|
-
Labels of rows
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
labels_row_ : np.ndarray
|
|
36
|
+
Labels of rows, for bipartite graphs.
|
|
37
|
+
labels_col_ : np.ndarray
|
|
38
|
+
Labels of columns, for bipartite graphs.
|
|
39
|
+
probs_row_ : sparse.csr_matrix, shape (n_row, n_labels)
|
|
40
|
+
Probability distributions over labels of rows, for bipartite graphs.
|
|
41
|
+
probs_col_ : sparse.csr_matrix, shape (n_col, n_labels)
|
|
42
|
+
Probability distributions over labels of columns, for bipartite graphs.
|
|
39
43
|
|
|
40
44
|
Example
|
|
41
45
|
-------
|