From d4ecf381f4849ab9bf7856d52bfbf7fdbf71e760 Mon Sep 17 00:00:00 2001 From: "Kyle L. Gilliam" Date: Fri, 14 Oct 2016 15:07:57 -0600 Subject: [PATCH 1/3] Clarified error msg in plot_partial_dependence --- sklearn/ensemble/partial_dependence.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sklearn/ensemble/partial_dependence.py b/sklearn/ensemble/partial_dependence.py index 0f0fcd9cab552..9cbbdef6ef501 100644 --- a/sklearn/ensemble/partial_dependence.py +++ b/sklearn/ensemble/partial_dependence.py @@ -306,8 +306,8 @@ def convert_feature(fx): l.append(feature_names[i]) names.append(l) except IndexError: - raise ValueError('features[i] must be in [0, n_features) ' - 'but was %d' % i) + raise ValueError('features[i] must be in [0, len(feature_names)={0} ) ' + 'but was {1}'.format(len(feature_names), i)) # compute PD functions pd_result = Parallel(n_jobs=n_jobs, verbose=verbose)( From b880944e853ac9bf38dd86648b12bf3a027b39c4 Mon Sep 17 00:00:00 2001 From: = Date: Mon, 17 Oct 2016 21:41:48 -0600 Subject: [PATCH 2/3] Changed err msg for feature[i] out of range. Updated docs. --- sklearn/ensemble/partial_dependence.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sklearn/ensemble/partial_dependence.py b/sklearn/ensemble/partial_dependence.py index 9cbbdef6ef501..095b4bc92bbad 100644 --- a/sklearn/ensemble/partial_dependence.py +++ b/sklearn/ensemble/partial_dependence.py @@ -183,10 +183,14 @@ def plot_partial_dependence(gbrt, X, features, feature_names=None, A fitted gradient boosting model. X : array-like, shape=(n_samples, n_features) The data on which ``gbrt`` was trained. - features : seq of tuples or ints + features : seq of ints, strings, or tuples of ints or strings If seq[i] is an int or a tuple with one int value, a one-way PDP is created; if seq[i] is a tuple of two ints, a two-way PDP is created. + If feature_names is specified and seq[i] is an int, seq[i] + must be < len(feature_names). + If seq[i] is a string, feature_names must be specified, and + seq[i] must be in feature_names. feature_names : seq of str Name of each feature; feature_names[i] holds the name of the feature with index i. @@ -306,8 +310,8 @@ def convert_feature(fx): l.append(feature_names[i]) names.append(l) except IndexError: - raise ValueError('features[i] must be in [0, len(feature_names)={0} ) ' - 'but was {1}'.format(len(feature_names), i)) + raise ValueError('All entries of features must be less than ' + 'len(feature_names)={0}.'.format(len(feature_names))) # compute PD functions pd_result = Parallel(n_jobs=n_jobs, verbose=verbose)( From c524aff97719dc0e343874460e8331be55fc8d8b Mon Sep 17 00:00:00 2001 From: = Date: Fri, 21 Oct 2016 10:14:30 -0600 Subject: [PATCH 3/3] Error message shows invalid value. --- sklearn/ensemble/partial_dependence.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sklearn/ensemble/partial_dependence.py b/sklearn/ensemble/partial_dependence.py index 095b4bc92bbad..b7e7f6ccccfe7 100644 --- a/sklearn/ensemble/partial_dependence.py +++ b/sklearn/ensemble/partial_dependence.py @@ -311,7 +311,8 @@ def convert_feature(fx): names.append(l) except IndexError: raise ValueError('All entries of features must be less than ' - 'len(feature_names)={0}.'.format(len(feature_names))) + 'len(feature_names) = {0}, got {1}.' + .format(len(feature_names), i)) # compute PD functions pd_result = Parallel(n_jobs=n_jobs, verbose=verbose)(