1<span style="float:right;"><a href="https://github.com/RubixML/ML/blob/master/src/CommitteeMachine.php">[source]</a></span>
2
3# Committee Machine
4A 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.
5
6!!! note
7    Influence values can be on any arbitrary scale as they are automatically normalized upon instantiation.
8
9**Interfaces:** [Estimator](estimator.md), [Learner](learner.md), [Parallel](parallel.md), [Verbose](verbose.md), [Persistable](persistable.md)
10
11**Data Type Compatibility:** Depends on the base learners
12
13## Parameters
14| # | Name | Default | Type | Description |
15|---|---|---|---|---|
16| 1 | experts | | array | An array of learner instances that will comprise the committee. |
17| 2 | influences | null | array | The influence values for each expert in the committee. If null, each expert will be weighted equally. |
18
19## Example
20```php
21use Rubix\ML\CommitteeMachine;
22use Rubix\ML\Classifiers\GaussianNB;
23use Rubix\ML\Classifiers\RandomForest;
24use Rubix\ML\Classifiers\ClassificationTree;
25use Rubix\ML\Classifiers\KDNeighbors;
26use Rubix\ML\Classifiers\SoftmaxClassifier;
27
28$estimator = new CommitteeMachine([
29    new GaussianNB(),
30    new RandomForest(new ClassificationTree(4), 100, 0.3),
31    new KDNeighbors(3),
32    new SoftmaxClassifier(100),
33], [
34    0.2, 0.4, 0.3, 0.1,
35]);
36```
37
38## Additional Methods
39Return the learner instances of the committee:
40```php
41public experts() : array
42```
43
44Return the normalized influence scores of each expert in the committee:
45```php
46public influences() : array
47```
48
49## References
50[^1]: H. Drucker. (1997). Fast Committee Machines for Regression and Classification.