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
Influence values can be on any arbitrary scale as they are automatically normalized upon instantiation.
Interfaces: Estimator, Learner, Parallel, Persistable
Data Type Compatibility: Depends on the base learners
Parameters#
# | Name | Default | Type | Description |
---|---|---|---|---|
1 | experts | array | An array of learner instances that will comprise the committee. | |
2 | influences | null | array | The influence values for each expert in the committee. If null, each expert will be weighted equally. |
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;
$estimator = new CommitteeMachine([
new GaussianNB(),
new RandomForest(new ClassificationTree(4), 100, 0.3),
new KDNeighbors(3),
new SoftmaxClassifier(100),
], [
0.2, 0.4, 0.3, 0.1,
]);
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
References#
-
H. Drucker. (1997). Fast Committee Machines for Regression and Classification. ↩