Este projeto apresenta uma aplicação de classificação de veículos, desenvolvida com Streamlit e utilizando o modelo de classificação Naive Bayes categórico. O objetivo é prever a categoria de um veículo com base em características fornecidas, explorando técnicas de pré-processamento e avaliação de modelos de machine learning.
O script utiliza as bibliotecas pandas
, scikit-learn
, e streamlit
para:
- Carregar e pré-processar um conjunto de dados de veículos.
- Treinar um modelo Naive Bayes categórico para a classificação.
- Exibir a acurácia do modelo e fornecer uma interface interativa para que o usuário classifique novos veículos com base em características personalizadas.
Para executar a aplicação, é necessário ter Python instalado, junto com as bibliotecas requeridas. Siga os passos abaixo:
- Clone este repositório.
- Instale as dependências:
pip install streamlit pandas scikit-learn
- Execute a aplicação com o comando:
streamlit run app.py
A aplicação estará disponível no navegador em http://localhost:8501
.
- Função
load_data_and_model()
: Esta função realiza o carregamento e pré-processamento dos dados e executa o treinamento do modelo. Ela executa os seguintes passos:- Carrega o dataset
car.csv
, que contém colunas com características categóricas de veículos e a colunaclass
como o rótulo de classificação. - Codifica os dados categóricos usando
OrdinalEncoder
, convertendo-os para uma representação numérica. - Separa os dados em conjuntos de treinamento e teste.
- Treina um modelo de Naive Bayes categórico (
CategoricalNB
) e avalia sua acurácia no conjunto de teste.
- Carrega o dataset
- Retorna o encoder, o modelo treinado, a acurácia do modelo, e o dataframe original carregado.
- Exibição da Acurácia: Apresenta a acurácia do modelo na página principal, oferecendo ao usuário uma ideia da eficácia do modelo.
- Entrada do Usuário: Permite que o usuário selecione características para um veículo a ser classificado por meio de menus suspensos.
- Classificação: Após a seleção das características e o clique no botão "Classificar", o modelo prevê a classe do veículo, que é então exibida na interface.
O conjunto de dados car.csv
inclui colunas com características categóricas de veículos e uma coluna de class
para as categorias de classificação de veículos, por exemplo:
buying, maint, doors, persons, lug_boot, safety, class
vhigh, med, 2, 4, big, high, unacc
high, low, 3, more, med, med, acc
...
- Streamlit: Framework para criar aplicações web interativas em Python.
- Pandas: Manipulação e análise de dados.
- Scikit-Learn: Pré-processamento e treinamento do modelo Naive Bayes categórico.
- Documentação do Streamlit.
- Documentação do Scikit-Learn.
- Documentação do Pandas.
- Curso Udemy Streamlit: Crie aplicações web de inteligência artificial.