Skip to content

ntgj/Machine-Learning-Weather-Classification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

🌦️ Classificação do Tipo de Clima com Machine Learning

Decision Tree Classifier interpretável para previsão de clima

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%.


📁 1. Visão Geral do Projeto

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.


📊 2. Descrição do Dataset

O dataset contém variáveis meteorológicas contínuas e categóricas. As principais features:

🔹 Variáveis Numéricas

  • Temperatura (°C)
  • Umidade (%)
  • Velocidade do Vento (km/h)
  • Precipitação (%)
  • Pressão Atmosférica (hPa)
  • Índice UV
  • Visibilidade (km)

🔹 Variáveis Categóricas

  • 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.


🧹 3. Pré-processamento

Todo o pré-processamento foi realizado dentro de um Pipeline do scikit-learn:

  • StandardScaler → variáveis numéricas
  • OneHotEncoder → 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).


🤖 4. Modelo Utilizado

Após testar Decision Tree, Random Forest, XGBoost e CatBoost, escolheu-se:

DecisionTreeClassifier(
    max_depth=3,
    min_samples_split=10,
    random_state=11
)

About

Decision Tree Classifier interpretável para previsão de clima

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published