
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create Cloud Dataproc cluster
/ 50
Create a Logistic Regression Model
/ 50
Neste laboratório, você vai implementar regressão logística usando uma biblioteca de machine learning para Apache Spark. O Spark é executado em um cluster do Dataproc para desenvolver um modelo de dados de um conjunto de dados multivariável.
O Cloud Dataproc é um serviço de nuvem totalmente gerenciado, rápido e fácil de usar, que executa os clusters do Apache Spark e do Apache Hadoop de maneira simples e econômica. O Dataproc se integra facilmente a outros serviços do Google Cloud, oferecendo uma plataforma completa e potente de processamento de dados, análise e machine learning.
O Apache Spark é um mecanismo de análise para processamento de dados em grande escala. A regressão logística está disponível como um módulo da biblioteca de machine learning do Apache Spark, MLlib. O Spark MLlib, também chamado de Spark ML, inclui implementações para a maioria dos algoritmos de machine learning padrão, como clustering k-means, florestas aleatórias, mínimos quadrados alternados, árvores de decisão, máquinas de vetores de suporte e outros. O Spark pode ser executado em um cluster do Hadoop, como o Dataproc, para processar conjuntos de dados muito grandes em paralelo.
O conjunto de dados base que este laboratório usa foi obtido da Agência de Estatísticas de Transporte dos EUA. Ele tem informações históricas sobre voos domésticos nos Estados Unidos e pode ser usado para demonstrar muitos conceitos e técnicas da ciência de dados. Este laboratório fornece os dados como um conjunto de arquivos de texto formatados em CSV.
Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.
Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.
Confira os requisitos para concluir o laboratório:
Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você vai encontrar o seguinte:
Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.
O laboratório ativa os recursos e depois abre a página Fazer login em outra guia.
Dica: coloque as guias em janelas separadas lado a lado.
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
Você também encontra o Nome de usuário no painel Detalhes do laboratório.
Clique em Seguinte.
Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.
Você também encontra a Senha no painel Detalhes do laboratório.
Clique em Seguinte.
Acesse as próximas páginas:
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
Normalmente, a primeira etapa para escrever jobs do Hadoop é iniciar a instalação do Hadoop. Isso envolve configurar um cluster, instalar o Hadoop nele e configurá-lo para que todas as máquinas conheçam umas às outras e possam se comunicar de maneira segura.
Em seguida, é necessário iniciar os processos YARN e MapReduce. Feito isso, você estará pronto para escrever alguns programas Hadoop. No Google Cloud, o Dataproc torna conveniente a criação de um cluster Hadoop capaz de executar MapReduce, Pig, Hive, Presto e Spark.
Se você estiver usando o Spark, o Dataproc vai oferecer um ambiente Spark totalmente gerenciado e sem servidor. Basta enviar um programa Spark para que ele seja executado pelo Dataproc. Dessa forma, o Dataproc está para o Apache Spark assim como o Dataflow está para o Apache Beam. Na verdade, o Dataproc e o Dataflow compartilham serviços de back-end.
Nesta seção, você vai criar uma VM e depois um cluster do Dataproc nela.
No console do Cloud, acesse o Menu de navegação () e clique em Compute Engine > Instâncias de VM.
Clique no botão SSH ao lado da VM startup-vm
para iniciar um terminal e conectar.
Clique em Conectar para confirmar a conexão SSH.
Execute o seguinte comando para clonar o repositório data-science-on-gcp
e navegue até o diretório 06_dataproc
:
create_cluster.sh
removendo o código de dependência por zona --zone ${REGION}-a
Sua resposta será semelhante ao seguinte:
Salve o arquivo usando Ctrl+X, pressione Y e Enter
Crie um cluster do Dataproc para executar jobs, especificando o nome do bucket e a região em que ele está:
Esse comando pode levar alguns minutos.
No console do Cloud, no Menu de navegação, clique em Dataproc. Talvez seja necessário clicar em Mais produtos e rolar a tela para baixo.
Na lista de Clusters, clique no nome do cluster para visualizar detalhes.
Clique na guia Interfaces da Web e depois em JupyterLab na parte de baixo do painel direito.
Na seção de acesso rápido Notebook, clique em Python 3 para abrir um novo notebook.
Para usar um Notebook, digite comandos em uma célula. Para executar os comandos na célula, pressione Shift + Enter ou clique no triângulo no menu superior "Notebook" para executar células selecionadas e avançar.
Quando esse código for adicionado ao início de qualquer script do Spark Python, todos os códigos desenvolvidos com o shell interativo do Spark ou o notebook do Jupyter também vão funcionar ao serem iniciados como scripts independentes.
Quando você iniciou este laboratório, um script automatizado forneceu dados como um conjunto de arquivos CSV preparados e foi colocado no bucket do Cloud Storage.
traindays
lendo um CSV preparado que o script automatizado coloca em seu bucket do Cloud Storage.O CSV identifica um subconjunto de dias como válido para treinamento. Isso permite que você crie visualizações de todo o conjunto de dados flights
, que é dividido em um conjunto de dados usado para treinar seu modelo e um conjunto de dados usado para testar ou validar o modelo.
Isso mostra os cinco primeiros registros da tabela de treinamento:
A próxima etapa do processo é identificar os arquivos de dados de origem.
all_flights-00000-*
para isso, porque ele tem um subconjunto representativo do conjunto de dados completo e seu processamento tem uma duração razoável:
#inputs = 'gs://{}/flights/tzcorr/all_flights-*'.format(BUCKET) # FULL
"Truncated the string representation of a plan since it was too large"
. Neste laboratório, você pode ignorar esse aviso porque ele só será relevante se você quiser inspecionar os logs do esquema SQL. O resultado deve ser algo semelhante ao seguinte:
Isso vai produzir algo semelhante ao seguinte:
Os valores de média e desvio padrão foram arredondados para duas casas decimais para tornar a tabela mais clara, mas os valores de ponto flutuante completos vão aparecer na tela.
A tabela mostra que há alguns problemas com os dados. Nem todos os registros têm valores para todas as variáveis. Há diferentes estatísticas de contagem para DEP_DELAY
, TAXI_OUT
, ARR_DELAY
e DISTANCE
. Isso acontece porque:
Isso vai produzir algo semelhante ao seguinte:
Essa saída deve mostrar o mesmo valor de contagem para cada coluna, o que indica que o problema foi corrigido.
Agora você pode criar uma função que converta um conjunto de pontos de dados do seu DataFrame em um exemplo de treinamento. Um exemplo de treinamento contém uma amostra dos recursos de entrada e a resposta correta para essas entradas.
Neste caso, você responde se o atraso na chegada é inferior a 15 minutos. Os rótulos que você usa como entradas são os valores de atraso de partida, tempo de taxiamento antes da decolagem e distância do voo.
O DataFrame de treinamento cria um modelo de regressão logística com base em seu conjunto de dados de treinamento.
intercept=True
porque a previsão do atraso de chegada não é igual a zero quando todas as entradas são zero neste caso.intercept=False
.lrmodel
terá pesos e um valor de interceptação que você poderá inspecionar:A resposta será semelhante a:
Esses pesos, quando usados com a fórmula de regressão linear, permitem criar um modelo usando código na linguagem que você escolher.
O resultado 1 prevê que o voo chegará no horário.
O resultado 0 prevê que o voo não chegará no horário.
Esses resultados não são probabilidades. Eles são retornados como verdadeiro ou falso com base em um limite configurado por padrão como 0,5.
Os resultados são probabilidades, com o primeiro próximo de 1 e o segundo próximo de 0.
Seus resultados são novamente 1 e 0, mas agora elas refletem o limite de probabilidade de 70% que você exige, e não o padrão de 50%.
Você pode salvar um modelo de regressão logística do Spark diretamente no Cloud Storage. Isso permite reutilizar um modelo sem precisar treiná-lo novamente do zero.
Um local de armazenamento contém apenas um modelo. Isso evita interferência com outros arquivos que poderiam causar problemas de carregamento do modelo. Para fazer isso, verifique se o local de armazenamento está vazio antes de salvar seu modelo de regressão do Spark.
Isso vai retornar o erro CommandException: 1 files/objects could not be removed
, porque o modelo ainda não foi salvo. O erro indica que não há arquivos presentes no local de destino. Você precisa ter certeza de que esse local está vazio antes de salvar o modelo, e esse comando garante isso.
Os parâmetros do modelo, ou seja, os pesos e os valores do intercepto, foram restaurados.
Isso imprime 0, prevendo que o voo provavelmente vai chegar atrasado, dado seu limite de probabilidade de 70%.
Isso imprime 1, prevendo que o voo provavelmente vai chegar a tempo, dado seu limite de probabilidade de 70%.
Com os limites removidos, você obtém probabilidades. A probabilidade de chegar atrasado aumenta à medida que cresce o atraso na partida.
Você pode notar que o efeito é relativamente pequeno. A probabilidade aumenta de cerca de 0,63 para cerca de 0,76 à medida que a distância muda de um trecho muito curto para um voo intercontinental.
Por outro lado, se mantivermos a distância e o tempo de taxiamento antes de decolar constantes e examinarmos a dependência do atraso na partida, teremos um impacto mais significativo.
Isso vai produzir algo semelhante ao seguinte:
eval
e retorne detalhes de total de cancelamentos, total de não cancelamentos, cancelamentos corretos e não cancelamentos corretos de voos:Saída:
Saída:
Agora você sabe usar o Spark para realizar regressão logística com um cluster do Dataproc.
Continue com:
Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.
Manual atualizado em 4 de dezembro de 2023
Laboratório testado em 4 de dezembro de 2023
Copyright 2025 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.
Este conteúdo não está disponível no momento
Você vai receber uma notificação por e-mail quando ele estiver disponível
Ótimo!
Vamos entrar em contato por e-mail se ele ficar disponível
One lab at a time
Confirm to end all existing labs and start this one