train($samples, $labels); $this->assertEquals('a', $classifier->predict([3, 1, 1])); $this->assertEquals('b', $classifier->predict([1, 4, 1])); $this->assertEquals('c', $classifier->predict([1, 1, 6])); } public function testPredictArrayOfSamples() { $trainSamples = [[5, 1, 1], [1, 5, 1], [1, 1, 5]]; $trainLabels = ['a', 'b', 'c']; $testSamples = [[3, 1, 1], [5, 1, 1], [4, 3, 8], [1, 1, 2], [2, 3, 2], [1, 2, 1], [9, 5, 1], [3, 1, 2]]; $testLabels = ['a', 'a', 'c', 'c', 'b', 'b', 'a', 'a']; $classifier = new NaiveBayes(); $classifier->train($trainSamples, $trainLabels); $predicted = $classifier->predict($testSamples); $this->assertEquals($testLabels, $predicted); // Feed an extra set of training data. $samples = [[1, 1, 6]]; $labels = ['d']; $classifier->train($samples, $labels); $testSamples = [[1, 1, 6], [5, 1, 1]]; $testLabels = ['d', 'a']; $this->assertEquals($testLabels, $classifier->predict($testSamples)); } }