1

I'm trying to use ELKI (http://elki.dbs.ifi.lmu.de/#GettingELKI:DownloadandCitationPolicy) but cant find the maven dependency. Does anyone know where I could find it?

I want to do some experiments with the OPTICSXi implementation but I'm finding it very difficult. Could someone please give me some advice? Links? Something to get me started? Is this a good OPTICS implementation to use?

I found these links: Running OPTICS algorithm on ELKI How to cluster an instance with Weka's DBSCAN? But they dont really help me..

Community
  • 1
  • 1
MTA
  • 739
  • 2
  • 9
  • 29

1 Answers1

3

We currently do not provide ELKI on Maven. Thus, there currently is no Maven dependency.

ELKI is changing quickly, and we do not provide a stable API.

For example, in the next release NumberVector<? extends Number> will simplify to just NumberVector. Getting rid of this generic is nice, but it will break your code. And such changes still happen at every version, which is why we have not released version 1.0 yet.

If possible, use the command line or MiniGUI. This works really well. I use this to distribute my experiments on a cluster of 50 CPU cores. Only for very advanced cases (involving nontrivial custom distance functions), I have to drive ELKI from Java.

As far as I know, ELKI has the only complete OPTICS implementation. There are some partial implementation such as the one in Weka, but our implementation is much more powerful, and much faster (in particular when you enable indexes). Functionality such as the Xi method for cluster extraction is not available in other implementations at all. And the next ELKI version will also have HDBSCAN*, a revisited version of OPTICS.

Update: ELKI can now be used via Maven. Clone the project https://github.com/elki-project/example-elki-project to get started quickly. The ELKI maven dependencies are:

    <!-- ELKI core, without visualization -->
    <dependency>
        <groupId>de.lmu.ifi.dbs.elki</groupId>
        <artifactId>elki</artifactId>
        <version>0.7.0</version>
    </dependency>
    <!-- You only need this dependency if you need visualization -->
    <dependency>
        <groupId>de.lmu.ifi.dbs.elki</groupId>
        <artifactId>elki-batik-visualization</artifactId>
        <version>0.7.0</version>
    </dependency>
Erich Schubert
  • 8,575
  • 2
  • 26
  • 42
  • Thanks @Erich Schubert. I'm very happy happy you replied! I was actually reading your blog yesterday and that inspired me to use ELKI's OPTICS implementation. I added the jar to my intellij classpath and it seems to be ok. Do I have to use Java 7? Can you please give me an example of using OPTICSXi? – MTA Jun 10 '14 at 12:23
  • I don't have a Java example for using OPTICSXi. I build the command line in MiniGUI on-the-fly. The parameters depend on your data, there is no one-parameter-fits all. And yes, Java 7 is required, as we do use some methods introduced in JDK 7. – Erich Schubert Jun 10 '14 at 13:10
  • I need to somehow run OPTICSXi through Intellij. Basically I have some code that I want to run but I want to use OPTICSXi to form clusters as a preprocessing step. Should be possible. It's strange that I cant find someone who has tried to do this. Ok Im going to try to get something working and get back to you if i have any problems. Hope that's ok. Thanks. – MTA Jun 10 '14 at 14:33
  • Have a look at the unit tests, if you absolutely need to use Java. It's currently not recommended; once the APIs have stabilized we will provide examples. – Erich Schubert Jun 10 '14 at 17:34
  • Even if the API is not stable, it would still be nice to have packages on maven. – Rüdiger Klaehn Oct 12 '15 at 09:19
  • ELKI 0.7.0 can be found on Maven now, see https://github.com/elki-project/example-elki-project for a small example project using ELKI. – Erich Schubert Nov 27 '15 at 10:05