scikit-network 0.32.1__cp311-cp311-win_amd64.whl → 0.33.0__cp311-cp311-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.

Files changed (60) hide show
  1. {scikit_network-0.32.1.dist-info → scikit_network-0.33.0.dist-info}/AUTHORS.rst +0 -1
  2. {scikit_network-0.32.1.dist-info → scikit_network-0.33.0.dist-info}/METADATA +9 -3
  3. {scikit_network-0.32.1.dist-info → scikit_network-0.33.0.dist-info}/RECORD +60 -60
  4. {scikit_network-0.32.1.dist-info → scikit_network-0.33.0.dist-info}/WHEEL +1 -1
  5. sknetwork/__init__.py +1 -1
  6. sknetwork/classification/diffusion.py +4 -3
  7. sknetwork/classification/knn.py +4 -3
  8. sknetwork/classification/metrics.py +3 -3
  9. sknetwork/classification/propagation.py +6 -5
  10. sknetwork/classification/vote.cp311-win_amd64.pyd +0 -0
  11. sknetwork/classification/vote.cpp +1 -1
  12. sknetwork/clustering/leiden.py +2 -1
  13. sknetwork/clustering/leiden_core.cp311-win_amd64.pyd +0 -0
  14. sknetwork/clustering/leiden_core.cpp +1 -1
  15. sknetwork/clustering/louvain.py +3 -3
  16. sknetwork/clustering/louvain_core.cp311-win_amd64.pyd +0 -0
  17. sknetwork/clustering/louvain_core.cpp +1 -1
  18. sknetwork/clustering/tests/test_kcenters.py +5 -37
  19. sknetwork/data/__init__.py +1 -1
  20. sknetwork/data/base.py +7 -2
  21. sknetwork/data/load.py +18 -21
  22. sknetwork/data/models.py +15 -15
  23. sknetwork/data/parse.py +19 -17
  24. sknetwork/data/tests/test_API.py +3 -3
  25. sknetwork/data/tests/test_base.py +2 -2
  26. sknetwork/data/tests/test_toy_graphs.py +33 -33
  27. sknetwork/data/toy_graphs.py +35 -43
  28. sknetwork/embedding/base.py +3 -0
  29. sknetwork/embedding/louvain_embedding.py +0 -26
  30. sknetwork/embedding/svd.py +0 -4
  31. sknetwork/embedding/tests/test_louvain_embedding.py +9 -4
  32. sknetwork/embedding/tests/test_svd.py +6 -0
  33. sknetwork/gnn/gnn_classifier.py +1 -1
  34. sknetwork/hierarchy/louvain_hierarchy.py +10 -6
  35. sknetwork/hierarchy/paris.cp311-win_amd64.pyd +0 -0
  36. sknetwork/hierarchy/paris.cpp +757 -755
  37. sknetwork/hierarchy/paris.pyx +4 -3
  38. sknetwork/hierarchy/tests/test_metrics.py +4 -4
  39. sknetwork/linalg/diteration.cp311-win_amd64.pyd +0 -0
  40. sknetwork/linalg/diteration.cpp +1 -1
  41. sknetwork/linalg/push.cp311-win_amd64.pyd +0 -0
  42. sknetwork/linalg/push.cpp +123 -123
  43. sknetwork/ranking/betweenness.cp311-win_amd64.pyd +0 -0
  44. sknetwork/ranking/betweenness.cpp +1 -1
  45. sknetwork/regression/diffusion.py +6 -4
  46. sknetwork/topology/cliques.cp311-win_amd64.pyd +0 -0
  47. sknetwork/topology/cliques.cpp +123 -123
  48. sknetwork/topology/core.cp311-win_amd64.pyd +0 -0
  49. sknetwork/topology/core.cpp +123 -123
  50. sknetwork/topology/minheap.cp311-win_amd64.pyd +0 -0
  51. sknetwork/topology/minheap.cpp +1 -1
  52. sknetwork/topology/triangles.cp311-win_amd64.pyd +0 -0
  53. sknetwork/topology/triangles.cpp +1 -1
  54. sknetwork/topology/weisfeiler_lehman_core.cp311-win_amd64.pyd +0 -0
  55. sknetwork/topology/weisfeiler_lehman_core.cpp +1 -1
  56. sknetwork/utils/__init__.py +1 -1
  57. sknetwork/utils/values.py +5 -3
  58. sknetwork/visualization/graphs.py +1 -1
  59. {scikit_network-0.32.1.dist-info → scikit_network-0.33.0.dist-info}/LICENSE +0 -0
  60. {scikit_network-0.32.1.dist-info → scikit_network-0.33.0.dist-info}/top_level.txt +0 -0
@@ -13,7 +13,6 @@ Development Lead
13
13
  * Simon Delarue <simon.delarue@telecom-paris.fr>
14
14
  * Marc Jeanmougin <marc.jeanmougin@telecom-paris.fr>
15
15
 
16
-
17
16
  Former lead
18
17
  -----------
19
18
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: scikit-network
3
- Version: 0.32.1
3
+ Version: 0.33.0
4
4
  Summary: Graph algorithms
5
5
  Home-page: https://github.com/sknetwork-team/scikit-network
6
6
  Author: Scikit-network team
@@ -15,11 +15,11 @@ Classifier: Intended Audience :: Science/Research
15
15
  Classifier: License :: OSI Approved :: BSD License
16
16
  Classifier: Natural Language :: English
17
17
  Classifier: Programming Language :: Cython
18
- Classifier: Programming Language :: Python :: 3.8
19
18
  Classifier: Programming Language :: Python :: 3.9
20
19
  Classifier: Programming Language :: Python :: 3.10
21
20
  Classifier: Programming Language :: Python :: 3.11
22
- Requires-Python: >=3.8
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Requires-Python: >=3.9
23
23
  Description-Content-Type: text/x-rst
24
24
  License-File: LICENSE
25
25
  License-File: AUTHORS.rst
@@ -118,6 +118,12 @@ 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
+
121
127
  0.32.1 (2024-04-02)
122
128
  -------------------
123
129
 
@@ -1,4 +1,4 @@
1
- sknetwork/__init__.py,sha256=hbJ__5rv06WI2XnJW8lWLpJkXp3Ju9hyR0aGBzdG0IY,554
1
+ sknetwork/__init__.py,sha256=qVhfMlfW4ek8wa9mv2zIyb_BiMWl5twz8457vyHTAEg,554
2
2
  sknetwork/base.py,sha256=_63mkwqXFDke_0ve9DIZJiMHboMYqBONa7B08gao440,2018
3
3
  sknetwork/log.py,sha256=qDR-dnlzJC0ETlotPAy_IbLiQPgu8Vn90mgkqfvT5W0,462
4
4
  sknetwork/sknetwork.py,sha256=Qtq3EpSkdAFqQNQPDXTAouXS784LkR8Rh2D5s5w5_tc,47
@@ -7,13 +7,13 @@ sknetwork/test_log.py,sha256=ucX3w138eDyD0Wnpk9QEsPoQgAPTJNPy9twzMf5TjQ8,334
7
7
  sknetwork/classification/__init__.py,sha256=QoS3fTnCZ0nFdlDkEphEYqj1NDEf23_aqsfP0G4zLMM,483
8
8
  sknetwork/classification/base.py,sha256=a6JczKf23arkC4Xx6rUEI0gLFAPoyPXKTXCdhV6_bWI,4432
9
9
  sknetwork/classification/base_rank.py,sha256=BChHu6sDkdq_M6coJsC3hac3HWPE2lholi3g97J6lWw,4655
10
- sknetwork/classification/diffusion.py,sha256=uliGned1_GGJLACzXMNFtkYbTyvHgfaUNgS535ZzreQ,5670
11
- sknetwork/classification/knn.py,sha256=p9ZHNdaMOnrd6dmVNyieGBYrhFMrjXnkD8MFCxVmJqw,5444
12
- sknetwork/classification/metrics.py,sha256=f66RlKyauNJFr8iuud4s9tntnEa4_Lp28zVWuwhUE44,7007
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
13
  sknetwork/classification/pagerank.py,sha256=Nvmj-Y1YFXQxCZpcUhXfKlc6S5BebnIkJZ8DRsyzDTs,2652
14
- sknetwork/classification/propagation.py,sha256=WkB4yG3V13a0d5yYuuecuHblQ2Z0L5PKLpL3gUgy8zs,5905
15
- sknetwork/classification/vote.cp311-win_amd64.pyd,sha256=ePg6ahYduoLsckjvBNgqtfrmKexbywKjFHkxnNQ1kfI,155648
16
- sknetwork/classification/vote.cpp,sha256=tkQ7miFAOTu6-9rDTRcRs48W3GAG798EE8WFZ2nHvP0,1023081
14
+ sknetwork/classification/propagation.py,sha256=jH5UOM2JkjW-1oxBLx7NaceOwKDBw0hiYKp415Hc8q4,5945
15
+ sknetwork/classification/vote.cp311-win_amd64.pyd,sha256=Jp0Acg0C6YaNX_D81J1-RgGkeRdqrgCjHvjEfl3nYMI,156160
16
+ sknetwork/classification/vote.cpp,sha256=Ndn36UE0WiS9JgDuB6nsCssld7ESBeS2dfj3HRKrfnE,1023081
17
17
  sknetwork/classification/vote.pyx,sha256=-mNsL96aaA1UL-qfeUgZlbdvKZUK9R4MLmq0BNFWVKA,1640
18
18
  sknetwork/classification/tests/__init__.py,sha256=Per0oy1Frnm5jB7dnpod1g_xbgYhqkNteWQV5cemcH0,32
19
19
  sknetwork/classification/tests/test_API.py,sha256=WV5cY8yhTHBHYRbDE3InZ4v-agymxLPMKxa2NqjbWZo,1154
@@ -25,62 +25,62 @@ sknetwork/classification/tests/test_propagation.py,sha256=GzhpCpg0ijLvXuWtABolq0
25
25
  sknetwork/clustering/__init__.py,sha256=Ju06e1zwMUfOn_1soTOlxJJu1F5u9VNxFXWN8TTParo,443
26
26
  sknetwork/clustering/base.py,sha256=LsH_wlP19lDnIZWVUXbKwSta05ii5dWMqS-J-AkY6HE,6104
27
27
  sknetwork/clustering/kcenters.py,sha256=MKmsR7zWTITeEAqFyRDKpglU7yZZEjR8H0TLJXdDjtw,8942
28
- sknetwork/clustering/leiden.py,sha256=x2M1tVMlupu3KK8D7RpfB0hzV5iwf0den1y9NwC1Jko,9921
29
- sknetwork/clustering/leiden_core.cp311-win_amd64.pyd,sha256=Pvkg1Xl5f17gcpLA6PZQ6kCCQmk9aDwSo2j7dSqSQM4,201216
30
- sknetwork/clustering/leiden_core.cpp,sha256=vpfrWRJT-0tFI8KSnyMmNAgqOIHCo-9ADhCGWykWVFE,1205017
28
+ sknetwork/clustering/leiden.py,sha256=THQdYR_DhGF8xJLTEiSmd8cx0Y70ms5nZ1emnoqcxBg,9924
29
+ sknetwork/clustering/leiden_core.cp311-win_amd64.pyd,sha256=8pthHiu0RIldDcoU4K15urhj0ASBpoLdqaWzkZazQdw,201216
30
+ sknetwork/clustering/leiden_core.cpp,sha256=SfOPuWHH5psF8nYdXl63SE37dSYLUkHLIObVL3xBuo4,1205017
31
31
  sknetwork/clustering/leiden_core.pyx,sha256=kEppO0iSs0UqK3ybtSVIHRSojJ4KNfe6pUNo9sShh7E,4424
32
- sknetwork/clustering/louvain.py,sha256=Em7A22oNamwBb0IAFySLa9HUmdu4LjAuo3XAtJqtHC0,11077
33
- sknetwork/clustering/louvain_core.cp311-win_amd64.pyd,sha256=eJN_gLLHDt6ZDB-iWwatT83GlhLqqkrM0bsNdfQytoA,197120
34
- sknetwork/clustering/louvain_core.cpp,sha256=msZERhRZoNax_N3rXGk_TR5nYFwzzRteZ3bdU3g2sbA,1185581
32
+ sknetwork/clustering/louvain.py,sha256=BjBlOw70MVgZHwpIWYo4CmLlzC58jALSTqbRE7x8z4I,11111
33
+ sknetwork/clustering/louvain_core.cp311-win_amd64.pyd,sha256=roVMJbv461ovBCK6jVu75mTgG8eqhy7C--tlx9ooeFU,197120
34
+ sknetwork/clustering/louvain_core.cpp,sha256=JGcGcNh5_yNPQJZy4MEGQKiIA5F7WJ123HzHXqacQA0,1185581
35
35
  sknetwork/clustering/louvain_core.pyx,sha256=2KPnBhBeSlIxmoScZW7jwsmVxJyAyHQs3pcH9AfBM2Y,4213
36
36
  sknetwork/clustering/metrics.py,sha256=ptLLtUpFtdKLZ4lcx_MN-PpOrzv--PWhAcEFoFghccM,3151
37
37
  sknetwork/clustering/postprocess.py,sha256=uynPXvjYXiFNShxGZyLkpIwRl5nIlIVEm-auMCNZA0o,2105
38
38
  sknetwork/clustering/propagation_clustering.py,sha256=s-Y7EQEqGM2wdl1zAOQzfmy-8LGab1eB00u_AOkYzl0,3885
39
39
  sknetwork/clustering/tests/__init__.py,sha256=tCA27jkL3pdstka9XWQEA1NbC6ZqL7Rf-1V1UcySCEE,28
40
40
  sknetwork/clustering/tests/test_API.py,sha256=PKxuTh49IyKzwkLfgFAmJiuBhWJQBEYtNxzOEYgc5uE,1566
41
- sknetwork/clustering/tests/test_kcenters.py,sha256=f2nBCcj4TRZ9FJVn7r60w1AI5gzDP1s70ve9aW1PbDs,3569
41
+ sknetwork/clustering/tests/test_kcenters.py,sha256=BWvcTo8iNDFbKawVrRe8N6q4ujS0Co4MHpkT-P8_A9U,2037
42
42
  sknetwork/clustering/tests/test_leiden.py,sha256=oEN0Dz9popCEYE-qqEdmTEqqr3af9TB3WDmRNWYAidE,1189
43
43
  sknetwork/clustering/tests/test_louvain.py,sha256=rYZLrb8Ld_F2KDCos5RP9-1szkVXHnXLWHd4SbOwvAY,4807
44
44
  sknetwork/clustering/tests/test_metrics.py,sha256=ZTr4T-d-g6kQJinei9VH6Teb_rOScmj5XLG168EI5LQ,1868
45
45
  sknetwork/clustering/tests/test_postprocess.py,sha256=41l4coS_1CHqGOCnnucqxU6UkXws89YVMjef162ZTEQ,1417
46
- sknetwork/data/__init__.py,sha256=QScOMfOfm2j7rPaNLPGNc9TwHQGebWRZCBHHbmZarO8,265
47
- sknetwork/data/base.py,sha256=O_EN3j1hoSbHc96qxx-dAe5SsLGdLE1cqiX9fl0xjAw,658
48
- sknetwork/data/load.py,sha256=AkFI4qdzP2mPd43Rm321NQa4uSERb5D4Hs2lciuyn-Y,14769
49
- sknetwork/data/models.py,sha256=luDuvYYcruOEw94iXNEnl5IbYJCVGtxB6jhDWVBmJH0,13615
50
- sknetwork/data/parse.py,sha256=bmAM5LdMleZfYQ8hx1NEd3TIRjxwemoVOsNHEGv-0ss,27539
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
51
  sknetwork/data/test_graphs.py,sha256=KRRok5ElYWh1NV3i_2enLLjdeKe8zBg_3xqFXgOOY6I,2568
52
52
  sknetwork/data/timeout.py,sha256=mXSqgKFRc6AVZBlIobN2xPYJjAyQOClKH3KQJ5M_4Sw,1085
53
- sknetwork/data/toy_graphs.py,sha256=xdgNQjzwswpkCVioUR0_EzoQiS6QbuOAD0mgTs3Fphg,25654
53
+ sknetwork/data/toy_graphs.py,sha256=VDEwMLEuu562G2u22xpwobcNTl756ZiL6Moc4XtJbn4,25243
54
54
  sknetwork/data/tests/__init__.py,sha256=LtUcKFe5CeBpspRwa6A2uX2cVEf_uPpOo2mGkH7W8cI,20
55
- sknetwork/data/tests/test_API.py,sha256=aytP2cJV9px-d-SogJn4SYPnTFJ1Xt2coEW7-EiljjM,987
56
- sknetwork/data/tests/test_base.py,sha256=h1-1fEyWuVpAOnZDFmkSuhngrQdv3N2vEMa_Wpt8dVU,322
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
57
  sknetwork/data/tests/test_load.py,sha256=wuLVlJ-lquoIrsr0UBI-gakW7BjGBZaSyEPavxX0NVY,3645
58
58
  sknetwork/data/tests/test_models.py,sha256=_2y5xZrWbE3XZltd4n-z84YwyJhPcpaBa2TxXMvhXF4,1967
59
59
  sknetwork/data/tests/test_parse.py,sha256=K_HTO7L5axpnt2Fs3hmOMudufZZ2shps94COEABcMx4,12967
60
60
  sknetwork/data/tests/test_test_graphs.py,sha256=3QWshIikkBtRl3C7ATc_zO5UkwOh1wZwD7gYm0CEj8o,878
61
- sknetwork/data/tests/test_toy_graphs.py,sha256=wQ2X-CVv9oycBUAaB68aJqg-0o3yMlaVtZ9D4thZJrc,2205
61
+ sknetwork/data/tests/test_toy_graphs.py,sha256=vn-TTT9w8TX8Lzof9fV8eEnJr5_NyBj1Zd3rSPB7IU4,2265
62
62
  sknetwork/embedding/__init__.py,sha256=hTtHHVXNdwdGSZuAmLvTm3yMmHWxYKrFwwo1MuOPTUI,418
63
- sknetwork/embedding/base.py,sha256=YWKLjfChvWKWuD3FE5mlqtNVzczzvfojLQvvgV73ACM,2681
63
+ sknetwork/embedding/base.py,sha256=cm52qsqGsPesvDOF5LxOp8rwLhs36dvNlDu_e9jBU0A,2757
64
64
  sknetwork/embedding/force_atlas.py,sha256=yjlL5Qfv19KJdwtziTDOklrW_HP5CkMJIoOL6t2cYsA,7650
65
- sknetwork/embedding/louvain_embedding.py,sha256=3jSFxiWImFc1bUEY1ZXdbvslRxL9wl2CeERZFGF5qKM,7124
65
+ sknetwork/embedding/louvain_embedding.py,sha256=MWPaZyDtmeEsjDaHMqaztn-3T5U_Q7kWnaHTchPzITc,6230
66
66
  sknetwork/embedding/random_projection.py,sha256=b5zGehuWT-dpA1KSw5xv3UZXZGNcP8PalEjXYWfgPT8,5137
67
67
  sknetwork/embedding/spectral.py,sha256=xN_5yxJV2KJ--DOpv7tyy5yU25BHVBWnXbywQ0L_6YE,5689
68
68
  sknetwork/embedding/spring.py,sha256=Cl1airI_mSWmV1isKmcxqjY1uxw7NcH7xMwHc8ADmHA,7349
69
- sknetwork/embedding/svd.py,sha256=isI2y9GfCGA5VJmogHrtq2MDVaxuWCZsEvh4YqgfB2k,15097
69
+ sknetwork/embedding/svd.py,sha256=ycn5fIaw7K7vTz7_MGxKN8XtDsnTqUIqXIADO8_M_GE,15001
70
70
  sknetwork/embedding/tests/__init__.py,sha256=PsZQYFNrSmRW_KIuNX3qVtxtZVn8yV18d0mk8Y6ieck,27
71
71
  sknetwork/embedding/tests/test_API.py,sha256=0KKY3p_bF2f3QPsReW9IrAtC5KGw1Ok3J0kYUT1hrl8,1538
72
72
  sknetwork/embedding/tests/test_force_atlas.py,sha256=dYiyWroqB7UKNW9MTYpGP6e7tF_qPWqVZNmZBndd_ks,1155
73
- sknetwork/embedding/tests/test_louvain_embedding.py,sha256=yPKM_JG2v_kzYkp4lZ7laalZNq0qhjM6pWmyGWecCkk,853
73
+ sknetwork/embedding/tests/test_louvain_embedding.py,sha256=0WTNALEfnJoDo5P84DyXmwpcmbuUXqR3G5S_iM0W30A,1149
74
74
  sknetwork/embedding/tests/test_random_projection.py,sha256=zz6q0G-pG-G2gOefhr-yuPBQhNDNtXB8jz7_dld1ZpE,1221
75
75
  sknetwork/embedding/tests/test_spectral.py,sha256=w-gokQ_UgeXSQv69BB_Dk6shkWiO6iJbJGl5ih0JNRI,3978
76
76
  sknetwork/embedding/tests/test_spring.py,sha256=z3eT-mFcfNSoMWPKQF-Dz_ZjAsJplQrx1yspiaeFRBw,1693
77
- sknetwork/embedding/tests/test_svd.py,sha256=OZTpXRemHEpGYSfYb2AosXhLgruaRpAhyQjNcqQhw0Y,1232
77
+ sknetwork/embedding/tests/test_svd.py,sha256=LXIDhxUDxJBLnVnq567yVqs0eTJFPqBhzriPBOqa6k0,1506
78
78
  sknetwork/gnn/__init__.py,sha256=808PNZEYNHZrIBpKqPzAMKES8yhN6QXEVUWkZVJIJWI,529
79
79
  sknetwork/gnn/activation.py,sha256=rhvEXgrIix4nZ9I3WYZ0e1MID_DESCCC_XlVcOa4Wpo,3677
80
80
  sknetwork/gnn/base.py,sha256=qHnKsfsUW4LIdwm3vzfAahBjweCkIDRzk62i4piNBuc,5889
81
81
  sknetwork/gnn/base_activation.py,sha256=Kxs_d4aPOpMRXZMBAW7WKkA_uWLXRM7XM-JqE4nFHhc,2395
82
82
  sknetwork/gnn/base_layer.py,sha256=_zL_SyVYvhxch9N1i44Qkgar_M5xVRz7JcxqUjVwDjY,4057
83
- sknetwork/gnn/gnn_classifier.py,sha256=EyanIIdGfeshOU_3IwH90PX6GG5nCav6msQN9zfJixo,12918
83
+ sknetwork/gnn/gnn_classifier.py,sha256=RmqgyRgKkdU1Bht5i390xulBzLkuvFwqFkUnZGx7r9c,12915
84
84
  sknetwork/gnn/layer.py,sha256=JBNFABBgGtMeXdQaS8wGnsSd7Jqs18jbIguITTOCQRE,5679
85
85
  sknetwork/gnn/loss.py,sha256=FwULPjbUe3OFIhIBKJoNfdYX41ALckX2ANKvC69yyoI,5342
86
86
  sknetwork/gnn/neighbor_sampler.py,sha256=l5OkylbRQsDpmkfeHAaSA7gHi5l7OUKtL4YvH-YTMWM,1929
@@ -98,21 +98,21 @@ sknetwork/gnn/tests/test_optimizer.py,sha256=OZnIeO__kNt8HXLHr-WHGzvDsTy4LvJ19p9
98
98
  sknetwork/gnn/tests/test_utils.py,sha256=MJvOXEWouRiIVaPM76W0hizt3jFb-1_BXHLd1zkPzSg,1884
99
99
  sknetwork/hierarchy/__init__.py,sha256=-2-y7iBVQRanXLSl9kY8VASJVqx37trYmVNcz74QsUc,418
100
100
  sknetwork/hierarchy/base.py,sha256=DvVUNgJgfaFlWyl4QbdHmp-VldPMFLPx9irt74kpyrU,2789
101
- sknetwork/hierarchy/louvain_hierarchy.py,sha256=MqIWRoqAl3ufgsV8r707T8qlwaqB_km_yczRcJWh_4w,9826
101
+ sknetwork/hierarchy/louvain_hierarchy.py,sha256=MoO0mlvuFUFNYssl1zOAWlcyg-2OLzJI6VFPjIS1FiA,10118
102
102
  sknetwork/hierarchy/metrics.py,sha256=5WZLsSLYKifLIQ9aPrXyzvPtTFN5ROSlNivhV-n9VuY,8280
103
- sknetwork/hierarchy/paris.cp311-win_amd64.pyd,sha256=f2oLb1J4RSCVOw-ycOKc5skpVepm5zcVFmiNmi5UO9U,226304
104
- sknetwork/hierarchy/paris.cpp,sha256=xOAVXw-t84Q2iq47cCfuML4hVh6isX4zS4cCUc_Wqqo,1471055
105
- sknetwork/hierarchy/paris.pyx,sha256=YfHQwrZx4ddzsKZ9K4yv1obIrZSVDzY0WjVhM5Qi8DI,11998
103
+ sknetwork/hierarchy/paris.cp311-win_amd64.pyd,sha256=XHuwpcyv-1k-mbSTDK036hRLbkcP0qpbiiT7_qUkzcM,226816
104
+ sknetwork/hierarchy/paris.cpp,sha256=_LsTL_SETUgiC22Q2d-kGgnusQXUjqDYYepdyVQ1XJk,1472626
105
+ sknetwork/hierarchy/paris.pyx,sha256=CSr7eJBGPQoHff3czQpDuaW3V16ZsgdnVoFQ_rkFWBk,12129
106
106
  sknetwork/hierarchy/postprocess.py,sha256=81Hj7eCHvU_2mdq0FTeYuZAqk4FIudZfZbvU39_sqyM,12422
107
107
  sknetwork/hierarchy/tests/__init__.py,sha256=jRlC4pbyKuxaiXvByYK-4ix7DwYWxpjwKNvSXZ7rQJE,27
108
108
  sknetwork/hierarchy/tests/test_API.py,sha256=f0QtuCDA5dRwhPogtwbjsVlDRTpk84ewkXgc6rHCSWU,744
109
109
  sknetwork/hierarchy/tests/test_algos.py,sha256=HbF1QCFcpbrybRLrz7C0-2yY7s97vciWNiktbbvubwg,1395
110
- sknetwork/hierarchy/tests/test_metrics.py,sha256=rcdFVeWf50bYnem55gmUaDfE6AmJuW8RtYEQcigqZ60,3222
110
+ sknetwork/hierarchy/tests/test_metrics.py,sha256=sljCTCIXNvanQ3Bf-g0x0jyjXs05EBlCR9Rcy-j9kTU,3222
111
111
  sknetwork/hierarchy/tests/test_postprocess.py,sha256=Bm1_XU6OgwZr_1B28IA5m_HZRqI7GMwlTLpzkXux__Y,2266
112
112
  sknetwork/linalg/__init__.py,sha256=COkAHs_EsxWzd_tHl6qq8laEfSsjoMuWVx3VbNFEgzU,542
113
113
  sknetwork/linalg/basics.py,sha256=WDlylrkBTCQpjXGtzs8kshJYfpo0h3uM8TMhHmnAnnM,1179
114
- sknetwork/linalg/diteration.cp311-win_amd64.pyd,sha256=sYZc5HoSIb07-g2n6EYgl7_vtC4PZZSJHg3NenNDqQM,145920
115
- sknetwork/linalg/diteration.cpp,sha256=KrRjV1TUFLHYHkHxOkWenscBuSl0LNFJtSNF2b8V7bc,1019891
114
+ sknetwork/linalg/diteration.cp311-win_amd64.pyd,sha256=ep0OndCyw4sarMCMxygsivQmCly1yY1TXo-HbMyh9gw,146432
115
+ sknetwork/linalg/diteration.cpp,sha256=vrbP734ncvc-Ylw4fsCRFcTnIu3SGK86_4IODJVedVw,1019891
116
116
  sknetwork/linalg/diteration.pyx,sha256=1r7a1usqftiBNTPOAwHFQPK__nZ67J-87wQLM25GqEU,1431
117
117
  sknetwork/linalg/eig_solver.py,sha256=lMqxTg66_T-LsgGqc9oo_ngxpTceekavnCFOANWEpPA,2793
118
118
  sknetwork/linalg/laplacian.py,sha256=qifd-8iltcTKCQW-7fG5z3XfwVrrrCeaBqbViBQCLf0,416
@@ -120,8 +120,8 @@ sknetwork/linalg/normalizer.py,sha256=Z0-paMHwp51aY_ssCP2RfXNVQqTFA9gsIHfy-fhG5Q
120
120
  sknetwork/linalg/operators.py,sha256=nNTtdI_I0HEhnpHOxUYRHmEzUDcz9CbwjDc5eEKzlNQ,7657
121
121
  sknetwork/linalg/polynome.py,sha256=qnIhfpRk26JMinuNCrZO1EDj5ci65ZLxkKJyhO7HxpE,2201
122
122
  sknetwork/linalg/ppr_solver.py,sha256=D7LUMQgFAtnGhh8pxpKrISH1H9d5MknFpHib8bPA5x4,6703
123
- sknetwork/linalg/push.cp311-win_amd64.pyd,sha256=YbdvyzBDfow1zt3o_jni43ccgtEDeTkYA0szuXBqYRE,163840
124
- sknetwork/linalg/push.cpp,sha256=LYf5Z_Jm62v7yY9hYmbqq7oMnzt9Ly9ClspfYoI23XY,1156910
123
+ sknetwork/linalg/push.cp311-win_amd64.pyd,sha256=0bkDP4oXrOkbKp7pYp6l_4YrJS78NF2zIYJLjfq9oMo,164864
124
+ sknetwork/linalg/push.cpp,sha256=mfIn8C22kYuLSUhtButcUAfHF1Zei_rVILDgsQa7n_E,1156910
125
125
  sknetwork/linalg/push.pyx,sha256=79ycseJ1jOznzc1_KSexTGy_0dlX1jQVnf_WI8Ufvgc,2429
126
126
  sknetwork/linalg/sparse_lowrank.py,sha256=-6-cNRs6tpiNqA8ah3mBKWap3Nh9GQHTFIarPjIiC7U,5170
127
127
  sknetwork/linalg/svd_solver.py,sha256=XxP4AyKQInBQN3imcbtahXseZ4YyKj4ZI2UAJK1mDs4,2772
@@ -151,8 +151,8 @@ sknetwork/path/tests/test_search.py,sha256=wJzwbbe86axJRmausJp-KcsNTB9n7kpo6YBd7
151
151
  sknetwork/path/tests/test_shortest_path.py,sha256=zeM-qgbTs3i29gvF568otKOKgv_pbryV_yGefThLEIY,1422
152
152
  sknetwork/ranking/__init__.py,sha256=lbkUSZ3alkLK0xGiUx5ptPqhQKIjIKK80uPk0KymJPc,356
153
153
  sknetwork/ranking/base.py,sha256=W3gw9j_ikhyETr3dpEYo9RINUUHlSn8Dez_eAnlIsDg,1573
154
- sknetwork/ranking/betweenness.cp311-win_amd64.pyd,sha256=b7SQHjCdtMTrHZGM-h33pA4LB80moBgJE_D9j4q1fM8,75264
155
- sknetwork/ranking/betweenness.cpp,sha256=0QMMW5wbOyp48-I2dq6kde3Vdy4Vrj8cfrCHP-pS59Q,380617
154
+ sknetwork/ranking/betweenness.cp311-win_amd64.pyd,sha256=03zaBbvLP50nAP_vHIk7RyRNi7ilax_YPHU7ENjvhTo,75776
155
+ sknetwork/ranking/betweenness.cpp,sha256=WAzhmmdLkuwr96zcM5yCftxDxPwx2gJXENGdUs-Xfdo,380617
156
156
  sknetwork/ranking/betweenness.pyx,sha256=fe5_gwRQ0TaFi_0-vUGfy6XC5kW5un5xly7-xVDgxrU,3184
157
157
  sknetwork/ranking/closeness.py,sha256=CvdAaqsM8HvAi6zGCuLcVF0BUu9n9UPBz_YxZhFF_sM,2932
158
158
  sknetwork/ranking/hits.py,sha256=uhGJH2C0U9hLsVRutI6M1ulbEIM7L6dCeYqiAhtTD9A,2855
@@ -168,29 +168,29 @@ sknetwork/ranking/tests/test_pagerank.py,sha256=LlRJLoq-By1WVOuY71OAh46vCIvERQ0q
168
168
  sknetwork/ranking/tests/test_postprocess.py,sha256=TpyU3_DKbnSwuf0HEuEYMiNbdI6Z5oP1JNO6kWigFkc,729
169
169
  sknetwork/regression/__init__.py,sha256=FYnlc-DKS1Mz2lKVCtKldjSgtvzxMmkd5kwKq2HdNmE,145
170
170
  sknetwork/regression/base.py,sha256=gTBqtaE-tMmtcnWh0pPsK9fg7eEUF1UaDdINE2nLNI8,1557
171
- sknetwork/regression/diffusion.py,sha256=sUKbAf0VNmMHQmw_-Dba25omL4oEpWhyYU1qZJ_QA2E,8053
171
+ sknetwork/regression/diffusion.py,sha256=CopcR4EN8xN3T-7bz5g65eJLoMioCN0jtSY77w9HR40,8115
172
172
  sknetwork/regression/tests/__init__.py,sha256=GvqvsSMbqMYwRmWw4VrZntwccz1jOPqrqufAZqw_NAc,28
173
173
  sknetwork/regression/tests/test_API.py,sha256=7x_n8bG8hUcJVRYDbdC6GvPmwW5cE7HmASlu5SHnwFI,1056
174
174
  sknetwork/regression/tests/test_diffusion.py,sha256=_ivBfsfmRQyiFChMS8N1J7HoJDhZtKdeydBIu7SuSvU,2117
175
175
  sknetwork/topology/__init__.py,sha256=Ho06JPdSeiy5sq-Cv3e9y4AiFVMUQ_RUNUDDpKegWnM,542
176
- sknetwork/topology/cliques.cp311-win_amd64.pyd,sha256=YvrBW64VE0VoLJo1Lv_iBzLyBF4S7oV6H64Y6A42lEg,185344
177
- sknetwork/topology/cliques.cpp,sha256=UKpUEDIMMFhjqOnfzSE3jOksyGARj3VLxTJx2wC09xU,1223705
176
+ sknetwork/topology/cliques.cp311-win_amd64.pyd,sha256=DRzTkh8RLyTshBrv3PX7fell_BH6Gp5IcGgbzd-8D0w,185856
177
+ sknetwork/topology/cliques.cpp,sha256=fsDpqDJJsI56I9mjhZnV4EQUEbk38l5ODKwkeQjRlfc,1223705
178
178
  sknetwork/topology/cliques.pyx,sha256=y6Ee5oaX7IdVhXXjSOazqT5dYo4gSTQ8Mq0u1Abg0vw,4659
179
- sknetwork/topology/core.cp311-win_amd64.pyd,sha256=ISBxqS1ctTgpvFLRN_15trXRvIHAFP0WcKcBm_ifu04,155648
180
- sknetwork/topology/core.cpp,sha256=tXlE-MDH0BHikS0Sni3Nei2aCRYnDdLJyMx794GSFog,1132988
179
+ sknetwork/topology/core.cp311-win_amd64.pyd,sha256=pHRzB5dHTGavCGjVuKUxff9YVsnA15hFwnr5wJcJhCA,156672
180
+ sknetwork/topology/core.cpp,sha256=zvBWoajw8vZM6VUlRP6ZKn4aD0BlCUS2MJ4I6U-h2g0,1132988
181
181
  sknetwork/topology/core.pyx,sha256=0PO4HnOYivjrFY1NMlXHd7wscu0R5Fg-Toj3YVRwXDo,2555
182
182
  sknetwork/topology/cycles.py,sha256=EgVtANHvY-MBcIe3yRVaBYzz1amsiV6GfuDEMIO3Kl0,9246
183
- sknetwork/topology/minheap.cp311-win_amd64.pyd,sha256=kYGqmbqLU0WyXycOpNPFt9ORIDrLS_qCf-sQ2p-ox7s,133632
184
- sknetwork/topology/minheap.cpp,sha256=UYZFkFrVP_jNOi5DdQZVW52brBtIhepAl4Pm5St2lsU,1016263
183
+ sknetwork/topology/minheap.cp311-win_amd64.pyd,sha256=dUzbGHixZ_9ubiCkq4pDUKbZc_F7mGhh4go3leAjfEM,134144
184
+ sknetwork/topology/minheap.cpp,sha256=aRDRVFYESv7B1KzrP0dYWVYVf5WJp8Dn4xn2ui6dfIs,1016263
185
185
  sknetwork/topology/minheap.pxd,sha256=AHeBNN8wGzT429K6AyhbrFUoBkWVwbkyUIY6TkeJ80g,584
186
186
  sknetwork/topology/minheap.pyx,sha256=KOmjjlljgkGUJNL8PQ6WaNzx-Ro84QoSve_8baDN1B0,3419
187
187
  sknetwork/topology/structure.py,sha256=28mSnrukLU_GDil8e5ouLZ9PuoQyJ0UmQ4WgMu9Wzew,7479
188
- sknetwork/topology/triangles.cp311-win_amd64.pyd,sha256=t5k6pL3FiT8zCPHCZDYVSvrOtlZyXWDe753Rcp4RvSo,59904
189
- sknetwork/topology/triangles.cpp,sha256=PsY5jSVolvYOvToikImbfwyPN8A2uOHMGNcb7jrE_-w,354317
188
+ sknetwork/topology/triangles.cp311-win_amd64.pyd,sha256=CasznwCbmS_X_1eLTqzABzpbskq1oEanDa4BCJjY4P8,60928
189
+ sknetwork/topology/triangles.cpp,sha256=Dam2Biug1cU6rIhRR_P59m3VOVDdxkfqnP7eXGrObQ4,354317
190
190
  sknetwork/topology/triangles.pyx,sha256=q_f23ZidyizvR9P4X4OIX8o8bAZZTtV7tnjXqmyYZuY,4500
191
191
  sknetwork/topology/weisfeiler_lehman.py,sha256=U5b5RoTFtqBeFwkuBXs4g0Px2UWRFePyneu-tfgnY_I,4441
192
- sknetwork/topology/weisfeiler_lehman_core.cp311-win_amd64.pyd,sha256=fhyw6r2yw0sevpWKnezyc9OWSW-yzXYoaLRd5hgFuOU,155648
193
- sknetwork/topology/weisfeiler_lehman_core.cpp,sha256=Azv3YIu4Y5tC6ghZ6oqb2itJC0_7n2RUXxbY9uLCINk,1027133
192
+ sknetwork/topology/weisfeiler_lehman_core.cp311-win_amd64.pyd,sha256=CfPVF-Awahvd98REQpV5tUmxz0lUyLXgwlWfA2sZI2w,155648
193
+ sknetwork/topology/weisfeiler_lehman_core.cpp,sha256=cIokBA7Qt8M9zdpvT6zqZLmLC_juMy2JL2R2InNxaos,1027133
194
194
  sknetwork/topology/weisfeiler_lehman_core.pyx,sha256=lpUV1BpxtedsGBfOl19b8OFXCIbyaAA4ZYlW6BzSxbw,3148
195
195
  sknetwork/topology/tests/__init__.py,sha256=84T-xv8JCFeA9D7Rxw9gy3_dNAoE8CY1k1pYcuG8K3s,26
196
196
  sknetwork/topology/tests/test_cliques.py,sha256=vdRMDmF8AKkIWE-LnU2yGzk1wzwzq9PdggpeS-8wfRw,866
@@ -199,13 +199,13 @@ sknetwork/topology/tests/test_cycles.py,sha256=iKhfvZf-GjlcVCFwRzo9OkxPfnT_pM-eL
199
199
  sknetwork/topology/tests/test_structure.py,sha256=BIJuO39ROQRA-xipUfk8PajHQ0Uk9EY6C-c3JYkmBSg,4033
200
200
  sknetwork/topology/tests/test_triangles.py,sha256=5AYxNQ8DkKTvpShWEWV-v1r7WZx1DuylChcEmVF0yTk,1313
201
201
  sknetwork/topology/tests/test_wl.py,sha256=vesYcnlJHPphk2RJLzKJH9N6aYpPeKLFJko1E8kBdtc,2290
202
- sknetwork/utils/__init__.py,sha256=ceT5UU4JRxCqpDlPj84gPBaKMRsI6b_YfaBzkK67Qo4,336
202
+ sknetwork/utils/__init__.py,sha256=ZF_Xx7FhOeHOsqmiBpwO1_bmGj2uoE6knq47oMpMN70,332
203
203
  sknetwork/utils/check.py,sha256=LWUkHwDzr9Z9IyT7AIsrQyDrRAMjO2bzWyFsv_P9Ask,13295
204
204
  sknetwork/utils/format.py,sha256=g_cfUlETJp7AppCiVKG2VZPexH-H9rVNGF4hXh2rshM,8987
205
205
  sknetwork/utils/membership.py,sha256=kan9WuytJCyBAZi0CfM0SJEf527XB4WAYMkIctD5D9w,2244
206
206
  sknetwork/utils/neighbors.py,sha256=-EwBXigM3mn2qvVTi_aPmG0XifDMojZgsMQ9_A8cLkk,3466
207
207
  sknetwork/utils/tfidf.py,sha256=vvISEaZJa7RZrNNgQEAHgMH2rJToARuNWcVjnA8u7po,993
208
- sknetwork/utils/values.py,sha256=aUc2fuI56J78_6P-S2mT4NhHgiiIZp6D2feNKcsQmG4,2584
208
+ sknetwork/utils/values.py,sha256=fqD2iGRwzPG44Vy6c1Us8koggqkWkRGSENZfJonJ2Uw,2671
209
209
  sknetwork/utils/tests/__init__.py,sha256=JQuARG8Ycb5apL6PUy_wuEHsLjmEZFOPQUKWRgTMdCY,23
210
210
  sknetwork/utils/tests/test_check.py,sha256=LxYAubg6YZ0RHYFz_R3byNtw3EQ6hsHxPPI3QgP1DLg,6954
211
211
  sknetwork/utils/tests/test_format.py,sha256=NJrRBI-kFF8dYFmTwuFF7VUnHS6Mz75DG-RB-iGk8ag,2308
@@ -216,13 +216,13 @@ sknetwork/utils/tests/test_values.py,sha256=K3ctTXpSy9fwiHnpFVlHX5KeTd2wNF4kbFiT
216
216
  sknetwork/visualization/__init__.py,sha256=Ww8O1hby1xf_mtRgFftc9srMzvbFgWOzj_khKkqq9Mg,220
217
217
  sknetwork/visualization/colors.py,sha256=NhyMQeetfH16khnJD2gD_uZJkBD3JQDV0K3Jzacamqw,2543
218
218
  sknetwork/visualization/dendrograms.py,sha256=HtubynuGsJ5b7bD5I8dIKL5UqhqynmqOhw_wJt6VGUA,10178
219
- sknetwork/visualization/graphs.py,sha256=SJDta3IUolBDI69kFdF7WGmjcLsfqkQNw5ixvJwoNuk,42214
219
+ sknetwork/visualization/graphs.py,sha256=vLsuL2AUyrc8B5nxM2K713QPRjf7i1PRaoRXYbY44L4,42215
220
220
  sknetwork/visualization/tests/__init__.py,sha256=hrso2pNVzMWn4D2pRyWA_xAMib-xacKjm-rf91MyGGk,31
221
221
  sknetwork/visualization/tests/test_dendrograms.py,sha256=e0u3qL9SlWlrQiVAeCVXxq7P6-mU0GaCz3FBu6cm_HA,2519
222
222
  sknetwork/visualization/tests/test_graphs.py,sha256=FPZcgGj9asTjOvtkXpENYjeE8xtwh1ES4XYWcYe56Jo,9597
223
- scikit_network-0.32.1.dist-info/AUTHORS.rst,sha256=t2CJQFYm_OvWod1zQx4Tw-BeKLVlpQjQ0APBIOnYRPE,968
224
- scikit_network-0.32.1.dist-info/LICENSE,sha256=BJ1Hth1QjBmjIfHcp1sVxlkEqHYM58Vn5bcpYcggMZE,1656
225
- scikit_network-0.32.1.dist-info/METADATA,sha256=cmHp6cheSqpUDU3TEOHmo-VKw-6fBXvAw2U5SewlIFQ,14907
226
- scikit_network-0.32.1.dist-info/WHEEL,sha256=ircjsfhzblqgSzO8ow7-0pXK-RVqDqNRGQ8F650AUNM,102
227
- scikit_network-0.32.1.dist-info/top_level.txt,sha256=fkwspWQ9B3csqb5ENEOoVciRY6XftnMuz4MvTDQeSsg,10
228
- scikit_network-0.32.1.dist-info/RECORD,,
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=WYSXpZsvXNiAggUvUzBeRCxUY27Bzz6nBjGWxD02TN4,101
227
+ scikit_network-0.33.0.dist-info/top_level.txt,sha256=fkwspWQ9B3csqb5ENEOoVciRY6XftnMuz4MvTDQeSsg,10
228
+ scikit_network-0.33.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: setuptools (70.3.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp311-cp311-win_amd64
5
5
 
sknetwork/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  __author__ = """scikit-network team"""
6
6
  __email__ = "thomas.bonald@telecom-paris.fr"
7
- __version__ = '0.32.1'
7
+ __version__ = '0.33.0'
8
8
 
9
9
  import sknetwork.topology
10
10
  import sknetwork.path
@@ -55,7 +55,7 @@ class DiffusionClassifier(BaseClassifier):
55
55
  >>> labels_true = graph.labels
56
56
  >>> labels = {0: labels_true[0], 33: labels_true[33]}
57
57
  >>> labels_pred = diffusion.fit_predict(adjacency, labels)
58
- >>> np.round(np.mean(labels_pred == labels_true), 2)
58
+ >>> round(np.mean(labels_pred == labels_true), 2)
59
59
  0.97
60
60
 
61
61
  References
@@ -74,8 +74,9 @@ class DiffusionClassifier(BaseClassifier):
74
74
  self.scale = scale
75
75
 
76
76
  def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray],
77
- labels: Optional[Union[dict, np.ndarray]] = None, labels_row: Optional[Union[dict, np.ndarray]] = None,
78
- labels_col: Optional[Union[dict, np.ndarray]] = None, force_bipartite: bool = False) \
77
+ labels: Optional[Union[dict, list, np.ndarray]] = None,
78
+ labels_row: Optional[Union[dict, list, np.ndarray]] = None,
79
+ labels_col: Optional[Union[dict, list, np.ndarray]] = None, force_bipartite: bool = False) \
79
80
  -> 'DiffusionClassifier':
80
81
  """Compute the solution to the Dirichlet problem (temperatures at equilibrium).
81
82
 
@@ -55,7 +55,7 @@ class NNClassifier(BaseClassifier):
55
55
  >>> labels_true = graph.labels
56
56
  >>> labels = {0: labels_true[0], 33: labels_true[33]}
57
57
  >>> labels_pred = classifier.fit_predict(adjacency, labels)
58
- >>> np.round(np.mean(labels_pred == labels_true), 2)
58
+ >>> round(np.mean(labels_pred == labels_true), 2)
59
59
  0.82
60
60
  """
61
61
  def __init__(self, n_neighbors: int = 3, embedding_method: Optional[BaseEmbedding] = None, normalize: bool = True):
@@ -97,8 +97,9 @@ class NNClassifier(BaseClassifier):
97
97
 
98
98
  return probs, labels
99
99
 
100
- def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: Union[np.ndarray, dict] = None,
101
- labels_row: Union[np.ndarray, dict] = None, labels_col: Union[np.ndarray, dict] = None) -> 'NNClassifier':
100
+ def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: Union[np.ndarray, list, dict] = None,
101
+ labels_row: Union[np.ndarray, list, dict] = None,
102
+ labels_col: Union[np.ndarray, list, dict] = None) -> 'NNClassifier':
102
103
  """Node classification by k-nearest neighbors in the embedding space.
103
104
 
104
105
  Parameters
@@ -34,7 +34,7 @@ def get_accuracy_score(labels_true: np.ndarray, labels_pred: np.ndarray) -> floa
34
34
  >>> import numpy as np
35
35
  >>> labels_true = np.array([0, 0, 1, 1])
36
36
  >>> labels_pred = np.array([0, 0, 0, 1])
37
- >>> get_accuracy_score(labels_true, labels_pred)
37
+ >>> round(get_accuracy_score(labels_true, labels_pred), 2)
38
38
  0.75
39
39
  """
40
40
  check_vector_format(labels_true, labels_pred)
@@ -105,7 +105,7 @@ def get_f1_score(labels_true: np.ndarray, labels_pred: np.ndarray, return_precis
105
105
  >>> import numpy as np
106
106
  >>> labels_true = np.array([0, 0, 1, 1])
107
107
  >>> labels_pred = np.array([0, 0, 0, 1])
108
- >>> np.round(get_f1_score(labels_true, labels_pred), 2)
108
+ >>> round(get_f1_score(labels_true, labels_pred), 2)
109
109
  0.67
110
110
  """
111
111
  values = set(labels_true[labels_true >= 0]) | set(labels_pred[labels_pred >= 0])
@@ -188,7 +188,7 @@ def get_average_f1_score(labels_true: np.ndarray, labels_pred: np.ndarray, avera
188
188
  >>> import numpy as np
189
189
  >>> labels_true = np.array([0, 0, 1, 1])
190
190
  >>> labels_pred = np.array([0, 0, 0, 1])
191
- >>> np.round(get_average_f1_score(labels_true, labels_pred), 2)
191
+ >>> round(get_average_f1_score(labels_true, labels_pred), 2)
192
192
  0.73
193
193
  """
194
194
  if average == 'micro':
@@ -91,19 +91,20 @@ class Propagation(BaseClassifier):
91
91
  labels = labels[index_seed]
92
92
  return index_seed.astype(np.int32), index_remain.astype(np.int32), labels.astype(np.int32)
93
93
 
94
- def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: Union[np.ndarray, dict] = None,
95
- labels_row: Union[np.ndarray, dict] = None, labels_col: Union[np.ndarray, dict] = None) -> 'Propagation':
94
+ def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: Union[np.ndarray, list, dict] = None,
95
+ labels_row: Union[np.ndarray, list, dict] = None,
96
+ labels_col: Union[np.ndarray, list, dict] = None) -> 'Propagation':
96
97
  """Node classification by label propagation.
97
98
 
98
99
  Parameters
99
100
  ----------
100
101
  input_matrix : sparse.csr_matrix, np.ndarray
101
102
  Adjacency matrix or biadjacency matrix of the graph.
102
- labels : np.ndarray, dict
103
+ labels : array, list or dict
103
104
  Known labels. Negative values ignored.
104
- labels_row : np.ndarray, dict
105
+ labels_row : array, list or dict
105
106
  Known labels of rows, for bipartite graphs.
106
- labels_col : np.ndarray, dict
107
+ labels_col : array, list or dict
107
108
  Known labels of columns, for bipartite graphs.
108
109
 
109
110
  Returns
@@ -8,7 +8,7 @@
8
8
  "/d2FH4-"
9
9
  ],
10
10
  "include_dirs": [
11
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-8iubbrn2\\cp311-win_amd64\\build\\venv\\Lib\\site-packages\\numpy\\core\\include"
11
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-2jqincfh\\cp311-win_amd64\\build\\venv\\Lib\\site-packages\\numpy\\core\\include"
12
12
  ],
13
13
  "language": "c++",
14
14
  "name": "sknetwork.classification.vote",
@@ -76,7 +76,8 @@ class Leiden(Louvain):
76
76
  References
77
77
  ----------
78
78
  * Traag, V. A., Waltman, L., & Van Eck, N. J. (2019).
79
- `From Louvain to Leiden: guaranteeing well-connected communities`, Scientific reports.
79
+ `From Louvain to Leiden: guaranteeing well-connected communities`, Scientific reports.
80
+
80
81
  """
81
82
 
82
83
  def __init__(self, resolution: float = 1, modularity: str = 'dugue', tol_optimization: float = 1e-3,
@@ -8,7 +8,7 @@
8
8
  "/d2FH4-"
9
9
  ],
10
10
  "include_dirs": [
11
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-8iubbrn2\\cp311-win_amd64\\build\\venv\\Lib\\site-packages\\numpy\\core\\include"
11
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-2jqincfh\\cp311-win_amd64\\build\\venv\\Lib\\site-packages\\numpy\\core\\include"
12
12
  ],
13
13
  "language": "c++",
14
14
  "name": "sknetwork.clustering.leiden_core",
@@ -131,9 +131,9 @@ class Louvain(BaseClustering, Log):
131
131
  increase :
132
132
  Gain in modularity after optimization.
133
133
  """
134
- labels = labels.astype(np.int32)
135
- indices = adjacency.indices
136
- indptr = adjacency.indptr
134
+ labels = labels.astype(np.int64)
135
+ indices = adjacency.indices.astype(np.int64)
136
+ indptr = adjacency.indptr.astype(np.int64)
137
137
  data = adjacency.data.astype(np.float32)
138
138
  out_weights = out_weights.astype(np.float32)
139
139
  in_weights = in_weights.astype(np.float32)
@@ -8,7 +8,7 @@
8
8
  "/d2FH4-"
9
9
  ],
10
10
  "include_dirs": [
11
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-8iubbrn2\\cp311-win_amd64\\build\\venv\\Lib\\site-packages\\numpy\\core\\include"
11
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-2jqincfh\\cp311-win_amd64\\build\\venv\\Lib\\site-packages\\numpy\\core\\include"
12
12
  ],
13
13
  "language": "c++",
14
14
  "name": "sknetwork.clustering.louvain_core",
@@ -4,7 +4,6 @@
4
4
  import unittest
5
5
 
6
6
  from sknetwork.clustering import KCenters
7
- from sknetwork.data import karate_club, painters, star_wars
8
7
  from sknetwork.data.test_graphs import *
9
8
 
10
9
 
@@ -13,7 +12,7 @@ class TestKCentersClustering(unittest.TestCase):
13
12
  def test_kcenters(self):
14
13
  # Test undirected graph
15
14
  n_clusters = 2
16
- adjacency = karate_club()
15
+ adjacency = test_graph()
17
16
  n_row = adjacency.shape[0]
18
17
  kcenters = KCenters(n_clusters=n_clusters)
19
18
  labels = kcenters.fit_predict(adjacency)
@@ -22,7 +21,7 @@ class TestKCentersClustering(unittest.TestCase):
22
21
 
23
22
  # Test directed graph
24
23
  n_clusters = 3
25
- adjacency = painters()
24
+ adjacency = test_digraph()
26
25
  n_row = adjacency.shape[0]
27
26
  kcenters = KCenters(n_clusters=n_clusters, directed=True)
28
27
  labels = kcenters.fit_predict(adjacency)
@@ -31,7 +30,7 @@ class TestKCentersClustering(unittest.TestCase):
31
30
 
32
31
  # Test bipartite graph
33
32
  n_clusters = 2
34
- biadjacency = star_wars()
33
+ biadjacency = test_bigraph()
35
34
  n_row, n_col = biadjacency.shape
36
35
  kcenters = KCenters(n_clusters=n_clusters)
37
36
  kcenters.fit(biadjacency)
@@ -40,41 +39,10 @@ class TestKCentersClustering(unittest.TestCase):
40
39
  self.assertEqual(len(kcenters.labels_col_), n_col)
41
40
  self.assertEqual(len(set(labels)), n_clusters)
42
41
 
43
- def test_kcenters_centers(self):
44
- # Test centers for undirected graphs
45
- n_clusters = 2
46
- adjacency = karate_club()
47
- kcenters = KCenters(n_clusters=n_clusters)
48
- kcenters.fit(adjacency)
49
- centers = kcenters.centers_
50
- self.assertEqual(n_clusters, len(set(centers)))
51
-
52
- # Test centers for bipartite graphs
53
- n_clusters = 2
54
- biadjacency = star_wars()
55
- n_row, n_col = biadjacency.shape
56
- for position in ["row", "col", "both"]:
57
- kcenters = KCenters(n_clusters=n_clusters, center_position=position)
58
- kcenters.fit(biadjacency)
59
- centers_row = kcenters.centers_row_
60
- centers_col = kcenters.centers_col_
61
- if position == "row":
62
- self.assertEqual(n_clusters, len(set(centers_row)))
63
- self.assertTrue(np.all(centers_row < n_row))
64
- self.assertTrue(centers_col is None)
65
- if position == "col":
66
- self.assertEqual(n_clusters, len(set(centers_col)))
67
- self.assertTrue(np.all((centers_col < n_col) & (0 <= centers_col)))
68
- self.assertTrue(centers_row is None)
69
- if position == "both":
70
- self.assertEqual(n_clusters, len(set(centers_row)) + len(set(centers_col)))
71
- self.assertTrue(np.all(centers_row < n_row))
72
- self.assertTrue(np.all((centers_col < n_col) & (0 <= centers_col)))
73
-
74
42
  def test_kcenters_error(self):
75
43
  # Test value errors
76
- adjacency = karate_club()
77
- biadjacency = star_wars()
44
+ adjacency = test_graph()
45
+ biadjacency = test_bigraph()
78
46
 
79
47
  # test n_clusters error
80
48
  kcenters = KCenters(n_clusters=1)
@@ -1,5 +1,5 @@
1
1
  """data module"""
2
- from sknetwork.data.base import Bunch
2
+ from sknetwork.data.base import *
3
3
  from sknetwork.data.load import *
4
4
  from sknetwork.data.models import *
5
5
  from sknetwork.data.parse import from_edge_list, from_adjacency_list, from_csv, from_graphml
sknetwork/data/base.py CHANGED
@@ -6,10 +6,10 @@ Created in May 2023
6
6
  """
7
7
 
8
8
 
9
- class Bunch(dict):
9
+ class Dataset(dict):
10
10
  """Container object for datasets.
11
11
  Dictionary-like object that exposes its keys as attributes.
12
- >>> dataset = Bunch(name='dataset')
12
+ >>> dataset = Dataset(name='dataset')
13
13
  >>> dataset['name']
14
14
  'dataset'
15
15
  >>> dataset.name
@@ -26,3 +26,8 @@ class Bunch(dict):
26
26
  return self[key]
27
27
  except KeyError:
28
28
  raise AttributeError(key)
29
+
30
+
31
+ # alias for Dataset
32
+ Bunch = Dataset
33
+