Commit Graph

47 Commits

Author SHA1 Message Date
36ff3da26d Update Docs 2021-09-13 18:32:59 +02:00
Ricardo Montañana Gómez
3f79d2877f Add cfs fcbf #39 (#40)
* Implement CFS/FCBF in splitter

* Split Splitter class to its own file
Update hyperparams table in docs
Implement CFS/FCBS with max_features and variable type

* Set mfs to continuous variables

* Fix some tests and style issues in Splitter

* Update requirements in github CI
2021-07-30 20:01:08 +02:00
Ricardo Montañana Gómez
4f04e72670 Implement ovo strategy (#37)
* Implement ovo strategy
* Set ovo strategy as default
* Add kernel liblinear with LinearSVC classifier
* Fix weak test
2021-05-10 12:16:53 +02:00
5cef0f4875 Implement splitter type mutual info 2021-05-01 23:38:34 +02:00
28c7558f01 Update Readme
Add max_features > n_features test
Add make doc
2021-04-27 23:15:21 +02:00
Ricardo Montañana Gómez
e19d10f6a7 Package doc #7 (#34)
* Add first doc info to sources

* Update doc to separate classes in api

* Refactor build_predictor

* Fix random_sate issue in non linear kernels

* Refactor score method using base class implementation

* Some quality refactoring

* Fix codecov config.

* Add sigmoid kernel

* Refactor setup and add Makefile
2021-04-26 09:10:01 +02:00
Ricardo Montañana Gómez
02de394c96 Add select KBest features #17 (#35) 2021-04-26 01:48:50 +02:00
Ricardo Montañana Gómez
8a18c998df Implement hyperparam. context based normalization (#32) 2021-04-18 18:57:39 +02:00
b55f59a3ec Fix compute number of nodes 2021-04-13 22:31:05 +02:00
c36f685263 Fix unintended nested if in partition 2021-04-08 08:27:31 +02:00
0f89b044f1 Refactor train method 2021-04-07 01:02:30 +02:00
Ricardo Montañana Gómez
6ba973dfe1 Add a method that return nodes and leaves (#27) (#30)
Add a test
Fix #27
2021-03-23 14:30:32 +01:00
Ricardo Montañana Gómez
460c63a6d0 Fix depth sometimes is wrong (#26) (#29)
Add a test to the tests set
Add depth to node description
Fix iterator and str test due to this addon
2021-03-23 14:08:53 +01:00
Ricardo Montañana Gómez
147dad684c Weight0samples error (#23)
* Add Hyperparameters description to README
Comment get_subspace method
Add environment info for binder (runtime.txt)

* Complete source comments
Change docstring type to numpy
update hyperameters table and explanation

* Fix problem with zero weighted samples
Solve WARNING: class label x specified in weight is not found
with a different approach

* Allow update of scikitlearn to latest version
2021-01-19 11:40:46 +01:00
Ricardo Montañana Gómez
3bdac9bd60 Complete source comments (#22)
* Add Hyperparameters description to README
Comment get_subspace method
Add environment info for binder (runtime.txt)

* Complete source comments
Change docstring type to numpy
update hyperameters table and explanation

* Update Jupyter notebooks
2021-01-19 10:44:59 +01:00
Ricardo Montañana Gómez
36816074ff Combinatorial explosion (#19)
* Remove itertools combinations from subspaces

* Generates 5 random subspaces at most
2021-01-10 13:32:22 +01:00
475ad7e752 Fix mistakes in function comments 2020-11-11 19:14:36 +01:00
Ricardo Montañana Gómez
1c869e154e Enhance partition (#16)
#15 Create impurity function in Stree (consistent name, same criteria as other splitter parameter)
Create test for the new function
Update init test
Update test splitter parameters
Rename old impurity function to partition_impurity
close #15
* Complete implementation of splitter_type = impurity with tests
Remove max_distance & min_distance splitter types

* Fix mistake in computing multiclass node belief
Set default criterion for split to entropy instead of gini
Set default max_iter to 1e5 instead of 1e3
change up-down criterion to match SVC multiclass
Fix impurity method of splitting nodes
Update jupyter Notebooks
2020-11-03 11:36:05 +01:00
554ec03c32 Get only 3 sets for best split
Fix flaky test in Splitter_test
2020-06-27 18:29:40 +02:00
4b7e4a3fb0 better solution to the sklearn bagging problem
Add better tests
enhance .coveragerc
2020-06-26 11:22:45 +02:00
76723993fd Solve Warning class label not found when bagging 2020-06-25 13:07:50 +02:00
ecd0b86f4d Solve the mistake of min and max distance
The split criteria functions min and max distance return classes while
max_samples return distances positives and negatives to hyperplane of
the class with more samples in node
2020-06-17 00:13:52 +02:00
3e52a4746c Fix entroy and information_gain functions 2020-06-16 13:56:02 +02:00
9334951d1b #2 Cosmetic and style updates 2020-06-15 11:09:11 +02:00
736ab7ef20 #2 update benchmark notebook 2020-06-15 10:33:51 +02:00
c94bc068bd #2 Refactor Stree & create Splitter
Add and test splitter parameter
2020-06-15 00:22:57 +02:00
502ee72799 #2 Add predict and score support
Add a test in features notebook
Show max_features in main.py
2020-06-14 14:00:21 +02:00
f1ee4de37b #2 - Add gini and entropy measures
rename get_dataset to load_dataset
add features and impurity to  __str__ of node
2020-06-14 03:08:55 +02:00
ae1c199e21 # 2 - add max_features parameters 2020-06-13 17:58:45 +02:00
1bfe273a70 Fix problem in _min_distance
Remove grapher (moved to another repo)
2020-06-12 00:50:25 +02:00
1d392d534f #6 - Update tests and codecov conf 2020-06-11 13:45:24 +02:00
f360a2640c #6 - Add multiclass support
Removed (by now) predict_proba. Created a notebook in jupyter
Added split_criteria parameter with min_distance and max_samples values
Refactor _distances
Refactor _split_criteria
Refactor _reorder_results
2020-06-11 13:10:52 +02:00
286a91a3d7 #3 refactor unneeded code and new test 2020-06-09 13:01:01 +02:00
7e932de072 #3 Add sample_weights to score, update notebooks
Update readme to use new names of notebooks
2020-06-09 01:46:38 +02:00
26273e936a #3 Add degree hyperparam and update notebooks
Update readme to add new  notebooks
2020-06-08 20:16:42 +02:00
d7c0bc3bc5 #3 Complete multiclass in Stree
Add multiclass dimensions management in distances method
Add gamma hyperparameter for non linear kernels
2020-06-08 13:54:24 +02:00
3a48d8b405 #3 Rewrite some tests & remove use_predictions
Remove use_predictions parameter as of now, the model always use it
2020-06-08 01:51:21 +02:00
05b462716e #3 First try, change LinearSVC to SVC
make a builder
start changing tests
2020-06-07 20:26:59 +02:00
b824229121 #1 Add min_samples_split
Fix #1
2020-06-07 16:12:25 +02:00
cb10aea36e remove unneed test and cosmetic 2020-06-06 14:20:07 +02:00
b9f14aec05 #4 Add code coverage & codacy badge
Add code coverage configuration in codecov
Add some tests
2020-06-06 03:04:18 +02:00
5e5fea9c6a Document & lint code 2020-05-30 23:10:10 +02:00
724a4855fb Adapt some notebooks 2020-05-30 11:09:59 +02:00
a22ae81b54 Refactor split_data adding sample_weight 2020-05-29 18:52:23 +02:00
ed98054f0d First approach
Added max_depth, tol, weighted samples
2020-05-29 12:46:10 +02:00
e95bd9697a Make Stree a sklearn estimator
Added check_estimator in notebook test2
Added a Stree test with check_estimator
2020-05-25 19:51:39 +02:00
77f10281c1 Make project python package friendly
- Add setup.py
- Move classes to module files
- Move tests folder inside module folder
2020-05-23 23:40:33 +02:00