Introducción
Las organizaciones utilizan la ciencia de datos y el aprendizaje automático para resolver una variedad de problemas comerciales en la actualidad. Para crear un impacto empresarial real, una consideración importante es cerrar la brecha entre la canalización de la ciencia de datos y la canalización de la toma de decisiones empresariales.
El resultado de la canalización de la ciencia de datos son predicciones, patrones y conocimientos a partir de los datos (normalmente sin ninguna noción de restricciones), pero eso por sí solo es insuficiente para que las partes interesadas de la empresa tomen decisiones. Los resultados de la ciencia de datos deben incorporarse al proceso de toma de decisiones comerciales, lo que implica algún tipo de optimización que implica restricciones y variables de decisión que modelan los aspectos clave del negocio.
Por ejemplo, si está ejecutando una cadena de Supermercado, su canal de ciencia de datos pronosticaría las ventas esperadas. Luego, tomaría esas entradas y crearía una estrategia optimizada de inventario / ventas.
En este artículo, mostraremos un ejemplo de optimización lineal para seleccionar qué videos TED ver.
Tabla de contenido
- Introducción a la optimización lineal
- El problema: crear la lista de observación para videos TED
- Paso 1: importar paquetes relevantes
- Paso 2: crea un marco de datos para las charlas TED
- Paso 3: configurar el problema de optimización lineal
- Paso 4: convierta los resultados de la optimización en un formato interpretable
Introducción a la optimización lineal
Entre las técnicas de optimización, la Optimización lineal mediante el método Simplex se considera una de las más poderosas y ha sido calificada como uno de los 10 mejores algoritmos de los 20.th siglo. Como profesionales de la ciencia de datos, es importante tener conocimientos prácticos sobre la implementación de la optimización lineal y esta publicación de blog es para ilustrar su implementación utilizando el paquete PuLP de Python.
Para hacer las cosas interesantes y fáciles de entender, aprenderemos esta técnica de optimización aplicándola en un problema práctico del día a día. Dicho esto, lo que aprendemos también es aplicable a una variedad de problemas comerciales.
Nota: Este artículo asume que tiene conocimientos básicos de programación lineal. Puede leer este artículo si desea revisar el tema.
El problema: crear la lista de observación para videos TED
TED es una organización sin fines de lucro dedicada a difundir ideas. TED comenzó en 1984 como una conferencia en la que convergieron Tecnología, Entretenimiento y Diseño, y hoy cubre casi todos los temas, desde la ciencia hasta los negocios y los problemas globales, en más de 100 idiomas. Las charlas TED son impartidas por expertos apasionados por el trabajo en los dominios que eligen y tienen una gran cantidad de información.
Ahora, para el propósito de esta publicación de blog, imagine una situación en la que uno esté interesado en crear su lista de observación de las charlas TED más populares dadas sus limitaciones (tiempo que se puede asignar para ver y la cantidad de charlas). Veremos cómo implementar el programa Python para ayudarnos a crear la lista de seguimiento de la manera óptima.
El código del artículo se puede encontrar aquí. Las capturas de pantalla de mi cuaderno Jupyter se muestran a continuación:
Paso 1: importar paquetes relevantes
PuLP es un software gratuito de código abierto escrito en Python. Se utiliza para describir problemas de optimización como modelos matemáticos. PuLP puede llamar a cualquiera de los numerosos solucionadores LP externos (CBC, GLPK, CPLEX, Gurobi, etc.) para resolver este modelo y luego usar comandos de Python para manipular y mostrar la solución. De forma predeterminada, el solucionador de CoinMP se incluye con PuLP.
Paso 2: crea un marco de datos para las charlas TED
El conjunto de datos que tiene todas las charlas TED (2550) se descarga de Kaggle y se lee en un marco de datos. Se selecciona un subconjunto de columnas relevantes y el conjunto de datos resultante tiene los siguientes detalles: índiceEl "Índice" es una herramienta fundamental en libros y documentos, que permite ubicar rápidamente la información deseada. Generalmente, se presenta al inicio de una obra y organiza los contenidos de manera jerárquica, incluyendo capítulos y secciones. Su correcta elaboración facilita la navegación y mejora la comprensión del material, convirtiéndolo en un recurso esencial tanto para estudiantes como para profesionales en diversas áreas.... de la charla, nombre de la charla, nombre del evento TED, duración de la charla (en minutos), número de vistas (proxy para la popularidad de la charla)
Paso 3: configurar el problema de optimización lineal
Empiece por definir el objeto LP. La variableEn estadística y matemáticas, una "variable" es un símbolo que representa un valor que puede cambiar o variar. Existen diferentes tipos de variables, como las cualitativas, que describen características no numéricas, y las cuantitativas, que representan cantidades numéricas. Las variables son fundamentales en experimentos y estudios, ya que permiten analizar relaciones y patrones entre diferentes elementos, facilitando la comprensión de fenómenos complejos.... prob se crea para contener la formulación del problema.
Paso 3.1: Cree las variables de decisión
Repita cada fila del marco de datos para crear las variables de decisión, de modo que cada conversación se convierta en una variable de decisión. Dado que cada charla puede seleccionarse o no seleccionarse como parte de la lista de observación final, la variable de decisión es de naturaleza binaria (1 = seleccionada, 0 = no seleccionada)
Paso 3.2: definir la función objetivo
La función objetivo es la suma de todas las filas de las vistas de cada charla. Las vistas sirven como un indicador de la popularidad de la charla, por lo que, en esencia, estamos tratando de maximizar las vistas (popularidad) seleccionando charlas apropiadas (variables de decisión).
Paso 3.3: definir las restricciones
En el problema, tenemos 2 restricciones:
a) Solo tenemos una cantidad fija de tiempo total que se puede asignar para ver las charlas
b) No queremos ver más de un cierto número de charlas para evitar la sobrecarga de información
Paso 3.4: El formato final (para la formulación del problema)
El formato final del problema formulado se escribe en un archivo .lp. Esto enumerará la función objetivo, las variables de decisión y las restricciones impuestas al problema.
Paso 3.5: la optimización real
La optimización real es una sola línea de código que llama a ‘prob.solve’. Se inserta una declaración de afirmación para determinar si se obtuvo un resultado óptimo para el problema.
Paso 4: convierta los resultados de la optimización en un formato interpretable
Los resultados de optimización que indican las variables de decisión específicas (conversaciones) que se seleccionaron para maximizar el resultado deben convertirse en un formato de lista de observación, como se muestra a continuación:
Notas finales
Este artículo proporciona un ejemplo de cómo utilizar las técnicas de optimización lineal disponibles en Python para resolver el problema diario de crear una lista de visualización de videos. Los conceptos aprendidos también son aplicables en situaciones comerciales más complejas que involucran miles de variables de decisión y muchas restricciones diferentes.
Todos los profesionales de la ciencia de datos deben agregar «técnicas de optimización» a su cuerpo de conocimientos para que puedan usar análisis avanzados para resolver problemas comerciales del mundo real y este artículo está destinado a ayudarlo a dar el primer paso en esa dirección.
Karthikeyan Sankaran Actualmente es director de LatentView Analytics, que brinda soluciones en la intersección de negocios, tecnología y matemáticas para problemas comerciales en una amplia gama de industrias. Karthik tiene cerca de dos décadas de experiencia en la industria de la tecnología de la información y ha trabajado en múltiples roles en el espacio de gestión de datos, inteligencia empresarial y análisis.
Esta historia fue recibida como parte de Concurso «Blogatón» en DataPeaker. La entrada de Karthikeyan fue una de las ganadoras del concurso.