Package: scikit-network
Free software library in Python for machine learning on graphs:Memory-efficient representation of graphs as sparse matrices inscipyformatFast algorithmsSimple API inspired byscikit-learnResourcesFree software: BSD licenseGitHub:https://github.com/sknetwork-team/scikit-networkDocumentation:https://scikit-network.readthedocs.ioQuick startInstall scikit-network:$pipinstallscikit-networkImport scikit-network:import sknetworkOverviewAn overview of the package is presented in thisnotebook.DocumentationThe documentation is structured as follows:Getting started: First steps to install, import and use scikit-network.User manual: Description of each function and object of scikit-network.Tutorials: Application of the main tools to toy examples.Examples: Examples combining several tools on specific use cases.About: Authors, history of the library, how to contribute, index of functions and objects.CitingIf you want to cite scikit-network, please refer to the publication in
theJournal of Machine Learning Research:@article{JMLR:v21:20-412,
  author  = {Thomas Bonald and Nathan de Lara and Quentin Lutz and Bertrand Charpentier},
  title   = {Scikit-network: Graph Analysis in Python},
  journal = {Journal of Machine Learning Research},
  year    = {2020},
  volume  = {21},
  number  = {185},
  pages   = {1-6},
  url     = {http://jmlr.org/papers/v21/20-412.html}
}History0.31.0 (2023-05-22)Add Python 3.11Add set_param / get_param to algorithms, suggested by Franz Kiraly (#557)Compute shortest paths by matrix-vector multiplicationsMake tools on topology (cliques, code-decomposition, etc.) as functionsRename parameter membership -> probs for soft classification / clusteringAdd softmax to classification by diffusion0.30.0 (2023-04-12)Add overviewAdd predict_proba method to classification and clustering0.29.0 (2023-03-30)Change API for clustering (predict / transform)Change API for classification (seeds -> labels)Change API for ranking (seeds -> weights)Change API for GNN (same as classifiers)Remove first order methods for link predictionAdd nearest neighbor methods for link predictionAdd KNN classifier without embeddingAdd TF-IDFSolve security issues by upgrade of wheels and ipython0.28.3 (2023-01-06)Drop Python 3.7Update Numpy requirement0.28.2 (2022-11-30)Allow Python 3.7, by Thomas BonaldFix input format for KMeans, issue #548 raised by @sgerbe0.28.1 (2022-11-22)Fix sampling for GraphSage, by Simon DelarueFix leakage on GNNs, by Thomas Bonald and Simon DelarueUpdate tutorial on GNNs with node inference, by Thomas Bonald and Simon Delarue0.28.0 (2022-11-16)Update Graph neural networks (e.g., add GraphSAGE), by Simon DelarueClean data home folder (set one folder per dataset collection, NetSet, Konect, …), by Thomas BonaldImprove classification by diffusion, setting -1 to unreached nodes, by Thomas BonaldFix bug on modularity, raised by Alessandro (#543)Clean up source distribution, by Nicholas Bollweg (#544)Safe file extraction, by TrellixVulnTeamFix bug on dendrogram cut, raised by Nina Sachdev (#546)Add a function to aggregate a graph per label, by Thomas Bonald0.27.1 (2022-07-29)Fix documentation0.27.0 (2022-07-29)Drop Python 3.7Update NumPy and SciPy requirementsAdd graph neural networks, by Simon Delarue (#533)Add fit_predict / fit_transform where appropriate, by Thomas BonaldAdd Louvain hierarchical clustering (bottom-up), by Thomas BonaldImprove classification by diffusion (vectorial), by Thomas BonaldAdd F1 scores for classification, by Thomas BonaldAdd cosine similarity metric for embeddings, by Thomas BonaldAdd acyclic test for undirected graphs, by Thomas BonaldUpdate algorithms to accept all sparse matrix formats of scipy, by Thomas Bonald0.26.0 (2022-05-03)Add module on regression, by Thomas BonaldAdd connected components for bipartite graphs, by Thomas BonaldUpdate functions for loading graphs, by Thomas BonaldFix shuffling nodes in Louvain (issue #521), by Thomas BonaldAdd radius and eccentricity metrics, by Henry Carscadden (#522)Add new use case (recommendation), by Thomas Bonald0.25.0 (2022-03-15)Add use cases as notebooks, by Thomas BonaldAdd list/dict of neighbors for building graphs, by Thomas BonaldUpdate Spectral embedding, by Thomas BonaldUpdate Block models, by Thomas Bonald (#507)Fix Tree sampling divergence, by Thomas Bonald (#505)Allow parsers to return weighted graphs, by Thomas BonaldAdd Apple Silicon and Python 3.10 wheels, by Quentin Lutz (#503)0.24.0 (2021-07-27)Merge Bi* algorithms (e.g., BiLouvain -> Louvain) by Thomas Bonald (#490)Transition from Travis to Github actions by Quentin Lutz (#488)Added sdist build for conda recipesAdded name position for graph visualizationRemoved randomized algorithms0.23.1 (2021-04-24)Updated NumPy and SciPy requirements0.23.0 (2021-04-23)New push-based implementation of PageRank by Wenzhuo Zhao (#475)Fixed cut_balanced in hierarchyDropped Python 3.6, wheels for Python 3.9 (switched to manylinux2014)0.22.0 (2021-02-09)Added hierarchical Louvain embedding by Quentin Lutz (#468)Doc fixes and updatesRequirements update0.21.0 (2021-01-29)Added random projection embedding by Thomas Bonald (#461)Added PCA-based embedding by Thomas Bonald (#461)Added 64-bit support for Louvain by Flávio Juvenal (#450)Added verbosity options for dataset loadersFixed Louvain embeddingVarious doc and tutorial updates0.20.0 (2020-10-20)Added betweenness algorithm by Tiphaine Viard (#444)0.19.3 (2020-09-17)Added Louvain-based embeddingFix documentation with new dataset website URLs0.19.2 (2020-09-14)Fix documentation with new dataset website URLs.0.19.1 (2020-09-09)Fix visualization featuresFix documentation0.19.0 (2020-09-02)Added link prediction moduleAdded pie-node visualization of membershipsAdded Weisfeiler-Lehman graph coloring by Pierre Pebereau and Alexis Barreaux (#394)Added Force Atlas 2 graph layout by Victor Manach and Rémi Jaylet (#396)Added triangle listing algorithm for directed and undirected graph by Julien Simonnet and Yohann Robert (#376)Added k-core decomposition algorithm by Julien Simonnet and Yohann Robert (#377)Added k-clique listing algorithm by Julien Simonnet and Yohann Robert (#377)Added color map option in visualization moduleUpdated NetSet URL0.18.0 (2020-06-08)Added Katz centralityRefactor connectivity module into paths and topologyRefactor Diffusion into DirichletAdded parsers for adjacency list TSV and GraphMLAdded shortest paths and distances0.17.0 (2020-05-07)Add clustering by label propagationAdd modelsAdd function to build graph from edge listChange a parameter in SVG visualization functionsMinor corrections0.16.0 (2020-04-30)Refactor basics module into connectivityCython version for label propagationMinor corrections0.15.2 (2020-04-24)Clarified requirementsMinor corrections0.15.1 (2020-04-21)Added OpenMP support for all platforms0.15.0 (2020-04-20)Updated ranking module : new pagerank solver, new HITS params, post-processingPolynomes in linear algebraAdded meta.name attribute for BunchMinor corrections0.14.0 (2020-04-17)Added spring layout in embeddingAdded label propagation in classificationAdded save / load functions in dataAdded display edges parameter in svg graph exportsCorrected typos in documentation0.13.3 (2020-04-13)Minor bug0.13.2 (2020-04-13)Added wheels for multiple platforms (OSX, Windows (32 & 64 bits) and many Linux) and Python version (3.6/3.7/3.8)Documentation update (SVG dendrograms, tutorial updates)0.13.1a (2020-04-09)Minor bug0.13.0a (2020-04-09)Changed from Numba to Cython for better performanceAdded visualization moduleAdded k-nearest neighbors classifierAdded Louvain hierarchyAdded predict method in embeddingAdded soft clustering to clustering algorithmsAdded soft classification to classification algorithmsAdded graphs in data moduleVarious API change0.12.1 (2020-01-20)Added heat kernel based node classifierUpdated loaders for WikiLinksFixed file-related issues for Windows0.12.0 (2019-12-10)Added VerboseMixin for verbosity featuresAdded Loaders for WikiLinks & Konect databases0.11.0 (2019-11-28)sknetwork: new API for bipartite graphsnew module: Soft node classificationnew module: Node classificationnew module: data (merge toy graphs + loader)clustering: Spectral Clusteringranking: new algorithmsutils: K-neighborshierarchy: Spectral WardDensedata: loader (Vital Wikipedia)0.10.1 (2019-08-26)Minor bug0.10.0 (2019-08-26)Clustering (and related metrics) for directed and bipartite graphsHierarchical clustering (and related metrics) for directed and bipartite graphsFix bugs on embedding algorithms0.9.0 (2019-07-24)Change parser outputFix bugs in ranking algorithms (zero-degree nodes)Add notebooksImport algorithms from scipy (shortest path, connected components, bfs/dfs)Change SVD embedding (now in decreasing order of singular values)0.8.2 (2019-07-19)Minor bug0.8.1 (2019-07-18)Added diffusion rankingMinor fixesMinor doc tweaking0.8.0 (2019-07-17)Changed Louvain, BiLouvain, Paris and PageRank APIsChanged PageRank methodDocumentation overhaulImproved Jupyter tutorials0.7.1 (2019-07-04)Added Algorithm class for nicer repr of some classesAdded Jupyter notebooks as tutorials in the docsMinor fixes0.7.0 (2019-06-24)Updated PageRankAdded tests for Numba versioning0.6.1 (2019-06-19)Minor bug0.6.0 (2019-06-19)Largest connected componentSimplex projectionSparse Low Rank DecompositionNumba support for ParisVarious fixes and updates0.5.0 (2019-04-18)Unified Louvain.0.4.0 (2019-04-03)Added Louvain for directed graphs and ComboLouvain for bipartite graphs.0.3.0 (2019-03-29)Updated clustering module and documentation.0.2.0 (2019-03-21)First real release on PyPI.0.1.1 (2018-05-29)First release on PyPI.