Project details for WEKA

Screenshot WEKA 3.7.4

by mhall - June 30, 2011, 11:04:14 CET [ Project Homepage BibTeX BibTeX for corresponding Paper Download ]

view (14 today), download ( 1 today ), 5 subscriptions

OverallWhole StarWhole StarWhole StarWhole StarEmpty Star
FeaturesWhole StarWhole StarWhole StarWhole Star1/2 Star
UsabilityWhole StarWhole StarWhole Star1/2 StarEmpty Star
DocumentationWhole StarWhole StarWhole StarWhole StarEmpty Star
(based on 6 votes)

The Weka workbench contains a collection of visualization tools and algorithms for data analysis and predictive modelling, together with graphical user interfaces for easy access to this functionality. The main strengths of Weka are that it is freely available under the GNU General Public License, very portable because it is fully implemented in the Java programming language and thus runs on almost any computing platform, contains a comprehensive collection of data preprocessing and modeling techniques, and is easy to use by a novice due to the graphical user interfaces it contains.

Weka supports several standard data mining tasks, more specifically, data preprocessing, clustering, classification, regression, visualization, and feature selection. All of Weka's techniques are predicated on the assumption that the data is available as a single flat file or relation, where each data point is described by a fixed number of attributes (normally, numeric or nominal attributes, but some other attribute types are also supported). Weka provides access to SQL databases using Java Database Connectivity and can process the result returned by a database query. It is not capable of multi-relational data mining, but there is separate software for converting a collection of linked database tables into a single table that is suitable for processing using Weka. Another important area that is currently not covered by the algorithms included in the Weka distribution is sequence modeling.

Weka's main user interface is the Explorer, but essentially the same functionality can be accessed through the component-based Knowledge Flow interface and from the command line. There is also the Experimenter, which allows the systematic comparison of the predictive performance of Weka's machine learning algorithms on a collection of datasets.

The Explorer interface has several panels that give access to the main components of the workbench. The Preprocess panel has facilities for importing data from a database, a CSV file, etc., and for preprocessing this data using a so-called filtering algorithm. These filters can be used to transform the data (e.g., turning numeric attributes into discrete ones) and make it possible to delete instances and attributes according to specific criteria. The Classify panel enables the user to apply classification and regression algorithms (indiscriminately called classifiers in Weka) to the resulting dataset, to estimate the accuracy of the resulting predictive model, and to visualize erroneous predictions, ROC curves, etc., or the model itself (if the model is amenable to visualization like, e.g., a decision tree). Weka contains many of the latest sophisticated methods, such as support vector machines, gaussian processes, random forests, but also classic methods like C4.5, ANNs, bagging, boosting, etc. The Associate panel provides access to association rule learners that attempt to identify all important interrelationships between attributes in the data. The Cluster panel gives access to the clustering techniques in Weka, e.g., the simple k-means algorithm. There is also an implementation of the expectation maximization algorithm for learning a mixture of normal distributions. The next panel, Select attributes provides algorithms for identifying the most predictive attributes in a dataset. The last panel, Visualize, shows a scatter plot matrix, where individual scatter plots can be selected and enlarged, and analyzed further using various selection operators.

What's new since version 3.6.0?

  • Package management system
  • Support for importing PMML support vector machines
  • Denormalize filter for flattening transactional data
  • SGD stochastic gradient descent for learning binary SVMs, logistic regression and linear regression (can be trained incrementally)
  • scatterPlot3D - a new package that adds a 3D scatter plot visualization to the Explorer
  • associationRulesVisualizer - a new package that adds a 3D visualization of association rules to Associations panel of the Explorer
  • massiveOnlineAnalysis - a new connector package for the MOA data stream learning tool
  • Tabu search method for feature selection
  • EM-based imputation of missing values
  • Speed improvements for random trees, which in turn lead faster random forests (up to an order of magnitude faster)
  • Support for importing PMML decision trees
  • Apriori can make use of sparse instances for market basket type data
  • Support for using environment variables in the Knowledge Flow
  • Support for Groovy scripting
  • Improvements to the loading of CSV files
  • Enhanced plugin support in the Explorer's Classify panel
  • Filter for sorting the labels of nominal attributes
  • Information on instance weights displayed in the Preprocess panel of the Explorer
  • Wrapper feature selection now supports mae, f-measure, auc, rmse (probabilities), mae (probabilities) as well as the original error rate and rmse
  • Converters to read and write Matlab's ASCII file format
  • FPGrowth association rule learner
  • SPegasos algorithm for learning linear support vector machines via stochastic gradient descent
  • PMML decision trees and rule set models
  • Cost/benefit analysis component
  • Support for parallel processing in some meta learners
  • FURIA rule learner
  • Friedman's RealAdaBoost algorithm
  • HierarchicalClusterer, implementing a number of hierarchical clustering techniques
  • Improved and faster version of Gaussian process regression
  • Evaluation routines for conditional density estimates and interval estimators
  • OneClassClassifier
  • Architectural changes: Classifier and Instance are now interfaces; core does not depend on FastVector any more

[1] Ian H. Witten; Eibe Frank (2005). Data Mining: Practical machine learning tools and techniques, 2nd Edition. Morgan Kaufmann, San Francisco.

[2] G. Holmes; A. Donkin and I.H. Witten (1994). Weka: A machine learning workbench. Proc Second Australia and New Zealand Conference on Intelligent Information Systems, Brisbane, Australia.

[3] S.R. Garner; S.J. Cunningham, G. Holmes, C.G. Nevill-Manning, and I.H. Witten (1995). Applying a machine learning workbench: Experience with agricultural databases. Proc Machine Learning in Practice Workshop, Machine Learning Conference, Tahoe City, CA, USA 14-21.

[4] P. Reutemann; B. Pfahringer and E. Frank (2004). Proper: A Toolbox for Learning from Relational Data with Propositional and Multi-Instance Learners. 17th Australian Joint Conference on Artificial Intelligence (AI2004). Springer-Verlag.

[5] Ian H. Witten; Eibe Frank, Len Trigg, Mark Hall, Geoffrey Holmes, and Sally Jo Cunningham (1999). Weka: Practical Machine Learning Tools and Techniques with Java Implementations. Proceedings of the ICONIP/ANZIIS/ANNES'99 Workshop on Emerging Knowledge Engineering and Connectionist-Based Information Systems 192-196.

[6] Gregory Piatetsky-Shapiro (2005-06-28). KDnuggets news on SIGKDD Service Award 2005.

Changes to previous version:

BibTeX Entry: Download
Corresponding Paper BibTeX Entry: Download
URL: Project Homepage
Supported Operating Systems: Cygwin, Linux, Macosx, Windows
Data Formats: None
Tags: Association Rules, Attribute Selection, Classification, Clustering, Preprocessing, Regression
Archive: download here

Other available revisons

Version Changelog Date

In core weka:

  • JAMA-based linear algebra routines replaced with MTJ. Faster operation with the option to use native libraries for even more speed
  • General efficiency improvements in core, filters and some classifiers
  • GaussianProcesses now handles instance weights
  • New Knowledge Flow implementation. Engine completely rewritten from scratch with a simplified API
  • New Workbench GUI
  • GUI package manager now has a search facility
  • FixedDictionaryStringToWordVector filter allows the use of an external dictionary for vectorization. DictionarySaver converter can be used to create a dictionary file

In packages:

  • Packages that were using JAMA are now using MTJ
  • New netlibNativeOSX, netlibNativeWindows and netlibNativeLinux packages providing native reference implementations (and system-optimized implementation in the case of OSX) of BLAS, LAPACK and ARPACK linear algebra
  • New elasticNet package, courtesy of Nikhil Kinshore
  • New niftiLoader package for loading a directory with MIR data in NIfTI format into Weka
  • New percentageErrorMetrics package - provides plugin evaluation metrics for root mean square percentage error and mean absolute percentage error
  • New iterativeAbsoluteErrorRegression package - provides a meta learner that fits a regression model to minimize absolute error
  • New largeScaleKernelLearning package - contains filters for large-scale kernel-based learning
  • discriminantAnalysis package now contains an implementation for LDA and QDA
  • New Knowledge Flow component implementations in various packages
  • newKnowledgeFlowStepExamples package - contains code examples for new Knowledge Flow API discussion in the Weka Manual
  • RPlugin updated to latest version of MLR
  • scatterPlot3D and associationRulesVisualizer packages updated with latest Java 3D libraries
  • Support for pluggable activation functions in the multiLayerPerceptrons package
April 15, 2016, 06:35:30

In core weka:

  • Numerically stable implementation of variance calculation in core Weka classes - thanks to Benjamin Weber
  • Unified expression parsing framework (with compiled expressions) is now employed by filters and tools that use mathematical/logical expressions - thanks to Benjamin Weber
  • Developers can now specify GUI and command-line options for their Weka schemes via a new unified annotation-based mechanism
  • ClassConditionalProbabilities filter - replaces the value of a nominal attribute in a given instance with its probability given each of the possible class values
  • GUI package manager's available list now shows both packages that are not currently installed, and those installed packages for which there is a more recent version available that is compatible with the base version of Weka being used
  • ReplaceWithMissingValue filter - allows values to be randomly (with a user-specified probability) replaced with missing values. Useful for experimenting with methods for imputing missing values
  • WrapperSubsetEval can now use plugin evaluation metrics

In packages:

  • alternatingModelTrees package - alternating trees for regression
  • timeSeriesFilters package, contributed by Benjamin Weber
  • distributedWekaSpark package - wrapper for distributed Weka on Spark
  • wekaPython package - execution of CPython scripts and wrapper classifier/clusterer for Scikit Learn schemes
  • MLRClassifier in RPlugin now provides access to almost all classification and regression learners in MLR 2.4
September 11, 2015, 04:55:02

In core weka:

  • GUIChooser now has a plugin exension point that allows implementations of GUIChooser.GUIChooserMenuPlugin to appear as entries in either the Tools or Visualization menus
  • SubsetByExpression filter now has support for regexp matching
  • weka.classifiers.IterativeClassifierOptimizer - a classifier that can efficiently optimize the number of iterations for a base classifier that implements IterativeClassifier
  • Speedup for LogitBoost in the two class case
  • weka.filters.supervised.instance.ClassBalancer - a simple filter to balance the weight of classes
  • New class hierarchy for stopwords algorithms. Includes new methods to read custom stopwords from a file and apply multiple stopwords algorithms
  • Ability to turn off capabilities checking in Weka algorithms. Improves runtime for ensemble methods that create a lot of simple base classifiers
  • Memory savings in weka.core.Attribute
  • Improvements in runtime for SimpleKMeans and EM
  • weka.estimators.UnivariateMixtureEstimator - new mixture estimator

In packages:

  • New discriminantAnalysis package. Provides an implementation of Fisher's linear discriminant analysis
  • Quartile estimators, correlation matrix heat map and k-means++ clustering in distributed Weka
  • Support for default settings for GridSearch via a properties file
  • Improvements in scripting with addition of the offical Groovy console (kfGroovy package) from the Groovy project and TigerJython (new tigerjython package) as the Jython console via the GUIChooser
  • Support for the latest version of MLR in the RPlugin package
  • EAR4 package contributed by Vahid Jalali
  • StudentFilters package contributed by Chris Gearhart
  • graphgram package contributed by Johannes Schneider
December 17, 2014, 03:04:17

In core weka:

  • Bagging and RandomForest are now faster if the base learner is a WeightedInstancesHandler
  • Speed-ups for REPTree and other classes that use entropy calculations
  • Many other code improvements and speed-ups
  • Additional statistics available in the output of LinearRegression and SimpleLinearRegression. Contributed by Chris Meyer
  • Reduced memory consumption in BayesNet
  • Improvements to the package manager: load status of individual packages can now be toggled to prevent a package from loading; "Available" button now displays the latest version of all available packages that are compatible with the base version of Weka
  • RandomizableFilteredClassifier
  • Canopy clusterer
  • ImageViewer KnowledgeFlow component
  • PMML export support for Logistic. Infrastructure and changes contributed by David Person
  • Extensive tool-tips now displayed in the Explorer's scheme selector tree lists
  • Join KnowledgeFlow component for performing an inner join on two incoming streams/data sets

In packages:

  • IWSSembeded package, contributed by Pablo Bermejo
  • CVAttributeEval package, contributed by Justin Liang
  • distributedWeka package for Hadoop
  • Improvements to multiLayerPerceptrons and addtion of MLPAutoencoder
  • Code clean-up in many packages
April 24, 2014, 10:13:12

July 31, 2013, 05:27:43

February 24, 2013, 09:13:22

January 25, 2013, 01:37:56

August 17, 2012, 02:23:06

May 11, 2012, 03:59:26

October 31, 2011, 09:09:36

June 30, 2011, 11:04:14

Initial Announcement on

December 10, 2010, 00:10:01

Initial Announcement on

August 2, 2010, 11:17:22

Initial Announcement on

January 12, 2010, 21:50:10

Initial Announcement on

June 5, 2009, 05:38:28

Initial Announcement on

November 11, 2007, 22:24:02


No one has posted any comments yet. Perhaps you'd like to be the first?

Leave a comment

You must be logged in to post comments.