Algorithm Configuration Files

The Config folder contains files that allow the user to specify settings that allow ML-Flex to interface with third-party machine-learning software. These settings can be used within any ML-Flex experiment. Below are descriptions of these files and what the configuration values mean.

Learner_Templates.txt

This file contains information about which Java class within ML-Flex contains the logic for each particular "learner." A learner is an object that inherits from the mlflex.learners.AbstractMachineLearner class. For example, one learner, mlflex.learners.WekaLearner, provides logic for interfacing with the Weka machine-learning software. Another learner, mlflex.learner.C5Learner provides logic for interfacing with the C5.0 Decision Trees software. For many learners, including those mentioned above, ML-Flex interfaces with third-party software tools via command-line calls. Config/Learner_Templates.txt allows the user to specify the format of these command-line calls. This way, different users can specify different command templates (for example, if third-party software packages are installed in different file-system locations) without having to modify the ML-Flex code.

Feature_Selection_Algorithms.txt

This file contains information necessary to configure parameters for feature selection/ranking algorithms. Each line in this file contains parameters for a single algorithm. Individual parameters are separated by semicolons. The first value (e.g., "weka_info_gain") indicates a unique key for the algorithm. This same key is referenced from Experiment files. The second value references a "learner" that has been specified in Config/Learner_Templates.txt. The remaining configuration values are parameters that are passed to the learner. These values vary depending on what each learner requires.

Classification_Algorithms.txt

This file contains information necessary to configure parameters for classification algorithms. Each line in this file contains parameters for a single classification algorithm. Individual parameters are separated by semicolons. The first value (e.g., "weka_svm_linear") indicates a unique key for the algorithm. This same name is referenced in Experiment files. The second value references a "learner" that has been specified in Config/Learner_Templates.txt. The remaining configuration values are parameters that are passed to the learner. These values vary depending on what each learner requires.

Notes

Out of the box, ML-Flex supports mlflex.WekaLearner, which interfaces to the Weka machine-learning package. If configured, ML-Flex should be able interface with any algorithm in Weka. Additionally, ML-Flex contains mlflex.OrangeLearner, which interfaces with the Orange machine-learning framework, mlflex.C5Learner that interfaces with the C5.0 Decision Trees software, and mlflex.RLearner that interfaces with the R statistical package. However, the Orange, C5.0, and R software are not packaged with ML-Flex by default and need to be installed and configured alongside ML-Flex if they are to be used. Paths to these libraries also need to be specified in Classification_Algorithms.txt and/or Feature_Selection_Algorithms.txt. Example files demonstrate how this can be done.

The current implementation of mlflex.RLearner interacts with the Internals/R/Predict.R script. This script currently is designed to interface with the e1071 package. This package must also be installed from within R before running an ML-Flex analysis that invokes this script. Also, please note that Internals/R/Predict.R can be modified to support other R machine-learning packages and/or custom implementations in R.


Table of Contents

Introduction to ML-Flex

Prerequisites

Configuring Algorithms

Creating an Experiment File

List of Experiment Settings

Running an Experiment

List of Command-line Arguments

Executing Experiments Across Multiple Computers

Modifying Java Source Code

Creating a New Data Processor

Third-party Machine Learning Software

Integrating with Third-party Machine Learning Software

About Ensemble Learners