Skip to content

Commit a0ce91d

Browse files
Merge pull request #113 from RubixML/0.2.0
0.2.0
2 parents 851a507 + f0ba575 commit a0ce91d

222 files changed

Lines changed: 2818 additions & 1407 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
- 0.2.0
2+
- Add Recursive Feature Eliminator feature selector
3+
- Can now disable holdout validation in MLP learners
4+
- TF-IDF Transformer additive (Laplace) smoothing now variable
5+
- Added instability detection to gradient-based learners
6+
- Gradient Boost validation set holdout can now be 0
7+
- Specifications now extend base class
8+
- Rename Dataset validate argument to verify
9+
- Ball Tree Cluster nodes are now called Cliques
10+
- ITree cells are now called Depth nodes
11+
- Added Dataset join() method and deprecated augment()
12+
- Added score() method to Ranking API and deprecated rank()
13+
- Renamed Radius Neighbors anomalyClass to outlierClass
14+
- HTML Stripper can now allow user-specified tags
15+
- Sparse Random Projector now has variable sparsity
16+
- Deprecated Dense Random Projector transformer
17+
118
- 0.1.6
219
- Fix KNN Imputer spatial tree dependency injection
320

CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ $ composer test
3232
```
3333

3434
### General Object Testing
35-
Limiting tests to public methods is usually sufficient. It is important to test for edge cases such as mistakes that the user might make to ensure they are handled properly.
35+
Limiting tests to public methods is usually sufficient. It is also important to test for edge cases such as mistakes that the user might make to ensure they are handled properly.
3636

3737
### Bugfix Testing
3838
Bugs usually indicate an area of the code that has not been properly tested yet. When submitting a bug fix, please include a passing test that would have reproduced the bug prior to your changes.
@@ -59,7 +59,7 @@ $ composer fix
5959
Use accurate, descriptive, consistent, and concise nomenclature. A variable name should only describe the data that the variable contains. With some exceptions, interfaces and the classes that implement them should be named after what the object *does* whereas value objects and classes that extend a base class should be named after what the object *is*. Prefer verbs for function and method names unless in the case of an accessor/getter function where the 'get' prefix may be dropped. Prioritize full names over abbreviations unless in the case where the abbreviation is the more common usage.
6060

6161
#### Domain-driven Design
62-
We employ the Domain Driven Design (DDD) methodology in our naming and design. Our goal is to allow contributors and domain experts to be able to use the same language when referring to concepts. Therefore, it is crucial that your naming reflects the domain that your abstraction operates within. For example, Bayesian probability-based learners might use terms like 'likelihood', 'density', 'mass', and 'PDF.'
62+
We employ the Domain Driven Design (DDD) methodology in our naming and design. Our goal is to allow contributors and domain experts to be able to use the same language when referring to concepts. Therefore, it is crucial that your naming reflects the domain that your abstraction operates within. For example, Bayesian probability-based learners might use terms like 'likelihood', 'density', and 'PDF.'
6363

6464
### Mutability
6565
Objects implemented in Rubix ML have a mutability policy of *generally* immutable which means properties are private or protected and state must be mutated only through a well-defined public API.
@@ -71,7 +71,7 @@ Please provide a docblock for every class, property, method, constant, and funct
7171
Due to a limitation in PHP that requires objects and functions to be named in order to be unserialized and since the library relies on serialization for persistence, we do not use anonymous classes or functions in our codebase. Instead, create a named class or function.
7272

7373
## Benchmarks
74-
Performance can be critical for some machine learning projects. To ensure that our users have the best experience, we benchmark every learner and use the information as a baseline to make optimizations. When contributing a new learner to Rubix ML, please include a benchmark.
74+
Performance can be critical for some machine learning projects. To ensure that our users have the best experience, we benchmark every learner and use the information as a baseline to make optimizations. When contributing a new learner or transformer please include a benchmark.
7575

7676
To run the benchmarking suite:
7777
```sh

benchmarks/Transformers/GaussianRandomProjectorBench.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public function setUp() : void
4040
/**
4141
* @Subject
4242
* @Iterations(3)
43-
* @OutputTimeUnit("seconds", precision=3)
43+
* @OutputTimeUnit("milliseconds", precision=3)
4444
*/
4545
public function apply() : void
4646
{

benchmarks/Transformers/IntervalDiscretizerBench.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public function setUp() : void
4040
/**
4141
* @Subject
4242
* @Iterations(3)
43-
* @OutputTimeUnit("seconds", precision=3)
43+
* @OutputTimeUnit("milliseconds", precision=3)
4444
*/
4545
public function apply() : void
4646
{

benchmarks/Transformers/L1NormalizerBench.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public function setUp() : void
4040
/**
4141
* @Subject
4242
* @Iterations(3)
43-
* @OutputTimeUnit("seconds", precision=3)
43+
* @OutputTimeUnit("milliseconds", precision=3)
4444
*/
4545
public function apply() : void
4646
{

benchmarks/Transformers/L2NormalizerBench.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public function setUp() : void
4040
/**
4141
* @Subject
4242
* @Iterations(3)
43-
* @OutputTimeUnit("seconds", precision=3)
43+
* @OutputTimeUnit("milliseconds", precision=3)
4444
*/
4545
public function apply() : void
4646
{

benchmarks/Transformers/LinearDiscriminantAnalysisBench.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public function setUp() : void
4040
/**
4141
* @Subject
4242
* @Iterations(3)
43-
* @OutputTimeUnit("seconds", precision=3)
43+
* @OutputTimeUnit("milliseconds", precision=3)
4444
*/
4545
public function apply() : void
4646
{

benchmarks/Transformers/MaxAbsoluteScalerBench.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public function setUp() : void
4040
/**
4141
* @Subject
4242
* @Iterations(3)
43-
* @OutputTimeUnit("seconds", precision=3)
43+
* @OutputTimeUnit("milliseconds", precision=3)
4444
*/
4545
public function apply() : void
4646
{

benchmarks/Transformers/MinMaxNormalizerBench.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public function setUp() : void
4040
/**
4141
* @Subject
4242
* @Iterations(3)
43-
* @OutputTimeUnit("seconds", precision=3)
43+
* @OutputTimeUnit("milliseconds", precision=3)
4444
*/
4545
public function apply() : void
4646
{

benchmarks/Transformers/MultibyteTextNormalizerBench.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public function setUp() : void
4343
/**
4444
* @Subject
4545
* @Iterations(3)
46-
* @OutputTimeUnit("seconds", precision=3)
46+
* @OutputTimeUnit("milliseconds", precision=3)
4747
*/
4848
public function apply() : void
4949
{

0 commit comments

Comments
 (0)