0% found this document useful (0 votes)
9 views33 pages

Fernando Ramos - Python For AI

Curso

Uploaded by

nandexramosoc
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views33 pages

Fernando Ramos - Python For AI

Curso

Uploaded by

nandexramosoc
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 33

Módulo 1: Introdução à Inteligência Artificial (IA)..............................................................

3
Aula 1: O que é Inteligência Artificial?................................................................................3
Módulo 2: Preparação do Ambiente e Instalação de Ferramentas................................... 4
Aula 2: Instalação e Configuração do Ambiente................................................................ 4
Módulo 3: Fundamentos de Machine Learning................................................................... 6
Aula 3: Regressão Linear com Scikit-Learn....................................................................... 6
Módulo 4: Introdução ao Deep Learning............................................................................. 8
Aula 4: Redes Neurais com Keras..................................................................................... 8
Módulo 5: Aplicações Avançadas e Técnicas................................................................... 10
Aula 5: Regularização e Overfitting..................................................................................10
Módulo 6: Processamento de Linguagem Natural (NLP)................................................. 11
Aula 6: Introdução ao NLP e Tokenização....................................................................... 11
Módulo 7: Modelos de NLP................................................................................................. 12
Aula 7: Modelos de Classificação de Texto......................................................................12
Módulo 8: Análise de Dados............................................................................................... 13
Aula 8: Manipulação e Análise de Dados com Pandas....................................................13
Módulo 9: Técnicas Avançadas de Machine Learning..................................................... 14
Aula 9: Algoritmos de Classificação................................................................................. 14
Módulo 10: Projeto Final..................................................................................................... 15
Aula 10: Construindo um Projeto de Machine Learning...................................................15
Módulo 11: Aprendizado de Máquina e Práticas de Projeto............................................ 17
Aula 11: Avaliação de Modelos e Ajuste de Hiperparâmetros......................................... 17
Módulo 12: Aplicações Avançadas de Deep Learning..................................................... 19
Aula 12: Redes Neurais Convolucionais (CNNs)............................................................. 19
Módulo 13: Implementação de Projetos de AI/ML............................................................ 21
Aula 13: Projeto de Implementação Completa.................................................................21
Módulo 14: Técnicas Avançadas em Machine Learning.................................................. 23
Aula 14: Modelos de Ensemble........................................................................................23
Módulo 15: Técnicas Avançadas em Deep Learning........................................................25
Aula 15: Redes Neurais Recorrentes (RNNs)..................................................................25
Módulo 16: Deploy e Produção...........................................................................................26
Aula 16: Preparando Modelos para Produção................................................................. 26
Módulo 17: Revisão e Consolidação de Conhecimentos.................................................28
Aula 17: Revisão Completa e Projeto Final......................................................................28
Módulo 18: Introdução ao Processamento de Linguagem Natural (NLP)...................... 29
Aula 18: Processamento de Texto com NLP....................................................................29
Módulo 19: Computação em Nuvem com Python.............................................................31
Aula 19: Utilizando APIs de Nuvem................................................................................. 31
Módulo 20: Considerações Finais e Avanços Futuramente............................................ 33
Aula 20: Tendências e Futuro da Inteligência Artificial.....................................................33
Módulo 1: Introdução à Inteligência Artificial (IA)
Aula 1: O que é Inteligência Artificial?
Conteúdo:

● Definição:
Inteligência Artificial (IA) é uma área da ciência da computação que se concentra em
criar sistemas que imitam a inteligência humana para realizar tarefas e podem iterar
e melhorar com o tempo. Exemplos incluem chatbots, reconhecimento facial e
algoritmos de recomendação.
● Exemplos de Aplicações de IA:
○ Assistentes Virtuais: Como Siri e Alexa, que respondem a perguntas e
realizam tarefas baseadas em comandos de voz.
○ Sistemas de Recomendação: Como o Netflix e Amazon, que recomendam
filmes ou produtos com base no histórico de visualização ou compra.
Módulo 2: Preparação do Ambiente e Instalação
de Ferramentas
Aula 2: Instalação e Configuração do Ambiente
Conteúdo:

● Instalação de Bibliotecas:
As bibliotecas essenciais para IA e ML em Python são:
○ NumPy: Para manipulação de arrays e operações matemáticas.
○ Pandas: Para manipulação e análise de dados.
○ Scikit-Learn: Para machine learning.
○ TensorFlow e Keras: Para deep learning.
● Execute os seguintes comandos no Google Colab ou no terminal para instalar essas
bibliotecas:

!pip install numpy pandas scikit-learn tensorflow keras

Importação das Bibliotecas:

Após a instalação, você deve importar as bibliotecas necessárias para o seu código:

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

● Comentário:
○ import numpy as np: Importa a biblioteca NumPy e a renomeia como np.
○ import pandas as pd: Importa a biblioteca Pandas e a renomeia como
pd.
○ from sklearn.model_selection import train_test_split:
Importa a função para dividir o conjunto de dados em treinamento e teste.
○ from sklearn.linear_model import LinearRegression: Importa o
modelo de regressão linear.
○ from sklearn.metrics import mean_squared_error: Importa a
função para calcular o erro quadrático médio.
○ import tensorflow as tf: Importa a biblioteca TensorFlow e a
renomeia como tf.
○ from tensorflow.keras.models import Sequential: Importa o
modelo sequencial de Keras.
○ from tensorflow.keras.layers import Dense: Importa a camada
densa para o modelo.
Módulo 3: Fundamentos de Machine Learning
Aula 3: Regressão Linear com Scikit-Learn
Conteúdo:

● O que é Regressão Linear?


Regressão Linear é um método de modelagem que tenta ajustar uma linha (ou um
plano) aos dados para prever uma variável dependente com base em uma ou mais
variáveis independentes.
● Exemplo Prático:
Vamos criar um modelo de regressão linear para prever o preço de uma casa com
base em sua área.

# Dados de exemplo
X = np.array([[1], [2], [3], [4], [5]]) # Área da casa em metros
quadrados
y = np.array([100, 150, 200, 250, 300]) # Preço da casa em milhares de
reais

# Dividir os dados em conjuntos de treinamento e teste


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,
random_state=0)

# Criar o modelo de regressão linear


modelo = LinearRegression()

# Treinar o modelo com os dados de treinamento


modelo.fit(X_train, y_train)

# Fazer previsões com os dados de teste


y_pred = modelo.predict(X_test)

# Avaliar o modelo
erro = mean_squared_error(y_test, y_pred)

print(f"Erro quadrático médio: {erro:.2f}")

Comentário:

● np.array([[1], [2], [3], [4], [5]]): Cria um array NumPy com a área
das casas.
● train_test_split(X, y, test_size=0.2, random_state=0): Divide os
dados em conjuntos de treinamento e teste, mantendo 20% dos dados para teste.
● modelo.fit(X_train, y_train): Treina o modelo usando os dados de
treinamento.
● modelo.predict(X_test): Faz previsões com os dados de teste.
● mean_squared_error(y_test, y_pred): Calcula o erro quadrático médio das
previsões.
Módulo 4: Introdução ao Deep Learning
Aula 4: Redes Neurais com Keras
Conteúdo:

● O que é Deep Learning?


Deep Learning é um subcampo de Machine Learning que usa redes neurais
profundas para modelar e resolver problemas complexos. Essas redes têm várias
camadas (daí o "profundo") que aprendem a representar dados em diferentes níveis
de abstração.
● Exemplo Prático:
Vamos construir uma rede neural simples para classificar dígitos manuscritos usando
o conjunto de dados MNIST.

# Carregar o conjunto de dados MNIST


(X_train, y_train), (X_test, y_test) =
tf.keras.datasets.mnist.load_data()

# Normalizar os dados
X_train, X_test = X_train / 255.0, X_test / 255.0

# Construir o modelo
modelo = Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)), # Achata as imagens
28x28 em um vetor de 784 elementos
tf.keras.layers.Dense(128, activation='relu'), # Camada densa com
128 neurônios e função de ativação ReLU
tf.keras.layers.Dense(10, activation='softmax') # Camada de saída
com 10 neurônios (uma para cada dígito)
])

# Compilar o modelo
modelo.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])

# Treinar o modelo
modelo.fit(X_train, y_train, epochs=5)

# Avaliar o modelo
perda, acuracia = modelo.evaluate(X_test, y_test)
print(f"Perda: {perda:.4f}")
print(f"Acurácia: {acuracia:.4f}")
● Comentário:
○ tf.keras.datasets.mnist.load_data(): Carrega o conjunto de dados
MNIST de dígitos manuscritos.
○ X_train / 255.0: Normaliza os dados de entrada para valores entre 0 e
1.
○ tf.keras.layers.Flatten(input_shape=(28, 28)): Achata a
imagem 28x28 em um vetor unidimensional de 784 elementos.
○ tf.keras.layers.Dense(128, activation='relu'): Adiciona uma
camada densa com 128 neurônios e a função de ativação ReLU.
○ tf.keras.layers.Dense(10, activation='softmax'): Camada de
saída com 10 neurônios e a função de ativação Softmax para classificação
multi-classe.
○ modelo.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy']): Compila o modelo com o otimizador Adam e a
função de perda de entropia cruzada.
○ modelo.fit(X_train, y_train, epochs=5): Treina o modelo por 5
épocas.
○ modelo.evaluate(X_test, y_test): Avalia o desempenho do modelo
no conjunto de teste.
Módulo 5: Aplicações Avançadas e Técnicas
Aula 5: Regularização e Overfitting
Conteúdo:

● O que é Overfitting?
Overfitting ocorre quando um modelo aprende muito bem os dados de treinamento,
mas não generaliza bem para novos dados. Isso geralmente acontece quando o
modelo é muito complexo.
● Técnicas de Regularização:
○ Dropout: Desativa aleatoriamente uma fração de neurônios durante o
treinamento para evitar overfitting.

from tensorflow.keras.layers import Dropout

modelo = Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
Dropout(0.5), # 50% dos neurônios são desativados aleatoriamente
tf.keras.layers.Dense(10, activation='softmax')
])

Regularização L2: Adiciona uma penalização ao tamanho dos pesos no modelo para evitar
que eles cresçam demais.

from tensorflow.keras.regularizers import l2

modelo = Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu',
kernel_regularizer=l2(0.01)), # Penalização L2
tf.keras.layers.Dense(10, activation='softmax')
])

● Comentário:
○ Dropout(0.5): Adiciona a camada Dropout que desativa 50% dos
neurônios durante o treinamento.
○ kernel_regularizer=l2(0.01): Adiciona regularização L2 com um fator
de penalização de 0.01 aos pesos da camada.
Módulo 6: Processamento de Linguagem Natural
(NLP)
Aula 6: Introdução ao NLP e Tokenização
Conteúdo:

● O que é NLP?
Processamento de Linguagem Natural (NLP) é uma subárea da IA que lida com a
interação entre computadores e linguagem humana.
● Tokenização:
A tokenização é o processo de dividir um texto em partes menores, como palavras
ou frases.

from tensorflow.keras.preprocessing.text import Tokenizer

# Texto de exemplo
textos = ["Eu amo programação.", "Python é uma linguagem poderosa."]

# Criar um tokenizador
tokenizador = Tokenizer()
tokenizador.fit_on_texts(textos)

# Converter o texto em sequências de inteiros


sequencias = tokenizador.texts_to_sequences(textos)

print(sequencias)

● Comentário:
○ Tokenizer(): Cria um objeto Tokenizer para tokenizar o texto.
○ fit_on_texts(textos): Treina o tokenizador com o texto fornecido.
○ texts_to_sequences(textos): Converte o texto em uma sequência de
inteiros, onde cada palavra é representada por um número.
Módulo 7: Modelos de NLP
Aula 7: Modelos de Classificação de Texto
Conteúdo:

● Construindo um Modelo de Classificação de Texto:


Vamos criar um modelo simples para classificar textos em categorias.

from tensorflow.keras.preprocessing.sequence import pad_sequences


from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense

# Dados de exemplo
textos = ["Eu amo programação.", "Python é uma linguagem poderosa."]
labels = [1, 0] # 1 para positivo, 0 para negativo

# Tokenização e sequenciamento
tokenizador = Tokenizer()
tokenizador.fit_on_texts(textos)
sequencias = tokenizador.texts_to_sequences(textos)
X = pad_sequences(sequencias, padding='post')

# Construir o modelo
modelo = Sequential([
Embedding(input_dim=len(tokenizador.word_index) + 1, output_dim=8,
input_length=X.shape[1]),
LSTM(32),
Dense(1, activation='sigmoid')
])

modelo.compile(optimizer='adam', loss='binary_crossentropy',
metrics=['accuracy'])
modelo.fit(X, labels, epochs=5)

● Comentário:
○ pad_sequences(sequencias, padding='post'): Preenche
sequências para garantir que todas tenham o mesmo comprimento.
○ Embedding(input_dim=len(tokenizador.word_index) + 1,
output_dim=8, input_length=X.shape[1]): Cria uma camada de
embedding para converter palavras em vetores.
○ LSTM(32): Adiciona uma camada LSTM com 32 unidades.
○ Dense(1, activation='sigmoid'): Camada de saída com uma
unidade e função de ativação sigmoid para classificação binária.
Módulo 8: Análise de Dados
Aula 8: Manipulação e Análise de Dados com Pandas
Conteúdo:

● Carregando e Analisando Dados:


Vamos usar o Pandas para carregar e analisar um conjunto de dados.

# Carregar dados
df = pd.read_csv('dados.csv')

# Mostrar as primeiras linhas do DataFrame


print(df.head())

# Estatísticas básicas
print(df.describe())

● Comentário:
○ pd.read_csv('dados.csv'): Carrega um arquivo CSV em um
DataFrame do Pandas.
○ df.head(): Mostra as primeiras linhas do DataFrame.
○ df.describe(): Exibe estatísticas básicas sobre os dados numéricos.
Módulo 9: Técnicas Avançadas de Machine
Learning
Aula 9: Algoritmos de Classificação
Conteúdo:

● Classificação com Máquinas de Vetores de Suporte (SVM):


Vamos usar o SVM para classificar dados.

from sklearn.svm import SVC


from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# Carregar o conjunto de dados Iris


iris = load_iris()
X, y = iris.data, iris.target

# Dividir os dados
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,
random_state=42)

# Criar e treinar o modelo SVM


modelo = SVC(kernel='linear')
modelo.fit(X_train, y_train)

# Fazer previsões
y_pred = modelo.predict(X_test)

# Avaliar o modelo
acuracia = accuracy_score(y_test, y_pred)
print(f"Acurácia: {acuracia:.2f}")

● Comentário:
○ SVC(kernel='linear'): Cria um modelo de SVM com um kernel linear.
○ modelo.fit(X_train, y_train): Treina o modelo com os dados de
treinamento.
○ modelo.predict(X_test): Faz previsões com os dados de teste.
○ accuracy_score(y_test, y_pred): Calcula a acurácia do modelo.
Módulo 10: Projeto Final
Aula 10: Construindo um Projeto de Machine Learning
Conteúdo:

● Construindo um Classificador de Texto:


Vamos construir um classificador de texto que pode categorizar mensagens de
e-mail como "spam" ou "não spam".

# Dados de exemplo
textos = ["Oferta especial! Compre agora!", "Seu recibo de pagamento
está anexado."]
labels = [1, 0] # 1 para spam, 0 para não spam

# Tokenização e sequenciamento
tokenizador = Tokenizer()
tokenizador.fit_on_texts(textos)
sequencias = tokenizador.texts_to_sequences(textos)
X = pad_sequences(sequencias, padding='post')

# Construir o modelo
modelo = Sequential([
Embedding(input_dim=len(tokenizador.word_index) + 1, output_dim=8,
input_length=X.shape[1]),
LSTM(32),
Dense(1, activation='sigmoid')
])

modelo.compile(optimizer='adam', loss='binary_crossentropy',
metrics=['accuracy'])
modelo.fit(X, labels, epochs=5)

# Testar o modelo com novas mensagens


novas_mensagens = ["Ganhe dinheiro fácil!", "Seu pacote foi enviado com
sucesso."]
sequencias_novas = tokenizador.texts_to_sequences(novas_mensagens)
X_novas = pad_sequences(sequencias_novas, padding='post')

# Fazer previsões
previsoes = modelo.predict(X_novas)

# Interpretar as previsões
for mensagem, previsao in zip(novas_mensagens, previsoes):
categoria = "Spam" if previsao > 0.5 else "Não Spam"
print(f"Mensagem: {mensagem} -> Categoria: {categoria}")

● Comentário:
○ tokenizador.texts_to_sequences(novas_mensagens): Converte as
novas mensagens em sequências de inteiros.
○ pad_sequences(sequencias_novas, padding='post'): Preenche as
sequências para garantir que todas tenham o mesmo comprimento.
○ modelo.predict(X_novas): Faz previsões para as novas mensagens.
○ if previsao > 0.5: Interpreta a previsão do modelo, onde valores acima
de 0.5 são classificados como "Spam".
Módulo 11: Aprendizado de Máquina e Práticas de
Projeto
Aula 11: Avaliação de Modelos e Ajuste de Hiperparâmetros
Conteúdo:

● Avaliação de Modelos:
É crucial avaliar o desempenho dos modelos de ML para garantir que eles
funcionem bem com novos dados. Usamos métricas como acurácia, precisão, recall
e F1-score.

from sklearn.metrics import classification_report

# Dados de exemplo
y_true = [1, 0, 1, 0] # Valores reais
y_pred = [1, 0, 0, 0] # Valores previstos

# Relatório de classificação
relatorio = classification_report(y_true, y_pred, target_names=["Spam",
"Não Spam"])
print(relatorio)

omentário:

● classification_report(y_true, y_pred, target_names=["Spam",


"Não Spam"]): Gera um relatório detalhado com métricas de avaliação para cada
classe.

Ajuste de Hiperparâmetros:
O ajuste de hiperparâmetros é o processo de encontrar as melhores configurações para um
modelo. Vamos usar a busca em grade (GridSearchCV) para encontrar os melhores
hiperparâmetros para um modelo de SVM.

from sklearn.model_selection import GridSearchCV


from sklearn.svm import SVC

# Definir o modelo
modelo = SVC()

# Definir os hiperparâmetros para testar


parametros = {'kernel': ['linear', 'rbf'], 'C': [0.1, 1, 10]}

# Configurar a busca em grade


grid_search = GridSearchCV(modelo, parametros, cv=5)
grid_search.fit(X_train, y_train)

# Melhor configuração
print(f"Melhores parâmetros: {grid_search.best_params_}")

● Comentário:
○ GridSearchCV(modelo, parametros, cv=5): Cria um objeto de busca
em grade com validação cruzada de 5 dobras.
○ grid_search.fit(X_train, y_train): Ajusta o modelo com os dados
de treinamento e os hiperparâmetros fornecidos.
○ grid_search.best_params_: Exibe os melhores parâmetros encontrados
durante a busca.
Módulo 12: Aplicações Avançadas de Deep
Learning
Aula 12: Redes Neurais Convolucionais (CNNs)
Conteúdo:

● O que são CNNs?


Redes Neurais Convolucionais (CNNs) são um tipo de rede neural especialmente
eficaz para processamento de imagens e reconhecimento de padrões visuais.
● Exemplo Prático:
Vamos construir uma CNN para classificar imagens do conjunto de dados MNIST.

from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten

# Construir o modelo CNN


modelo_cnn = Sequential([
Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)), #
Camada convolucional
MaxPooling2D((2, 2)), # Camada de pooling
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D((2, 2)),
Flatten(), # Achatar para camada densa
Dense(64, activation='relu'),
Dense(10, activation='softmax') # Camada de saída
])

modelo_cnn.compile(optimizer='adam',
loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# Ajustar o modelo
modelo_cnn.fit(X_train, y_train, epochs=5)

# Avaliar o modelo
perda, acuracia = modelo_cnn.evaluate(X_test, y_test)
print(f"Perda: {perda:.4f}")
print(f"Acurácia: {acuracia:.4f}")

● Comentário:
○ Conv2D(32, (3, 3), activation='relu', input_shape=(28,
28, 1)): Adiciona uma camada convolucional com 32 filtros, tamanho de
kernel 3x3 e função de ativação ReLU.
○ MaxPooling2D((2, 2)): Adiciona uma camada de pooling para reduzir a
dimensionalidade.
○ Flatten(): Achata a saída das camadas convolucionais em um vetor.
○ Dense(64, activation='relu'): Adiciona uma camada densa com 64
neurônios e função de ativação ReLU.
○ Dense(10, activation='softmax'): Camada de saída com 10
neurônios para a classificação das 10 classes.
Módulo 13: Implementação de Projetos de AI/ML
Aula 13: Projeto de Implementação Completa
Conteúdo:

● Desenvolver um Projeto Completo:


Crie um projeto que usa técnicas de IA/ML para resolver um problema real. Por
exemplo, desenvolver um classificador de imagens usando CNNs ou um modelo
preditivo para dados financeiros.
Exemplo: Classificador de Imagens

# Carregar e preparar os dados


from tensorflow.keras.datasets import cifar10

(X_train, y_train), (X_test, y_test) = cifar10.load_data()


X_train, X_test = X_train / 255.0, X_test / 255.0 # Normalizar

# Construir o modelo CNN


modelo_cnn = Sequential([
Conv2D(64, (3, 3), activation='relu', input_shape=(32, 32, 3)),
MaxPooling2D((2, 2)),
Conv2D(128, (3, 3), activation='relu'),
MaxPooling2D((2, 2)),
Flatten(),
Dense(128, activation='relu'),
Dense(10, activation='softmax')
])

modelo_cnn.compile(optimizer='adam',
loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# Ajustar o modelo
modelo_cnn.fit(X_train, y_train, epochs=10)

# Avaliar o modelo
perda, acuracia = modelo_cnn.evaluate(X_test, y_test)
print(f"Perda: {perda:.4f}")
print(f"Acurácia: {acuracia:.4f}")

Comentário:

● cifar10.load_data(): Carrega o conjunto de dados CIFAR-10 de imagens


coloridas.
● X_train / 255.0: Normaliza as imagens para valores entre 0 e 1.
● Conv2D(64, (3, 3), activation='relu', input_shape=(32, 32, 3)):
Adiciona uma camada convolucional com 64 filtros para imagens 32x32x3.
● MaxPooling2D((2, 2)): Reduz a dimensionalidade das imagens.
● Dense(10, activation='softmax'): Camada de saída com 10 classes para a
classificação das imagens.
Módulo 14: Técnicas Avançadas em Machine
Learning
Aula 14: Modelos de Ensemble
Conteúdo:

● O que são Modelos de Ensemble?


Modelos de ensemble combinam previsões de múltiplos modelos base para
melhorar a precisão e a robustez das previsões.
● Exemplo Prático: Random Forest e Gradient Boosting
Vamos usar o modelo Random Forest e o Gradient Boosting para melhorar as
previsões.

Random Forest:

from sklearn.ensemble import RandomForestClassifier


from sklearn.metrics import accuracy_score

# Definir o modelo
rf_modelo = RandomForestClassifier(n_estimators=100, random_state=42)

# Ajustar o modelo
rf_modelo.fit(X_train, y_train)

# Fazer previsões
y_pred_rf = rf_modelo.predict(X_test)

# Avaliar o modelo
acuracia_rf = accuracy_score(y_test, y_pred_rf)
print(f"Acurácia do Random Forest: {acuracia_rf:.4f}")

Comentário:

● RandomForestClassifier(n_estimators=100, random_state=42): Cria


um modelo Random Forest com 100 árvores.
● rf_modelo.fit(X_train, y_train): Ajusta o modelo com os dados de
treinamento.
● accuracy_score(y_test, y_pred_rf): Calcula a acurácia do modelo.
Gradient Boosting:

from sklearn.ensemble import GradientBoostingClassifier

# Definir o modelo
gb_modelo = GradientBoostingClassifier(n_estimators=100,
learning_rate=0.1, random_state=42)

# Ajustar o modelo
gb_modelo.fit(X_train, y_train)

# Fazer previsões
y_pred_gb = gb_modelo.predict(X_test)

# Avaliar o modelo
acuracia_gb = accuracy_score(y_test, y_pred_gb)
print(f"Acurácia do Gradient Boosting: {acuracia_gb:.4f}")

● Comentário:
○ GradientBoostingClassifier(n_estimators=100,
learning_rate=0.1, random_state=42): Cria um modelo Gradient
Boosting com 100 estimadores e taxa de aprendizado de 0.1.
○ gb_modelo.fit(X_train, y_train): Ajusta o modelo com os dados de
treinamento.
Módulo 15: Técnicas Avançadas em Deep
Learning
Aula 15: Redes Neurais Recorrentes (RNNs)
Conteúdo:

● O que são RNNs?


Redes Neurais Recorrentes (RNNs) são usadas para dados sequenciais, como texto
e séries temporais.
● Exemplo Prático: Classificação de Sequências de Texto com RNN

from tensorflow.keras.layers import SimpleRNN, Embedding

# Construir o modelo RNN


modelo_rnn = Sequential([
Embedding(input_dim=10000, output_dim=128, input_length=100),
SimpleRNN(64, activation='relu'),
Dense(1, activation='sigmoid')
])

modelo_rnn.compile(optimizer='adam', loss='binary_crossentropy',
metrics=['accuracy'])

# Ajustar o modelo
modelo_rnn.fit(X_train, y_train, epochs=5)

# Avaliar o modelo
perda, acuracia = modelo_rnn.evaluate(X_test, y_test)
print(f"Perda: {perda:.4f}")
print(f"Acurácia: {acuracia:.4f}")

● Comentário:
○ Embedding(input_dim=10000, output_dim=128,
input_length=100): Camada de embedding para representar palavras
como vetores.
○ SimpleRNN(64, activation='relu'): Camada RNN com 64 unidades
e ativação ReLU.
○ Dense(1, activation='sigmoid'): Camada de saída com ativação
sigmoide para classificação binária.
Módulo 16: Deploy e Produção
Aula 16: Preparando Modelos para Produção
Conteúdo:

● Exportando Modelos:
Após treinar um modelo, é importante exportá-lo para produção.

import joblib

# Salvar o modelo
joblib.dump(modelo, 'modelo_random_forest.pkl')

# Carregar o modelo
modelo_carregado = joblib.load('modelo_random_forest.pkl')

Comentário:

● joblib.dump(modelo, 'modelo_random_forest.pkl'): Salva o modelo em


um arquivo pickle.
● joblib.load('modelo_random_forest.pkl'): Carrega o modelo salvo.

Criando APIs para Modelos:


Podemos criar uma API para servir nosso modelo usando Flask.

from flask import Flask, request, jsonify


import joblib

app = Flask(__name__)
modelo = joblib.load('modelo_random_forest.pkl')

@app.route('/predict', methods=['POST'])
def predict():
dados = request.get_json()
previsao = modelo.predict([dados['entrada']])
return jsonify({'previsao': previsao[0]})

if __name__ == '__main__':
app.run(debug=True)

● Comentário:
○ joblib.load('modelo_random_forest.pkl'): Carrega o modelo para
uso na API.
○ @app.route('/predict', methods=['POST']): Define uma rota para
a API que aceita requisições POST.
○ modelo.predict([dados['entrada']]): Faz previsões com o modelo
baseado nos dados recebidos.
Módulo 17: Revisão e Consolidação de
Conhecimentos
Aula 17: Revisão Completa e Projeto Final
Conteúdo:

● Revisão dos Conceitos Aprendidos:


Revisaremos todos os conceitos importantes aprendidos durante o curso e como
aplicá-los na prática.
● Desenvolvendo um Projeto Final Completo:
Você desenvolverá um projeto final que envolve a criação de um sistema de
recomendação, um modelo de reconhecimento de imagem ou outro projeto de sua
escolha, utilizando todas as técnicas aprendidas no curso.

Exemplo: Sistema de Recomendação

from sklearn.neighbors import KNeighborsClassifier


import pandas as pd

# Carregar dados de exemplo


dados = pd.read_csv('dados_recomendacao.csv')
X = dados.drop('classe', axis=1)
y = dados['classe']

# Definir e ajustar o modelo


modelo_knn = KNeighborsClassifier(n_neighbors=5)
modelo_knn.fit(X, y)

# Fazer previsões
nova_entrada = [[1, 2, 3, 4]]
recomendacao = modelo_knn.predict(nova_entrada)
print(f"Recomendação: {recomendacao[0]}")

Comentário:

● KNeighborsClassifier(n_neighbors=5): Cria um classificador KNN com 5


vizinhos.
● modelo_knn.fit(X, y): Ajusta o modelo com os dados de treinamento.
● modelo_knn.predict(nova_entrada): Faz previsões para novas entradas.
Módulo 18: Introdução ao Processamento de
Linguagem Natural (NLP)
Aula 18: Processamento de Texto com NLP
Conteúdo:

● O que é NLP?
Processamento de Linguagem Natural (NLP) é uma área da IA que se ocupa da
interação entre computadores e humanos por meio da linguagem natural.
● Exemplo Prático: Análise de Sentimentos
Vamos analisar o sentimento de um texto usando a biblioteca nltk.

import nltk
from nltk.sentiment.vader import SentimentIntensityAnalyzer

# Baixar recursos necessários


nltk.download('vader_lexicon')

# Instanciar o analisador de sentimentos


sia = SentimentIntensityAnalyzer()

# Analisar sentimento
texto = "Eu amo aprender Python! É uma linguagem incrível."
pontuacoes = sia.polarity_scores(texto)

print(f"Pontuações de sentimento: {pontuacoes}")

Comentário:

● SentimentIntensityAnalyzer(): Cria um objeto para análise de sentimentos.


● sia.polarity_scores(texto): Analisa o sentimento do texto e retorna
pontuações de sentimento.

Limpeza e Pré-processamento de Texto


O pré-processamento é essencial para preparar o texto para análise.

import re
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize

# Baixar recursos necessários


nltk.download('stopwords')
nltk.download('punkt')
# Função de limpeza
def limpar_texto(texto):
texto = texto.lower() # Converter para minúsculas
texto = re.sub(r'<[^>]+>', '', texto) # Remover HTML
texto = re.sub(r'[^a-z\s]', '', texto) # Remover caracteres não
alfabéticos
palavras = word_tokenize(texto) # Tokenização
palavras = [p for p in palavras if p not in
stopwords.words('english')] # Remover stopwords
return ' '.join(palavras)

texto = "Eu <b>amo</b> aprender Python! É uma linguagem incrível."


texto_limpo = limpar_texto(texto)
print(f"Texto limpo: {texto_limpo}")

● Comentário:
○ re.sub(r'<[^>]+>', '', texto): Remove tags HTML do texto.
○ word_tokenize(texto): Divide o texto em palavras.
○ stopwords.words('english'): Remove palavras comuns que não são
úteis na análise.
Módulo 19: Computação em Nuvem com Python
Aula 19: Utilizando APIs de Nuvem
Conteúdo:

● Introdução às APIs de Nuvem


As APIs de nuvem permitem acessar e manipular serviços de computação em
nuvem, como armazenamento e processamento.
● Exemplo Prático: Uso da API do Google Cloud Storage

from google.cloud import storage

# Instanciar cliente
cliente = storage.Client()

# Listar buckets
buckets = list(cliente.list_buckets())
print(f"Buckets: {[bucket.name for bucket in buckets]}")

# Criar um bucket
bucket = cliente.create_bucket('meu-novo-bucket')
print(f"Bucket criado: {bucket.name}")

Comentário:

● storage.Client(): Cria um cliente para interagir com o Google Cloud Storage.


● cliente.list_buckets(): Lista todos os buckets disponíveis.
● cliente.create_bucket('meu-novo-bucket'): Cria um novo bucket.

Interação com APIs de Machine Learning


Muitos serviços de nuvem oferecem APIs para Machine Learning, como a API de Detecção
de Objetos do Google Cloud.

from google.cloud import vision

# Instanciar cliente
cliente_vision = vision.ImageAnnotatorClient()

# Carregar imagem
with open('imagem.jpg', 'rb') as imagem:
conteudo_imagem = imagem.read()

# Realizar detecção
imagem = vision.Image(content=conteudo_imagem)
resposta = cliente_vision.label_detection(image=imagem)
labels = resposta.label_annotations

print('Rótulos encontrados:')
for label in labels:
print(label.description)

● Comentário:
○ vision.ImageAnnotatorClient(): Cria um cliente para interagir com a
API de visão do Google.
○ cliente_vision.label_detection(image=imagem): Detecta rótulos
na imagem fornecida.

Módulo 20: Considerações Finais e Avanços


Futuramente
Aula 20: Tendências e Futuro da Inteligência Artificial
Conteúdo:

● Tendências Atuais em IA
A IA está avançando rapidamente em áreas como automação, processamento de
linguagem natural e análise preditiva.
● Preparando-se para o Futuro
Explore as oportunidades futuras e como continuar aprendendo sobre IA.
● Exemplo Prático: Explorando Avanços
Experimentos com novos modelos e técnicas, como Transformers e AutoML.
Transformers:

from transformers import pipeline

# Instanciar pipeline para análise de sentimentos


analise_sentimentos = pipeline('sentiment-analysis')

resultado = analise_sentimentos("Eu adoro aprender novas tecnologias!")


print(f"Resultado da análise: {resultado}")

Comentário:

● pipeline('sentiment-analysis'): Cria um pipeline para análise de


sentimentos usando um modelo Transformer.

You might also like