Analisis What-If con ML Studio: Probando Escenarios de Negocio
Introduccion
Un modelo desplegado responde a la pregunta "que sucedera dados estos inputs?" Pero los stakeholders de negocio rara vez se detienen ahi. Quieren saber que pasaria si cambiaran los inputs. Que pasa si subimos el precio un 15%? Que pasa si aprobamos este prestamo a una tasa de interes menor? Que pasa si la temperatura de manufactura fuera 5 grados mas alta?
Estas son preguntas What-If, y responderlas de forma sistematica es el puente entre un modelo que simplemente existe en produccion y un modelo que impulsa decisiones de negocio reales. ML Studio de CorePlexML proporciona un entorno dedicado para crear, ejecutar y comparar escenarios What-If contra cualquier modelo desplegado.
Vision General de ML Studio
ML Studio se organiza en torno a tres conceptos: sesiones, escenarios y lineas base.
Una sesion esta vinculada a un modelo desplegado especifico. Cuando creas una sesion, ML Studio traza la linea de procedencia completa desde el deployment hasta el modelo, experimento y version del dataset para extraer el esquema de features. Este esquema define que features puedes modificar y sus tipos y rangos validos.
Una linea base es el punto de partida: un conjunto de valores de features que representan el estado actual o una observacion tipica. ML Studio ejecuta la linea base a traves del modelo para producir una prediccion de referencia.
Un escenario es una variacion de la linea base. Cambias uno o mas valores de features y ML Studio produce una nueva prediccion. El poder radica en comparar multiples escenarios contra la linea base para entender como diferentes inputs afectan el resultado.
Creacion de una Sesion What-If
Comienza navegando a ML Studio en la interfaz de CorePlexML. Haz clic en Nueva Sesion y selecciona un modelo desplegado. ML Studio carga automaticamente el esquema de features de la cadena de procedencia del deployment.
A traves del SDK, la creacion de sesiones se ve asi:
from coreplexml import CorePlexMLClient
client = CorePlexMLClient(
base_url="https://api.coreplexml.io",
api_key="sk_your_api_key"
)
# Create a session linked to a deployment
session = client.studio.create_session(
deployment_id="dep_xyz789",
name="Churn Pricing Analysis"
)
print(f"Session ID: {session['session_id']}")
print(f"Features: {[f['name'] for f in session['schema']]}")
La respuesta del esquema incluye el nombre de cada feature, su tipo (numerico o categorico) y, para features numericos, el rango observado en los datos de entrenamiento. Esta informacion alimenta los inputs del formulario en la UI y valida los valores de escenarios en la API.
Estableciendo la Linea Base
La linea base representa tu punto de referencia. Para un modelo de prediccion de churn, podrias establecer la linea base con un perfil de cliente tipico:
baseline = client.studio.set_baseline(
session_id=session["session_id"],
features={
"tenure": 24,
"MonthlyCharges": 70.0,
"Contract": "Month-to-month",
"InternetService": "Fiber optic",
"TechSupport": "No",
"PaymentMethod": "Electronic check"
}
)
print(f"Baseline prediction: {baseline['prediction']}")
# Output: Baseline prediction: 0.72 (high churn probability)
La prediccion de la linea base se convierte en la linea de referencia en todos los graficos de comparacion. Cada escenario se mide como un delta respecto a este valor.
Ejecucion de Escenarios
Con la linea base establecida, crea escenarios modificando uno o mas features. Comienza con cambios de un solo feature para aislar el impacto de cada variable, luego combina cambios para un analisis mas complejo.
# Scenario 1: What if this customer signs a two-year contract?
scenario_1 = client.studio.create_scenario(
session_id=session["session_id"],
name="Two-Year Contract",
features={
"Contract": "Two year"
}
)
print(f"Prediction: {scenario_1['prediction']}")
# Output: Prediction: 0.18
# Scenario 2: What if we also add tech support?
scenario_2 = client.studio.create_scenario(
session_id=session["session_id"],
name="Two-Year + Tech Support",
features={
"Contract": "Two year",
"TechSupport": "Yes"
}
)
print(f"Prediction: {scenario_2['prediction']}")
# Output: Prediction: 0.12
# Scenario 3: What if we increase monthly charges by 20%?
scenario_3 = client.studio.create_scenario(
session_id=session["session_id"],
name="Price Increase 20%",
features={
"MonthlyCharges": 84.0
}
)
print(f"Prediction: {scenario_3['prediction']}")
# Output: Prediction: 0.78
Comparacion de Escenarios
El endpoint de comparacion devuelve todos los escenarios lado a lado con sus predicciones y deltas respecto a la linea base.
comparison = client.studio.compare(session_id=session["session_id"])
for scenario in comparison["scenarios"]:
delta = scenario["prediction"] - comparison["baseline"]["prediction"]
direction = "lower" if delta < 0 else "higher"
print(f"{scenario['name']}: {scenario['prediction']:.2f} "
f"({abs(delta):.2f} {direction} than baseline)")
En la UI, el grafico de comparacion utiliza un grafico de barras codificado por colores:
- Las barras azules representan la prediccion de la linea base
- Las barras verdes indican escenarios donde la prediccion esta por encima de la linea base
- Las barras rojas indican escenarios por debajo de la linea base
- Las barras grises aparecen cuando la prediccion es identica a la linea base
Para modelos de regresion (prediccion de un valor numerico), el grafico compara directamente los valores predichos. Para modelos de clasificacion, el grafico muestra las etiquetas de clase predichas. Como las etiquetas de clase son categoricas, la comparacion numerica de barras se reemplaza con un resumen basado en texto.
Comprendiendo las Contribuciones SHAP
Cuando ejecutas un escenario, ML Studio tambien puede devolver valores de contribucion SHAP (SHapley Additive exPlanations) para cada feature. Los valores SHAP descomponen una prediccion en la contribucion aditiva de cada feature de entrada, respondiendo la pregunta: cuanto empujo cada feature la prediccion hacia arriba o hacia abajo respecto al promedio?
scenario = client.studio.create_scenario(
session_id=session["session_id"],
name="Contract Change Analysis",
features={"Contract": "Two year"},
include_contributions=True
)
for feature, contribution in scenario["contributions"].items():
direction = "+" if contribution > 0 else ""
print(f" {feature}: {direction}{contribution:.4f}")
Una salida tipica podria mostrar que cambiar a un contrato de dos anos contribuye -0.35 a la probabilidad de churn (reduciendola fuertemente), mientras que el servicio de internet de fibra optica contribuye +0.12 (aumentandola). Esta descomposicion te ayuda a entender no solo que predice el modelo, sino por que.
Limitacion importante: Las contribuciones SHAP no estan disponibles para modelos StackedEnsemble. Si tu deployment utiliza un stacked ensemble, el campo de contribuciones estara vacio. Esta es una limitacion del metodo predict_contributions() del framework H2O, que no soporta arquitecturas de ensamble. Los modelos individuales (XGBoost, GBM, Deep Learning, GLM) si soportan contribuciones.
Ejemplos de Casos de Uso de Negocio
Optimizacion de Precios
Una empresa de telecomunicaciones quiere entender como los cambios de precio afectan el churn de clientes. Usando ML Studio, el equipo de precios crea un perfil de cliente base y ejecuta escenarios a diferentes puntos de precio: precio actual, aumento del 5%, aumento del 10%, aumento del 15% y un descuento por paquete. El grafico de comparacion revela inmediatamente el punto de inflexion donde la probabilidad de churn aumenta bruscamente, ayudando al equipo a fijar precios que maximicen los ingresos sin provocar una fuga excesiva de clientes.
Evaluacion de Riesgos
Una compania de seguros utiliza un modelo de prediccion de reclamaciones. El equipo de suscripcion crea escenarios para un potencial asegurado, variando el monto de cobertura, deducible, ubicacion y antiguedad del vehiculo. Cada escenario muestra la probabilidad de reclamacion predicha y el monto de perdida esperado. El equipo puede identificar que combinaciones de cobertura y deducible producen niveles de riesgo aceptables y fijar el precio de la poliza en consecuencia.
Control de Calidad en Manufactura
Una fabrica utiliza un modelo de prediccion de defectos entrenado con datos de sensores. El equipo de operaciones establece una linea base con las condiciones de operacion actuales y ejecuta escenarios que varian temperatura, humedad y velocidad de linea. La comparacion revela que una reduccion de temperatura de 3 grados disminuye la tasa de defectos predicha en un 40%, mientras que aumentar la velocidad de linea en un 10% tiene un impacto minimo. Este analisis informa directamente la configuracion optima de las maquinas.
Analisis de Aprobacion de Prestamos
Un equipo de credito evalua como cambiar los terminos del prestamo afecta la probabilidad de impago. La linea base se establece con el perfil actual del solicitante. Los escenarios exploran diferentes montos de prestamo, tasas de interes y plazos. Las contribuciones SHAP revelan que factores impulsan el riesgo de impago para este solicitante especifico, permitiendo una estructuracion de prestamo personalizada que equilibre las tasas de aprobacion con el riesgo del portafolio.
Mejores Practicas
Comienza con cambios de un solo feature. Cuando cambias multiples features a la vez, es dificil atribuir el cambio en la prediccion a una variable individual. Comienza variando un feature a la vez para entender su efecto aislado, luego combina cambios para escenarios compuestos mas realistas.
Valida con conocimiento del dominio. Si un escenario produce un resultado contraintuitivo (por ejemplo, mayor ingreso aumenta la probabilidad de impago), investiga mas antes de actuar. El modelo puede haber aprendido una correlacion espuria, o la interaccion de features puede ser mas compleja de lo esperado. Usa las contribuciones SHAP para entender los factores subyacentes.
Documenta tus escenarios. Dale a cada escenario un nombre descriptivo y registra la pregunta de negocio que responde. Las sesiones de ML Studio persisten, asi que puedes volver a un analisis previo meses despues. Escenarios bien nombrados hacen que el analisis se auto-documente.
Compara entre segmentos de clientes. Ejecuta el mismo conjunto de escenarios con diferentes perfiles base. Un aumento de precio que apenas afecta a clientes de baja antiguedad podria impactar significativamente a los de alta antiguedad. El analisis segmentado revela efectos heterogeneos que el analisis agregado pasa por alto.
Usa valores de features realistas. Establecer un feature en un valor extremo que nunca ocurre en tus datos de entrenamiento produce predicciones extrapoladas que pueden no ser confiables. Mantente dentro de los rangos observados mostrados en el esquema de features para asegurar que tus escenarios caigan dentro del dominio aprendido del modelo.
Combina con A/B testing. El analisis What-If genera hipotesis. El A/B testing las valida. Usa ML Studio para identificar las intervenciones mas prometedoras, luego disena experimentos controlados para confirmar los efectos predichos en la practica. El modelo te dice que deberia pasar; el experimento confirma si realmente sucede.
ML Studio convierte tus modelos desplegados en herramientas interactivas de soporte a decisiones. En lugar de tratar las predicciones como salidas opacas, puedes explorar la frontera de decision, entender las contribuciones de features y construir casos de negocio basados en evidencia, todo sin escribir una sola linea de codigo de modelo.