* travis: move coveralls here, decouple from package
* composer: use PSR4
* phpunit: simpler config
* travis: add ecs run
* composer: add ecs dev
* use standard vendor/bin directory for dependency bins, confuses with local bins and require gitignore handling
* ecs: add PSR2
* [cs] PSR2 spacing fixes
* [cs] PSR2 class name fix
* [cs] PHP7 fixes - return semicolon spaces, old rand functions, typehints
* [cs] fix less strict typehints
* fix typehints to make tests pass
* ecs: ignore typehint-less elements
* [cs] standardize arrays
* [cs] standardize docblock, remove unused comments
* [cs] use self where possible
* [cs] sort class elements, from public to private
* [cs] do not use yoda (found less yoda-cases, than non-yoda)
* space
* [cs] do not assign in condition
* [cs] use namespace imports if possible
* [cs] use ::class over strings
* [cs] fix defaults for arrays properties, properties and constants single spacing
* cleanup ecs comments
* [cs] use item per line in multi-items array
* missing line
* misc
* rebase
* Linear Discrimant Analysis (LDA)
* LDA test file
* Matrix inverse via LUDecomposition
* LUDecomposition inverse() and det() applied
* Readme update for LDA
* Lineer Algebra operations
* Covariance
* PCA and KernelPCA
* Tests for PCA, Eigenvalues and Covariance
* KernelPCA update
* KernelPCA and its test
* KernelPCA and its test
* MatrixTest, KernelPCA and PCA tests
* Readme update
* Readme update
* Cost values for multiclass OneVsRest uses
* Partial training interface
* Reduce linear classifiers memory usage
* Testing partial training and isolated training
* Partial trainer naming switched to incremental estimator
Other changes according to review's feedback.
* Clean optimization data once optimize is finished
* Abstract resetBinary
* Fuzzy C-Means implementation
* Update FuzzyCMeans
* Rename FuzzyCMeans to FuzzyCMeans.php
* Update NaiveBayes.php
* Small fix applied to improve training performance
array_unique is replaced with array_count_values+array_keys which is way
faster
* Revert "Small fix applied to improve training performance"
This reverts commit c20253f16ac3e8c37d33ecaee28a87cc767e3b7f.
* Revert "Revert "Small fix applied to improve training performance""
This reverts commit ea10e136c4c11b71609ccdcaf9999067e4be473e.
* Revert "Small fix applied to improve training performance"
This reverts commit c20253f16ac3e8c37d33ecaee28a87cc767e3b7f.
* First DecisionTree implementation
* Revert "First DecisionTree implementation"
This reverts commit 4057a08679c26010c39040a48a3e6dad994a1a99.
* DecisionTree
* FCM Test
* FCM Test
* DecisionTree Test
* Ensemble classifiers: Bagging and RandomForests
* test
* Fixes for conflicted files
* Bagging and RandomForest ensemble algorithms
* Changed unit test
* Changed unit test
* Changed unit test
* Bagging and RandomForest ensemble algorithms
* Baggging and RandomForest ensemble algorithms
* Bagging and RandomForest ensemble algorithms
RandomForest algorithm is improved with changes to original DecisionTree
* Bagging and RandomForest ensemble algorithms
* Slight fix about use of global Exception class
* Fixed the error about wrong use of global Exception class
* RandomForest code formatting
* Multiple training data sets allowed
* Tests with multiple training data sets
* Updating docs according to #38
Documenting all models which predictions will be based on all
training data provided.
Some models already supported multiple training data sets.
* Fuzzy C-Means implementation
* Update FuzzyCMeans
* Rename FuzzyCMeans to FuzzyCMeans.php
* Update NaiveBayes.php
* Small fix applied to improve training performance
array_unique is replaced with array_count_values+array_keys which is way
faster
* Revert "Small fix applied to improve training performance"
This reverts commit c20253f16ac3e8c37d33ecaee28a87cc767e3b7f.
* Revert "Revert "Small fix applied to improve training performance""
This reverts commit ea10e136c4c11b71609ccdcaf9999067e4be473e.
* Revert "Small fix applied to improve training performance"
This reverts commit c20253f16ac3e8c37d33ecaee28a87cc767e3b7f.
* DecisionTree
* FCM Test
* FCM Test
* DecisionTree Test
### Features
* Works only with primitive types int, float, string
* Implements set theortic operations union, intersection, complement
* Modifies set by adding, removing elements
* Implements \IteratorAggregate for use in loops
### Implementation details
Based on array functions:
* array_diff,
* array_merge,
* array_intersection,
* array_unique,
* array_values,
* sort.
### Drawbacks
* **Do not work with objects.**
* Power set and Cartesian product returning array of Set
* Remove user-specific gitignore
* Add return type hints
* Avoid global namespace in docs
* Rename rules -> getRules
* Split up rule generation
Todo:
* Move set theory out to math
* Extract rule generation
* Generating frequent k-length item sets
* Generating rules based on frequent item sets
* Algorithm has exponential complexity, be aware of it
* Apriori algorithm is split into apriori and candidates method
* Second step rule generation is implemented by rules method
* Internal methods are invoked for fine grain unit tests
* Wikipedia's train samples and an alternative are provided for test cases
* Small documentation for public interface is also shipped