sklearn.inspection.partial_dependence

sklearn.inspection.partial_dependence()

Dependencia parcial de características.

La dependencia parcial de una característica (o de un conjunto de características) corresponde a la respuesta media de un estimador para cada valor posible de la característica.

Más información en el Manual de usuario.

Advertencia

Para GradientBoostingClassifier y GradientBoostingRegressor, el método 'recursion' (utilizado por defecto) no tendrá en cuenta el predictor init del proceso de boosting. En la práctica, esto producirá los mismos valores que 'brute' hasta un desplazamiento constante en la respuesta objetivo, siempre que init sea un estimador constante (que es el predeterminado). Sin embargo, si init no es un estimador constante, los valores de dependencia parcial son incorrectos para 'recursion' porque el desplazamiento dependerá de la muestra. Es preferible utilizar el método 'brute'. Ten en cuenta que esto sólo se aplica a GradientBoostingClassifier y GradientBoostingRegressor, no a HistGradientBoostingClassifier y HistGradientBoostingRegressor.

Parámetros
estimatorBaseEstimator

Un objeto estimador ajustado que implementa predict, predict_proba, o decision_function. No se admiten los clasificadores multisalida-multiclase.

X{array-like or dataframe} de forma (n_samples, n_features)

X se utiliza para generar una cuadrícula de valores para las features de destino (donde se evaluará la dependencia parcial), y también para generar valores para las características del complemento cuando el method es brute.

featuresarray-like de {int, str}

La característica (por ejemplo, [0]) o el par de características que interactúan (por ejemplo, [(0, 1)]) para el que debe calcularse la dependencia parcial.

response_method{“auto”, “predict_proba”, “decision_function”}, default=”auto”

Especifica si se utiliza predict_proba o decision_function como respuesta objetivo. Para los regresores, este parámetro se ignora y la respuesta es siempre la salida de predict. Por defecto, se intenta primero con predict_proba y se vuelve a decision_function si no existe. Si method es “recursion”, la respuesta es siempre la salida de decision_function.

percentilestupla de flotantes, default=(0.05, 0.95)

El percentil inferior y superior utilizado para crear los valores extremos de la cuadrícula. Debe estar en [0, 1].

grid_resolutionint, default=100

El número de puntos igualmente espaciados en la cuadrícula, para cada característica objetivo.

method{“auto”, “recursion”, “brute”}, default=”auto”

El método utilizado para calcular las predicciones promediadas:

  • 'recursion' sólo está soportada por algunos estimadores basados en árboles (concretamente GradientBoostingClassifier, GradientBoostingRegressor, HistGradientBoostingClassifier, HistGradientBoostingRegressor, DecisionTreeRegressor, RandomForestRegressor, ) cuando kind='average'. Esto es más eficiente en términos de velocidad. Con este método, la respuesta objetivo de un clasificador es siempre la función de decisión, no las probabilidades predichas. Dado que el método de 'recursion' calcula implícitamente la media de la Expectativa Condicional Individual (ICE) por diseño, no es compatible con ICE y, por tanto, kind debe ser 'average'.

  • 'brute' es compatible con cualquier estimador, pero es más intensivo computacionalmente.

  • 'auto': la 'recursion' se utiliza para los estimadores que la soportan, y 'brute' se utiliza en caso contrario.

Por favor ver this note para conocer las diferencias entre el método 'brute' y 'recursion'.

kind{“legacy”, “average”, “individual”, “both”}, default=”legacy”

Si se devuelve la dependencia parcial promediada en todas las muestras del conjunto de datos o una línea por muestra o ambas. Ver las devoluciones más abajo.

Nota que la opción rápida method='recursion' sólo está disponible para kind='average'. El gráfico de dependencias individuales requiere el uso de la opción más lenta method='brute'.

Nuevo en la versión 0.24.

Obsoleto desde la versión 0.24: kind='legacy' está obsoleto y se eliminará en la versión 1.1. kind='average' será el nuevo valor predeterminado. Se pretende migrar de la salida ndarray a la salida Bunch.

Devuelve
predictionsndarray o
  • si kind='legacy', devuelve valor que es ndarray de forma (n_outputs, len(values[0]), len(values[1]), …)

    Las predicciones para todos los puntos de la cuadrícula, promediadas sobre todas las muestras en X (o sobre los datos de entrenamiento si method es recursion).

  • si kind='individual', 'average' o 'both', el valor de retorno es Bunch

    Objeto tipo diccionario, con los siguientes atributos.

    individualndarray de forma (n_outputs, n_instances, len(values[0]), len(values[1]), …)

    Las predicciones de todos los puntos de la cuadrícula para todas las muestras de X. También se conoce como expectativa condicional individual (ICE)

    averagendarray de forma (n_outputs, len(values[0]), len(values[1]), …)

    Las predicciones para todos los puntos de la cuadrícula, promediadas sobre todas las muestras de X (o sobre los datos de entrenamiento si method es “recursion”). Sólo está disponible cuando kind=”both”.

    valuesseq de 1d ndarrays

    Los valores con los que se ha creado la cuadrícula. La cuadrícula generada es un producto cartesiano de los arreglos en values. len(values) == len(features). El tamaño de cada arreglo values[j] es grid_resolution, o el número de valores únicos en X[:, j], el que sea menor.

n_outputs corresponde al número de clases en un entorno multiclase, o al número de tareas para la regresión de salida múltiple. Para la regresión clásica y la clasificación binaria, n_outputs==1. n_values_feature_j corresponde al tamaño de values[j].

valuesseq de 1d ndarrays

Los valores con los que se ha creado la cuadrícula. La cuadricula generada es un producto cartesiano de los arreglos en values. len(values) == len(features). El tamaño de cada arreglo values[j] es grid_resolution, o el número de valores únicos en X[:, j], el que sea menor». Solo disponible cuando `kind="legacy".

Ver también

plot_partial_dependence

Dependencia parcial del gráfico.

PartialDependenceDisplay

Visualización parcial de la dependencia.

Ejemplos

>>> X = [[0, 0, 2], [1, 0, 0]]
>>> y = [0, 1]
>>> from sklearn.ensemble import GradientBoostingClassifier
>>> gb = GradientBoostingClassifier(random_state=0).fit(X, y)
>>> partial_dependence(gb, features=[0], X=X, percentiles=(0, 1),
...                    grid_resolution=2) 
(array([[-4.52...,  4.52...]]), [array([ 0.,  1.])])

Ejemplos usando sklearn.inspection.partial_dependence