0% acharam este documento útil (0 voto)
59 visualizações9 páginas

Relatório IV - Machine Learning Com Python

O relatório descreve uma atividade prática de Machine Learning utilizando Python para classificar espécies de flores Iris com base em características morfológicas. O processo inclui importação de bibliotecas, pré-processamento de dados, construção e treinamento de uma rede neural com TensorFlow, avaliação do modelo e realização de previsões. Os resultados foram obtidos no Google Colab, demonstrando a eficácia do modelo treinado.

Enviado por

leo.faires
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
59 visualizações9 páginas

Relatório IV - Machine Learning Com Python

O relatório descreve uma atividade prática de Machine Learning utilizando Python para classificar espécies de flores Iris com base em características morfológicas. O processo inclui importação de bibliotecas, pré-processamento de dados, construção e treinamento de uma rede neural com TensorFlow, avaliação do modelo e realização de previsões. Os resultados foram obtidos no Google Colab, demonstrando a eficácia do modelo treinado.

Enviado por

leo.faires
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 9

UNIVERSIDADE ANHANGUERA

CIÊNCIA DE DADOS
LINGUAGEM DE PROGRAMAÇÃO

LEONARDO FELIPE AIRES DA SILVA

RELATÓRIO DE AULA PRÁTICA IV:


Aplicações com Python - Machine Learning com Python

Santa Maria/RS
2025
1 Objetivos

1.1 Objetivo Geral


O objetivo desta atividade prática é desenvolver um modelo de Machine Learning
utilizando a linguagem Python para classificar espécies de flores Iris com base em características
como comprimento e largura das sépalas e pétalas. Para isso, será utilizada uma rede neural
simples implementada com a biblioteca TensorFlow.

1.2 Objetivos Específicos


Os objetivos específicos da atividade são:

1. Importar as bibliotecas necessárias e carregar o conjunto de dados Iris disponível no


scikit-learn.

2. Realizar o pré-processamento dos dados, incluindo a divisão entre treino e teste e a


normalização.

3. Construir uma rede neural simples utilizando TensorFlow.

4. Treinar o modelo com os dados de treinamento.

5. Avaliar a performance do modelo com os dados de teste.

6. Realizar previsões com o modelo treinado.

2 Desenvolvimento

2.1 Passo 1 - Importar Bibliotecas e Carregar Dados


O primeiro passo consiste em importar as bibliotecas necessárias para a construção e
treinamento do modelo de machine learning. São utilizadas as bibliotecas TensorFlow para
definição da rede neural, pandas para organização dos dados e scikit-learn para carregamento
do conjunto de dados Iris e outras tarefas auxiliares.
O conjunto de dados Iris contém medições de comprimento e largura das sépalas e
pétalas de três espécies de flores. Após o carregamento, os dados são separados em variáveis
independentes (X) e variável alvo (y).
1 # Passo 1: Importar bibliotecas e carregar dados
2 import tensorflow as tf
3 import pandas as pd
4 from sklearn . datasets import load_iris

2
5 from sklearn . model_selection import train_test_split
6 from sklearn . preprocessing import StandardScaler
7 from sklearn . metrics import classification_report , accuracy_score
8

9 # Carregar o conjunto de dados Iris


10 iris = load_iris ()
11 X = iris . data
12 y = iris . target

2.2 Passo 2 - Pré-processamento dos Dados


Com os dados carregados, realiza-se o pré-processamento necessário para treinar o
modelo. Primeiramente, o conjunto é dividido em dados de treino e teste utilizando a função
train_test_split da biblioteca scikit-learn, com 80% para treino e 20% para teste.
Em seguida, os dados são normalizados utilizando StandardScaler, o que padroniza
as variáveis para que possuam média 0 e desvio padrão 1. Isso é importante para garantir melhor
desempenho e estabilidade durante o treinamento do modelo.
1 # Passo 2: Pr é - processamento dos Dados
2 # Dividir entre treino e teste
3 X_train , X_test , y_train , y_test = train_test_split (X , y , test_size
=0.2 , random_state =42)
4

5 # Normalizar os dados
6 scaler = StandardScaler ()
7 X_train = scaler . fit_transform ( X_train )
8 X_test = scaler . transform ( X_test )

3 Desenvolvimento

3.1 Passo 1 - Importar Bibliotecas e Carregar Dados


O primeiro passo consiste em importar as bibliotecas necessárias para a construção e
treinamento do modelo de machine learning. São utilizadas as bibliotecas TensorFlow para
definição da rede neural, pandas para organização dos dados e scikit-learn para carregamento
do conjunto de dados Iris e outras tarefas auxiliares.
O conjunto de dados Iris contém medições de comprimento e largura das sépalas e
pétalas de três espécies de flores. Após o carregamento, os dados são separados em variáveis
independentes (X) e variável alvo (y).
1 # Passo 1: Importar bibliotecas e carregar dados

3
2 import tensorflow as tf
3 import pandas as pd
4 from sklearn . datasets import load_iris
5 from sklearn . model_selection import train_test_split
6 from sklearn . preprocessing import StandardScaler
7 from sklearn . metrics import classification_report , accuracy_score
8

9 # Carregar o conjunto de dados Iris


10 iris = load_iris ()
11 X = iris . data
12 y = iris . target

3.2 Passo 2 - Pré-processamento dos Dados


Com os dados carregados, realiza-se o pré-processamento necessário para treinar o
modelo. Primeiramente, o conjunto é dividido em dados de treino e teste utilizando a função
train_test_split da biblioteca scikit-learn, com 80% para treino e 20% para teste.
Em seguida, os dados são normalizados utilizando StandardScaler, o que padroniza
as variáveis para que possuam média 0 e desvio padrão 1. Isso é importante para garantir melhor
desempenho e estabilidade durante o treinamento do modelo.
1 # Passo 2: Pr é - processamento dos Dados
2 # Dividir entre treino e teste
3 X_train , X_test , y_train , y_test = train_test_split (X , y , test_size
=0.2 , random_state =42)
4

5 # Normalizar os dados
6 scaler = StandardScaler ()
7 X_train = scaler . fit_transform ( X_train )
8 X_test = scaler . transform ( X_test )

3.3 Passo 3 - Construir o Modelo


Nesta etapa, é construída uma rede neural simples utilizando a biblioteca TensorFlow. O
modelo é sequencial e contém três camadas densas (fully connected). A primeira camada possui
10 neurônios com função de ativação ReLU, a segunda possui 8 neurônios também com ativação
ReLU, e a camada de saída possui 3 neurônios com ativação softmax — um para cada classe do
conjunto de dados Iris.
Em seguida, o modelo é compilado utilizando o otimizador adam, a função de perda
sparse_categorical_crossentropy (adequada para classificação multiclasse com rótulos
inteiros), e a métrica de acurácia.

4
1 # Passo 3: Construir o Modelo com TensorFlow
2 model = tf . keras . models . Sequential ([
3 tf . keras . layers . Dense (10 , activation = ’ relu ’ , input_shape =(4 ,) ) ,
4 tf . keras . layers . Dense (8 , activation = ’ relu ’) ,
5 tf . keras . layers . Dense (3 , activation = ’ softmax ’) # 3 classes
6 ])
7

8 # Compilar o modelo
9 model . compile ( optimizer = ’ adam ’ ,
10 loss = ’ s p a r s e _ c a t e g o r i c a l _ c r o s s e n t r o p y ’ ,
11 metrics =[ ’ accuracy ’ ])

3.4 Passo 4 - Treinar o Modelo


Com o modelo definido e compilado, o próximo passo é treiná-lo utilizando os dados de
treinamento. O processo é realizado com 50 épocas (epochs) e um tamanho de lote (batch size)
de 5. Durante o treinamento, o modelo ajusta seus pesos para minimizar a função de perda e
melhorar sua acurácia.
O parâmetro verbose=1 permite acompanhar o progresso de cada época no terminal.
1 # Passo 4: Treinar o Modelo
2 model . fit ( X_train , y_train , epochs =50 , batch_size =5 , verbose =1)

3.5 Passo 5 - Avaliar o Modelo


Após o treinamento, o modelo é avaliado com os dados de teste para verificar seu
desempenho. São calculados a perda (loss) e a acurácia no conjunto de teste.
Além disso, é gerado um relatório de classificação contendo métricas detalhadas como
precisão, revocação e F1-score para cada uma das três classes, utilizando a função classification_report
da biblioteca scikit-learn.
1 # Passo 5: Avaliar o Modelo
2 loss , accuracy = model . evaluate ( X_test , y_test )
3 print ( f " \ nAcur á cia no conjunto de teste : { accuracy * 100:.2 f }% " )
4

5 # Relat ó rio detalhado


6 y_pred = model . predict ( X_test )
7 y_pred_classes = y_pred . argmax ( axis =1)
8 print ( " \ nRelat ó rio de Classifica ç ã o : " )
9 print ( classification_report ( y_test , y_pred_classes , target_names =
iris . target_names ) )

5
3.6 Passo 6 - Fazer Previsões
Por fim, o modelo treinado é utilizado para realizar previsões com novos dados. No
exemplo, é fornecido um vetor com quatro características correspondentes a uma flor, e o modelo
retorna a classe prevista com base no padrão aprendido.
Antes da previsão, os dados de entrada também são normalizados utilizando o mesmo
scaler empregado no treinamento.
1 # Passo 6: Fazer Previs õ es ( exemplo )
2 novos_dados = [[5.1 , 3.5 , 1.4 , 0.2]] # sepal_length , sepal_width ,
petal_length , petal_width
3 novos_dados = scaler . transform ( novos_dados )
4 predicao = model . predict ( novos_dados )
5 classe_predita = iris . target_names [ predicao . argmax () ]
6 print ( f " \ nPrevis ã o para nova flor : { classe_predita } " )

4 Resultados
A execução do modelo de machine learning foi realizada no Google Colab, onde foi
possível verificar o funcionamento correto de todas as etapas: carregamento e pré-processamento
dos dados, construção da rede neural, treinamento, avaliação do desempenho e realização de
previsões.
A imagem a seguir mostra a execução no ambiente Colab, incluindo a acurácia obtida, o
relatório de classificação e o resultado da previsão para um novo exemplo.

6
7
Anexo - Código Completo
1 # Passo 1: Importar bibliotecas e carregar dados
2 import tensorflow as tf
3 import pandas as pd
4 from sklearn . datasets import load_iris
5 from sklearn . model_selection import train_test_split
6 from sklearn . preprocessing import StandardScaler
7 from sklearn . metrics import classification_report , accuracy_score
8

9 # Carregar o conjunto de dados Iris


10 iris = load_iris ()
11 X = iris . data
12 y = iris . target
13

14 # Passo 2: Pr é - processamento dos Dados


15 # Dividir entre treino e teste
16 X_train , X_test , y_train , y_test = train_test_split (X , y , test_size
=0.2 , random_state =42)
17

18 # Normalizar os dados
19 scaler = StandardScaler ()
20 X_train = scaler . fit_transform ( X_train )
21 X_test = scaler . transform ( X_test )
22

23 # Passo 3: Construir o Modelo com TensorFlow


24 model = tf . keras . models . Sequential ([
25 tf . keras . layers . Dense (10 , activation = ’ relu ’ , input_shape =(4 ,) ) ,
26 tf . keras . layers . Dense (8 , activation = ’ relu ’) ,
27 tf . keras . layers . Dense (3 , activation = ’ softmax ’) # 3 classes
28 ])
29

30 # Compilar o modelo
31 model . compile ( optimizer = ’ adam ’ ,
32 loss = ’ s p a r s e _ c a t e g o r i c a l _ c r o s s e n t r o p y ’ ,
33 metrics =[ ’ accuracy ’ ])
34

35 # Passo 4: Treinar o Modelo


36 model . fit ( X_train , y_train , epochs =50 , batch_size =5 , verbose =1)
37

38 # Passo 5: Avaliar o Modelo

8
39 loss , accuracy = model . evaluate ( X_test , y_test )
40 print ( f " \ nAcur á cia no conjunto de teste : { accuracy * 100:.2 f }% " )
41

42 # Relat ó rio detalhado


43 y_pred = model . predict ( X_test )
44 y_pred_classes = y_pred . argmax ( axis =1)
45 print ( " \ nRelat ó rio de Classifica ç ã o : " )
46 print ( classification_report ( y_test , y_pred_classes , target_names =
iris . target_names ) )
47

48 # Passo 6: Fazer Previs õ es ( exemplo )


49 novos_dados = [[5.1 , 3.5 , 1.4 , 0.2]] # sepal_length , sepal_width ,
petal_length , petal_width
50 novos_dados = scaler . transform ( novos_dados )
51 predicao = model . predict ( novos_dados )
52 classe_predita = iris . target_names [ predicao . argmax () ]
53 print ( f " \ nPrevis ã o para nova flor : { classe_predita } " )

Você também pode gostar