2017-02-07 11:37:56 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
2018-01-06 12:09:33 +00:00
|
|
|
namespace Phpml\Tests\Classification\Ensemble;
|
2017-02-07 11:37:56 +00:00
|
|
|
|
|
|
|
use Phpml\Classification\DecisionTree;
|
2017-11-06 07:56:37 +00:00
|
|
|
use Phpml\Classification\Ensemble\RandomForest;
|
2017-02-07 11:37:56 +00:00
|
|
|
use Phpml\Classification\NaiveBayes;
|
2017-11-22 21:16:10 +00:00
|
|
|
use Throwable;
|
2017-02-07 11:37:56 +00:00
|
|
|
|
|
|
|
class RandomForestTest extends BaggingTest
|
|
|
|
{
|
2017-11-22 21:16:10 +00:00
|
|
|
public function testOtherBaseClassifier(): void
|
|
|
|
{
|
|
|
|
try {
|
|
|
|
$classifier = new RandomForest();
|
|
|
|
$classifier->setClassifer(NaiveBayes::class);
|
|
|
|
$this->assertEquals(0, 1);
|
|
|
|
} catch (Throwable $ex) {
|
|
|
|
$this->assertEquals(1, 1);
|
|
|
|
}
|
|
|
|
}
|
2018-01-06 12:09:33 +00:00
|
|
|
|
2017-02-07 11:37:56 +00:00
|
|
|
protected function getClassifier($numBaseClassifiers = 50)
|
|
|
|
{
|
|
|
|
$classifier = new RandomForest($numBaseClassifiers);
|
|
|
|
$classifier->setFeatureSubsetRatio('log');
|
2017-08-17 06:50:37 +00:00
|
|
|
|
2017-02-07 11:37:56 +00:00
|
|
|
return $classifier;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected function getAvailableBaseClassifiers()
|
|
|
|
{
|
2017-08-17 06:50:37 +00:00
|
|
|
return [DecisionTree::class => ['depth' => 5]];
|
2017-02-07 11:37:56 +00:00
|
|
|
}
|
|
|
|
}
|