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
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
esbrute
.- 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 (concretamenteGradientBoostingClassifier
,GradientBoostingRegressor
,HistGradientBoostingClassifier
,HistGradientBoostingRegressor
,DecisionTreeRegressor
,RandomForestRegressor
, ) cuandokind='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 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.
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 salidaBunch
.
- 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
esrecursion
).
- si
- si
kind='individual'
,'average'
o'both'
, el valor de retorno esBunch
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 arreglovalues[j]
esgrid_resolution
, o el número de valores únicos enX[:, j]
, el que sea menor.
- si
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 devalues[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 arreglovalues[j]
esgrid_resolution
, o el número de valores únicos enX[:, 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.])])