Giter VIP home page Giter VIP logo

rknn-embedding's Introduction

RkNN-embedding

A comparison between RkNN-retrieval on graphs (Eager algorithm) and its embedded version in R*-Trees with materialized reference points (modified TPL algorithm)


Coverage of this project

  • Java/Scala implementation of naive RkNN retrieval in graphs
  • Scala implementation of the Eager algorithm for efficient RkNN retrieval in large graphs, as introduced in the publication by Yiu, Mamoulis, Papadias and Tao
  • Java implementation of the TPL algoirthm for efficient RkNN retrieval in R-Trees (implemented not by me, but by another student of LMU)
  • GUI for starting these (and several other graph-) algorithms (implemented not by me, but by another student of LMU)
  • Scala implementation of a performance comparison between
    • RkNN-retrieval on graphs using the Eager algorithm and
    • RkNN-retrieval on graphs embedded in an R*-Tree, with materialized reference points, using a modification of the TPL algorithm

Development and Usage

Getting started

  1. Check out this git respository: git checkout [email protected]:FlorianLiebhart/RkNN-embedding.git
  2. Download elki.jar and put it into the lib folder of this project
  3. Run sbt update to download all necessary sbt dependencies (except ELKI, which needed to be downloaded manually).
  4. Run sbt compile from the command line to compile this project.
  5. Then, run the main method in src/main/scala/app/RkNNComparator.scala to start the comparison; Or start the GUI in src/main/java/app/GUIStarter.java

Note: Step 4. needs a little know how to do from the command line. Best using IntelliJ Idea v. 13.1: Create IDEA project files with the sbt-idea plugin using the command sbt gen-idea. You should also install the sbt plugin within IntelliJ Idea.

Running Tests

Run sbt test from the command line to run the tests. (some eager tests might still fail, because they may not be up to date)

Technology stack

Build Tool

DBS & Datastructures

  • ELKI v. 0.6.0 open source
    • data mining software written in Java. The focus of ELKI is research in algorithms, with an emphasis on unsupervised methods in cluster analysis and outlier detection.

Implementations

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.