Git Product home page Git Product logo

nol's Introduction

NOL*: Network Online Learning

Purpose

This repository contains code and data to reproduce results from the following paper:

Larock, Sakharov, Bahdra, and Eliassi-Rad. Understanding the Limitations of Network Online Learning. Forthcoming in Applied Network Science. ArXiv preprint.

Instructions

The code in this repository is written in Python 3 and was developed using Python 3.5. It should work, but has not been tested, on any version 3.5+.

No installation of the software in this repository is required, and the dependencies are fairly standard, most notably numpy/scipy and sklearn. Scripts to reproduce the experiments from the paper are located in the reproduce/ directory, and are named for the figures they reproduce. Scripts should automatically generate plots, but in case of issues, plotting code is also available in the plotting/ directory.

Notes

  1. The experiments in this paper are computationally expensive and this code is written in pure python and not optimized for speed. We used a large computer with many processors over hours and days to generate our results. Running these experiments, especially the parameter search, without multiprocessing is not recommended and will likely take days on a single machine.
  2. This code is meant for prototyping, experimentation, and now reproducibility, not necessarily for general use. If you would like to use the NOL* method in a specific setting, we encourage you to use this implementation as a guide or reference for how our methodology works, but it is likely that implementing the method for your own use case, and especially API endpoints, will be desirable in the long run.
  3. Code for the iKNN-UCB baseline can be found at this link. Note that for our experiments we modified the random node sampling technique in their code to match our version. We also modified the implementation to handle networks with singleton nodes (nodes with 0 degree). We do not provide our modifications here because the code is unlicensed.
  4. Our experiments using node2vec node embeddings rely on a subprocess.run call to the SNAP node2vec example code. Begin with this line to understand how we compute and read the embeddings.

Contact

If you have any questions about this repository or run in to issues reproducing our work or using this code, please either open an issue or contact Tim LaRock.

License

We are providing this code under the MIT License. See LICENSE for details.

nol's People

Contributors

tlarock avatar

Watchers

James Cloos avatar  avatar paper2code - bot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.