Ranking of attributes in classification or regression datasets.


  • Data: input dataset

  • Scorer: models for feature scoring


  • Reduced Data: dataset with selected attributes

The Rank widget considers class-labeled datasets (classification or regression) and scores the attributes according to their correlation with the class. Rank accepts also models for scoring, such as linear regression, logistic regression, random forest, SGD, etc.


  1. Select attributes from the data table.

  2. Data table with attributes (rows) and their scores by different scoring methods (columns)

  3. Produce a report.

  4. If ‘Send Automatically’ is ticked, the widget automatically communicates changes to other widgets.

Scoring methods

  1. Information Gain: the expected amount of information (reduction of entropy)

  2. Gain Ratio: a ratio of the information gain and the attribute’s intrinsic information, which reduces the bias towards multivalued features that occurs in information gain

  3. Gini: the inequality among values of a frequency distribution

  4. ANOVA: the difference between average vaules of the feature in different classes

  5. Chi2: dependence between the feature and the class as measure by the chi-square statistic

  6. ReliefF: the ability of an attribute to distinguish between classes on similar data instances

  7. FCBF (Fast Correlation Based Filter): entropy-based measure, which also identifies redundancy due to pairwise correlations between features

Additionally, you can connect certain learners that enable scoring the features according to how important they are in models that the learners build (e.g. Linear Regression / Logistic Regression, Random Forest, SGD).

Example: Attribute Ranking and Selection

Below, we have used the Rank widget immediately after the File widget to reduce the set of data attributes and include only the most informative ones:


Notice how the widget outputs a dataset that includes only the best-scored attributes:


Example: Feature Subset Selection for Machine Learning

What follows is a bit more complicated example. In the workflow below, we first split the data into a training set and a test set. In the upper branch, the training data passes through the Rank widget to select the most informative attributes, while in the lower branch there is no feature selection. Both feature selected and original datasets are passed to their own Test & Score widgets, which develop a Naive Bayes classifier and score it on a test set.


For datasets with many features, a naive Bayesian classifier feature selection, as shown above, would often yield a better predictive accuracy.