Introduzione all'ottimizzazione lineare

Contenuti

introduzione

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.

Ad esempio, si está ejecutando una cadena de Supermercado, su canal de ciencia de datos pronosticaría las ventas esperadas. Dopo, tomaría esas entradas y crearía una estrategia optimizada de inventario / saldi.

In questo articolo, mostraremos un ejemplo de optimización lineal para seleccionar qué videos TED ver.

Sommario

  • Introduzione all'ottimizzazione lineare
  • Il problema: crear la lista de observación para videos TED
  • passo 1: importar paquetes relevantes
  • passo 2: crea un marco de datos para las charlas TED
  • passo 3: configurar el problema de optimización lineal
  • passo 4: convierta los resultados de la optimización en un formato interpretable

Introduzione all'ottimizzazione lineare

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.ns 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. Avendolo detto, 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.

Il 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 Le lingue. Las charlas TED son impartidas por expertos apasionados por el trabajo en los dominios que eligen y tienen una gran cantidad de información.

Ora, 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:

image001-2656453

passo 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, eccetera.) para resolver este modelo y luego usar comandos de Python para manipular y mostrar la solución. Per impostazione predefinita, el solucionador de CoinMP se incluye con PuLP.

image002-4884036

passo 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: indice de la charla, nombre de la charla, nombre del evento TED, duración de la charla (in pochi minuti), número de vistas (proxy para la popularidad de la charla)

image003-5622579

passo 3: configurar el problema de optimización lineal

Empiece por definir el objeto LP. Il variabile prob se crea para contener la formulación del problema.

image004-8906803

passo 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)

image005-4581569

passo 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, affinché, in sostanza, estamos tratando de maximizar las vistas (popolarità) seleccionando charlas apropiadas (variables de decisión).

image006-7820970

passo 3.3: definir las restricciones

En el problema, avere 2 restricciones:

un) 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

image007-4576228

passo 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.

image008-3093581

passo 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.

image009-1711112

passo 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 (conversazioni) que se seleccionaron para maximizar el resultado deben convertirse en un formato de lista de observación, come mostrato di seguito:

image010-2530610

image011-7062365

Note finali

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 agregartécnicas de optimizacióna 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-232x300-9590781Karthikeyan 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 ConcursoBlogatón en DataPeaker. La entrada de Karthikeyan fue una de las ganadoras del concurso.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.