Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ledsouza/machine-learning-semisupervisionado
Este projeto utiliza algoritmos de aprendizado de máquina semi-supervisionado para classificar a qualidade do leite como alta, média ou baixa.
https://github.com/ledsouza/machine-learning-semisupervisionado
data-science joblib machine-learning machine-learning-algorithms pandas python scikit-learn
Last synced: about 17 hours ago
JSON representation
Este projeto utiliza algoritmos de aprendizado de máquina semi-supervisionado para classificar a qualidade do leite como alta, média ou baixa.
- Host: GitHub
- URL: https://github.com/ledsouza/machine-learning-semisupervisionado
- Owner: ledsouza
- Created: 2024-07-06T14:02:51.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-07-06T14:13:14.000Z (6 months ago)
- Last Synced: 2024-11-14T12:14:42.620Z (2 months ago)
- Topics: data-science, joblib, machine-learning, machine-learning-algorithms, pandas, python, scikit-learn
- Language: Jupyter Notebook
- Homepage:
- Size: 70.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Classificação de Qualidade do Leite com Aprendizado Semi-Supervisionado
![Static Badge](https://img.shields.io/badge/Status-Finalizado-green)
## Descrição
Este projeto utiliza algoritmos de aprendizado de máquina semi-supervisionado para classificar a qualidade do leite como alta, média ou baixa. O objetivo é treinar um modelo capaz de prever a qualidade de novas amostras de leite com base em suas características físico-químicas, mesmo com um conjunto limitado de dados rotulados.
## Tecnologias Utilizadas
- Python
- Pandas
- Scikit-learn
- joblib## Dicionário de Dados
| Coluna | Descrição | Tipo de Dado |
|---|---|---|
| pH | Nível de acidez ou alcalinidade do leite | float64 |
| Temperatura | Temperatura do leite em graus Celsius | int64 |
| Sabor | Indicador binário de qualidade do sabor (1 para alta, 0 para baixa) | int64 |
| Odor | Indicador binário de qualidade do odor (1 para alta, 0 para baixa) | int64 |
| Gordura | Indicador binário de qualidade da gordura (1 para alta, 0 para baixa) | int64 |
| Turbidez | Indicador binário de qualidade da turbidez (1 para alta, 0 para baixa) | int64 |
| Cor | Valor numérico representando a tonalidade da cor do leite | int64 |
| Qualidade | Classificação da qualidade do leite ("alta", "média", "baixa") | object |## Descrição Detalhada do Projeto
### Contexto
O projeto foi desenvolvido durante um curso da Alura sobre algoritmos de machine learning semi-supervisionado. Os dados utilizados foram previamente tratados e disponibilizados para o curso.
### Pré-processamento de Dados
- **Normalização:** Os dados numéricos foram normalizados utilizando o `MinMaxScaler` do Scikit-learn.
- **Tratamento de Rótulos:** A variável alvo "Qualidade" foi codificada numericamente usando o `LabelEncoder`.
- **Dados Não Rotulados:** Para os algoritmos semi-supervisionados, os dados não rotulados foram representados pelo valor -1.### Modelagem
- **Modelo Base (Supervisionado):** Um modelo base foi treinado utilizando o algoritmo SVM (`SVC`) com kernel linear, apenas com os dados rotulados.
- **Self-Training:** O modelo base foi aprimorado utilizando o algoritmo Self-Training. As amostras não rotuladas foram inicialmente classificadas pelo modelo base, e aquelas com alta probabilidade de pertencer a uma classe específica foram adicionadas ao conjunto de treino com seus rótulos previstos. O modelo foi então retreinado com o novo conjunto de dados.
- **Label Propagation:** O algoritmo Label Propagation foi aplicado aos dados rotulados e não rotulados. Este algoritmo propaga os rótulos conhecidos para os dados não rotulados com base na estrutura do grafo de similaridade entre as amostras.### Avaliação do Modelo
O desempenho dos modelos foi avaliado utilizando a métrica `classification_report` do Scikit-learn, que fornece as métricas de precisão, recall e F1-score para cada classe, além da acurácia geral do modelo.
### Resultados
Os resultados mostraram que o modelo Label Propagation obteve o melhor desempenho, superando o modelo SVM supervisionado e o modelo Self-Training.
### Salvando e Carregando o Modelo
O modelo final (Label Propagation) e o `MinMaxScaler` foram salvos em arquivos pickle utilizando a biblioteca `joblib`. O código para carregar o modelo e o scaler também é fornecido, permitindo a utilização do modelo treinado para classificar novos dados.