Brian Kim apresenta o Crank.js, um novo framework de frontend com renderização assíncrona integrada. Ele orquestra as tarefas e a renderização das aplicações frontend com geradores assíncronos padrão. Idealizado para ser apenas em JavaScript, reduzir a curva de aprendizado para escrever uma aplicação frontend e eliminar a utilização de recursos assíncronos proprietários.
Ver todos de development
Arquitetura & Design
Arquitetura
Arquitetura Corporativa
Performance & Escalabilidade
Design
Microservices
Design Pattern
Segurança
Destaques de: Arquitetura e Design
APIs em tempo real no contexto do Apache Kafka
Os eventos oferecem uma abordagem no estilo Goldilocks, na qual APIs em tempo real podem ser usadas como base para aplicações garantindo flexibilidade e alto desempenho, com baixo acoplamento, porém, eficiente. O Apache Kafka oferece uma plataforma escalonável de streaming de eventos na qual podemos construir aplicações em torno deste poderoso conceito de eventos.
Ver todos de architecture-design
IA, ML e Engenharia de Dados
Big Data
Machine Learning
NoSQL
Bancos de dados
Streaming
Destaques de: IA, ML e Engenharia de Dados
COVID-19 e Mineração de Redes Sociais - Habilitando Cargas de Trabalho de Aprendizado de Máquina com Big Data
Neste artigo, a autora, Adi Pollock, discute como habilitar cargas de trabalho de aprendizado de máquina com big data para consultar e analisar tweets relacionados ao COVID-19 para entender o sentimento social em relação ao COVID-19.
Ver todos de ai-ml-data-eng
Cultura e Métodos
Agile
Leadership
Colaboração em equipes
Testes
Gerenciamento de projetos
Experiência do Usuário
Scrum
Lean/Kanban
Destaques de: Cultura e Métodos
Entendendo Os Valores e Princípios Ágeis
Em "Entendendo os valores e princípios do Agile", Scott analisa cada um dos 12 princípios e quatro declarações de valor do Manifesto Ágil. Ao longo do caminho, ele explica intenção e importância de cada um. Ele descreve como equipes podem lutar para colocar um princípio ou valor em prática e oferece conselhos práticos e prontos para uso sobre como viver princípios e valores do Manifesto Ágil.
Ver todos de culture-methods
DevOps
Infraestrutura
Continuous Delivery
Automação
Cloud Computing
Destaques de: DevOps
Bate papo sobre o livro “De pé sobre os ombros: Um guia para líderes na transformação digital"
O livro "De pé sobre os ombros: Um guia para líderes na transformação digital" fornece uma introdução ao pensamento e práticas relevantes sobre como identificar com os principais gargalos e preocupações para a transformação das empresas. Os autores compartilham a experiência no setor aplicando as ideias e como a mudança para o trabalho remoto pode mudar a abordagem para a transformação digital.
Ver todos de devops
Links úteis
Sobre o InfoQ
Time Editorial
Contribuir
Sobre a C4Media
Diversity
Escolha a região
En
中文
日本
Fr
Br
QCon Plus
Make the right decisions by uncovering how senior software developers at early adopter companies are adopting emerging trends. Register Now.
InfoQ Live Roundtable
Learn how to implement and manage your API projects with a security strategy and a development mindset. Register Now.
QCon London
Adopt the right emerging trends to solve your complex engineering challenges. Register Now.
The Software Architects' Newsletter
Your monthly guide to all the topics, technologies and techniques that every professional needs to know about. Subscribe for free.
Início Artigos Big Data com Apache Spark - Parte 4: Spark Machine Learning
IA, ML e Engenharia de Dados
Big Data com Apache Spark - Parte 4: Spark Machine Learning
Curtir
Print
Favoritos
19 out 2020 20 min(s) de Leitura
por
Srini Penchikala
traduzido por
Rafael Sakurai
Este é o quarto artigo da série "Big Data com Apache Spark". Por favor, veja também a Parte 1: Introdução, Parte 2: Spark SQL, Parte 3: Spark Streaming, Part 5: Spark ML Data Pipelines (inglês), Part 6: Graph Data Analytics with Spark GraphX (inglês).
Machine learning, análise preditiva e ciência de dados são assuntos que estão recebendo muita atenção nos últimos anos, pois resolvem problemas do mundo real em diversas organizações com diferentes domínios de negócios. O Spark MLlib, biblioteca de machine learning do Spark, inclui vários algoritmos para filtragem colaborativa, clusters, classificação e outras tarefas de machine learning.
Nos artigos anteriores da série "Big Data com Apache Spark", vimos como é a estrutura do Apache Spark (Parte 1), como aproveitar a interface SQL para acessar dados usando a biblioteca Spark SQL (Parte 2) e o processamento em tempo real e análise de streaming de dados usando o Spark Streaming (Parte 3).
Conteúdo relacionado de patrocinadores
Neste artigo, discutiremos os conceitos de machine learning e como usar a biblioteca MLlib do Apache Spark para executar análises preditivas. Usaremos um aplicação de exemplo para ilustrar a poderosa API que o Spark fornece na área de machine learning.
A API de Machine Learning do Spark inclui dois pacotes chamados spark.mllib e spark.ml.
O pacote spark.mllib contém a API original de machine learning do Spark, construída usando Resilient Distributed Datasets (RDDs). Ele oferece técnicas que incluem correlação, classificação e regressão, filtragem colaborativa, agrupamento e redução de dimensionalidade.
Por outro lado, o pacote spark.ml fornece uma API de machine learning criada usando DataFrames, que estão se tornando a parte principal da biblioteca Spark SQL. Este pacote pode ser usado para desenvolver e gerenciar os pipelines de machine learning. Ele também fornece extratores de features, transformadores, seletores e técnicas de machine learning, como classificação, regressão e agrupamento.
Neste artigo vamos abordar o pacote Spark MLlib e discutir várias técnicas de machine learning que esse pacote fornece. No próximo artigo, abordaremos o pacote Spark ML e veremos como criar e gerenciar pipelines de dados.
Machine Learning e Data Science
Machine Learning é sobre aprender com os dados existentes para fazer previsões sobre o futuro. É baseado na criação de modelos a partir de conjuntos de dados de entrada para tomada de decisão orientada a dados.
A ciência de dados é a disciplina de extrair conhecimento de grandes conjuntos de dados (estruturados ou não estruturados) para fornecer insights às equipes de negócios e influenciar as estratégias e roteiros de negócios. O papel do cientista de dados é mais crítico do que nunca na solução de problemas, que não são fáceis de resolver usando os métodos numéricos tradicionais.
Existem diferentes tipos de modelos de machine learning, como:
Aprendizado supervisionado;
Aprendizado não supervisionado;
Aprendizado semi-supervisionado;
Aprendizado por reforço.
Vamos analisar brevemente cada um desses modelos de machine learning e como eles se comparam.
Aprendizado supervisionado: essa técnica é usada para prever um resultado com base no treinamento do programa utilizando um conjunto de dados de treinamento (dados previamente rotulados). Em seguida, usamos o programa para prever o rótulo para um novo conjunto de dados não rotulados.
Existem dois submodelos de aprendizado supervisionado: Regressão e Classificação.
Aprendizado não supervisionado: é usado para encontrar padrões e correlações ocultos nos dados brutos. Não é usado dados para treinar este modelo, portanto, esta técnica é baseada em dados não rotulados.
Algoritmos como K-Means e Principle Component Analysis (PCA) se enquadram nessa categoria.
Aprendizado semi-supervisionado: essa técnica usa modelos de aprendizado supervisionado e não supervisionado para análises preditivas. Ele usa conjuntos de dados rotulados e não rotulados para treinamento. Geralmente envolve o uso de uma pequena quantidade de dados rotulados com uma grande quantidade de dados não rotulados. Pode ser usado para métodos de machine learning, como classificação e regressão.
Aprendizado por reforço: a técnica de aprendizado por reforço é usada para aprender como maximizar uma meta de recompensa numérica, tentando diferentes ações e descobrindo quais ações resultam na maximização da recompensa.
A Tabela 1 apresenta alguns exemplos de uso que cada um destes modelos tenta resolver:
ML Model
Examples
Aprendizado supervisionado
Detecção de fraude
Aprendizado não supervisionado
Aplicações em redes sociais, predição de idioma
Aprendizado semi-supervisionado
Categorização de imagem, reconhecimento de voz
Aprendizado por reforço
Aplicações de inteligência artificial
Tabela 1: Modelos de machine learning e exemplos reais de uso.
Algoritmos de Machine Learning
Existem vários algoritmos para ajudar nas soluções de machine learning. Vejamos alguns dos algoritmos suportados pelos frameworks de machine learning.
Naive Bayes: Naive Bayes é um algoritmo de aprendizado supervisionado usado para classificação. É baseado na aplicação do teorema de Bayes e em um conjunto de suposições de independência condicional.
K-Means: o algoritmo K-Means cria "k" grupos a partir de um conjunto de objetos, esses grupos são definidos com base na similaridade dos objetos.
Support vector machine (SVM): é um algoritmo de aprendizado supervisionado usado para encontrar o limite que separa as classes pela maior margem possível. Dado um conjunto de exemplos de treinamento, cada um marcado por pertencer a uma das duas categorias, um algoritmo de treinamento SVM cria um modelo que atribui novos exemplos a uma categoria ou a outra. As aplicações do SVM incluem bioinformática, reconhecimento de texto e imagem.
Decision Tree: usada em muitos tipos de problemas de machine learning, incluindo a classificação multi-classes. O MLlib suporta o algoritmo básico de Decision Tree e Ensembles Tree. Dois algoritmos de ensembles disponíveis são: Gradient-Boosted Tree e Random Forest.
Conforme documentado neste site, resumimos na Tabela 2 os estilos, problemas e algoritmos de machine learning para resolvê-los.
Modelo de ML
Problemas
Algoritmos
Aprendizado supervisionado
Classificação, Regressão, Detecção de anomalia
Logistic Regression, Back Propagation Neural Network
Aprendizado não supervisionado
Agrupamento, Redução de dimensionalidade
k-Means , Apriori algorithm
Aprendizado semi-supervisionado
Classificação, Regressão
Self training, Semi-supervised Support Vector Machines (S3VMs)
Tabela 2. Estilos, problemas e algoritmos de machine learning.
Passos de um programa Machine Learning
Ao trabalhar em projetos de machine learning, temos que realizar outras tarefas como: preparação de dados, limpeza e análise, que são tarefas muito importantes, além dos modelos e algoritmos reais de aprendizado usados para resolver os problemas de negócios.
A seguir, são apresentadas as etapas executadas em um programa típico de machine learning:
Geração de features
Treinamento
Avaliação do modelo
A Figura 1 mostra o fluxo do processo de uma solução típica de machine learning.
Figura 1. Fluxo do processo de machine learning.
É importante preparar e limpar os dados brutos antes da execução dos algoritmos de machine learning, caso contrário os padrões resultantes não serão precisos ou úteis, pois algumas anomalias podem ser perdidas.
A qualidade dos dados de treinamento que fornecemos aos programas de machine learning também desempenha um papel crítico nos resultados das previsões. Se os dados de treinamento não forem aleatórios o suficiente, os padrões resultantes não serão precisos. E se os dados forem muito pequenos, o programa poderá fornecer previsões imprecisas.
Casos de uso
Os casos de uso para machine learning abrange diferentes domínios e cenários, incluindo engines de recomendação (recomendação de alimentos), análise preditiva (previsão de preço das ações ou previsão de atraso de voos), publicidade direcionada, detecção de fraude, reconhecimento de imagem e vídeo, carros autônomos e vários outra inteligência artificial.
Vamos analisar em detalhes duas aplicações populares de machine learning: recomendação de conteúdo e detecção de fraude.
Engine de recomendação
As engines de recomendação usam os atributos de um item, um usuário, o comportamento de um usuário ou de outros usuários com características similares para fazer as previsões. Existem diferentes fatores que direcionam um modelo de recomendação eficaz. Alguns desses fatores estão listados a seguir:
Baseado em pares;
Comportamento do consumidor;
Negócios ou ofertas corporativas;
Agrupamento de itens;
Fatores de mercado / loja.
As soluções de recomendação são implementadas utilizando dois algoritmos: filtragem baseada em conteúdo e filtragem colaborativa.
Filtragem baseada em conteúdo: baseia-se na similaridade do uso e das classificações de um item em particular com os demais itens. O modelo usa os atributos de conteúdo dos itens (como categorias, tags, descrições e outros dados) para gerar uma matriz de cada item para os outros itens e calcula a similaridade com base nas classificações fornecidas. Em seguida, os itens mais semelhantes são listados com sua pontuação de similaridade. Os itens com a pontuação mais alta são os mais semelhantes.
A recomendação de filme é um bom exemplo desse modelo. Ele recomenda que "os usuários que gostaram de um filme em particular também gostaram desses outros filmes".
Esses modelos não levam em consideração o comportamento geral de outros usuários, portanto, não fornecem recomendações personalizadas em comparação com outros modelos, como a filtragem colaborativa.
Filtragem colaborativa: o modelo de filtragem colaborativa se baseia em fazer previsões para encontrar um item ou usuário específico com base na semelhança com outros itens ou usuários. O filtro aplica pesos com base nas preferências de "usuário similares". A suposição é de que usuários que exibem perfil ou comportamento semelhantes têm preferências semelhantes para itens.
Um exemplo desse modelo são as recomendações em sites de comércio eletrônico como a Amazon. Ao pesquisar um item no site, você vê algo como "Clientes que compraram este item também compraram".
Os itens com a pontuação mais alta de recomendação são os mais relevantes para o contexto do usuário.
As soluções baseadas em filtragem colaborativa têm melhor desempenho em comparação com outros modelos. O Spark MLlib implementa um algoritmo de filtragem colaborativa chamado Alternating Least Squares (ALS). Existem duas variações das entradas na filtragem colaborativa, chamadas feedback explícito e implícito. O feedback explícito é baseado nas preferências diretas informadas pelo usuário para um item (como um filme). O feedback explícito é bom, mas muitas vezes é distorcido, porque os usuários que gostam ou não gostam de um produto fornecem opiniões sobre ele. Não temos a opinião de muitas pessoas no centro da curva em forma de sino dos pontos de dados.
Exemplos de feedback implícito são visualizações, cliques, curtidas do usuário etc. Os dados de feedback implícito são muito utilizados no setor para análises preditivas, devido à facilidade de reunir esse tipo de dados.
Também existem métodos baseados em modelo para engines de recomendação. Geralmente, eles incorporam métodos de filtragem colaborativa e baseada em conteúdo. A abordagem baseada em modelo obtém o melhor dos dois mundos, o poder e o desempenho da filtragem colaborativa e a flexibilidade e adaptabilidade da filtragem baseada em conteúdo. Técnicas de deep learning são bons exemplos desse modelo.
Você também pode integrar outros algoritmos como o K-Means à solução da engine de recomendação para obter previsões mais refinadas. O algoritmo K-Means funciona particionando "n" observações em "k" clusters, nos quais cada observação pertence ao cluster com a média mais próxima. Usando a técnica K-Means, podemos encontrar itens ou usuários semelhantes com base em seus atributos.
A Figura 2 mostra os diferentes componentes de uma engine de recomendação, fatores do usuário, outros fatores como dados de mercado e algoritmos diferentes.
Figura 2: Componentes de uma engine de recomendação.
Detecção de fraude
A detecção de fraudes é outro caso de uso importante do uso de técnicas de machine learning, pois aborda um problema crítico no setor financeiro de maneira rápida e precisa. As organizações de serviços financeiros têm apenas algumas centenas de milissegundos para determinar se uma transação online específica é legítima ou fraudada.
Técnicas de rede neurais são usadas para casos de uso de detecção de fraude no Ponto de Venda (PDV). Organizações como o PayPal usam diferentes tipos de algoritmos de machine learning para gerenciamento de riscos, como linear, rede neural e deep learning.
A biblioteca Spark MLlib fornece vários algoritmos para resolver esse caso de uso, incluindo SVMs lineares, regressão logística, Decision Tree e Naive Bayes. Além disso, ensemble de modelos (que combinam as previsões de um conjunto de modelos), como Random Forests ou Gradient-boosting Trees, também estão disponíveis.
Ao trabalhar em um projeto de machine learning em sua organização, conforme recomendado neste artigo, você pode seguir as etapas listadas a seguir para implementar soluções de machine learning em seus próprios projetos.
Selecione a linguagem de programação;
Selecione o algoritmo ou algoritmos apropriados;
Selecionar um problema;
Pesquise os algoritmos;
Teste unitários para todas as funções da solução ML.
Agora, vamos ver como a estrutura do Apache Spark implementa os algoritmos de machine learning.
Spark MLlib
MLlib é a biblioteca de machine learning (ML) do Spark. Seu objetivo é tornar o machine learning algo prático, escalável e fácil. Ele consiste em algoritmos e utilitários comuns de aprendizado, incluindo classificação, regressão, agrupamento, filtragem colaborativa, redução de dimensionalidade, bem como otimização de primitivas de baixo nível e APIs de alto nível para pipeline.
Como aprendemos anteriormente, existem duas maneiras diferentes de usar a API do Spark Machine Learning: Spark MLlib e Spark ML.
Além dos vários algoritmos que o Spark MLlib suporta, também existem funções de processamento de dados e utilitários e ferramentas de análise de dados disponíveis nesta biblioteca.
Mineração do conjunto de itens frequentes por meio de regras de associação e FP-growth;
Mineração de padrões sequências via PrefixSpan;
Estatísticas resumidas e teste de hipóteses;
Transformações de features;
Avaliação do modelo e ajuste de hiperparâmetros.
A Figura 3 mostra a estrutura do Apache Spark com a biblioteca Spark MLlib.
Figura 3. Ecossistema Spark com a biblioteca de Machine Learning.
A API Spark MLlib está disponível nas linguagens de programação Scala, Java e Python. Aqui estão os links para a API de cada linguagem.
Spark MLlib Scala API
Java API
Python API
Aplicação de exemplo
Desenvolveremos um exemplo de aplicação de Machine Learning usando a técnica de classificação e filtragem colaborativa, para prever os filmes a serem recomendados a um usuário com base nas classificações de outros usuários em filmes diferentes.
Nossa engine de recomendação usará o algoritmo de Alternating Least Squares (ALS).
Mesmo que os conjuntos de dados usados no exemplo não sejam muito grandes em tamanho e complexidade, o Spark MLlib pode ser usado para qualquer tipo de problema do mundo real que seja complexo por natureza e lide com dados que contenham várias dimensões e funções complexas de predição.
Para manter simples a aplicação de machine learning e focar na API Spark MLlib, seguiremos o exemplo de Recomendações de filmes discutido no workshop do Spark Summit. Este exercício é muito bom para aprender mais sobre a biblioteca Spark MLlib. Para mais detalhes sobre o aplicativo, visite o site deles.
Caso de uso
O caso de uso que queremos implementar a solução de machine learning baseado no Spark é uma engine de recomendação.
As engines de recomendação são usadas para fazer previsões para associações de itens de usuário desconhecidas (por exemplo, classificações de filmes) com base em associações de itens de usuário conhecidas. Eles podem fazer previsões com base na afinidade do usuário com outros itens e na afinidade de outros usuários com esse item específico. A engine cria um modelo de previsão com base nos dados conhecidos (no conjunto de dados de treinamento) e, em seguida, faz previsões para associações de itens de usuário desconhecidas (no conjunto de dados de teste).
Nosso programa inclui as seguintes etapas para chegar às principais recomendações de filmes para o usuário:
Carregar arquivo de dados de filmes;
Carregue o arquivo de dados com classificações fornecidas por um usuário específico (você);
Carregar os dados de avaliações fornecidos por outros usuários (comunidade);
Junte os dados de classificação do usuário às classificações da comunidade em um único RDD;
Treine o modelo usando o algoritmo ALS usando dados de avaliações;
Identifique os filmes não avaliados por um usuário específico (userId = 1);
Prever as avaliações dos itens não avaliados pelo usuário;
Obtenha as principais recomendações N (N = 5 em nosso exemplo);
Exibir os dados da recomendação no console.
Se quiser processar ou executar análises adicionais sobre os dados de saída, pode armazenar os resultados em um banco de dados NoSQL como Cassandra ou MongoDB.
Conjunto de dados
Usaremos os conjuntos de dados de filmes fornecidos pelo grupo MovieLens. Existem alguns arquivos de dados diferentes que precisamos para a aplicação de exemplo. Esses conjuntos de dados estão disponíveis para download no site do GroupLens. Usaremos um dos conjuntos de dados mais recentes (versão menor com 100 mil avaliações). Faça o download do arquivo zip do conjunto de dados no site.
A tabela a seguir mostra os diferentes conjuntos de dados usados na aplicação.
#
Conjunto de dados
Nome do arquivo
Descrição
Atributos
1
Movies Data
movies.csv
Movie details.
movieId,title,genres
2
User Ratings Data
user-ratings.csv
Ratings by a specific user.
userId,movieId,rating,timestamp
3
Community Ratings Data
ratings.csv
Ratings by other users.
userId,movieId,rating,timestamp
O arquivo de classificações do usuário é para o usuário no contexto. Você pode atualizar as avaliações neste arquivo com base nas suas preferências de filme. Atribuímos um ID de usuário chamado "User Id 0" para representar essas classificações.
Quando executamos o programa da engine recomendação, associaremos os dados específicos das classificações do usuário às classificações da comunidade (outros usuários).
Tecnologias
Usaremos o Java para escrever o programa Spark MLlib, que pode ser executado como uma aplicação independente. O programa usa as seguintes classes Java do MLlib (todas estão localizadas no pacote org.apache.spark.mllib.recomendation ):
ALS
MatrixFactorizationModel
Rating
Usaremos as seguintes tecnologias na aplicação de exemplo para ilustrar como a API Spark MLlib é usada para executar análises preditivas.
Apache Spark 1.6.1
Spark Java API
JDK version 1.8.0_65
Apache Maven 3.3.3
Eclipse IDE
Os componentes da arquitetura da aplicação de exemplo são mostrados na Figura 4:
Figura 4. Arquitetura da aplicação de exemplo que usa o Spark Machine Learning.
Existem várias implementações de exemplo de recomendação de filme disponíveis em diferentes linguagens de programação suportados pelo Spark, como Scala (Databricks e MapR), Java (Exemplos de Spark e engines de recomendação em Java) e Python. Usaremos a solução Java nesse exemplo. Faça o download do código Java no site de exemplos do Spark para executar o exemplo em sua máquina local. Crie um novo projeto Java baseado em Maven chamado spark-mllib-sample-app e copie a classe Java no projeto. Modifique a classe Java para passar nos conjuntos de dados discutidos na seção anterior.
Certifique-se de incluir as bibliotecas Spark Java necessárias na seção de dependências do arquivo pom.xml do Maven. Para limpar, construir e fazer o download das dependências da biblioteca Spark, você pode executar os seguintes comandos:
Configure as variáveis de ambiente para o JDK (JAVA_HOME), Maven (MAVEN_HOME) e Spark (SPARK_HOME).
Para Windows:

set JAVA_HOME=[JDK_INSTALL_DIRECTORY]
set PATH=%PATH%;%JAVA_HOME%\bin

set MAVEN_HOME=[MAVEN_INSTALL_DIRECTORY]
set PATH=%PATH%;%MAVEN_HOME%\bin

set SPARK_HOME=[SPARK_INSTALL_DIRECTORY]
set PATH=%PATH%;%SPARK_HOME%\bin

cd c:\dev\projects\spark-mllib-sample-app

mvn clean install
mvn eclipse:clean eclipse:eclipse
Para Linux ou Mac OSX:

export JAVA_HOME=[JDK_INSTALL_DIRECTORY]
export PATH=$PATH:$JAVA_HOME/bin

export MAVEN_HOME=[MAVEN_INSTALL_DIRECTORY]
export PATH=$PATH:$MAVEN_HOME/bin

export SPARK_HOME=[SPARK_INSTALL_DIRECTORY]
export PATH=$PATH:$SPARK_HOME/bin

cd /Users/USER_NAME/spark-mllib-sample-app

mvn clean install
mvn eclipse:clean eclipse:eclipse
Se a construção do aplicativo for bem-sucedida, o arquivo JAR compactado será criado no diretório target
Usaremos o comando spark-submit para executar o programa Spark. Aqui estão os comandos para executar o programa no Windows e Linux / Mac, respectivamente.
Windows:
%SPARK_HOME%\bin\spark-submit --class
"org.apache.spark.examples.mllib.JavaRecommendationExample" --master
local[*] target\spark-mllib-sample-1.0.jar
Linux/Mac:
$SPARK_HOME/bin/spark-submit --class
"org.apache.spark.examples.mllib.JavaRecommendationExample" --master
local[*] target/spark-mllib-sample-1.0.jar
Monitorando a aplicação Spark
Podemos monitorar o status do programa Spark no console da Web, disponível na URL.
Vejamos algumas dessas ferramentas de visualização que mostram as estatísticas do programa de machine learning do Spark.
Podemos visualizar os detalhes de todos os jobs do programa de exemplo. Clique na aba "Jobs" na tela do console da web para navegar na página da Web de jobs do Spark que mostra esses detalhes.
A Figura 5 mostra o status dos jobs.
Figura 5. Estatísticas dos jobs Spark.
O Direct Acyclic Graph (DAG) mostra o gráfico de dependência de diferentes operações de RDD que executamos no programa. A Figura 6 mostra a captura de tela desta visualização.
Figura 6. Grafo de visualização DAG do Spark machine learning.
Conclusão
O Spark MLlib é uma das duas bibliotecas de machine learning do Apache Spark. É usado para implementar soluções de análise preditiva para casos de uso de negócios, como mecanismo de recomendação e sistema de detecção de fraude. Neste artigo, aprendemos sobre como usar o Spark MLlib para criar uma engine de recomendação para prever os filmes que um usuário pode gostar.
Certifique-se de executar os testes necessários para avaliar a eficácia e o desempenho de diferentes técnicas de machine learning, a fim de descobrir a melhor solução para seus requisitos e casos de uso.
O que vem a seguir?
No próximo artigo, abordaremos na outra API de machine learning do Spark, chamada Spark ML, que é a solução recomendada para projetos de Big Data.
Referências
Big Data com Apache Spark - Parte 1: Introdução
Big Data com Apache Spark - Parte 2: Spark SQL
Big Data com Apache Spark - Parte 3: Spark Streaming
Apache Spark Main Website
Spark Machine Learning Website
Spark MLlib Programming Guide
Spark Summit 2014 Machine Learning Training Exercise
Sobre o autor
Srini Penchikala atualmente trabalha como Arquiteto de Software em uma organização de serviços financeiros em Austin, Texas. Ele tem mais de 20 anos de experiência em arquitetura, design e desenvolvimento. Srini está atualmente escrevendo um livro sobre Apache Spark. Ele também é co-autor do livro "Spring Roo in Action" da Manning Publications. Ele palestrou em diversas conferências como: JavaOne, SEI Architecture Technology Conference (SATURN), IT Architect Conference (ITARC), No Fluff Just Stuff, NoSQL Now e Project World Conference. Srini também publicou diversos artigos sobre arquitetura de software, segurança e gerenciamento de risco, e sobre banco de dados NoSQL em sites como o InfoQ, The ServerSide, OReilly Network (ONJava), DevX Java, java.net e JavaWorld. Ele é o Editor Líder de Data Science na comunidade do InfoQ.
Este é o quarto artigo da série "Big Data com Apache Spark". Por favor, veja também a Parte 1: Introdução, Parte 2: Spark SQL, Parte 3: Spark Streaming, Part 5: Spark ML Data Pipelines (inglês), Part 6: Graph Data Analytics with Spark GraphX (inglês).
Avalie esse artigo
Relevância
Estilo/Redação
Author Contacted
Conteúdo publicado no tópico IA, ML e Engenharia de Dados
Tópicos Relacionados:
Desenvolvimento
Arquitetura e Design
IA, ML e Engenharia de Dados
Big Data
Machine Learning
Apache Spark
Infraestrutura
Arquitetura e Design
Bancos de dados
Desenvolvimento
Conteúdo editorial relacionado
Conteúdo Relacionado
Adquira leads qualificados no mercado de desenvolvimento de software com a eMag InfoQ
InfoQ Brasil Newsletter
Receba semanalmente um resumo dos conteúdos publicados. Junte-se a uma comunidade com dezenas de milhares de profissionais de alta senioridade. Veja um exemplo
Seu e-mail
Selecione seu país de residência Selecione uma opção
Eu estou de acordo com a manipulação dos meus dados pelo InfoQ.com da forma que está descrita na Política de Privacidade.
Nós prezamos pela sua privacidade.
Olá visitante
Você precisa cadastrar-se no InfoQ Brasil ou Login para enviar comentários. Há muitas vantagens em se cadastrar.
Obtenha o máximo da experiência do InfoQ Brasil.
Dê sua opinião
HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p
Receber mensagens dessa discussão
Comentários da comunidade
Acompanhar discussão
Alnogoom company for Landscaping
by Al Nogoom,
Alnogoom company for Landscaping
by Al Nogoom,
Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!
تنسيق الحدائق المنزلية من الامور الممتعة وهي غالبا تتطلب فقط تنظيم وترتيب الفضاء بحيث تستغل كل فراغ في الحديقة وتمزج بين الالوان للحصول على منظر جميل من النباتات
شركة تنسيق حدائق بجدة
Curtir
Responder
Voltar ao topo
Fechar
Sua resposta
Citar mensagem original
HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p
Receber mensagens dessa discussão
Cancelar
Fechar
Sua resposta
HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p
Receber mensagens dessa discussão
Cancelar
Fechar
OK
1
Desenvolvimento
Crank, o novo framework frontend com renderização assíncrona integrada - Bate papo com Brian Kim
Blockchain Empresarial: Jornada de uma rede multi-organização à produção
PHP 7 - Melhorias na biblioteca padrão
Arquitetura e Design
O último conteúdo do InfoQ Brasil
APIs em tempo real no contexto do Apache Kafka
Sete duras lições aprendidas na migração de um monólito para microservices
Cultura e Métodos
Adquira leads qualificados no mercado de desenvolvimento de software com a eMag InfoQ
Entendendo Os Valores e Princípios Ágeis
Somente empresas ágeis sobrevivem ao ambiente de negócios em constante mudança
IA, ML e Engenharia de Dados
COVID-19 e Mineração de Redes Sociais - Habilitando Cargas de Trabalho de Aprendizado de Máquina com Big Data
A inteligência artificial estaria mais próxima do bom senso?
Desafios na avaliação postural humana em aplicativos de condicionamento físico baseados em IA
DevOps
Bate papo sobre o livro “De pé sobre os ombros: Um guia para líderes na transformação digital"
Arquitetura de Microservices Multi-Runtime
Armadilhas de design NoSQL com Java
InfoQ Brasil Newsletter
Receba semanalmente um resumo dos conteúdos publicados. Junte-se a uma comunidade com dezenas de milhares de profissionais de alta senioridade. Veja um exemplo
Acompanhe os últimos conteúdos publicados sobre tecnologias inovadoras e pioneiras.
Descubra o que você não sabe que você não sabe.
Fique pode dentro das últimas novidades sobre os seus tópicos preferidos.
Seu e-mail
Selecione seu país de residência Selecione uma opção
Eu estou de acordo com a manipulação dos meus dados pelo InfoQ.com da forma que está descrita na Política de Privacidade.
Nós prezamos pela sua privacidade.
QCons Mundiais
Próxima Edição
QCon QConHUB
Conferência Internacional de Desenvolvimento de Software
Novembro 4-27
QCons Mundiais
QConHUB/ Novembro 4-27 São Paulo/ 2021 QCon Plus/ Maio 10–28, 2021 São Francisco/ Novembro 1–5, 2021
Início Criar conta
Login
Conferências QCon Events Contribuir Time Editorial Sobre o InfoQ Sobre a C4Media Diversity
Events
QCon Plus
NOVEMBER 30 - DECEMBER 8, 2022
InfoQ Live Roundtable
DECEMBER 6, 2023
QCon London
MARCH 27-31, 2023
QCon San Francisco
OCTOBER 2-6, 2023
Siga o InfoQ Brasil no
Stay in the know
The InfoQ Podcast Engineering Culture Podcast The Software Architects' Newsletter
Feedback geral feedback-br@infoq.com Vendas sales-br@infoq.com Editorial editor-br@infoq.com Marketing marketing@infoq.com