Quão bom é o ecossistema de código aberto da R para resolver problemas de negócios?

O motivo da publicação foi a entrada do blog da Rstudio: “Shiny 1.1.0: Dimensionando Shiny with assync”, que pode ser facilmente transmitido, mas que adiciona uma parte muito significativa à tarefa de usar o R ​​para tarefas comerciais. Na verdade, na versão para desenvolvedores do brilhante, a assincronia apareceu cerca de um ano atrás, mas era meio frívola e "faz de conta" - é a versão para desenvolvedores. A transferência para a filial principal e a publicação no CRAN são uma confirmação importante de que muitas questões fundamentais são pensadas, resolvidas e testadas. Você pode transferir com segurança para uma produção e uso.


E o que mais existe no R, exceto o "diamante", que permite transformá-lo em uma ferramenta analítica universal para tarefas práticas?


É uma continuação de publicações anteriores .


Por que brilhante


Se falarmos sobre a aplicação prática de R para vários processos de dados nos processos de negócios de uma empresa real, os principais usuários dos resultados analíticos serão gerentes em vários níveis. Deixamos a camada de análise do DS para trás dos colchetes; eles precisam de uma ampla gama de ferramentas, incluindo acesso direto ao banco de dados. Eles mesmos podem e podem fazer tudo. A estação de trabalho gráfica baseada na Web será uma ajuda conveniente, mas não um diferencial importante.


Diferentemente de um especialista em DS, um gerente comum precisa de uma interface conveniente que forneça a ele todas as informações (históricas, analíticas, preditivas etc.) necessárias para tomar uma decisão ou reportar à gerência. Na verdade, a interface do usuário é o "alfa e ômega" de qualquer sistema corporativo. Ninguém nunca vai olhar por baixo do capô (bem, talvez apenas nos estágios longos e dolorosos da RFI-RFP). Ninguém jamais entenderá sair para experimentar além dos limites de sua história de usuário especificados nas responsabilidades do trabalho. Ninguém jamais refletirá sobre protocolos, algoritmos, validação e precisão.


Usando o Shiny, você pode desenhar uma interface muito ramificada que incluirá texto, gráficos, tabelas, quase todos os elementos estruturais de html (estrutura de inicialização). O JS permite adicionar ajustes complexos à interface da web, o CSS permite criar estilos personalizados. Também é muito fácil fazer no R várias coisas importantes que alteram qualitativamente o trabalho com a interface, a saber, geração dinâmica de conteúdo. Aqui estamos falando sobre:


  • dados tabulares e gráficos que podem ser alterados por timer ou solicitação do usuário e modificados quando exibidos em acc. com restrições dinâmicas (por exemplo, ocultar asteriscos de parte dos dados pessoais);
  • a composição dos elementos na interface (dependendo da lógica do processo de negócios, você pode adicionar / remover botões, favoritos etc. durante a execução);
  • o conteúdo desses elementos (por exemplo, preenchendo listas de valores disponíveis com base nos dados carregados);
  • gerenciamento inteligente do conteúdo dos elementos de controle (por exemplo, a seleção de valores de uma lista determinará o conteúdo de outros elementos disponíveis para seleção);
  • implementações do modelo de função no nível de dados (por exemplo, dependendo da função, apenas determinados subconjuntos de um elemento podem estar disponíveis)

Sem interface - sem sistema. E exatamente neste ponto, torna-se quase óbvio por que R, não python. Como o R tem o Shiny (pacotes + tempo de execução) com o qual você pode fazer o R ​​diretamente nas interfaces do usuário para sistemas de processamento de dados com praticamente qualquer grau de complexidade algorítmica, e o python, infelizmente, não tem esse anúncio no futuro próximo.


Assincronia brilhante e por que é tão importante


O próprio aplicativo brilhante é executado sequencialmente, para cada link de URL (aplicativo brilhante) no servidor brilhante de código aberto, sobe um processo R de back-end, que serve os cálculos de acordo com a atividade do usuário. Até o último lançamento, a versão de código aberto do shiny era completamente síncrona. Isso significava que qualquer cálculo demorado no código "congelava" a resposta do aplicativo para todos os usuários que o usavam ao mesmo tempo. Naturalmente, na versão corporativa do Shiny Server Pro, o problema de gerenciar sessões do usuário foi resolvido. O Consumidor teve a oportunidade de escolher entre obter tudo o que gosta durante o aplicativo corporativo em 5 segundos ou complementá-lo sozinho.


Em princípio, esse recurso de aplicações brilhantes poderia ser nivelado por:


  • postando aplicativos para diferentes usuários em diferentes URLs, incluindo, por exemplo, nome de usuário (um código, os links são criados no servidor brilhante)
  • realizar cálculos complexos antecipadamente, em um processo diferente
  • a simbiose ideal entre os recursos de processamento de dados do back-end e o pós-processamento em R.

No entanto, agora se tornou muito mais conveniente. A assincronia por meio dos mecanismos de promessa (ões) permite que algumas linhas gerem encadeamentos R adicionais nos quais serão realizados cálculos intensivos em recursos, sem afetar o desempenho do fluxo e o tempo de resposta do aplicativo brilhante principal. Portanto, formalmente, a questão do trabalho paralelo de muitos usuários também pode ser considerada resolvida na versão de código aberto. Hora de tomar café e esperar pelo resultado não é sobre o Shiny.


Estudos de caso típicos de R


Frequentemente, eles gostam de falar sobre modelos e ML na estrutura de aplicativos corporativos, mas é possível abordar essas tarefas somente depois de digitalizar a tarefa e preparar os dados. E tudo isso pode ser feito dentro da estrutura de R.
Naturalmente, R nem sempre é suficiente com um, dependendo da escala da tarefa e da quantidade de dados, tanto o olap backend de código aberto quanto o subsistema de aquisição de dados de código aberto podem ser necessários. Mas isso não muda nada, pois o usuário trabalha apenas com o Aplicativo do usuário (veja acima).
Muitas das histórias anteriormente apresentavam produtos especiais de "grandes fornecedores" que foram introduzidos ao longo dos anos a bilhões de dólares. Mas agora tudo é resolvido muito mais fácil e mais barato. A prática mostra que 99% das tarefas de negócios se enquadram em um dos três casos descritos abaixo.


Caso nº 1. Análise operacional


Uma tarefa típica, que é criar um loop de feedback operacional. As principais etapas:


  • coleta de dados multiprotocolo e multi-formato em um modo próximo ao real (de acordo com as especificidades dos processos de negócios, o delta ideal é de várias dezenas de minutos) de vários sistemas de diferentes fabricantes e livros de referência em vários formatos. Por exemplo, podem ser dados de equipamentos de bombeamento, dados de vários scanners, registros de operação do sistema
  • limpeza, normalização e enriquecimento com dados de outras fontes e diretórios
  • análise das séries temporais obtidas. aqui está o cálculo das previsões e a análise dos desvios em relação aos valores previstos e a análise de anomalias e vários antifraude e previsão de possíveis problemas (por exemplo, a temperatura nos refrigeradores começou a subir lentamente. Enquanto os indicadores estão nas configurações, mas a tendência é óbvia - o produto pode ficar ruim em breve)
  • cálculo de quaisquer valores instantâneos de KPI (dentro dos limites da imaginação dos analistas de negócios)
  • loopback de feedback multicanal: geração de relatórios, atualização de painéis, relatórios automáticos para sistemas externos (por exemplo, monitoramento), execução automática de comandos em sistemas inferiores.

Instâncias clássicas:


  • controle de vários equipamentos,
  • monitoramento de processos de negócios longos,
  • Análise de vendas "online",
  • análise de trabalho de call center,
  • análise geral dos sistemas de controle de acesso (por exemplo, havia um aplicativo no SAP para acesso de um determinado funcionário em um determinado momento a um determinado local ou o que o ACS vê como uma anomalia?).

Existem muitos desses problemas e tudo pode ser resolvido por meio do ecossistema R.


Caso nº 2. Consolidação do Excel


A prática mostra que o Excel na grande maioria das empresas é a principal ferramenta para analistas de negócios. Para tarefas simples, isso ainda é aceitável; para tarefas complexas com muitos dados, essa abordagem se transforma em um buraco negro, que suga qualquer quantidade de recursos e não gera resultados.


Tarefa típica:
ENQUANTO (! Disparado) FAZ {


  • coletar dados sujos de várias fontes diferentes, principalmente o manual do excel;
  • valide repetidamente tudo (validação técnica e lógica de fontes + validação cruzada lógica entre fontes);
  • realizar cálculos, consolidações, distribuições;
  • faça muitas descargas diferentes para entrega em outras unidades;
  • habilmente relatar o trabalho realizado.
    }
    E tudo isso é realizado em modo e processamento de emergência constante.

Instâncias clássicas:


  • Análises para sistemas integrados de gerenciamento de projetos (KSUP), quando você não pode sair com um msprojeto. A massa de contratados relata da melhor maneira possível, mas precisamos fazer uma imagem consolidada e gerenciar riscos.
  • Sistemas de pedidos e distribuição (comércio e logística). O que levar, como distribuir, como coletar pedidos, como decompô-los. Também é bom prever compras.

Caso nº 3. Sistemas de Apoio à Decisão


Aqui é ainda mais simples e mais próximo do ML puro:


  • reunir informações de onde você pode (todos os tipos de fontes odbc e não totalmente compatíveis com odbc, xml \ json, txt \ csv \ log, xlsx, API REST);
  • correlacionar dados de diferentes fontes entre si e levar a um formulário digerível para algoritmos de ML;
  • venha com um tapete. um modelo das entidades de negócios descritas, para calcular;
  • desenhe várias fatias e visualizações, gere vários relatórios de forma gerencial (docx, xlsx, pptx, pdf) com uma descrição da situação atual e recomendações.

A classificação do caso não foi inventada, mas foi baseada nas reais necessidades do negócio (ciência e pura ML / AI \ DL separadamente). Provavelmente, em um futuro próximo, será possível "compartilhar imagens" sobre a solução de 2 a 3 problemas.


A prática mostra que o R + Shiny permite "clicar" nessas tarefas com muita, muita eficiência. Se houver tarefas, faz sentido examinar essas ferramentas mais de perto.


Post anterior - Recursos de um aplicativo corporativo robusto de R.

Source: https://habr.com/ru/post/pt416019/


All Articles