diff --git a/src/Phpml/Classifier/KNearestNeighbors.php b/src/Phpml/Classifier/KNearestNeighbors.php index ad5aebe..46733f5 100644 --- a/src/Phpml/Classifier/KNearestNeighbors.php +++ b/src/Phpml/Classifier/KNearestNeighbors.php @@ -6,8 +6,8 @@ namespace Phpml\Classifier; use Phpml\Classifier\Traits\Predictable; use Phpml\Classifier\Traits\Trainable; -use Phpml\Metric\Distance; -use Phpml\Metric\Distance\Euclidean; +use Phpml\Math\Distance; +use Phpml\Math\Distance\Euclidean; class KNearestNeighbors implements Classifier { diff --git a/src/Phpml/Classifier/SupportVectorMachine.php b/src/Phpml/Classifier/SupportVectorMachine.php index 139a062..25d266c 100644 --- a/src/Phpml/Classifier/SupportVectorMachine.php +++ b/src/Phpml/Classifier/SupportVectorMachine.php @@ -11,6 +11,41 @@ class SupportVectorMachine implements Classifier { use Trainable, Predictable; + /** + * @var float + */ + private $gamma; + + /** + * @var float + */ + private $epsilon; + + /** + * @var float + */ + private $tolerance; + + /** + * @var int + */ + private $upperBound; + + /** + * @param float $gamma + * @param float $epsilon + * @param float $tolerance + * @param int $upperBound + */ + public function __construct(float $gamma = .5, float $epsilon = .001, float $tolerance = .001, int $upperBound = 100) + { + $this->gamma = $gamma; + $this->epsilon = $epsilon; + $this->tolerance = $tolerance; + $this->upperBound = $upperBound; + } + + /** * @param array $sample * diff --git a/src/Phpml/Metric/Distance.php b/src/Phpml/Math/Distance.php similarity index 89% rename from src/Phpml/Metric/Distance.php rename to src/Phpml/Math/Distance.php index b590f61..ed929b3 100644 --- a/src/Phpml/Metric/Distance.php +++ b/src/Phpml/Math/Distance.php @@ -2,7 +2,7 @@ declare (strict_types = 1); -namespace Phpml\Metric; +namespace Phpml\Math; interface Distance { diff --git a/src/Phpml/Metric/Distance/Chebyshev.php b/src/Phpml/Math/Distance/Chebyshev.php similarity index 91% rename from src/Phpml/Metric/Distance/Chebyshev.php rename to src/Phpml/Math/Distance/Chebyshev.php index 0dab5e8..386d98a 100644 --- a/src/Phpml/Metric/Distance/Chebyshev.php +++ b/src/Phpml/Math/Distance/Chebyshev.php @@ -2,10 +2,10 @@ declare (strict_types = 1); -namespace Phpml\Metric\Distance; +namespace Phpml\Math\Distance; use Phpml\Exception\InvalidArgumentException; -use Phpml\Metric\Distance; +use Phpml\Math\Distance; class Chebyshev implements Distance { diff --git a/src/Phpml/Metric/Distance/Euclidean.php b/src/Phpml/Math/Distance/Euclidean.php similarity index 91% rename from src/Phpml/Metric/Distance/Euclidean.php rename to src/Phpml/Math/Distance/Euclidean.php index da3d2e3..cca8f2b 100644 --- a/src/Phpml/Metric/Distance/Euclidean.php +++ b/src/Phpml/Math/Distance/Euclidean.php @@ -2,10 +2,10 @@ declare (strict_types = 1); -namespace Phpml\Metric\Distance; +namespace Phpml\Math\Distance; use Phpml\Exception\InvalidArgumentException; -use Phpml\Metric\Distance; +use Phpml\Math\Distance; class Euclidean implements Distance { diff --git a/src/Phpml/Metric/Distance/Manhattan.php b/src/Phpml/Math/Distance/Manhattan.php similarity index 91% rename from src/Phpml/Metric/Distance/Manhattan.php rename to src/Phpml/Math/Distance/Manhattan.php index f69dc42..8253eb7 100644 --- a/src/Phpml/Metric/Distance/Manhattan.php +++ b/src/Phpml/Math/Distance/Manhattan.php @@ -2,10 +2,10 @@ declare (strict_types = 1); -namespace Phpml\Metric\Distance; +namespace Phpml\Math\Distance; use Phpml\Exception\InvalidArgumentException; -use Phpml\Metric\Distance; +use Phpml\Math\Distance; class Manhattan implements Distance { diff --git a/src/Phpml/Metric/Distance/Minkowski.php b/src/Phpml/Math/Distance/Minkowski.php similarity index 93% rename from src/Phpml/Metric/Distance/Minkowski.php rename to src/Phpml/Math/Distance/Minkowski.php index c014252..5c08c03 100644 --- a/src/Phpml/Metric/Distance/Minkowski.php +++ b/src/Phpml/Math/Distance/Minkowski.php @@ -2,10 +2,10 @@ declare (strict_types = 1); -namespace Phpml\Metric\Distance; +namespace Phpml\Math\Distance; use Phpml\Exception\InvalidArgumentException; -use Phpml\Metric\Distance; +use Phpml\Math\Distance; class Minkowski implements Distance { diff --git a/tests/Phpml/Classifier/KNearestNeighborsTest.php b/tests/Phpml/Classifier/KNearestNeighborsTest.php index 5e8ae58..fd7ebad 100644 --- a/tests/Phpml/Classifier/KNearestNeighborsTest.php +++ b/tests/Phpml/Classifier/KNearestNeighborsTest.php @@ -5,7 +5,7 @@ declare (strict_types = 1); namespace tests\Classifier; use Phpml\Classifier\KNearestNeighbors; -use Phpml\Metric\Distance\Chebyshev; +use Phpml\Math\Distance\Chebyshev; class KNearestNeighborsTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/Phpml/Metric/Distance/ChebyshevTest.php b/tests/Phpml/Math/Distance/ChebyshevTest.php similarity index 97% rename from tests/Phpml/Metric/Distance/ChebyshevTest.php rename to tests/Phpml/Math/Distance/ChebyshevTest.php index 306260c..78fb2a0 100644 --- a/tests/Phpml/Metric/Distance/ChebyshevTest.php +++ b/tests/Phpml/Math/Distance/ChebyshevTest.php @@ -4,7 +4,7 @@ declare (strict_types = 1); namespace tests\Phpml\Metric; -use Phpml\Metric\Distance\Chebyshev; +use Phpml\Math\Distance\Chebyshev; class ChebyshevTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/Phpml/Metric/Distance/EuclideanTest.php b/tests/Phpml/Math/Distance/EuclideanTest.php similarity index 97% rename from tests/Phpml/Metric/Distance/EuclideanTest.php rename to tests/Phpml/Math/Distance/EuclideanTest.php index d9bf449..a3dea3c 100644 --- a/tests/Phpml/Metric/Distance/EuclideanTest.php +++ b/tests/Phpml/Math/Distance/EuclideanTest.php @@ -4,7 +4,7 @@ declare (strict_types = 1); namespace tests\Phpml\Metric; -use Phpml\Metric\Distance\Euclidean; +use Phpml\Math\Distance\Euclidean; class EuclideanTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/Phpml/Metric/Distance/ManhattanTest.php b/tests/Phpml/Math/Distance/ManhattanTest.php similarity index 97% rename from tests/Phpml/Metric/Distance/ManhattanTest.php rename to tests/Phpml/Math/Distance/ManhattanTest.php index 94ce5ca..7d0cf2d 100644 --- a/tests/Phpml/Metric/Distance/ManhattanTest.php +++ b/tests/Phpml/Math/Distance/ManhattanTest.php @@ -4,7 +4,7 @@ declare (strict_types = 1); namespace tests\Phpml\Metric; -use Phpml\Metric\Distance\Manhattan; +use Phpml\Math\Distance\Manhattan; class ManhattanTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/Phpml/Metric/Distance/MinkowskiTest.php b/tests/Phpml/Math/Distance/MinkowskiTest.php similarity index 97% rename from tests/Phpml/Metric/Distance/MinkowskiTest.php rename to tests/Phpml/Math/Distance/MinkowskiTest.php index 78d9ef3..ad9318d 100644 --- a/tests/Phpml/Metric/Distance/MinkowskiTest.php +++ b/tests/Phpml/Math/Distance/MinkowskiTest.php @@ -4,7 +4,7 @@ declare (strict_types = 1); namespace tests\Phpml\Metric; -use Phpml\Metric\Distance\Minkowski; +use Phpml\Math\Distance\Minkowski; class MinkowskiTest extends \PHPUnit_Framework_TestCase {