¿Cómo pueden las reglas codificadas superar el rendimiento de ML? – Hacia la IA

Estás leyendo la publicación: ¿Cómo pueden las reglas codificadas superar el rendimiento de ML? – Hacia la IA

Sistemas basados ​​en reglas

Un sistema basado en reglas es un conjunto de reglas predefinidas para tomar decisiones o proporcionar recomendaciones. El sistema evalúa los datos contra las reglas almacenadas y realiza una determinada acción basada en el mapeo.

Abajo hay algunos ejemplos:

Detección de fraude: en la detección de fraude, los sistemas basados ​​en reglas se pueden usar para marcar e investigar rápidamente transacciones sospechosas basadas en reglas predefinidas.

Hace unos diez años, recuerdo haber creado un algoritmo para atrapar a los tramposos del ajedrez. La forma básica en que actuaban los tramposos era tener una aplicación de ajedrez de computadora en otra ventana que sugería los mejores movimientos. No importa cuál sea la complejidad de la posición, cada movimiento es demasiado 4-5 segundos para hacer. Agregue el “umbral de precisión”: qué tan cerca de la “mejor” línea de computadora que realizó el jugador, y tendrá un sistema bastante sólido.

Una partida de ajedrez contra un tramposo. Imagen generada por el autor.

Cuidado de la salud: los sistemas basados ​​en reglas podrían usarse para administrar recetas y prevenir errores de medicación. También pueden ser bastante útiles para ayudar a los médicos a prescribir análisis adicionales que deben realizar los pacientes en función de los resultados de los anteriores.

Gestión de la cadena de suministro: en la gestión de la cadena de suministro, los sistemas basados ​​en reglas se pueden usar para generar alertas de inventario bajo, ayudar a administrar las fechas de vencimiento o para la introducción de nuevos productos.

Sistemas basados ​​en ML

Los sistemas de Machine Learning (ML) usan algoritmos para aprender de los datos y hacer predicciones o tomar acciones sin estar programados explícitamente para hacerlo. Los sistemas de ML utilizan el conocimiento adquirido al ser entrenados en grandes cantidades de datos para hacer predicciones y decisiones para nuevos datos. Los algoritmos de ML pueden mejorar su rendimiento a medida que se utilizan más datos para el entrenamiento. Los sistemas ML incluyen procesamiento de lenguaje natural, reconocimiento de imagen y voz, análisis predictivo, etc.

Detección de fraude: un banco puede usar un sistema de ML para aprender de transacciones fraudulentas pasadas e identificar posibles actividades fraudulentas en tiempo real. O bien, podría aplicar ingeniería inversa al sistema y buscar transacciones que parezcan muy “atípicas”.

Atención médica: un hospital podría usar un sistema ML para analizar los datos del paciente y predecir la probabilidad de que un paciente desarrolle una determinada enfermedad en función de algunas radiografías.

🔥 Recomendado:  ¿Por qué Python? – Hacia la IA

Cadena de suministro: pronóstico de demanda basado en ventas históricas para diferentes usuarios/ubicaciones/artículos/SKU

Pros y contras

Tanto los sistemas basados ​​en reglas como los de ML tienen sus ventajas y desventajas. Vamos a repasarlos.

Sistemas basados ​​en reglas: Ventajas

  • Fácil de comprender e interpretar.
  • Rápido de implementar
  • Fácil de modificar
  • Robusto

Sistemas basados ​​en reglas: Desventajas

  • Cuestiones que implican un gran número de variables
  • Problemas con numerosas restricciones
  • Limitado a las reglas existentes

Sistemas basados ​​en ML: Ventajas

  • Sistemas de aprendizaje autónomo
  • Habilidad para abordar problemas más complejos.
  • Mayor eficiencia con la intervención humana reducida en comparación con los sistemas basados ​​en reglas
  • Flexibilidad para adaptarse a los cambios en los datos y el entorno a lo largo del tiempo a través del aprendizaje continuo

Sistemas basados ​​en ML: Desventajas

  • Requiere datos. a veces mucho
  • Limitado al ML de datos visto antes
  • Capacidad cognitiva limitada

Existe una forma segura de combinar las ventajas de ambos métodos: los sistemas híbridos.

Sistemas basados ​​en híbridos

Los sistemas híbridos, que combinan sistemas basados ​​en reglas y algoritmos de aprendizaje automático, se han vuelto cada vez más populares recientemente. Pueden proporcionar resultados más sólidos, precisos y eficientes, especialmente cuando se trata de problemas complejos.

Veamos los tipos de sistemas híbridos que se pueden implementar utilizando un conjunto de datos de alquiler:

1. Regla(Xi) → ML(Xi): Ingeniería de características. Por ejemplo, convertir un piso a una de tres categorías: alto, medio o bajo, según la cantidad de pisos del edificio.

2. ML(Yi) → Regla(Yi): Postprocesamiento. Redondeo o normalización de resultados finales.

3. ML(Yi) → Regla(Zi): Uso de predicciones ml para otras decisiones. Por ejemplo, ¿debemos hacer una oferta por un piso en función de la probabilidad de que el piso se venda esta semana (sold_7), y el precio bajará (price_drop)?

4. ML(Yi) + Regla(Yi) → previsión agregada. Combinación de resultados de ML con reglas/dominios/tablas basadas.

Antes de pasar al código, pensemos en algunas empresas o herramientas conocidas que utilizan sistemas de reglas ml bajo el capó.

Esperaría que empresas como Grammarly o QuillBot utilicen sistemas híbridos de PNL para revisar la ortografía y la reformulación. Otro caso: son los sistemas de búsqueda y recomendación que tienen parámetros configurables para impulsar resultados particulares más altos.

Bien, echemos un vistazo a un par de casos prácticos.

Casos Prácticos

Puede encontrar el cuaderno a continuación ejemplos y más en Github.

Enfermedades del corazón

Echemos un vistazo a una enfermedad del corazón. marco de datos:

🔥 Recomendado:  Las 15 mejores cuentas de cheques comerciales en línea gratuitas

Implementemos un Random Forest para predecir la clase objetivo:

clf = RandomForestClassifier(n_estimators=100, random_state=random_seed X_train, X_test, y_train, y_test = train_test_split( df.iloc[:, :-1]df.iloc[:, -1]test_size=0.30, random_state=random_seed ) clf.fit(X_train, y_train))

Una de las razones por las que elegimos Random Forest es la capacidad de importancia de sus características. A continuación, puede ver la importancia de las funciones utilizadas para el entrenamiento:

Veamos nuestros resultados:

y_pred = pd.Series(clf.predict(X_test), index=y_test.index cm = confusion_matrix(y_test, y_pred, labels=clf.classes_) conf_matrix = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=clf.classes_) conf_matrix.plot( )) f1_score(y_test, y_pred): 0.74 recordar_score(y_test, y_pred): 0.747

Ahora, imaginemos que un cardiólogo ve tu modelo. Basado en su experiencia y conocimiento del dominio, sugiere que la característica de talasemia (thal) es mucho más importante que la que se muestra arriba. Decide construir una gráfica de histograma y observar los resultados.

Vamos a asignar una regla obligatoria

y_pred[X_test[X_test[“thal”] == 2].índice]= 1

La matriz de confusión, en este caso, cambiará:

f1_score(y_test, y_pred): 0.818 recordar_score(y_test, y_pred): 0.9

Como puedes notar, los resultados han aumentado. Nuestro conocimiento del dominio desempeñó un papel importante en la estimación de las puntuaciones de nuestros pacientes.

Transacciones fraudulentas

Otro conjunto de datosque analizaremos son transacciones de fraude bancario.

El conjunto de datos está muy desequilibrado:

d.f.[“Class”].value_counts() 0 28431 1 4925

Para crear reglas, veamos los diagramas de caja de distribución de características:

Una de las posibles soluciones, además de escribir nuestra propia Estimador híbrido clase, estaría usando un paquete de aprendizaje humano:

from hulearn.classification import FunctionClassifier rules = { “V3”: (“<=", -2), "V12": ("<=", -3), "V17": ("<=", -2) , } def create_rules(data: pd.DataFrame, rules): filtered_data = data.copy() for col in rules: filtered_data[col] = eval(f"datos_filtrados[col] {normas[col][0]} {normas[col][1]}") resultado = np.array(datos_filtrados[list(rules.keys())].min(axis=1)).astype(int) devuelve el resultado clasificador_híbrido = ClasificadorDeFunciones(crear_reglas, reglas=reglas)

Podemos comparar los resultados de nuestro sistema puro basado en 3 reglas y el método kNN, que maneja el desequilibrio bastante bien:

Puede encontrar más ejemplos de sistemas híbridos y su uso, incluidos los interruptores de seguridad y el manejo de malas predicciones, en el cuaderno en GitHub.

Experiencia personal

Los ejemplos anteriores son geniales, pero ¿qué pasa con los sistemas ML en producción?

Recientemente ordené la entrega de un artículo y encontré un campo interesante para realizar un seguimiento: la entrega estimada. Entiendo cuando el tiempo estimado es de tres días, pero ¿no es demasiado mostrar los segundos?

En uno de mis proyectos recientes, estábamos haciendo pronósticos de demanda. Tres formas en que se implementaron los sistemas híbridos:

1. Salidas de formato (sin filtrado de datos)

Convertir el pronóstico de ML en la cantidad comercial para reponer:

🔥 Recomendado:  Los 15 mejores sitios de impresión bajo demanda como Redbubble

2. Formato de salidas NPI (sin filtrado de datos)

Cada vez que se introduce un nuevo producto en el mercado, durante los primeros días, podemos utilizar el conocimiento del dominio de ventas:

3. Seleccionar subprocesos (con filtrado de datos) para series temporales

Los modelos de series temporales pueden tardar mucho tiempo en ejecutarse, especialmente si están diseñados para ejecutar un solo elemento/sku a la vez. Una de las soluciones puede ser acelerar el pronóstico seleccionando/clasificando los subprocesos más valiosos para que se calculen primero:

Conclusiones

Los sistemas híbridos de reglas y aprendizaje automático ofrecen beneficios prácticos, como una implementación rápida, solidez frente a valores atípicos y mayor transparencia. Son beneficiosos cuando se combina la lógica empresarial con el aprendizaje automático. Por ejemplo, los sistemas híbridos de reglas y aprendizaje automático en el cuidado de la salud pueden diagnosticar enfermedades mediante la combinación de reglas clínicas y algoritmos de aprendizaje automático que analizan los datos de los pacientes.

A medida que los negocios y la ciencia de datos continúan integrándose, los sistemas híbridos pueden ser cruciales para una integración más fluida. Estos sistemas ofrecen una valiosa combinación de conocimiento basado en reglas y capacidades de aprendizaje automático, lo que proporciona una solución más completa y precisa para problemas complejos. La flexibilidad y la adaptabilidad de los sistemas híbridos de reglas y aprendizaje automático los hacen efectivos en muchas industrias.

Sistemas Business ML desde cero hasta el producto

El aprendizaje automático ha transformado rápidamente el mundo de los negocios en los últimos años, ofreciendo nuevas oportunidades para…

Científico de datos 2.0: evolucionando con la industria

¡Descubre los secretos para convertirte en un científico de datos 2.0! El último artículo describe cómo convertirse en un indispensable…

¿Alguna vez se ha enfrentado a un caso en el que los modelos de regla o híbridos superaron al ml puro? Déjelo en los comentarios a continuación.