time-series-machine-learning / tsml-java

Java time series machine learning tools in a Weka compatible toolkit
GNU General Public License v3.0
158 stars 120 forks source link

Libraries #447

Open goastler opened 3 years ago

goastler commented 3 years ago

This issue is a rolling record of what libraries are currently in use and their purpose.

Please leave a comment of the library name, purpose / usage and whether it's a jar or gradle based library.

We can discuss whether libraries should be kept / removed here and get rid of the duplicate gradle / jar entries.

goastler commented 3 years ago

junit v4 via gradle, used for unit testing

goastler commented 3 years ago

guava via gradle, used in my code afaik and can be removed as I only use it a handful of times

goastler commented 3 years ago

apache commons collections v4 via gradle, purpose unknown

goastler commented 3 years ago

apache commons math v3 via gradle, I believe this is to do with fft in rise @MJFlynn ?

goastler commented 3 years ago

hppc correctsearch via gradle, is this for boss @MatthewMiddlehurst ?

goastler commented 3 years ago

jcommander via gradle, used for cmdline params in experiments

goastler commented 3 years ago

jexcelapi via gradle, used for spreadsheets right @James-Large ?

goastler commented 3 years ago

kyro via gradle, I believe this is for xgboost

goastler commented 3 years ago

matlab-control via gradle, used for diagrams output during results evaluation

goastler commented 3 years ago

sizeOf via gradle, used for evaluating size of an obj in memory. @MatthewMiddlehurst do you still use this? I don't anymore

goastler commented 3 years ago

xgboost4j via gradle, provides xgboost implementation

goastler commented 3 years ago

guava-testlib via gradle, provides forced garbage collection afaik and nothing else. Potentially get rid of this

goastler commented 3 years ago

gson via gradle, don't think anyone uses this anymore. Handles JSON input/output

goastler commented 3 years ago

duplicate jars / gradle libraries:

goastler commented 3 years ago

commons io via jar, not sure what this is used for

goastler commented 3 years ago

jtransforms via jar, not sure what this is used for

goastler commented 3 years ago

liblinear via jar, not sure what this is used for

goastler commented 3 years ago

commons logging via jar, not sure what this is used for

goastler commented 3 years ago

PF and TS-CHIEF wrapped via jar

goastler commented 3 years ago

Two versions of xgboost via jar, iirc one is for windows and one is for linux / the cluster

MatthewMiddlehurst commented 3 years ago

hppc correctsearch via gradle, is this for boss @MatthewMiddlehurst ?

Used in WEASEL

sizeOf via gradle, used for evaluating size of an obj in memory. @MatthewMiddlehurst do you still use this? I don't anymore

I dont use this anymore either

liblinear via jar, not sure what this is used for

Required for WEASEL also, useful to keep. Also going to include libsvm which is similar.

PF and TS-CHIEF wrapped via jar

Can probably get rid of PF now? #435 needs to be done before removing TS-CHIEF

MatthewMiddlehurst commented 3 years ago

From PR #438 and our previous Friday meeting, we are looking to add DL4J/ND4J which has 3 imports recommended from https://deeplearning4j.konduit.ai/getting-started/quickstart.

These are:

// https://mvnrepository.com/artifact/org.deeplearning4j/deeplearning4j-core compile group: 'org.deeplearning4j', name: 'deeplearning4j-core', version: '1.0.0-beta4' // https://mvnrepository.com/artifact/org.nd4j/nd4j-native-platform compile group: 'org.nd4j', name: 'nd4j-native-platform', version: '1.0.0-beta4' // https://mvnrepository.com/artifact/org.datavec/datavec-api compile group: 'org.datavec', name: 'datavec-api', version: '1.0.0-beta4'

I chose beta4 as it was the last version to include a setNumThreads function instead of using enviroment variables. For ND4J, native uses a CPU backend and platform includes binaraies for most major OS.