Introdução
Organizações usam ciência de dados e aprendizado de máquina para resolver uma variedade de problemas de negócios hoje. Para criar impacto real nos negócios, uma consideração importante é fazer a ponte entre canalizar a ciência de dados e canalizar a tomada de decisões empresariais..
O resultado da canalização da ciência de dados são as previsões, padrões e insights de dados (geralmente sem qualquer noção de restrições), mas isso por si só é insuficiente para os stakeholders da empresa tomar decisões. Os resultados da ciência de dados devem ser incorporados ao processo de tomada de decisão empresarial, o que implica algum tipo de otimização que envolve restrições e variáveis de decisão que modelam os principais aspectos do negócio.
Por exemplo, se você está executando uma cadeia de supermercados, seu canal de ciência de dados previria vendas esperadas. Mais tarde, pegaria essas entradas e criaria uma estratégia de inventário otimizada / vendas.
Neste artigo, vamos mostrar um exemplo de otimização linear para selecionar quais vídeos TED assistir.
Tabela de conteúdo
- Introdução à otimização linear
- O problema: criar a lista de observação para vídeos TED
- Paso 1: importar pacotes relevantes
- Paso 2: cria uma estrutura de dados para palestras TED
- Paso 3: configurar o problema de otimização linear
- Paso 4: converter resultados de otimização em um formato interpretativo
Introdução à otimização linear
Entre as técnicas de otimização, A otimização linear usando o método Simplex é considerada uma das mais poderosas e foi classificada como uma das 10 melhores algoritmos do 20.º século. Como profissionais de ciência de dados, é importante ter conhecimento prático sobre a implementação da otimização linear e este post no blog é para ilustrar sua implementação usando o pacote PuLP da Python.
Para tornar as coisas interessantes e fáceis de entender, aprenderemos essa técnica de otimização aplicando-a a um problema prático do dia-a-dia. Dito isto, o que aprendemos também é aplicável a uma variedade de problemas de negócios.
Observação: Este artigo assume que você tem conhecimento básico de programação linear. você pode ler este artigo se você quiser rever o tópico.
O problema: criar a lista de observação para vídeos TED
TED é uma organização sem fins lucrativos dedicada a espalhar ideias. TED começou em 1984 como uma conferência em que a tecnologia convergiu, Entretenimento e Design, e hoje abrange quase todos os tópicos, da ciência para questões empresariais e globais, em mais de 100 línguas. As palestras ted são ministradas por especialistas que são apaixonados por trabalhar nos domínios que escolhem e têm uma riqueza de informações..
Agora, para o propósito deste post blog, imagine uma situação em que se está interessado em criar sua lista de observação das palestras TED mais populares dadas suas limitações (tempo que pode ser alocado para visualização e o número de conversas). Veremos como implementar o programa Python para nos ajudar a criar a lista de observação da maneira ideal.
O código do item pode ser encontrado aqui. Capturas de tela do meu notebook Jupyter são mostradas abaixo:
Paso 1: importar pacotes relevantes
PuLP é um software de código aberto gratuito escrito em Python. Usado para descrever problemas de otimização como modelos matemáticos. celulose pode chamar qualquer um dos numerosos lp resolvers externos (Cbc, GLPK, CPLEX, Gurobi, etc.) para resolver este modelo e, em seguida, usar comandos Python para manipular e exibir a solução. Por padrão, Solver CoinMP é incluído com PuLP.
Paso 2: cria uma estrutura de dados para palestras TED
O conjunto de dados que tem todas as palestras TED (2550) é baixado de Kaggle e lido em um quadro de dados. Um subconjunto de colunas relevantes é selecionado e o conjunto de dados resultante tem os seguintes detalhes: índiceo "Índice" É uma ferramenta fundamental em livros e documentos, que permite localizar rapidamente as informações desejadas. Geralmente, é apresentado no início de um trabalho e organiza os conteúdos de forma hierárquica, incluindo capítulos e seções. Sua correta preparação facilita a navegação e melhora a compreensão do material, tornando-se um recurso essencial para estudantes e profissionais de várias áreas.... de la charla, nome da conversa, Nome do evento TED, duração da conversa (em minutos), número de visualizações (proxy para popularidade do chat)
Paso 3: configurar o problema de otimização linear
Comece definindo o objeto LP. o variávelEm estatística e matemática, uma "variável" é um símbolo que representa um valor que pode mudar ou variar. Existem diferentes tipos de variáveis, e qualitativo, que descrevem características não numéricas, e quantitativo, representando quantidades numéricas. Variáveis são fundamentais em experimentos e estudos, uma vez que permitem a análise de relações e padrões entre diferentes elementos, facilitando a compreensão de fenômenos complexos.... prob se crea para contener la formulación del problema.
Paso 3.1: Criar as variáveis de decisão
repetir cada linha no quadro de dados para criar as variáveis de decisão, para que cada conversa se torne uma variável de decisão. Uma vez que cada palestra pode ser selecionada ou não como parte da lista final de observação, a variável de decisão é binária na natureza (1 = selecionado, 0 = não selecionado)
Paso 3.2: definir a função alvo
a função objetiva é a soma de todas as linhas dos pontos de vista de cada palestra. As opiniões servem como um indicador da popularidade da palestra, pelo que, em essência, estamos tentando maximizar as visualizações (popularidade) seleção de palestras apropriadas (variáveis de decisão).
Paso 3.3: definir restrições
No problema, tenho 2 restrições:
uma) Nós só temos uma quantidade fixa de tempo total que pode ser alocado para ver as negociações
b) Não queremos ver mais do que um certo número de conversas para evitar a sobrecarga de informações
Paso 3.4: O formato final (para a formulação do problema)
o formato final do problema formulado é escrito em um arquivo .lp. isso irá listar a função alvo, as variáveis de decisão e restrições impostas ao problema.
Paso 3.5: otimização real
A otimização real é uma única linha de código que chama de "prob.solve". Uma declaração de afirmação é inserida para determinar se um resultado ideal foi obtido para o problema.
Paso 4: converter resultados de otimização em um formato interpretativo
Resultados de otimização que indicam variáveis de decisão específicas (Conversas) que foram selecionados para maximizar o resultado devem ser convertidos em um formato de lista de observação, como é mostrado a seguir:
Notas finais
Este artigo fornece um exemplo de como usar as técnicas de otimização linear disponíveis no Python para resolver o problema diário de criar uma lista de visualização de vídeo.. Os conceitos aprendidos também são aplicáveis em situações de negócios mais complexas envolvendo milhares de variáveis de decisão e muitas restrições diferentes..
Todos os profissionais de ciência de dados devem adicionar “técnicas de otimização” ao seu corpo de conhecimento para que eles possam usar análises avançadas para resolver problemas de negócios do mundo real e este artigo é destinado a ajudá-lo a dar o primeiro passo nessa direção..
Karthikeyan Sankaran Atualmente é diretor da LatentView Analytics, fornecendo soluções na intersecção de negócios, tecnologia e matemática para problemas de negócios em uma ampla gama de indústrias. Karthik tem quase duas décadas de experiência na indústria de tecnologia da informação e trabalhou em múltiplas funções no espaço de gerenciamento de dados., inteligência de negócios e análises.
Esta história foi recebida como parte de Concurso “Blogathon” em DataPeaker. A entrada de Karthikeyan foi uma das vencedoras do concurso..