Scarliles/honesty #69
Build #20241231.4 had test failures
Details
- Failed: 60 (0.16%)
- Passed: 35,612 (93.16%)
- Other: 2,556 (6.69%)
- Total: 38,228
Annotations
Check failure on line 7699 in Build log
azure-pipelines / neurodata.scikit-learn
Build log #L7699
Bash exited with code '1'.
Check failure on line 1506 in Build log
azure-pipelines / neurodata.scikit-learn
Build log #L1506
Bash exited with code '1'.
Check failure on line 1 in test_missing_value_is_predictive[ExtraTreesRegressor]
azure-pipelines / neurodata.scikit-learn
test_missing_value_is_predictive[ExtraTreesRegressor]
AssertionError
Raw output
Forest = <class 'sklearn.ensemble._forest.ExtraTreesRegressor'>
@pytest.mark.parametrize(
"Forest",
[
RandomForestClassifier,
RandomForestRegressor,
ExtraTreesRegressor,
ExtraTreesClassifier,
],
)
def test_missing_value_is_predictive(Forest):
"""Check that the forest learns when missing values are only present for
a predictive feature."""
rng = np.random.RandomState(0)
n_samples = 300
expected_score = 0.75
X_non_predictive = rng.standard_normal(size=(n_samples, 10))
y = rng.randint(0, high=2, size=n_samples)
# Create a predictive feature using `y` and with some noise
X_random_mask = rng.choice([False, True], size=n_samples, p=[0.95, 0.05])
y_mask = y.astype(bool)
y_mask[X_random_mask] = ~y_mask[X_random_mask]
predictive_feature = rng.standard_normal(size=n_samples)
predictive_feature[y_mask] = np.nan
assert np.isnan(predictive_feature).any()
X_predictive = X_non_predictive.copy()
X_predictive[:, 5] = predictive_feature
(
X_predictive_train,
X_predictive_test,
X_non_predictive_train,
X_non_predictive_test,
y_train,
y_test,
) = train_test_split(X_predictive, X_non_predictive, y, random_state=0)
forest_predictive = Forest(random_state=0).fit(X_predictive_train, y_train)
forest_non_predictive = Forest(random_state=0).fit(X_non_predictive_train, y_train)
predictive_test_score = forest_predictive.score(X_predictive_test, y_test)
> assert predictive_test_score >= expected_score
E AssertionError
Forest = <class 'sklearn.ensemble._forest.ExtraTreesRegressor'>
X_non_predictive = array([[ 1.76405235, 0.40015721, 0.97873798, ..., -0.15135721,
-0.10321885, 0.4105985 ],
[ 0.1440435...144, -1.57760707],
[-0.34056003, -1.30322008, 0.46675065, ..., -0.19240421,
-1.21251574, -0.08059852]])
X_non_predictive_test = array([[ 3.25799614e-01, 1.24769521e-01, -1.01267312e+00,
-1.02729688e+00, 3.23356531e-01, -1.36939112e+00,
... 5.42610783e-01, 7.15938893e-01,
-2.99461286e+00, 8.80937561e-01, 1.80813181e+00,
4.36638475e-01]])
X_non_predictive_train = array([[ 0.94231431, -2.00512543, 0.75504968, ..., 0.39756522,
-1.02285504, -1.150692 ],
[ 0.2804417...406, 0.49600095],
[-0.83963245, -1.3682451 , 1.5612796 , ..., -0.25631689,
0.46079433, -0.40098616]])
X_predictive = array([[ 1.76405235, 0.40015721, 0.97873798, ..., -0.15135721,
-0.10321885, 0.4105985 ],
[ 0.1440435...144, -1.57760707],
[-0.34056003, -1.30322008, 0.46675065, ..., -0.19240421,
-1.21251574, -0.08059852]])
X_predictive_test = array([[ 3.25799614e-01, 1.24769521e-01, -1.01267312e+00,
-1.02729688e+00, 3.23356531e-01, -1.71864988e+00,
... 5.42610783e-01, 2.08233171e-01,
-2.99461286e+00, 8.80937561e-01, 1.80813181e+00,
4.36638475e-01]])
X_predictive_train = array([[ 0.94231431, -2.00512543, 0.75504968, ..., 0.39756522,
-1.02285504, -1.150692 ],
[ 0.2804417...406, 0.49600095],
[-0.83963245, -1.3682451 , 1.5612796 , ..., -0.25631689,
0.46079433, -0.40098616]])
X_random_mask = array([False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False,...False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False])
expected_score = 0.75
forest_non_predictive = ExtraTreesRegressor(random_state=0)
forest_predictive = ExtraTreesRegressor(random_state=0)
n_samples = 300
predictive_feature = array([ nan, nan, nan, nan, -0.33406295,
nan, -0.83677104, nan, ... nan, nan, -0.
Check failure on line 1 in test_estimators[ExtraTreeClassifier()-check_no_attributes_set_in_init]
azure-pipelines / neurodata.scikit-learn
test_estimators[ExtraTreeClassifier()-check_no_attributes_set_in_init]
AssertionError: Estimator ExtraTreeClassifier should not set any attribute apart from parameters during init. Found attributes ['postsplit_conditions', 'presplit_conditions', 'splitter_listeners', 'tree_build_listeners'].
Raw output
estimator = ExtraTreeClassifier()
check = functools.partial(<function check_no_attributes_set_in_init at 0x7f6583504720>, 'ExtraTreeClassifier')
request = <FixtureRequest for <Function test_estimators[ExtraTreeClassifier()-check_no_attributes_set_in_init]>>
@parametrize_with_checks(list(_tested_estimators()))
def test_estimators(estimator, check, request):
# Common tests for estimator instances
with ignore_warnings(
category=(FutureWarning, ConvergenceWarning, UserWarning, LinAlgWarning)
):
> check(estimator)
check = functools.partial(<function check_no_attributes_set_in_init at 0x7f6583504720>, 'ExtraTreeClassifier')
estimator = ExtraTreeClassifier()
request = <FixtureRequest for <Function test_estimators[ExtraTreeClassifier()-check_no_attributes_set_in_init]>>
../1/s/sklearn/tests/test_common.py:127:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../1/s/sklearn/utils/_testing.py:147: in wrapper
return fn(*args, **kwargs)
args = ('ExtraTreeClassifier', ExtraTreeClassifier())
fn = <function check_no_attributes_set_in_init at 0x7f6583504680>
kwargs = {}
self = _IgnoreWarnings(record=True)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = 'ExtraTreeClassifier', estimator_orig = ExtraTreeClassifier()
@ignore_warnings(category=FutureWarning)
def check_no_attributes_set_in_init(name, estimator_orig):
"""Check setting during init."""
try:
# Clone fails if the estimator does not store
# all parameters as an attribute during init
estimator = clone(estimator_orig)
except AttributeError:
raise AttributeError(
f"Estimator {name} should store all parameters as an attribute during init."
)
if hasattr(type(estimator).__init__, "deprecated_original"):
return
init_params = _get_args(type(estimator).__init__)
parents_init_params = [
param
for params_parent in (_get_args(parent) for parent in type(estimator).__mro__)
for param in params_parent
]
# Test for no setting apart from parameters during init
invalid_attr = set(vars(estimator)) - set(init_params) - set(parents_init_params)
# Ignore private attributes
invalid_attr = set([attr for attr in invalid_attr if not attr.startswith("_")])
> assert not invalid_attr, (
"Estimator %s should not set any attribute apart"
" from parameters during init. Found attributes %s."
% (name, sorted(invalid_attr))
)
E AssertionError: Estimator ExtraTreeClassifier should not set any attribute apart from parameters during init. Found attributes ['postsplit_conditions', 'presplit_conditions', 'splitter_listeners', 'tree_build_listeners'].
estimator = ExtraTreeClassifier()
estimator_orig = ExtraTreeClassifier()
init_params = ['self', 'criterion', 'splitter', 'max_depth', 'min_samples_split', 'min_samples_leaf', ...]
invalid_attr = {'postsplit_conditions', 'presplit_conditions', 'splitter_listeners', 'tree_build_listeners'}
name = 'ExtraTreeClassifier'
parents_init_params = ['criterion', 'splitter', 'max_depth', 'min_samples_split', 'min_samples_leaf', 'min_weight_fraction_leaf', ...]
../1/s/sklearn/utils/estimator_checks.py:3183: AssertionError
Check failure on line 1 in test_estimators[DecisionTreeClassifier()-check_no_attributes_set_in_init]
azure-pipelines / neurodata.scikit-learn
test_estimators[DecisionTreeClassifier()-check_no_attributes_set_in_init]
AssertionError: Estimator DecisionTreeClassifier should not set any attribute apart from parameters during init. Found attributes ['postsplit_conditions', 'presplit_conditions', 'splitter_listeners', 'tree_build_listeners'].
Raw output
estimator = DecisionTreeClassifier()
check = functools.partial(<function check_no_attributes_set_in_init at 0x7f4c96ee85e0>, 'DecisionTreeClassifier')
request = <FixtureRequest for <Function test_estimators[DecisionTreeClassifier()-check_no_attributes_set_in_init]>>
@parametrize_with_checks(list(_tested_estimators()))
def test_estimators(estimator, check, request):
# Common tests for estimator instances
with ignore_warnings(
category=(FutureWarning, ConvergenceWarning, UserWarning, LinAlgWarning)
):
> check(estimator)
check = functools.partial(<function check_no_attributes_set_in_init at 0x7f4c96ee85e0>, 'DecisionTreeClassifier')
estimator = DecisionTreeClassifier()
request = <FixtureRequest for <Function test_estimators[DecisionTreeClassifier()-check_no_attributes_set_in_init]>>
../1/s/sklearn/tests/test_common.py:127:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../1/s/sklearn/utils/_testing.py:147: in wrapper
return fn(*args, **kwargs)
args = ('DecisionTreeClassifier', DecisionTreeClassifier())
fn = <function check_no_attributes_set_in_init at 0x7f4c96ee8540>
kwargs = {}
self = _IgnoreWarnings(record=True)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = 'DecisionTreeClassifier', estimator_orig = DecisionTreeClassifier()
@ignore_warnings(category=FutureWarning)
def check_no_attributes_set_in_init(name, estimator_orig):
"""Check setting during init."""
try:
# Clone fails if the estimator does not store
# all parameters as an attribute during init
estimator = clone(estimator_orig)
except AttributeError:
raise AttributeError(
f"Estimator {name} should store all parameters as an attribute during init."
)
if hasattr(type(estimator).__init__, "deprecated_original"):
return
init_params = _get_args(type(estimator).__init__)
parents_init_params = [
param
for params_parent in (_get_args(parent) for parent in type(estimator).__mro__)
for param in params_parent
]
# Test for no setting apart from parameters during init
invalid_attr = set(vars(estimator)) - set(init_params) - set(parents_init_params)
# Ignore private attributes
invalid_attr = set([attr for attr in invalid_attr if not attr.startswith("_")])
> assert not invalid_attr, (
"Estimator %s should not set any attribute apart"
" from parameters during init. Found attributes %s."
% (name, sorted(invalid_attr))
)
E AssertionError: Estimator DecisionTreeClassifier should not set any attribute apart from parameters during init. Found attributes ['postsplit_conditions', 'presplit_conditions', 'splitter_listeners', 'tree_build_listeners'].
estimator = DecisionTreeClassifier()
estimator_orig = DecisionTreeClassifier()
init_params = ['self', 'criterion', 'splitter', 'max_depth', 'min_samples_split', 'min_samples_leaf', ...]
invalid_attr = {'postsplit_conditions', 'presplit_conditions', 'splitter_listeners', 'tree_build_listeners'}
name = 'DecisionTreeClassifier'
parents_init_params = ['criterion', 'splitter', 'max_depth', 'min_samples_split', 'min_samples_leaf', 'min_weight_fraction_leaf', ...]
../1/s/sklearn/utils/estimator_checks.py:3183: AssertionError
Check failure on line 1 in test_estimators[ExtraTreeRegressor()-check_no_attributes_set_in_init]
azure-pipelines / neurodata.scikit-learn
test_estimators[ExtraTreeRegressor()-check_no_attributes_set_in_init]
AssertionError: Estimator ExtraTreeRegressor should not set any attribute apart from parameters during init. Found attributes ['postsplit_conditions', 'presplit_conditions', 'splitter_listeners', 'tree_build_listeners'].
Raw output
estimator = ExtraTreeRegressor()
check = functools.partial(<function check_no_attributes_set_in_init at 0x7f6583504720>, 'ExtraTreeRegressor')
request = <FixtureRequest for <Function test_estimators[ExtraTreeRegressor()-check_no_attributes_set_in_init]>>
@parametrize_with_checks(list(_tested_estimators()))
def test_estimators(estimator, check, request):
# Common tests for estimator instances
with ignore_warnings(
category=(FutureWarning, ConvergenceWarning, UserWarning, LinAlgWarning)
):
> check(estimator)
check = functools.partial(<function check_no_attributes_set_in_init at 0x7f6583504720>, 'ExtraTreeRegressor')
estimator = ExtraTreeRegressor()
request = <FixtureRequest for <Function test_estimators[ExtraTreeRegressor()-check_no_attributes_set_in_init]>>
../1/s/sklearn/tests/test_common.py:127:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../1/s/sklearn/utils/_testing.py:147: in wrapper
return fn(*args, **kwargs)
args = ('ExtraTreeRegressor', ExtraTreeRegressor())
fn = <function check_no_attributes_set_in_init at 0x7f6583504680>
kwargs = {}
self = _IgnoreWarnings(record=True)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = 'ExtraTreeRegressor', estimator_orig = ExtraTreeRegressor()
@ignore_warnings(category=FutureWarning)
def check_no_attributes_set_in_init(name, estimator_orig):
"""Check setting during init."""
try:
# Clone fails if the estimator does not store
# all parameters as an attribute during init
estimator = clone(estimator_orig)
except AttributeError:
raise AttributeError(
f"Estimator {name} should store all parameters as an attribute during init."
)
if hasattr(type(estimator).__init__, "deprecated_original"):
return
init_params = _get_args(type(estimator).__init__)
parents_init_params = [
param
for params_parent in (_get_args(parent) for parent in type(estimator).__mro__)
for param in params_parent
]
# Test for no setting apart from parameters during init
invalid_attr = set(vars(estimator)) - set(init_params) - set(parents_init_params)
# Ignore private attributes
invalid_attr = set([attr for attr in invalid_attr if not attr.startswith("_")])
> assert not invalid_attr, (
"Estimator %s should not set any attribute apart"
" from parameters during init. Found attributes %s."
% (name, sorted(invalid_attr))
)
E AssertionError: Estimator ExtraTreeRegressor should not set any attribute apart from parameters during init. Found attributes ['postsplit_conditions', 'presplit_conditions', 'splitter_listeners', 'tree_build_listeners'].
estimator = ExtraTreeRegressor()
estimator_orig = ExtraTreeRegressor()
init_params = ['self', 'criterion', 'splitter', 'max_depth', 'min_samples_split', 'min_samples_leaf', ...]
invalid_attr = {'postsplit_conditions', 'presplit_conditions', 'splitter_listeners', 'tree_build_listeners'}
name = 'ExtraTreeRegressor'
parents_init_params = ['criterion', 'splitter', 'max_depth', 'min_samples_split', 'min_samples_leaf', 'min_weight_fraction_leaf', ...]
../1/s/sklearn/utils/estimator_checks.py:3183: AssertionError