lauradhamilton / students-filters

WEKA plugin for FastICA and multidimensional scaling filters

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Students.Filters

Introduction

Students.Filters is a package that provides unsupervised learning filters for the WEKA machine learning toolkit version >3.7. Development will prioritize filters that are useful to students taking machine learning at Georgia Tech; initially only an Independent Component Analysis filter using the FastICA algorithm has been implemented.

Installation

The preferred installation method is to use the WEKA package manager. The git repository contains additional files for an Eclipse project with Maven dependencies for the EJML package, and Ant build files for the jar.

WEKA Package Manager

See instructions on the WEKA homepage. If the package is not available from the official package page, it can be installed directly from:

https://github.com/cgearhart/students-filters/raw/master/StudentFilters.zip

Git Repository

The source code & package file can be intalled from git:

git clone https://github.com/cgearhart/students-filters.git

Use

The filter can be used like other WEKA filters from the command line, from the WEKA GUI, or directly within your own Java code. The specific options for each file can be found in the source code, documentation, or from the command line with the -h flag.

Command Line

Read the instructions first. Make sure that weka.jar and the StudentFilters.jar files are in the classpath and in order. Options for each filter can be determined with the -h argument. The filter can then be directly invoked (or chained like other WEKA filters), e.g.:

java -cp <weka_path>/weka.jar:<weka_packages>/studentfilters.jar weka.filters.unsupervised.attribute.IndependentComponent -i <infile.arff> -o <outfile.arff> -W -A -1 -N 200 -T 1E-4

IDE

The FastICA algorithm is implemented indepdent of WEKA, so it can be included without adding WEKA to your project by including the StudentFilters.jar file and importing filters.FastICA. However, using the WEKA-compatible IndepdentComponents filter requires the weka.jar in the classpath, and can be imported as weka.filters.unsupervised.attribute.IndependentComponents. See the WEKA documentation for more details.

The build.xml file can be used with Apache Ant to rebuild StudentFilters.jar by running:

ant build

NOTE: the EMJL library needs to be installed on your system in the expected location; follow the instructions to install it with Maven.

WEKA GUI

Once the filter is installed with the package manager, or has been simply unzipped to the package folder on the weka path, it will automatically appear in the WEKA gui. (The GUI must usually be restarted after new packages are added.) See the WEKA documentation for more details.

License

The filters are dependent on WEKA (licensed under GPL) and the Efficient Java Matrix Library (EJML) (licensed under Apache License 2.0). The FastICA algorithm is released under the GPL. The implementation in this package is based on the scikit-learn implementation which is released under BSD. To the extent that there may be any original copyright, it is licensed under the Unlicense - i.e., it is released to the Public Domain.

About

WEKA plugin for FastICA and multidimensional scaling filters

License:The Unlicense