All Projects → ogreyesp → JCLAL

ogreyesp / JCLAL

Licence: GPL-3.0 license
JCLAL is a general purpose framework developed in Java for Active Learning.

Programming Languages

java
68154 projects - #9 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to JCLAL

Active-learning-for-object-detection
Active learning for deep object detection using YOLO
Stars: ✭ 35 (+59.09%)
Mutual labels:  semi-supervised-learning, active-learning
collective-classification-weka-package
Semi-Supervised Learning and Collective Classification
Stars: ✭ 20 (-9.09%)
Mutual labels:  weka, semi-supervised-learning
src
tools for fast reading of docs
Stars: ✭ 40 (+81.82%)
Mutual labels:  active-learning
candis
🎀 A data mining suite for gene expression data.
Stars: ✭ 28 (+27.27%)
Mutual labels:  weka
DualStudent
Code for Paper ''Dual Student: Breaking the Limits of the Teacher in Semi-Supervised Learning'' [ICCV 2019]
Stars: ✭ 106 (+381.82%)
Mutual labels:  semi-supervised-learning
differential-privacy-bayesian-optimization
This repo contains the underlying code for all the experiments from the paper: "Automatic Discovery of Privacy-Utility Pareto Fronts"
Stars: ✭ 22 (+0%)
Mutual labels:  active-learning
ahead
Univariate and multivariate time series forecasting
Stars: ✭ 15 (-31.82%)
Mutual labels:  statistical-learning
data-science
Lecture Slides for Introduction to Data Science
Stars: ✭ 22 (+0%)
Mutual labels:  statistical-learning
DeepAtlas
Joint Semi-supervised Learning of Image Registration and Segmentation
Stars: ✭ 38 (+72.73%)
Mutual labels:  semi-supervised-learning
arrhythmia-ecg-analysis-ai
Arrhythmia Classification through Characteristics Extraction with Discrete Wavelet Transform & WEKA/MATLAB Supervised Training
Stars: ✭ 25 (+13.64%)
Mutual labels:  weka
BoostSRL
BoostSRL: "Boosting for Statistical Relational Learning." A gradient-boosting based approach for learning different types of SRL models.
Stars: ✭ 31 (+40.91%)
Mutual labels:  statistical-learning
pyprophet
PyProphet: Semi-supervised learning and scoring of OpenSWATH results.
Stars: ✭ 23 (+4.55%)
Mutual labels:  semi-supervised-learning
semi-memory
Tensorflow Implementation on Paper [ECCV2018]Semi-Supervised Deep Learning with Memory
Stars: ✭ 49 (+122.73%)
Mutual labels:  semi-supervised-learning
ssdg-benchmark
Benchmarks for semi-supervised domain generalization.
Stars: ✭ 46 (+109.09%)
Mutual labels:  semi-supervised-learning
EC-GAN
EC-GAN: Low-Sample Classification using Semi-Supervised Algorithms and GANs (AAAI 2021)
Stars: ✭ 29 (+31.82%)
Mutual labels:  semi-supervised-learning
human-in-the-loop-machine-learning-tool-tornado
Tornado is a human-in-the-loop machine learning framework that helps you exploit your unlabelled data to train models through a simple and easy to use web interface.
Stars: ✭ 37 (+68.18%)
Mutual labels:  active-learning
seededlda
Semisupervided LDA for theory-driven text analysis
Stars: ✭ 46 (+109.09%)
Mutual labels:  semi-supervised-learning
TeBaQA
A question answering system which utilises machine learning.
Stars: ✭ 17 (-22.73%)
Mutual labels:  weka
Active-Explainable-Classification
A set of tools for leveraging pre-trained embeddings, active learning and model explainability for effecient document classification
Stars: ✭ 28 (+27.27%)
Mutual labels:  active-learning
ANTsR
Advanced Normalization Tools in R
Stars: ✭ 101 (+359.09%)
Mutual labels:  statistical-learning

                             JCLAL
            A Java Class Library for Active Learning

                        9 February 2016
		Oscar Gabriel Reyes Pupo							

                         version 1.1

Introduction

JCLAL framework is open source software and it is distributed under the GNU general public license. It is constructed with a high-level software environment, with a strong object oriented design and use of design patterns, which allow to the developers reuse, modify and extend the framework. Up to date, JCLAL uses the WEKA (http://weka.sourceforge.net) and MULAN (http://mulan.sourceforge.net) libraries to implement the most significant query strategies that have appeared on the single-label and multi-label learning paradigms. For next versions, we hope to include query strategies related with multi-instance and multi-label-multi-instance learning paradigms.

Download

SourceForge: http://sourceforge.net/projects/jclal/files/

GitHub: https://github.com/ogreyesp/JCLAL/archive/master.zip

Maven repository: http://search.maven.org/remotecontent?filepath=net/sf/jclal/jclal/1.1/ http://mvnrepository.com/artifact/net.sf.jclal/jclal/1.1

Sonatype OSSRH repository: https://oss.sonatype.org/#nexus-search;quick~jclal

Documentation

You'll find the documentation and information of the API inside the directory docs/ along with the original *.javadoc.jar file. Also, do check for simple examples the jclal-1.1-documentation.pdf.

Using JCLAL

The fastest way to use JCLAL is from the terminal. In the following examples it's assumed that you have a GNU/Linux flavor, and Java installed (v1.7+).

The examples are taken from the jclal-1.1-documentation.pdf page 16-18.

Configuring an experiment

The good thing with JCLAL is that the user has to deal only with one XML configuration file per experiment, where all the parameters are tuned according to his needs.

The most important parameters that the user can control are:

  1. The evaluation method
  2. The dataset
  3. Labelled and unlabelled sets
  4. The Active Learning algorithm
  5. The stopping criteria
  6. The AL scenario
  7. The query strategy
  8. The oracle: there are provided two types of oracle. A simulated one and one that interacts with the user (Console Human Oracle).
  9. Listeners: we can define how the results of the experiment will be presented. The default method is storing the results in reports, in the reports directory.

You can see examples of XML configuration files (cfg) in the examples directory.

Executing an experiment

Once the user has created a XML config. file, the fastest way to execute an experiment is from the terminal:

$ java -jar jclal-1.1.jar -cfg example/SingleLabel/HoldOut/EntropySamplingQueryStrategy.cfg

One can run multiple experiments, by feeding JCLAL all the cfg files that exist in a directory, in our example HoldOut:

$ java -jar jclal-1.1.jar -d examples/SingleLabel/HoldOut

Visualizations

It is possible to see the learning curve in each experiment by invoking net.sf.jclal.gui.view.components.chart.ExternalBasicChart.

Features of this version

Taken from the file CHANGELIST.

Added

  • Some evaluation measures were included for further analysis, e.g. the time for selecting the unlabeled instances, the time for training and testing the base classifier.

  • It is possible to show by console the labels of the queried instances in a SimulatedOracle.

  • It is possible to retrieve the last instances that were labeled by an oracle.

  • The ConsoleHumanOracle class was improved. The human annotator can skip a query instance.

  • Supports for incremental classifiers. If the base classifier is updatable then the base classifier is not retrained with all labeled instances from scratch in every iteration.

  • An abstract method was added to the IqueryStrategy interface for executing any necessary action after the active learning process is finished, e.g. free memory, delete temporal files, etc.

  • Supports for CLUS and LibSVM multilabel datasets.

  • The 5X2 cross validation was added.

  • The Leave One Out cross validation was added.

  • We have included a real-usage scenario, where the user provides a small labeled set from which the initial classifier is trained, and an unlabeled set for determining the unlabeled instances that should be query in each iteration. In each iteration, the unlabeled instances selected are showed to the user, the user labels the instances and they are added to labeled set. This real-usage scenario allows to obtain the set of labeled instances at the end of the session for further analysis.

  • Several new features were added to the ExternalBasicChart class, e.g. curve options, view dash types, view shapes, export the graphics in EPS and SVG formats.

  • The KnearestDistanceContainer class was added. It extends DistanceContainer class and allows to store the distance between an instance and its k-nearest neighbours.

  • Several features were added to the LearningCurveUtility, e.g. creation of CSV files with AULC's values from directory of reports for further analysis.

  • We have incorporated a new package net.sf.jclal.gui.view.components.statistical for performing statistical tests. The StatisticalWindow class is a user-friendly GUI that allows to perform the most popular non parametric statistical tests. The code was adopted from KEEL software (http://www.keel.es).

  • The BinaryRelevanceUpdateable was added. It allows to execute the Binary Relevance approach with incremental classifiers as binary classifiers.

  • The LCI and MMU multi-label strategies were added. (Li, X., & Guo, Y. 2013. Active Learning with Multi-label SVM Classification.)

  • Supports for incremental classifiers of MOA library.

Deleted

  • The package net.sf.jclal.gui.view.xml was removed from this version. The GUI for configuring the experiments (GUIXML) only works with JCLAL-1.0 version. We are working in a more user-friendly GUI for configuring the experiments.
  • For the same reason, we've removed the plugin for working into Weka's explorer.

Bugs fixed

  • Bug at the time to show several curves which have different metrics. (ExternalBasicChart class)

  • Bug in kfoldCrossValidation in the aggregation step of the fold's results. The error was only in the summary data, e.g. the size of the initial unlabeled set and the size of the initial labeled set. (kFoldCrossValidation class)

Older version

Development

If you find a bug, send a pull request and we'll discuss things.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].