Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ledsouza/keras-flores
Este projeto demonstra a construção de um modelo de Machine Learning utilizando a biblioteca Keras para classificar as espécies de flores Iris (Setosa, Versicolor e Virginica) com base em suas características.
https://github.com/ledsouza/keras-flores
deep-learning keras keras-tensorflow machine-learning multilayer-perceptron-network neural-network tensorflow
Last synced: 29 days ago
JSON representation
Este projeto demonstra a construção de um modelo de Machine Learning utilizando a biblioteca Keras para classificar as espécies de flores Iris (Setosa, Versicolor e Virginica) com base em suas características.
- Host: GitHub
- URL: https://github.com/ledsouza/keras-flores
- Owner: ledsouza
- Created: 2024-07-28T16:48:00.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-07-28T16:55:14.000Z (3 months ago)
- Last Synced: 2024-09-28T07:24:20.333Z (about 1 month ago)
- Topics: deep-learning, keras, keras-tensorflow, machine-learning, multilayer-perceptron-network, neural-network, tensorflow
- Language: Jupyter Notebook
- Homepage:
- Size: 342 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Classificação de Flores Iris com Keras 💐
![Static Badge](https://img.shields.io/badge/Status-Finalizado-green)
## Descrição
Este projeto demonstra a construção de um modelo de Machine Learning utilizando a biblioteca Keras para classificar as espécies de flores Iris (Setosa, Versicolor e Virginica) com base em suas características. O modelo utilizado é uma Rede Neural Multi-Layer Perceptron (MLP).
## Tecnologias Utilizadas
- Python
- Keras
- TensorFlow (como backend do Keras)
- Scikit-learn (para carregar o dataset e pré-processamento)
- Matplotlib e Seaborn (para visualização dos dados)
- Pandas (para manipulação de dados)
- Plotly (para visualização interativa)## Descrição Detalhada do Projeto
### Dataset
O projeto utiliza o famoso dataset Iris, que contém 150 amostras de flores Iris, divididas igualmente em três espécies: Setosa, Versicolor e Virginica. Cada amostra possui quatro características:
- Comprimento da sépala (cm)
- Largura da sépala (cm)
- Comprimento da pétala (cm)
- Largura da pétala (cm)### Pré-processamento de Dados
1. **Categorização:** A variável alvo (espécie da flor) é convertida para uma representação categórica one-hot encoding utilizando `keras.utils.to_categorical`.
2. **Normalização:** As características são normalizadas para o intervalo [0, 1] utilizando o `MinMaxScaler` do Scikit-learn.
3. **Separação de Conjunto:** O dataset é dividido em conjuntos de treino (80%) e teste (20%) utilizando o `train_test_split` do Scikit-learn. A estratificação é utilizada para garantir a mesma proporção de classes em ambos os conjuntos.### Modelo MLP
O modelo MLP é construído utilizando o `keras.Sequential`, que permite a criação de uma rede neural sequencial. O modelo possui as seguintes camadas:
1. **Camada de Entrada:** Define o formato de entrada com base nas características do dataset.
2. **Camada Oculta:** Uma camada densa com 512 neurônios e função de ativação ReLU. Os pesos são inicializados com `keras.initializers.RandomNormal`.
3. **Camada de Saída:** Uma camada densa com 3 neurônios (um para cada classe) e função de ativação Softmax.### Treinamento
1. **Compilação:** O modelo é compilado utilizando:
- Função de Perda: `categorical_crossentropy` (adequada para classificação multiclasse)
- Otimizador: `rmsprop` (uma variante do gradiente descendente)
- Métrica: `categorical_accuracy`
2. **Treinamento:** O modelo é treinado com os dados de treino por 100 épocas, utilizando 30% do conjunto de treino para validação.### Avaliação
1. **Visualização do Aprendizado:** A perda e a acurácia durante o treinamento são plotadas para visualizar o aprendizado do modelo.
2. **Avaliação no Teste:** O modelo é avaliado no conjunto de teste utilizando o método `evaluate`.
3. **Predição:** Uma amostra de dados é utilizada para testar a predição do modelo.## Resultados
O modelo MLP alcançou uma alta acurácia no conjunto de teste, demonstrando a capacidade da rede neural em aprender os padrões do dataset Iris e classificar as flores corretamente. A visualização do aprendizado mostra que o modelo não sofreu overfitting, já que a perda e a acurácia no conjunto de validação acompanharam o desempenho no conjunto de treino.