Source

Committee Machine#

A voting ensemble that aggregates the predictions of a committee of heterogeneous learners (referred to as experts). The committee employs a user-specified influence scheme to weight the final predictions.

Note: Bootstrap Aggregator is not compatible with clusterers.

Note: Influence values can be arbitrary as they are normalized upon instantiation.

Interfaces: Estimator, Learner, Parallel, Verbose, Persistable

Data Type Compatibility: Depends on the base learners

Parameters#

# Param Default Type Description
1 experts array An array of learner instances that will comprise the committee.
2 influences Auto array The influence scores for each expert in the committee. The default is to weight each expert equally.

Additional Methods#

Return the learner instances of the committee:

public experts() : array

Return the normalized influence scores of each expert in the committee:

public influences() : array

Example#

use Rubix\ML\CommitteeMachine;
use Rubix\ML\Classifiers\GaussianNB;
use Rubix\ML\Classifiers\RandomForest;
use Rubix\ML\Classifiers\ClassificationTree;
use Rubix\ML\Classifiers\KDNeighbors;
use Rubix\ML\Classifiers\SoftmaxClassifier;
use Rubix\ML\NeuralNet\Optimizers\Momentum;

$estimator = new CommitteeMachine([
    new GaussianNB(),
    new RandomForest(new ClassificationTree(4), 100, 0.3),
    new KDNeighbors(3),
    new SoftmaxClassifier(100, new Mometum(0.001)),
], [
    1, 4, 3, 2,
]);

References#

  • [1] H. Drucker. (1997). Fast Committee Machines for Regression and Classification.