Este projeto utiliza o dataset Weather Type Classification, disponível no Kaggle:
🔗 https://www.kaggle.com/datasets/nikhil7280/weather-type-classification
O objetivo é construir um modelo de Machine Learning capaz de classificar o tipo de clima com base em variáveis meteorológicas, priorizando:
- Interpretabilidade do modelo
- Baixo risco de viés
- Uso de variáveis puramente meteorológicas (sem localização ou estação)
- Boa capacidade de generalização
O resultado final foi uma Árvore de Decisão extremamente interpretável, com apenas 3 níveis de profundidade (max_depth=3) e uma acurácia média de 88%.
Este projeto aborda a tarefa de classificação do tipo de clima baseado em dados reais e sintéticos de características meteorológicas.
A proposta inclui:
- Exploração dos dados
- Pré-processamento com Pipeline
- Comparação de modelos
- Interpretação de uma árvore de decisão otimizada
- Avaliação com validação cruzada (K-fold)
Apesar de modelos mais complexos obterem leve ganho de performance, a escolha final privilegia simplicidade e explicabilidade — fundamentais em contextos ambientais.
O dataset contém variáveis meteorológicas contínuas e categóricas. As principais features:
- Temperatura (°C)
- Umidade (%)
- Velocidade do Vento (km/h)
- Precipitação (%)
- Pressão Atmosférica (hPa)
- Índice UV
- Visibilidade (km)
- Cobertura de Nuvens
- Estação do Ano
- Localização
- Tipo de Clima (alvo)
Algumas variáveis incluem valores extremos propositalmente, reforçando o desafio do problema.
Todo o pré-processamento foi realizado dentro de um Pipeline do scikit-learn:
StandardScaler→ variáveis numéricasOneHotEncoder→ variáveis categóricas- Remoção de variáveis que podem introduzir viés (Estação, Localização)
O treino foi avaliado com validação cruzada (k=5).
Após testar Decision Tree, Random Forest, XGBoost e CatBoost, escolheu-se:
DecisionTreeClassifier(
max_depth=3,
min_samples_split=10,
random_state=11
)