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 delen(features)
se organizan en una cuadrícula con columnasn_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
yGradientBoostingRegressor
, el método'recursion'
(utilizado por defecto) no tendrá en cuenta el predictorinit
del proceso de boosting. En la práctica, esto producirá los mismos valores que'brute'
hasta un desplazamiento constante en la respuesta objetivo, siempre queinit
sea un estimador constante (que es el predeterminado). Sin embargo, siinit
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 aGradientBoostingClassifier
yGradientBoostingRegressor
, no aHistGradientBoostingClassifier
yHistGradientBoostingRegressor
.- 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 lasfeatures
de destino (donde se evaluará la dependencia parcial), y también para generar valores para las características del complemento cuando elmethod
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; sifeatures[i]
es una tupla, se crea una PDP de dos sentidos (sólo se admite conkind='average'
). Cada tupla debe ser de tamaño 2. Si alguna entrada es una cadena, debe estar enfeature_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 índicei
. 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 oNone
.- 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 saberGradientBoostingClassifier
,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 contextojoblib.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 parakind='average'
. El gráfico de dependencias individuales requiere el uso de la opción más lentamethod='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 esfloat
, 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 esint
, 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
ykind
es'both'
o'individual'
. Consulta Glosario para más detalles.Nuevo en la versión 0.24.
- Devuelve
- display
PartialDependenceDisplay
- display
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)])