Metadata-Version: 2.1
Name: scikit-net
Version: 0.0.3
Summary: Machine Learning in Complex Networks
Home-page: https://github.com/TNanukem/scikit-net
Download-URL: https://github.com/TNanukem/scikit-net/archive/refs/tags/v0.0.1.tar.gz
Author: Tiago Toledo Jr
Author-email: tiago.nanu@gmail.com
License: MIT
Keywords: Machine Learning,Complex Networks
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: attrs
Requires-Dist: decorator
Requires-Dist: importlib-metadata
Requires-Dist: iniconfiggiotto-tda
Requires-Dist: joblib
Requires-Dist: networkx
Requires-Dist: numpy
Requires-Dist: packaging
Requires-Dist: pandas
Requires-Dist: pluggy
Requires-Dist: py
Requires-Dist: pyparsing
Requires-Dist: pytest
Requires-Dist: python-dateutil
Requires-Dist: pytz
Requires-Dist: scikit-learn
Requires-Dist: scipy
Requires-Dist: six
Requires-Dist: sklearn
Requires-Dist: threadpoolctl
Requires-Dist: toml
Requires-Dist: tqdm
Requires-Dist: typing-extensions
Requires-Dist: zipp

![sknet Logo](https://github.com/TNanukem/sknet/blob/develop/docs/source/_static/full_logo.png "sknet Logo")

![Codecov branch](https://img.shields.io/codecov/c/github/tnanukem/sknet/develop?token=PIQ338YNK1)

The sknet project is a scikit-learn and NetworkX compatible framework for machine learning in complex networks. It provides learning algorithms for complex networks, as well as transforming methods to turn tabular data into complex networks.

It started in 2021 as a project from volunteers to help to improve the development of research on the interface between complex networks and machine learning. It main focus
is to help researchers and students to develop solutions using machine learning on complex networks.

## :computer: Installation

The sknet installation is available via PiPy:

    pip install scikit-net

## :high_brightness: Quickstart

The following code snippet shows how one can transform tabular data into a complex network and then use it to create a classifier:

    from sklearn.model_selection import train_test_split
    from sklean.metrics import accuracy_score
    from sklearn.datasets import load_iris
    from sknet.network_construction import KNNConstructor
    from sknet.supervised import EaseOfAccessClassifier

    X, y = load_iris(return_X_y = True)
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)

    # The constructor responsible for transforming the tabular data into a complex network
    knn_c = KNNConstructor(k=5)

    classifier = EaseOfAccessClassifier()
    classifier.fit(X_train, y_train, constructor=knn_c)
    y_pred = classifier.predict(X_test)
    accuracy_score(y_test, y_pred)

## :pencil: Documentation

We provide an extensive API documentation as well with some user guides. The documentation is available on https://tnanukem.github.io/scikit-net/

## Citation

If you used the scikit-net on your research project, please cite us using the following publication:

    @article{Toledo2021,
    doi = {10.21105/joss.03864},
    url = {https://doi.org/10.21105/joss.03864},
    year = {2021},
    publisher = {The Open Journal},
    volume = {6},
    number = {68},
    pages = {3864},
    author = {Tiago Toledo},
    title = {sknet: A Python framework for Machine Learning in Complex Networks},
    journal = {Journal of Open Source Software}
    }
