example + benchmark
explanation
make some private functions + fix public API
IForest using BaseForest base class for trees
debug + plot_iforest
classic anomaly detection datasets and benchmark
small modif
BaseBagging inheritance
shuffle dataset before benchmarking
BaseBagging inheritance
remove class label 4 from shuttle dataset
pep8 + rm shuttle.csv bench_IsolationForest.png + doc decision_function
add tests
remove comments
fetching kddcup99 and shuttle datasets
fetching kddcup99 and shuttle datasets
pep8
fetching kddcup99 and shuttle datasets
pep8
new files iforest.py and test_iforest.py
sc
alternative to pandas (but very slow)
in kddcup99.py
faster parser
sc
pep8 + cleanup + simplification
example outlier detection
clean and correct
idem
random_state added
percent10=True in benchmark
mc
remove shuttle + minor changes
sc
undo modif on forest.py and recompile cython on _tree.c
fix travis
cosmit
change bagging to fix travis
Revert "change bagging to fix travis"
This reverts commit 30ea500eb818c7a2c6ea5c3d63e75c6935aa3a35.
add max_samples_ in BaseBagging.fit to fix travis
mc
API : don't add fit param but use a private _fit + update tests + examples to avoid warning
adapt to the new structure of _tree.pyx
cosmit
add performance test for iforest
add _tree.c _utils.c _criterion.c
TST : pass on tests
remove test
relax roc-auc to fix AppVeyor
add test on toy samples
Handle depth averaging at python level
plot example: rm html add png
load_kddcup99 -> fetch_kddcup99 + doc
Take into account arjoly comments
sh -> shuffle
add decision_path code from #5487 to bench
Take into account arjoly comments
Revert "add decision_path code from #5487 to bench"
This reverts commit 46ad44ab487f4fd2728d927cbe09000330e8663e.
fix bug with max_samples != int
MAINT Remove sequence of sequence support from datasets
MAINT Remove return_indicator param
MAINT Remove multilabel-seq test in OVR
MAINT Remove multilable-seq test in check_cv
MAINT Remove multilabel seq test in label_binarizer
TST type_of_target returns "unknown" for multilabel-sequence types
TST _check_targets should raise a ValueError
DOC show multilabel indicator as an example; remove return_indicator param
DOC use consistent lower case y for target
This supercedes #2940.
PAVA runs in linear time, but the existing algorithm was scaling
approximately quadratically, due to the array pop in the inner loop
being O(N).
I implemented the O(N) version of PAVA using the decreasing subsequences
trick, and the performance is significantly faster in benchmarking.
The benchmarks in this diff (adapted from one of the existing unit
tests) show significant performance improvements - on the order of ~7x
faster for problems of size ~1000, ~30x faster for problems of size
10,000, and ~250x faster for problems of size 100,000.
On correctness - unit tests cover the isotonic regression code fairly
well, and all pass before and after the change. It's a fairly well known
algorithm with a bunch of implementations, so I think this is correct.
In coding up this algorithm I made some mistakes and the unit tests
caught the failures, which makes me more confident in the correctness
now. Still, the performance improvements are surprisingly high.
Added a benchmark script. For an example usage, run:
```
python benchmarks/bench_isotonic.py --iterations 10 --log_min_problem_size 2 --log_max_problem_size 8 --dataset logistic
```
When running under a tool such as @fabianp's profiler yep,
dirname(__file__) is the location of the tool's __main__.py
instead of the benchmarks directory.
Also, we shipped a tarball containing a large dataset before.