Skip to content

julia-lika/arte-dos-dados-projeto2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projeto 2: Car Insurance Premium Prediction

Este projeto foca na criação de um pipeline completo de pré-processamento de dados com o objetivo de prever prêmios de seguro de carro. O pipeline aborda desde a limpeza inicial dos dados até a análise exploratória e a aplicação das transformações em um conjunto de teste separado.

Estrutura do Projeto

  • projeto2.ipynb: Notebook de desenvolvimento e análise, onde o pipeline foi explorado, visualizado e construído usando o car_insurance_premium_dataset.csv.
  • aplicar_pipeline.py: Script Python final que aplica o pipeline aprendido nos dados de treino (..._dataset.csv) para processar os novos dados (..._dataset_TEST.csv), evitando vazamento de dados (data leakage).
  • car_insurance_premium_dataset.csv: O conjunto de dados de treino.
  • car_insurance_premium_dataset_TEST.csv: O conjunto de dados de teste.
  • requirements.txt: As bibliotecas Python necessárias para rodar o projeto.

Parte 1: O Notebook (.ipynb) - Desenvolvimento e Análise

O Jupyter Notebook (projeto2.ipynb) é o "laboratório" onde o pipeline foi desenvolvido e testado. Ele executa todas as 7 tarefas de pré-processamento e análise no conjunto de dados de treino.

Explicação das Tarefas no Notebook

  1. Padronização de Nomes (Tarefas 1 & 2):

    • As colunas são convertidas para lowercase (ex: Driver Age -> driver age).
    • Caracteres especiais são removidos e espaços são substituídos por _ (ex: driver age -> driver_age, insurance_premium ($) -> insurance_premium_$).
  2. Tratamento de Outliers (Tarefa 3):

    • O notebook implementa corretamente as duas metodologias solicitadas: IQR e Z-Score (com limite de 3).
    • Foi demonstrado (com boxplots e logs) que este conjunto de dados sintético não possuía outliers significativos, mas o código para substituí-los pela mediana está implementado.
  3. Tratamento de Missing Values (Tarefa 4):

    • Primeiro, o notebook verifica a existência de dados ausentes (df.isnull().sum()).
    • Como não foram encontrados valores ausentes, o notebook demonstra a implementação correta usando SimpleImputer do Scikit-learn com a estratégia median, garantindo que o pipeline esteja pronto para dados do mundo real.
  4. Tratamento de Dados Categóricos (Tarefa 5):

    • O notebook analisa os tipos de dados (select_dtypes) e identifica corretamente que não há colunas categóricas neste conjunto.
    • Uma excelente descrição em markdown é fornecida, explicando o que seria feito caso existissem (a diferença entre One-Hot Encoding para dados nominais e Ordinal Encoding para dados ordinais).
  5. Análise Exploratória (EDA) (Tarefa 6):

    • KDE Plots: Mostram a distribuição e a forma de cada variável numérica.
    • Heatmap (Correlação): Usado para identificar relações. A análise aponta corretamente a forte multicolinearidade entre car_age e car_manufacturing_year (-1.00) e entre driver_age e driver_experience (0.82).
    • Regplots (Análise de Alvo): Gráficos de dispersão com linha de regressão são usados para visualizar a relação linear de cada feature com a variável alvo (insurance_premium_$). As conclusões da análise (ex: prêmios mais altos para motoristas com mais acidentes) estão corretas.
  6. Descrição dos Tipos de Dados (Tarefa 7):

    • Uma descrição conceitual detalhada de cada tipo de dado (float, int64, bool, etc.) é fornecida no final.

Parte 2: O Script (.py) - Aplicação do Pipeline

O script aplicar_pipeline.py é o pipeline "em produção". Seu objetivo principal é processar o arquivo car_insurance_premium_dataset_TEST.csv usando as regras e estatísticas aprendidas apenas do car_insurance_premium_dataset.csv.

Isso é fundamental para evitar Data Leakage (Vazamento de Dados). Por exemplo, a mediana usada para substituir outliers ou valores ausentes no conjunto de teste é a mediana calculada no conjunto de treino.

Lógica do Script

  1. Carregar Dados: Carrega ambos os arquivos _dataset.csv (treino) e _dataset_TEST.csv (teste).
  2. Limpar Nomes: Aplica a padronização de nomes de colunas em ambos os dataframes.
  3. Aprender (Fit): O script calcula e armazena todas as estatísticas necessárias apenas do df_treino:
    • Medianas de todas as colunas (para Outliers e Missing Values).
    • Limites de IQR (Q1, Q3).
    • Limites de Z-Score (Média, Desvio Padrão).
    • Um SimpleImputer é "treinado" (fitado) com as medianas do treino.
  4. Aplicar (Transform): O script aplica essas estatísticas aprendidas para transformar o df_teste.
  5. Gerar Saídas: Ele salva 3 versões processadas do conjunto de teste:
    • car_insurance_premium_dataset_TEST_outliers_iqr.csv
    • car_insurance_premium_dataset_TEST_outliers_zscore.csv
    • car_insurance_premium_dataset_TEST_imputed.csv

Guia de Execução

Siga estes passos para configurar e executar o projeto em seu ambiente local (Linux ou Windows).

1. Pré-requisitos

  • Python 3.7+
  • Git (para clonar o repositório)

2. Instalação

  1. Clone o repositório:

    git clone https://github.com/julia-lika/arte-dos-dados-projeto2.git

    ou

    git clone git@github.com:julia-lika/arte-dos-dados-projeto2.git

    e, após clonar:

    cd arte-dos-dados-projeto2
  2. Crie um ambiente virtual (Recomendado):

    • Linux/macOS:
      python3 -m venv venv
      source venv/bin/activate
    • Windows:
      python -m venv venv
      .\venv\Scripts\activate
  3. Instale as dependências:

    pip install -r requirements.txt

3. Execução

Certifique-se de que os arquivos car_insurance_premium_dataset.csv e car_insurance_premium_dataset_TEST.csv estejam no diretório.

A. Para explorar o Notebook (.ipynb)

  1. Inicie o Jupyter Lab:
    jupyter lab
  2. No navegador, abra o arquivo projeto2.ipynb e execute as células.

B. Para aplicar o pipeline no TEST (script .py)

  1. Execute o script aplicar_pipeline.py no seu terminal.

    • Linux/macOS:
      python3 aplicar_pipeline.py
    • Windows:
      python aplicar_pipeline.py

4. Saída Esperada (do Script)

Após executar o aplicar_pipeline.py, você verá mensagens no console detalhando o processo. Três novos arquivos serão criados no seu diretório:

  1. car_insurance_premium_dataset_TEST_outliers_iqr.csv: O conjunto de teste com outliers (se houver) tratados pela regra do IQR do treino.
  2. car_insurance_premium_dataset_TEST_outliers_zscore.csv: O conjunto de teste com outliers (se houver) tratados pela regra do Z-Score do treino.
  3. car_insurance_premium_dataset_TEST_imputed.csv: O conjunto de teste com valores ausentes (se houver) preenchidos com a mediana do treino.

About

Projeto 2 realizado para o programa Arte dos Dados

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors