Las gráficas de dependencia parcial (PDP) y las gráficas de expectativa condicional individual (ICE) se pueden utilizar para visualizar y analizar la interacción entre la respuesta objetivo 1 y un conjunto de características de entrada de interés.
Tanto los PDP como los ICE asumen que las características de entrada de interés son independientes de las características del complemento, y esta suposición a menudo se viola en la práctica. Por lo tanto, en el caso de características correlacionadas, crearemos puntos de datos absurdos para calcular el PDP / ICE.
4.1.1. Parcelas de dependencia parcial
Las gráficas de dependencia parcial (PDP) muestran la dependencia entre la respuesta objetivo y un conjunto de características de entrada de interés, marginando los valores de todas las demás características de entrada (las características ‘complementarias’). Intuitivamente, podemos interpretar la dependencia parcial como la respuesta objetivo esperada en función de las características de entrada de interés.
Debido a los límites de la percepción humana, el tamaño del conjunto de características de entrada de interés debe ser pequeño (generalmente, uno o dos), por lo que las características de entrada de interés generalmente se eligen entre las características más importantes.
La siguiente figura muestra dos parcelas de dependencia parcial unidireccionales y una bidireccional para el conjunto de datos de vivienda de California, con un HistGradientBoostingRegressor
:
Los PDP unidireccionales nos informan sobre la interacción entre la respuesta objetivo y una característica de entrada de interés (por ejemplo, lineal, no lineal). El gráfico de la izquierda en la figura anterior muestra el efecto de la ocupación promedio sobre el precio medio de la vivienda; podemos ver claramente una relación lineal entre ellos cuando la ocupación media es inferior a 3 personas. De manera similar, podríamos analizar el efecto de la edad de la vivienda sobre el precio medio de la vivienda (parcela intermedia). Por lo tanto, estas interpretaciones son marginales, considerando una característica a la vez.
Los PDP con dos características de entrada de interés muestran las interacciones entre las dos características. Por ejemplo, el PDP de dos variables en la figura anterior muestra la dependencia del precio medio de la vivienda en los valores conjuntos de la edad de la vivienda y los ocupantes promedio por hogar. Podemos ver claramente una interacción entre las dos características: para una ocupación promedio superior a dos, el precio de la vivienda es casi independiente de la edad de la vivienda, mientras que para valores inferiores a 2 existe una fuerte dependencia de la edad.
los sklearn.inspection
el módulo proporciona una función de conveniencia plot_partial_dependence
para crear parcelas de dependencia parcial unidireccionales y bidireccionales. En el siguiente ejemplo, mostramos cómo crear una cuadrícula de gráficos de dependencia parcial: dos PDP unidireccionales para las características 0
y 1
y un PDP bidireccional entre las dos funciones:
>>> from sklearn.datasets import make_hastie_10_2 >>> from sklearn.ensemble import GradientBoostingClassifier >>> from sklearn.inspection import plot_partial_dependence >>> X, y = make_hastie_10_2(random_state=0) >>> clf = GradientBoostingClassifier(n_estimators=100, learning_rate=1.0, ... max_depth=1, random_state=0).fit(X, y) >>> features = [0, 1, (0, 1)] >>> plot_partial_dependence(clf, X, features)
Puede acceder a la figura recién creada y a los objetos Axes usando plt.gcf()
y plt.gca()
.
Para la clasificación de clases múltiples, debe establecer la etiqueta de clase para la que se deben crear los PDP a través del target
argumento:
>>> from sklearn.datasets import load_iris >>> iris = load_iris() >>> mc_clf = GradientBoostingClassifier(n_estimators=10, ... max_depth=1).fit(iris.data, iris.target) >>> features = [3, 2, (3, 2)] >>> plot_partial_dependence(mc_clf, X, features, target=0)
El mismo parámetro target
se utiliza para especificar el objetivo en la configuración de regresión de múltiples salidas.
Si necesita los valores brutos de la función de dependencia parcial en lugar de los gráficos, puede utilizar la sklearn.inspection.partial_dependence
función:
>>> de sklearn.inspección importar dependencia_parcial >>> pdp, ejes = dependencia_parcial(clf, X, [0]) >>> matriz pdp([[ 2.466..., 2.466..., ... >>> axes [array([-1.624..., -1.592..., ...
The values at which the partial dependence should be evaluated are directly generated from X
. For 2-way partial dependence, a 2D-grid of values is generated. The values
field returned by sklearn.inspection.partial_dependence
gives the actual values used in the grid for each input feature of interest. They also correspond to the axis of the plots.
4.1.2. Individual conditional expectation (ICE) plot
Similar to a PDP, an individual conditional expectation (ICE) plot shows the dependence between the target function and an input feature of interest. However, unlike a PDP, which shows the average effect of the input feature, an ICE plot visualizes the dependence of the prediction on a feature for each sample separately with one line per sample. Due to the limits of human perception, only one input feature of interest is supported for ICE plots.
The figures below show four ICE plots for the California housing dataset, with a HistGradientBoostingRegressor
. The second figure plots the corresponding PD line overlaid on ICE lines.
While the PDPs are good at showing the average effect of the target features, they can obscure a heterogeneous relationship created by interactions. When interactions are present the ICE plot will provide many more insights. For example, we could observe a linear relationship between the median income and the house price in the PD line. However, the ICE lines show that there are some exceptions, where the house price remains constant in some ranges of the median income.
The sklearn.inspection
module’s plot_partial_dependence
convenience function can be used to create ICE plots by setting kind='individual'
. In the example below, we show how to create a grid of ICE plots:
>>> from sklearn.datasets import make_hastie_10_2 >>> from sklearn.ensemble import GradientBoostingClassifier >>> from sklearn.inspection import plot_partial_dependence
>>> X, y = make_hastie_10_2(random_state=0) >>> clf = GradientBoostingClassifier(n_estimators=100, learning_rate=1.0, ... max_depth=1, random_state=0).fit(X, y) >>> features = [0, 1] >>> plot_partial_dependence(clf, X, características, ... amable='individual')
En los gráficos ICE, puede que no sea fácil ver el efecto promedio de la característica de entrada de interés. Por lo tanto, se recomienda utilizar gráficos ICE junto con PDP. Pueden trazarse junto con kind='both'
.
>>> plot_partial_dependence(clf, X, features, ... kind='both')
4.1.3. Definición matemática
Dejar (X_S ) ser el conjunto de características de entrada de interés (es decir, el features
parámetro) y dejar (X_C ) ser su complemento.
La dependencia parcial de la respuesta. (F) en un punto (x_S ) Se define como:
[begin{split}pd_{X_S}(x_S) &overset{def}{=} mathbb{E}_{X_C}left[ f(x_S, X_C) right]\ & = int f (x_S, x_C) p (x_C) dx_C, end {split} ]
dónde (f (x_S, x_C) ) es la función de respuesta (predecir, predecir_proba o función_de_decisión) para una muestra dada cuyos valores están definidos por (x_S ) para las características en (X_S ), y por (x_C ) para las características en (X_C ). Tenga en cuenta que (x_S ) y (x_C ) pueden ser tuplas.
Calcular esta integral para varios valores de (x_S ) produce un diagrama de PDP como el anterior. Una línea ICE se define como una (f (x_ {S}, x_ {C} ^ {(i)}) ) evaluado en (x_ {S} ).
4.1.4. Métodos de computación
Hay dos métodos principales para aproximar la integral anterior, a saber, los métodos ‘bruto’ y ‘recursividad’. los method
El parámetro controla qué método utilizar.
El método ‘bruto’ es un método genérico que funciona con cualquier estimador. Tenga en cuenta que el cálculo de gráficos ICE solo se admite con el método “bruto”. Se aproxima a la integral anterior calculando un promedio sobre los datos X
:
[pd_{X_S}(x_S) approx frac{1}{n_text{samples}} sum_{i=1}^n f(x_S, x_C^{(i)}),]
dónde (x_C ^ {(i)} ) es el valor de la i-ésima muestra para las características en (X_C ). Por cada valor de (x_S ), este método requiere un pase completo sobre el conjunto de datos X
que es computacionalmente intensivo.
Cada una de las (f (x_ {S}, x_ {C} ^ {(i)}) ) corresponde a una línea ICE evaluada en (x_ {S} ). Calculando esto para múltiples valores de (x_ {S} ), se obtiene una línea ICE completa. Como se puede ver, el promedio de las líneas ICE corresponde a la línea de dependencia parcial.
El método de ‘recursividad’ es más rápido que el método ‘bruto’, pero algunos estimadores basados en árboles solo lo admiten para gráficos PDP. Se calcula de la siguiente manera. Para un punto dado (x_S ), se realiza un recorrido de árbol ponderado: si un nodo dividido implica una característica de entrada de interés, se sigue la rama izquierda o derecha correspondiente; de lo contrario, se siguen ambas ramas, ponderando cada rama por la fracción de muestras de entrenamiento que ingresaron a esa rama. Finalmente, la dependencia parcial viene dada por un promedio ponderado de todos los valores de las hojas visitadas.
Con el método ‘bruto’, el parámetro X
se usa tanto para generar la cuadrícula de valores (x_S ) y los valores de las características complementarias (x_C ). Sin embargo, con el método de ‘recursividad’, X
sólo se utiliza para los valores de la cuadrícula: implícitamente, el (x_C ) Los valores son los de los datos de entrenamiento.
Por defecto, el método de ‘recursividad’ se usa para graficar PDP en estimadores basados en árboles que lo respaldan, y ‘bruto’ se usa para el resto.
Nota
Si bien ambos métodos deben ser similares en general, pueden diferir en algunos entornos específicos. El método ‘bruto’ asume la existencia de los puntos de datos ((x_S, x_C ^ {(i)}) ). Cuando las características están correlacionadas, tales muestras artificiales pueden tener una masa de probabilidad muy baja. Los métodos “bruto” y “recursivo” probablemente no estarán de acuerdo con respecto al valor de la dependencia parcial, porque tratarán estas muestras poco probables de manera diferente. Sin embargo, recuerde que el supuesto principal para interpretar los PDP es que las características deben ser independientes.
Ejemplos:
- Gráficos de dependencia parcial y expectativas condicionales individuales
Notas al pie
-
1
-
Para la clasificación, la respuesta objetivo puede ser la probabilidad de una clase (la clase positiva para la clasificación binaria) o la función de decisión.
Referencias
T. Hastie, R. Tibshirani y J. Friedman, Los elementos del aprendizaje estadístico, Segunda edición, Sección 10.13.2, Springer, 2009.
C. Molnar, Aprendizaje automático interpretable, Sección 5.1, 2019.
A. Goldstein, A. Kapelner, J. Bleich y E. Pitkin, Echando un vistazo dentro de la caja negra: visualización del aprendizaje estadístico con gráficas de expectativa condicional individual, Revista de Estadística Computacional y Gráfica, 24 (1): 44-65, Springer, 2015.