Análise de dados usando Scala
É muito importante escolher a ferramenta certa para análise de dados. Nos fóruns Kaggle, onde são realizadas competições internacionais de Ciência de Dados, as pessoas costumam perguntar qual ferramenta é melhor. R e Python estão no topo da lista. Neste artigo, vamos falar sobre uma pilha alternativa de tecnologias de análise de dados, com base no Scala.
By Roman Zykov, Fundador / cientista de dados @ TopDataLab
É muito importante escolher a ferramenta certa para análise de dados. No Kaggle. com fóruns, onde são realizadas competições internacionais de ciência de dados, as pessoas costumam perguntar qual ferramenta é melhor. R e Python estão no topo da lista. Neste artigo, vamos falar sobre uma pilha alternativa de tecnologias de análise de dados, com base na linguagem de programação Scala e Faísca plataforma de computação distribuída.
Como surgiu isso? Na Retail Rocket, fazemos muito aprendizado de máquina em conjuntos de dados muito grandes. Costumávamos usar um monte de IPython + Pyhs2 (driver de hive para Python) + Pandas + Sklearn para desenvolver protótipos. No final do verão de 2014, tomamos uma decisão fundamental de mudar para o Spark, pois os experimentos mostraram que obteremos de 3 a 4 vezes a melhoria de desempenho no mesmo parque de servidores.
Outra vantagem é que podemos usar uma linguagem de programação para modelagem e código que será executado em servidores de produção. Isso foi um grande benefício para nós, já que antes usávamos 4 linguagens simultaneamente: Hive, Pig, Java, Python. É um problema para uma pequena equipe de engenheiros.
O Spark também oferece suporte para trabalhar com Python / Scala / Java por meio de APIs. Decidimos escolher Scala porque é a linguagem em que o Spark foi escrito, o que significa que podemos analisar seu código-fonte e corrigir bugs, se necessário. É também a JVM na qual o Hadoop é executado.
Devo dizer que a escolha não foi fácil, pois ninguém da equipe conhecia o Scala na época.
É sabido que, para aprender a se comunicar bem em um idioma, você precisa mergulhar no idioma e usá-lo o máximo possível. Portanto, abandonamos a pilha Python em favor do Scala para modelagem e análise rápida de dados.
A primeira etapa foi encontrar um substituto para os notebooks IPython. As opções eram as seguintes:
- Zeppelin - um bloco de notas semelhante ao IPython para Spark;
- ISpark;
- Notebook Spark;
- Notebook Spark IPython da IBM.
- Apache Tminério
Até agora, a escolha tem sido o ISpark porque é simples - é IPython para Scala / Spark. Tem sido relativamente fácil adicionar gráficos HighCharts e R. E não tivemos nenhum problema em conectá-lo ao cluster Yarn.
Tarefa
Vamos tentar responder à pergunta: o valor médio de compra (AOV) em sua loja online depende de parâmetros estáticos do cliente, que incluem liquidação, tipo de navegador (móvel / desktop), sistema operacional e versão do navegador? Você pode fazer isso com Informação mútua.
Usamos muito a entropia para nossos algoritmos de recomendação e análise: a fórmula clássica de Shannon, a divergência de Kullback-Leibler, informação mútua. Até enviamos um artigo sobre este assunto. Há uma seção separada, embora pequena, dedicada a essas medidas no famoso livro de Murphy sobre aprendizado de máquina.
Vamos analisá-lo em dados reais do Retail Rocket. Antes, copiei a amostra do nosso cluster para o meu computador como um arquivo csv.
Data
Aqui usamos ISpark e Spark em modo local, o que significa que todos os cálculos são realizados localmente e são distribuídos entre os núcleos do processador. Tudo é descrito em comentários ao código. O mais importante é que na saída temos RDD (estrutura de dados Spark), que é uma coleção de classes de caso do tipo Row, que é definida no código. Isso permitirá que você consulte os campos por meio de “.”, Por exemplo _.categoryId.
Fonte: https://www.kdnuggets.com/2021/09/data-analysis-scala.html
- "
- &
- 100
- Vantagem
- algoritmos
- Todos os Produtos
- Amazon
- entre
- análise
- apache
- APIs
- Aplicativos
- artigo
- parafuso
- navegador
- erros
- construir
- Monte
- alterar
- charts
- código
- comentários
- Competições
- computação
- dados,
- análise de dados
- ciência de dados
- cientista de dados
- lidar
- deep learning
- desenvolver
- DID
- computação distribuída
- motorista
- Engenharia
- Engenheiros
- etc.
- Excel
- vasta experiência
- experimentar
- exploração
- Rosto
- família
- RÁPIDO
- Funcionalidades
- Campos
- Primeiro nome
- Fixar
- fundador
- Quadro
- GitHub
- Hadoop
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- Colméia
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTTPS
- enorme
- INFORMAÇÕES
- interativo
- Internacionais
- IT
- Java
- língua
- Idiomas
- grande
- APRENDER
- aprendizagem
- Biblioteca
- Line
- Lista
- local
- localmente
- longo
- aprendizado de máquina
- máquinas
- matemática
- Métrica
- Microsoft
- modelagem
- Mais populares
- laptops
- online
- loja on-line
- aberto
- open source
- operando
- sistema operativo
- Opções
- ordem
- Outros
- Papel
- Pessoas
- atuação
- perspectiva
- Física
- plataforma
- Popular
- pasta
- Produção
- Programação
- projeto
- compra
- Python
- varejo
- Execute
- corrida
- Scala
- Ciência
- cientistas
- conjunto
- assentamento
- simples
- Tamanho
- Habilidades
- pequeno
- So
- Software
- Espaço
- loja
- Histórias
- apresentado
- verão
- Suportado
- suportes
- Interruptor
- .
- Tecnologias
- ensaio
- The Graph
- tempo
- topo
- unidade
- URI
- us
- valor
- web
- Wikipedia
- Windows
- Atividades:
- X
- anos
- zero