* fix the issue with max_depth and BestFirstTreeBuilder
* fix the test
* fix max_depth overshoot in BFS expansion
* fix forest tests
* remove the warning, add whats_new entry
* remove extra line
* add affected classes to changed classes
* add other affected estimators to the whats_new changed models
* shorten whats_new changed models entry
* add reingold tillford tree layout algorithm
* add first silly implementation of matplotlib based plotting for trees
* object oriented design for export_graphviz so it can be extended
* add class for mlp export
* add colors
* separately scale x and y, add arrowheads, fix strings
* implement max_depth
* don't use alpha for coloring because it makes boxes transparent
* remove unused variables
* vertical center of boxes
* fix/simplify newline trimming
* somewhere in the middle of stuff
trying to get rid of scalex, scaley
* remove "find_longest_child" for now, fix tests
* make scalex and scaley internal, and ax local.
render everything once to get the bbox sizes, then again to actually plot it with known extents.
* add some margin to the max bbox width
* add _BaseTreeExporter baseclass
* add docstring to plot_tree
* use data coordinates so we can put the plot in a subplot, remove some hacks.
* remove scalex, scaley, add automatic font size
* use rendered stuff for setting limits (well nearly there)
* import plot_tree into tree module
* set limits before font size adjustment?
* add tree plotting via matplotlib to iris example and to docs
* pep8 fix
* skip doctest on plot_tree because matplotlib is not installed on all CI machines
* redo everything in axis pixel coordinates
re-introduce scalex, scaley
add max_extents to tree to get tree size before plotting
* fix max-depth
parent node positioning and don't consider deep nodes in layouting
* consider height in fontsize computation
in case someone gave us a very flat figure
* fix error when max_depth is None
* add docstring for tree plotting fontsize
* starting on jnothman's review
* renaming fixes
* whatsnew for tree plotting
* clear axes prior to doing anything.
* fix doctests
* skip matplotlib doctest
* trying to debug circle failure
* trying to show full traceback
* more print debugging
* remove debugging crud
* hack around matplotlib <1.5 issues
* copy bbox args because old matplotlib is weird.
* pep8 fixes
* add explicit boxstyle
* more pep8
* even more pep8
* add comment about matplotlib version requirement
* remove redundant file
* add whatsnew entry that the merge lost
* fix merge issue
* more merge issues
* whitespace ...
* remove doctest skip to see what's happening
* added some simple invariance tests buchheim function
* refactor
___init__ into superclass
* added some tests of plot_tree
* put skip back in, fix typo, fix versionadded number
* remove unused parameters special_characters and parallel_leaves from mpl plotting
* rename tests to test_reingold_tilford
* added license header from pymag-trees repo
* remove duplicate test file.
* #8477
check length of feature_names in export_graphviz
- raise ValueError if len(feature_names) > tree.n_features
- add unit test for len(feature_names) > tree.n_features
- change the comment of existing unit test for len(feature_names) <
tree.n_features
* fix error and warning
- include length of feature_names and number of features in tree in the
error and warning message.
- raise error for too few feature_names
- for too much feature_names, will use the first n_features. raise an
warning for users
- use assert_raise_message and assert_warns_message in test to check
message.
* move the error and warning from node_to_str to export_graphviz so it will fail early for wrong length of feature_names
* raise error if length of feature_names does not match number of features in the decision tree
* fix pep8
* remove unused assert_warns_message import in test_export.py
* add bug fix in doc/whats_new.rst
* fix the english in doc/whats_new.rst
* fix the format and english in sklearn/tree/export.py
* fix contributor format in doc/whats_new.rst
* fix english, use bracket and avoid \ in error message
* fix pep8
* fix pep8
* TST add test checking the behaviour of constant/no-constant features
* FIX/TST factorize test
* TST Add additional constant features
* FIX/TST remove ExtraTree from test
* remove stuff to be removed 0.19
* more changes
* remove classes from 0.19 whatsnew
* remove _LearntSelectorMixin
* remove ProjectedGradientNMF, load_lwf_*
* minor fixes
* remove more copy from logistic regression path
* remove lda, qda from __init__.__all__
* remove pg solver in nmf from tests etc
* remove class_weight="auto" from tests
* doctest change for decision_function_shape="ovr"
* remove transfrom from tree test, minor fixes to tree tests
* some fixes in the tests
* undo changes in functions which still allow 1d input...
* also allow 1d in scale
* more test fixes...
* last test fixes in forest and tree
* svm default value change doctest failures
* pep8
* remove more class_weight="auto" stuff
* minor cosmetics in docstrings deprecated / removed behavior.
* say that store_covariance has been moved to __init__ in discriminant_analysis
* use less nose.tools import to simplify future transition to activly developing test suites/runners
* assert_equal -> assert_array_equal in test_feature_hasher_pairs_with_string_values
and one missed ImportError that should be replaced with AttributeError
* test for py2.6 compat with except AttributeError
* fix importing of SkipTest
* force using nose in python2.6 for now
* there was no assert_dict_equal in py2.6. but we can use assert_equal
although failed test will look a little bit ugly
* remove nose imports from doc/datasets
* fix min_weight_fraction_leaf when sample_weights is None
* fix flake8 error
* remove added newline and unnecessary assignment
* remove max bc it's implemented in cython and add interaction test
* edit weight calculation formula and add test to check equality
* remove test that sees if two parameter build the same tree
* reword min_weight_fraction_leaf docstring
* clarify uniform weight in forest docstrings
* update docstrings for all classes
* add what's new entry
* move whatsnew entry to bug fixes and explain previous behavior
* feature: add beta-threshold early stopping for decision tree growth
* check if value of beta is greater than or equal to 0
* test if default value of beta is 0 and edit input validation error message
* feature: separately validate beta for reg. and clf., and add tests for it
* feature: add beta to forest-based ensemble methods
* feature: add separate condition to determine that beta is float
* feature: add beta to gradient boosting estimators
* rename parameter to min_impurity_split, edit input validation and associated tests
* chore: fix spacing in forest and force recompilation of grad boosting extension
* remove trivial comment in grad boost and add whats new
* edit wording in test comment / rebuild
* rename constant with the same name as our parameter
* edit line length for what's new
* remove constant and set min_impurity_split to 1e-7 by default
* fix docstrings for new default
* fix defaults in gradientboosting and forest classes
* feature: add initial node_value method
* testing code for node_impurity and node_value
This code runs into 'Bus Error: 10' at node_value final assignment.
* fix: node_value now correctly calculating weighted median for sorted data.
Still need to change the code to work with unsorted data.
* fix: node_value now correctly calculates median regardless of initial order
* fix: correct bug in calculating median when taking midpoint is necessary
* feature: add initial version of children_impurity
* feature: refactor median calculation into one function
* fix: fix use of DOUBLE_t vs double
* feature: move helper functions to _utils.pyx, fix mismatched pointer type
* fix: fix some bugs in children_impurity method
* push a debug version to try to solve segfault
* push latest changes, segfault probably happening bc of something in _utils.pyx
* fix: fix segfault in median calculation and remove excessive logging
* chore: revert some misc spacing changes I accidentally made
* chore: one last spacing fix in _splitter.pyx
* feature: don't calculate weighted median if no weights are passed in
* remove extraneous logging statement
* fix: fix children impurity calculation
* fix: fix bug with children impurity not being initally set to 0
* fix: hacky fix for a float accuracy error
* fix: incorrect type cast in median array generation for node_impurity
* slightly tweak node_impurity function
* fix: be more explicit with casts
* feature: revert cosmetic changes and free temporary arrays
* fix: only free weight array in median calcuation if it was created
* style: remove extraneous newline / trigger CI build
* style: remove extraneous 0 from range
* feature: save sorts within a node to speed it up
* fix: move parts of dealloc to regression criterion
* chore: add comment to splitter to try to force recythonizing
* chore: add comment to _tree.pyx to try to force recythonizing
* chore: add empty comment to gradient boosting to force recythonizing
* fix: fix bug in weighted median
* try moving sorted values to a class variable
* feature: refactor criterion to sort once initially, then draw all samples from this sorted data
* style: remove extraneous parens from if condition
* implement median-heap method for calculating impurity
* style: remove extra line
* style: fix inadvertent cosmetic changes; i'll address some of these in a separate PR
* feature: change minmaxheap to internally use sorted arrays
* refactored MAE and push to share work
* fix errors wrt median insertion case
* spurious comment to force recythonization
* general code cleanup
* fix typo in _tree.pyx
* removed some extraneous comments
* [ci skip] remove earlier microchanges
* [ci skip] remove change to priorityheap
* [ci skip] fix indentation
* [ci skip] fix class-specific issues with heaps
* [ci skip] restore a newline
* [ci skip] remove microchange to refactor later
* reword a comment
* remove heapify methods from queue class
* doc: update docstrings for dt, rf, and et regressors
* doc: revert incorrect spacing to shorten diff
* convert get_median to return value directly
* [ci skip] remove accidental whitespace
* remove extraneous unpacking of values
* style: misc changes to identifiers
* add docstrings and more informative variable identifiers
* [ci skip] add trivial comments to recythonize
* remove trivial comments for recythonizing
* force recythonization for real this time
* remove trivial comments for recythonization
* rfc: harmonize arg. names and remove unnecessary checks
* convert allocations to safe_realloc
* fix bug in weighted case and add tests for MAE
* change all medians to DOUBLE_t
* add loginc allocate mediancalculators once, and reset otherwise
* misc style fixes
* modify cinit of regressioncriterion to take n_samples
* add MAE formula and force rebuild bc. travis was down
* add criterion parameter to gradient boosting and add forest tests
* add entries to what's new