sklearn.inspection.plot_partial_dependence

sklearn.inspection.plot_partial_dependence()

Gráficos de dependencia parcial (DP) y de expectativa condicional individual (ICE).

Se pueden trazar gráficos de dependencia parcial, gráficos de expectativas condicionales individuales o una superposición de ambos, estableciendo el parámetro kind. Los gráficos de len(features) se organizan en una cuadrícula con columnas n_cols. Los gráficos de dependencia parcial de dos vías se trazan como gráficos de contorno. Los deciles de los valores de las características se mostrarán con marcas en los ejes x para los gráficos de una dirección, y en ambos ejes para los gráficos de dos direcciones.

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

Nota

plot_partial_dependence no admite el uso de los mismos ejes con múltiples llamadas. Para trazar la dependencia parcial de múltiples estimadores, pasa los ejes creados por la segunda llamada:

>>> from sklearn.inspection import plot_partial_dependence
>>> from sklearn.datasets import make_friedman1
>>> from sklearn.linear_model import LinearRegression
>>> from sklearn.ensemble import RandomForestRegressor
>>> X, y = make_friedman1()
>>> est1 = LinearRegression().fit(X, y)
>>> est2 = RandomForestRegressor().fit(X, y)
>>> disp1 = plot_partial_dependence(est1, X,
...                                 [1, 2])  
>>> disp2 = plot_partial_dependence(est2, X, [1, 2],
...                                 ax=disp1.axes_)  

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'.

featureslista de {int, str, par de int, par de str}

Las características objetivo para las que se van a crear las PDP. Si features[i] es un entero o una cadena, se crea una PDP de un solo sentido; si features[i] es una tupla, se crea una PDP de dos sentidos (sólo se admite con kind='average'). Cada tupla debe ser de tamaño 2. Si alguna entrada es una cadena, debe estar en feature_names.

feature_namesarray-like de forma (n_features,), dtype=str, default=None

Nombre de cada característica; feature_names[i] contiene el nombre de la característica con índice i. Por defecto, el nombre de la característica corresponde a su índice numérico para el arreglo de NumPy y su nombre de columna para el dataframe de pandas.

targetint, default=None
  • En un entorno multiclase, especifica la clase para la que deben calcularse las PDP. Tenga en cuenta que para la clasificación binaria, siempre se utiliza la clase positiva (índice 1).

  • En una configuración de salida múltiple, especifica la tarea para la que se deben calcular las PDP.

Ignorado en la clasificación binaria o en la configuración de regresión clásica.

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.

n_colsint, default=3

El número máximo de columnas en el gráfico de rejilla. Sólo se activa cuando ax es un solo eje o None.

grid_resolutionentero, default=100

El número de puntos igualmente espaciados en los ejes de los gráficos, para cada característica objetivo.

percentilestupla de flotante, default=(0.05, 0.95)

El percentil inferior y superior utilizado para crear los valores extremos de los ejes PDP. Debe estar en [0, 1].

methodstr, default=”auto”

El método utilizado para calcular las predicciones promediadas:

  • La 'recursion' sólo se admite para algunos estimadores basados en el árbol (a saber GradientBoostingClassifier, GradientBoostingRegressor, HistGradientBoostingClassifier, HistGradientBoostingRegressor, DecisionTreeRegressor, RandomForestRegressor pero 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 los CIE por diseño, no es compatible con los CIE 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 consulta this note para ver diferencias entre el método 'brute' y 'recursion'.

n_jobsint, default=None

El número de CPUs a utilizar para calcular las dependencias parciales. None significa 1 a menos que esté en un contexto joblib.parallel_backend. -1 significa usar todos los procesadores. Consulta Glosario para más detalles.

verboseint, default=0

Salida verbosa durante los cálculos de DP.

line_kwdict, default=None

Dict con palabras clave pasadas a la llamada matplotlib.pyplot.plot. Para gráficos de dependencia parcial unidireccional.

contour_kwdict, default=None

Dict con palabras clave pasadas a la llamada matplotlib.pyplot.contourf. Para gráficos de dependencia parcial de dos vías.

axEjes Matplotlib o array-like de ejes Matplotlib, default=None
  • Si se pasa un solo eje, se trata como un eje delimitador y se dibujará una cuadrícula de gráficos de dependencia parcial dentro de estos límites. El parámetro n_cols controla el número de columnas de la cuadrícula.

  • Si se pasa un array-like de ejes, los gráficos de dependencia parcial se dibujarán directamente en estos ejes.

  • Si es None, se crea una figura y un eje delimitador y se trata como el caso de un solo eje.

Nuevo en la versión 0.22.

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

Si se grafica la dependencia parcial promediada en todas las muestras del conjunto de datos o una línea por muestra o ambas.

  • kind='average' da como resultado en el gráfico tradicional de DP;

  • kind='individual' da como resultado el gráfico ICE.

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.

subsamplefloat, int or None, default=1000

Muestreo para las curvas ICE cuando kind es “individual” o “both”. Si es float, debe estar entre 0.0 y 1.0 y representar la proporción del conjunto de datos que se utilizará para trazar las curvas ICE. Si es int, representa el número absoluto de muestras a utilizar.

Nota que el conjunto de datos completo se sigue utilizando para calcular la dependencia parcial promediada cuando kind='both'.

Nuevo en la versión 0.24.

random_stateentero, instancia de RandomState o None, default=None

Controla la aleatoriedad de las muestras seleccionadas cuando submuestras no es None y kind es 'both' o 'individual'. Consulta Glosario para más detalles.

Nuevo en la versión 0.24.

Devuelve
displayPartialDependenceDisplay

Ver también

partial_dependence

Calcula los valores de la Dependencia Parcial.

PartialDependenceDisplay

Visualización parcial de la dependencia.

Ejemplos

>>> from sklearn.datasets import make_friedman1
>>> from sklearn.ensemble import GradientBoostingRegressor
>>> X, y = make_friedman1()
>>> clf = GradientBoostingRegressor(n_estimators=10).fit(X, y)
>>> plot_partial_dependence(clf, X, [0, (0, 1)]) 

Ejemplos usando sklearn.inspection.plot_partial_dependence