Machine Learning com Linguagem Scala
e Apache Spark
Imagine que você tenha um grande projeto de Big Data Analytics. Você entende o domínio do problema, você sabe que infraestrutura deve ser usada e já decidiu sobre qual framework construir sua aplicação (Apache Spark, por exemplo). Mas falta tomar uma decisão: Qual linguagem de programação devo escolher? Embora existam muitas opções, quando se fala em Big Data Analytics, sua escolha será, muito provavelmente uma dessas 4 linguagens: R, Python, Scala ou Java. A linguagem Scala pode ser a sua opção caso seu objetivo seja criar aplicações analíticas de alto desempenho, combinando o que há de melhor entre os paradigmas funcional e orientado a objetos, permitindo a criação de aplicações robustas, capazes de lidar com grandes conjuntos de dados e totalmente integrada com os principais frameworks de Big Data.
Pré-requisitos Desejáveis
Não há pré-requisito para
Conhecimento básico de Sistema Operacional
Noções de lógica de programação
Assuntos abordados:
Assuntos abordados:
Assuntos abordados:
Introdução
Classes, Métodos e Atributos
Companion Object
Semi Inferência
Tipos e Operações
Interpolação de Strings
Operadores são Métodos
Operadores Aritméticos
Operadores Lógicos e Relacionais
Operadores Bitwise
Igualdade, Precedência e Associatividade
Recursividade
Loop For
Break e Continue
Tratamento de Exceções
Expressões Match
Escopo de Variáveis
Quiz
Assuntos abordados:
Assuntos abordados:
Introdução
Definindo Machine Learning
Apendizagem Supervisionada x Aprendizagem Não Supervisionada
O Que é um Modelo Preditivo?
Treinamento, Validação e Teste
Modelagem
Processo de Aprendizagem
Componentes do Processo de Aprendizagem
Espaço de Hipóteses x Algoritmo de Aprendizagem
Cost Function
Gradiente Descendente
Overfitting x Underfitting
Assuntos abordados:
Introdução
O Que é Regressão?
Método dos Mínimos Quadrados e Coeficiente de Correlação
Avaliando o Modelo de Regressão
Apache Spark e Machine Learning
Usando Jupyter Notebook com Scala e Spark
Instalação do Apache Spark (Windows, MacOS e Linux Ubuntu)
Testando a Instalação do Spark com Scala
Construindo o Modelo de Regressão
Regressão com Scala e Spark - Design do Modelo
Regressão com Scala e Spark - Importando Módulos e log4j
Regressão com Scala e Spark - Criando Sessão Spark e Importando os Dados
Regressão com Scala e Spark - Criando Dataframe com VectorAssembler
Regressão com Scala e Spark - Construindo e Treinando o Modelo
Regressão com Scala e Spark - Avaliando as Métricas
Assuntos abordados:
Introdução
O Que é Classificação?
Confusion Matrix e Métricas de Avaliação
Regressão Logística - Design do Modelo
Regressão Logística - Data Wrangling
Regressão Logística - Métricas de Avaliação e Confusion Matrix
Mini-Projeto 1 - Prevendo Cliques em Anúncios de Web Sites
Treinando o Modelo
Apresentando os Resultados
Assuntos abordados:
Introdução
O Que é Clusterização?
Agrupamento dos Dados Por Medidas de Similaridade
Como Ocorre o Agrupamento?
Tipos de Clustering - Hierárquico
Tipos de Clustering - Particional
Algoritmo K-Means
Algoritmo K-Means++
Distância Euclidiana
Como Escolher o Valor de K e Método de Elbow
Construindo o Modelo de Clustering - Segmentando Viagens do Uber
Construindo o Modelo de Clustering - Carregando o Dataset
Construindo o Modelo de Clustering - Criando o Modelo com K-Means
Construindo o Modelo de Clustering - Avaliando o Resultado com Linguagem SQL
Construindo o Modelo de Clustering - Salvando o Modelo no Formato Parquet
Exercício - Agrupando Clientes de Uma Rede de Lojas de Varejo
Assuntos abordados:
Introdução
O que são Redes Neurais Artificiais?
O Neurônio Biológico
O Neurônio Matemático
A Arquitetura de Redes Neurais Artificiais
Processo de Aprendizagem da Rede Neural
Perceptron
Perceptron de Múltiplas Camadas
O Algoritmo Backpropagation
Criando o Projeto Scala na IDE
Álgebra Linear com Pacote Breeze
O Que é o Scala SBT (Simple Build Tool)?
Rede Neural Multilayer Perceptron - Criando o Package para a Rede Neural
Rede Neural Multilayer Perceptron - Inicializando os Pesos
Rede Neural Multilayer Perceptron - Definindo o Forward Pass
Rede Neural Multilayer Perceptron - Definindo o Backward Pass
Compreendendo o Stochastic Gradient Descent
Rede Neural Multilayer Perceptron - Otimização com Stochastic Gradient Descent
Rede Neural Multilayer Perceptron - Treinamento e Otimização do Modelo
Rede Neural Multilayer Perceptron - Avaliação do Modelo
Assuntos abordados:
Introdução
Por que Aprender Processamento de Linguagem Natural?
Análise Morfológica, Sintática, Semântica e Pragmática
Analisador Sintático
Tokenization, Stopwords, Wordnet, Collocation, Stemming e Corpus
Bag of Words
Word2Vec
E-book - Como Funciona o Word2Vec?
Criando um Modelo Word2Vec Baseado no Algoritmo Original do Google
Construindo um Modelo Word2Vec com Scala e Spark
Assuntos abordados:
Introdução
Download do Oracle Express Edition
Instalação do Oracle Express Edition
Instalação do Oracle SQL Developer
Importação de Tabelas no Oracle
Linguagem SQL
Exploração Inicial usando SQL
Conexão via JDBC
Conectando o Scala ao Oracle
Execução de comandos DDL e DML
Execução de Comandos DQL (Select)
Leitura de dados utilizando Spark
Entrega dos Dados a um Algoritmo de Machine Learning
Download do MongoDB
Instalação do MongoDB
Inicialização do serviço do MongoDB
Inserindo documentos no MongoDB
Manipulação de documentos no MongoDB
Assuntos abordados:
Introdução
Apache Spark e Big Data
Ecosistema Spark
Spark Framework
Quando Usamos o Apache Spark?
MapReduce x Spark
Tipos de Dados Complexos - Arrays, Maps e Structs
Arquitetura do Apache Spark
Modos de Execução do Spark
RDDs - Resilient Distributed Datasets e Dataframes
Operações no Spark - Transformações
Operações no Spark - Ações
Trabalhando com Scala e Apache Spark
Criando Projeto SBT com Spark e Scala
Adicionando as Dependências do Spark no Projeto Scala SBT
Testando a Configuração do Ambiente Spark/Scala na IDE
Criando um Arquivo de Utilitários Para o Apache Spark
Trabalhando com Spark SQL em Scala - RDDs, Dataframes, Arquivos JSON e Listas
Trabalhando com Spark SQL em Scala - Carregando Arquivos CSV e Usando Structs
Regressão Linear - Prevendo Autonomia de Combustível em Veículos - Análise de Correlação
Regressão Linear - Prevendo Autonomia de Combustível em Veículos - Construção do Modelo
Resolvendo Warning BLAS com Netlib
Clusterização - Segmentação de Veículos Para Transportadoras
Classificação com Árvores de Decisão - Prevendo Tipos de Plantas
Mini-Projeto 2 - Construindo um Classificador de Texto com Naive Bayes
Mini-Projeto 3 - Prevendo Crédito ao Consumidor com Random Forest e Redução de Dimensionalidade com PCA
Assuntos abordados:
Introdução
O Que é um Sistema de Recomendação?
Planejando a Infarestrutura
Instalando o Servidor de Streaming
Configurando o Sistema Operacional
Instalando e Configurando o Java - JDK
Instalando e Configurando o Apache Spark
Instalando e Configurando o Banco de Dados NoSQL - MongoDB
Instalando e Configurando o Apache Kafka e o Zookeeper
Instalando e Configurando o SBT
Instalando e Configurando a IDE IntellijIDEA
Tipos de Sistemas de Recomendação
Sistema de Recomendação Baseado no Item Mais Popular
Associação e Modelos Market Basket
Filtros Colaborativos
Filtragem de Conteúdo
Modelos Híbridos
Iniciando o Desenvolvimento
Definindo o Problema e Analisando o Dataset
Criando o Projeto
Análise Exploratória de Dados com Scala
Configurando o build.sbt
Definindo o Pipeline de Streaming
Processando Streaming de Dados em Tempo Real
Persistindo os Dados
Executando a Aplicação
Conclusão
Bibliografia, Referências e Links Úteis
Avaliação Final e Certificado de Conclusão
O Que é Aprendizagem Profunda?
Principais Tipos de Redes Neurais Profundas
O Que São Redes Neurais Convolucionais?
Wouldn't it be a good idea to create a course?