10000 [MRG + 1] Fix negative inputs checking in mean_squared_log_error by gustavodemari · Pull Request #9968 · scikit-learn/scikit-learn · GitHub
[go: up one dir, main page]

Skip to content

[MRG + 1] Fix negative inputs checking in mean_squared_log_error #9968

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 25, 2017

Conversation

gustavodemari
Copy link
Contributor

Reference Issues/PRs

Fixes #9963

What does this implement/fix? Explain your changes.

The logic below had some flaw when just one array has some negative value.

if not (y_true >= 0).all() and not (y_pred >= 0).all():
   raise ValueError("Mean Squared Logarithmic Error cannot be used when "
                         "targets contain negative values.")

For example:

import numpy as np

y_true = np.array([1, 2, 3])
y_pred = np.array([1, -2, 3])

not (y_true >= 0).all()
False

not (y_pred >= 0).all()
True

not (y_true >= 0).all() and not (y_pred >= 0).all()
False

Now, with the change this doesn't occurs anymore.

(y_true < 0).any() or (y_pred < 0).any()
True

Any other comments?

@amueller
Copy link
Member

can you please add a regression test?

@gustavodemari
Copy link
Contributor Author

This line doesn't already do this? @amueller

assert_raises_regex(ValueError, "Mean Squared Logarithmic Error cannot be "
"used when targets contain negative values.",
mean_squared_log_error, [-1.], [-1.])

If not, I can add this line?

assert_raises_regex(ValueError, "Mean Squared Logarithmic Error cannot be "
                        "used when targets contain negative values.",
                        mean_squared_log_error, [1, 2, 3], [1, -2, 3])

Thanks

@amueller
Copy link
Member

thanks. The previous test passed with master, which means it's not strict enough.

@amueller
Copy link
Member

lgtm

@amueller amueller changed the title [MRG] Fix negative inputs checking in mean_squared_log_error [MRG + 1] Fix negative inputs checking in mean_squared_log_error Oct 24, 2017
@jnothman
Copy link
Member

Thanks

@jnothman jnothman merged commit f84581b into scikit-learn:master Oct 25, 2017
donigian added a commit to donigian/scikit-learn that referenced this pull request Oct 28, 2017
…cs/donigian-update-contribution-guidelines

* 'master' of github.com:scikit-learn/scikit-learn: (23 commits)
  fixes scikit-learn#10031: fix attribute name and shape in documentation (scikit-learn#10033)
  [MRG+1] add changelog entry for fixed and merged PR scikit-learn#10005 issue scikit-learn#9633 (scikit-learn#10025)
  [MRG] Fix LogisticRegression see also should include LogisticRegressionCV(scikit-learn#9995) (scikit-learn#10022)
  [MRG + 1] Labels of clustering should start at 0 or -1 if noise (scikit-learn#10015)
  MAINT Remove redundancy in scikit-learn#9552 (scikit-learn#9573)
  [MRG+1] correct comparison in GaussianNB for 'priors' (scikit-learn#10005)
  [MRG + 1] ENH add check_inverse in FunctionTransformer (scikit-learn#9399)
  [MRG] FIX bug in nested set_params usage (scikit-learn#9999)
  [MRG+1] Fix LOF and Isolation benchmarks (scikit-learn#9798)
  [MRG + 1] Fix negative inputs checking in mean_squared_log_error (scikit-learn#9968)
  DOC Fix typo (scikit-learn#9996)
  DOC Fix typo: x axis -> y axis (scikit-learn#9985)
  improve example plot_forest_iris.py (scikit-learn#9989)
  [MRG+1] Deprecate pooling_func unused parameter in AgglomerativeClustering (scikit-learn#9875)
  DOC update news
  DOC Fix three typos in manifold documentation (scikit-learn#9990)
  DOC add missing dot in docstring
  DOC Add what's new for 0.19.1 (scikit-learn#9983)
  Improve readability of outlier detection example. (scikit-learn#9973)
  DOC: Fixed typo (scikit-learn#9977)
  ...
maskani-moh pushed a commit to maskani-moh/scikit-learn that referenced this pull request Nov 15, 2017
…kit-learn#9968)

* fixes msle when the inputs is negative, resolves scikit-learn#9963

* adding some regression tests for msle metric
jwjohnson314 pushed a commit to jwjohnson314/scikit-learn that referenced this pull request Dec 18, 2017
…kit-learn#9968)

* fixes msle when the inputs is negative, resolves scikit-learn#9963

* adding some regression tests for msle metric
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

mean_squared_log_error - accepts targets with negative values
3 participants
0