Explicabilidad en modelos lineales

IA explicable en Python

Fouad Trad

Machine Learning Engineer

Modelos lineales

Regresión lineal
  • Predice valores continuos

Imagen con una recta que ajusta varios puntos; el eje x es una nota de test y el eje y es la probabilidad de admisión.

IA explicable en Python

Modelos lineales

Regresión lineal
  • Predice valores continuos

Imagen con una recta que ajusta varios puntos; el eje x es una nota de test y el eje y es la probabilidad de admisión.

Regresión logística
  • Se usa para clasificación binaria

Imagen con una recta que separa puntos de transacciones según importe y hora de ejecución.

IA explicable en Python

¿Por qué los modelos lineales son explicables?

  • Aprenden una combinación lineal de features
  • $c_0 + c_1 \times \text{feature}_1 + c_2 \times \text{feature}_2 + \ldots + c_n \times \text{feature}_n$

Imagen con los mismos gráficos de regresión lineal y logística, con sus ecuaciones: la lineal aprende Precio móvil=푐_0+푐_1∗Almacenamiento, y la logística aprende 푐_0+푐_1∗Hora del día+푐_2∗Importe=0

IA explicable en Python

Coeficientes

  • Indican la importancia de cada feature
    • Valor absoluto mayor → más importancia
    • Valor absoluto menor → menos importancia
  • Para comparar coeficientes → valores absolutos
  • Nota: Normaliza las escalas antes de calcular coeficientes

Imagen con la ecuación Precio móvil=푐_0+5∗Almacenamiento+2∗Número de lentes, destacando los coeficientes

IA explicable en Python

Coeficientes

  • Indican la importancia de cada feature
    • Valor absoluto mayor → más importancia
    • Valor absoluto menor → menos importancia
  • Para comparar coeficientes → valores absolutos
  • Nota: Normaliza las escalas antes de calcular coeficientes

Imagen que muestra la ecuación Precio móvil=𝑐_0+𝑐_1∗Almacenamiento+c_2∗Número de lentes, destacando que el almacenamiento suele estar en cientos a miles de GB y el número de lentes suele ser < 4.

IA explicable en Python

Admisiones

GRE Score TOEFL Score University Rating SOP LOR CGPA Chance of Admit Accept
337 118 4 4.5 4.5 9.65 0.92 1
324 107 4 4 4.5 8.87 0.76 1
316 104 3 3 3.5 8 0.72 1
322 110 3 3.5 2.5 8.67 0.8 1
314 103 2 2 3 8.21 0.45 0
X_train = data.drop(['Chance of Admit', 'Accept'], axis=1)

y_reg = data['Chance of Admit']
y_cls = data['Accept']
IA explicable en Python

Entrenamiento del modelo

from sklearn.preprocessing import MinMaxScaler
from sklearn.linear_model import LinearRegression, LogisticRegression


scaler = MinMaxScaler() X_train_scaled = scaler.fit_transform(X_train)
lin_reg = LinearRegression() lin_reg.fit(X_train_scaled, y_reg)
log_reg = LogisticRegression() log_reg.fit(X_train_scaled, y_cls)
IA explicable en Python

Cálculo de coeficientes

Regresión lineal
print(lin_reg.coef_)
[0.03052087 0.01665433 0.00668971 
 0.00326926 0.01724815 0.0661691 ]
Regresión logística
print(log_reg.coef_)
[[1.28985577  0.49441086  0.47593379 
  0.05434322  0.41800927  1.31980189]]
IA explicable en Python

Visualizar coeficientes

Regresión lineal
import matplotlib.pyplot as plt
plt.bar(X_train.columns, lin_reg.coef_)

Gráfico de barras de importancias que muestra que CGPA y GRE son las features más importantes.

Regresión logística
import matplotlib.pyplot as plt
plt.bar(X_train.columns, log_reg.coef_[0])

Gráfico de barras de importancias que muestra que CGPA y GRE son las features más importantes.

IA explicable en Python

¡Vamos a practicar!

IA explicable en Python

Preparing Video For Download...