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

Fernando Ramos - Python For AI

Curso

Uploaded by

nandexramosoc
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
7 views33 pages

Fernando Ramos - Python For AI

Curso

Uploaded by

nandexramosoc
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
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