Unidade 9 / 11

Análise de dados automotivos com Python: ponta a ponta

Ganhos:

  • Capacidade de estabelecer um fluxo de trabalho de análise repetível que carrega e limpa dados de telemetria, teste e produção com pandas
  • Capacidade de compreender e verificar a saída linha por linha enquanto recebe código, atributos e assistência de visualização da inteligência artificial
  • Capacidade de auditar os resultados da análise quanto à consistência da unidade, vazamento de dados e reprodutibilidade

Nas unidades anteriores, utilizamos a inteligência artificial como um “conselheiro”. Nesta unidade, vamos um passo além e estabelecemos um fluxo de trabalho que analisa dados automotivos com nossas próprias mãos, usando Python. O objetivo não é fazer de você um desenvolvedor de software; É fazer um engenheiro que possa entender e verificar esse código linha por linha enquanto obtém assistência de código da IA. Porque o código produzido pela IA pode apresentar falhas, assim como o texto produzido pela IA; pode confundir volume, vazar dados, centralizar coluna errada. Executar o código sem entendê-lo é como publicar um relatório não assinado.

Python por quê? Porque é o padrão de fato em análise de dados: você pode processar facilmente dados de telemetria, teste e produção com bibliotecas pandas (dados tabulares), numpy (processamento numérico), matplotlib (plot) e scikit-learn (aprendizado de máquina).

Seis etapas para uma análise reproduzível

Uma análise sólida segue sempre a mesma estrutura:

  1. Carregar: Leia os dados do arquivo.
  2. Inspecione: Dimensão, colunas, tipos de dados, valores ausentes.
  3. Limpo: ausente/atípico, unidade, correção de carimbo de data/hora.
  4. Recurso de extração: Derive variáveis ​​significativas.
  5. Análise/modelo: Estatística, visualização ou modelo.
  6. Verificar e relatar: Fornecimento de resultados, verificação de volume/vazamento, registro.
Dica: ao solicitar código à IA, diga “comente o que você está fazendo em cada etapa e escreva suas suposições”. Assim, você pode verificar o código enquanto o lê.

Exemplo passo a passo: análise de telemetria

O código a seguir carrega um registro CAN/telemetria e faz verificações básicas. (Observação: certifique-se de compreender os códigos antes de executá-los; os nomes das colunas variam dependendo dos seus dados.)

importar pandas como pd# 1) Carregar: CSV semiponto, primeira coluna timestampdf = pd.read_csv("telemetry.csv", parse_dates=["time"])# 2) Checkprint(df.shape) # quantas linhas, quantas colunasprint(df.dtypes) # tipo de cada coluna (número ou texto)print(df.isna().sum()) # número de valores ausentes por columnprint(df.describe()) # estatísticas resumidas: mínimo, máximo, média

A saída describe() é sua primeira oportunidade de verificar: se o valor máximo da velocidade do motor for 45.000 rpm (motor de passageiro típico ~7.000 rpm), há uma falha na unidade ou no sensor.

Os comandos do pandas usados com mais frequência na etapa de auditoria e o que eles fazem:

comando

O que faz

O que isso confirma?

df.forma

Número de linhas/colunas

É o tamanho esperado?

df.dtypes

Tipos de coluna

A coluna numérica se tornou texto?

df.isna().sum()

Contagem de valores ausentes

Quanto espaço existe?

df.describe()

Mín/máx/média

É fisicamente razoável?

df.duplicado().sum()

linha duplicada

Existe dupla inscrição?

# 3) Claro: marque valores fisicamente impossíveis

Cuidado: Não exclua o valor discrepante imediatamente; Primeiro entenda por que é um valor discrepante. É um evento real (aquecimento repentino) ou falha do sensor? Excluir cegamente pode ocultar a falha real.

# 4) Recurso de extração: taxa de aumento de temperatura (derivado)df = df.sort_values("time")df["sic_increase_speed"] = df["motor_sic"].diff() / df["time"].diff().dt.total_seconds()# 5) Visualização simplesimportar matplotlib.pyplot como pltplt.plot(df["time"], df["motor_sic"])plt.xlabel("Tempo"); plt.ylabel("Temperatura do motor (C)")plt.title("Curso de temperatura do motor")plt.show()

Prevenindo vazamento de dados em Python

O erro mais perigoso na construção de um modelo de previsão é o vazamento de dados (unidade 5): quando o modelo vê informações que não podem ser conhecidas no momento da previsão. A regra de ouro para evitar isso em séries temporais: treinar com o passado, testar com o futuro – sem embaralhamento aleatório.

from sklearn.model_selection import train_test_split# FALSO: dividir aleatoriamente a série temporal vaza o futuro# df[df["time"] > limite] # últimos 20% do futuro

Cuidado: train_test_split embaralha os dados por padrão (shuffle=True). Na série temporal, isto confunde o futuro com a educação e produz uma pontuação falsamente alta. Se a IA fez isso no código que produz, certifique-se de corrigi-lo.

Consistência da unidade: assassino silencioso

Os erros mais insidiosos no setor automotivo são erros de unidade: km/h para m/s, Nm para lb-ft, bar para kPa, °C para K. Manter um dicionário de qual é a unidade de cada coluna na análise e anotar as conversões claramente salva vidas.

# Documente as unidades explicitamente = {"speed": "km/h", "motor_sic": "C", "pression": "bar"}# Conversão explícita se necessário (km/h -> m/s)df["speed_ms"] = df["speed"] / 3.6

Miniestudos de caso

Caso 1 - Erro detectado com description(). Um analista executa o código da IA ​​e faz uma estimativa de alcance; O resultado é absurdamente alto. Quando olhamos para a saída describe(), vemos que a capacidade da bateria é inserida em Wh em algumas linhas e em kWh em outras (diferença de 1000 vezes). Quando a unidade é uniformizada, o resultado melhora. Conclusão: Um simples resumo estatístico evitou uma previsão ruim.

Caso 2 – Armadilha de confusão. O modelo de desgaste dos freios de um estagiário foi 98% preciso no conjunto de testes. Quando o código é examinado, pode-se ver que train_test_split(shuffle=True) e a série temporal estão misturadas, o que significa que pontos futuros vazam para o treinamento. Quando dividido pelo tempo, a precisão cai para 80%, mas agora é realista. Conclusão: só porque o código de IA funcionou, não estava certo; Humano percebeu o vazamento.

Caso 3 – Compreendendo o outlier. Em um registro de durabilidade, o código AI exclui automaticamente valores de deformação discrepantes. O engenheiro analisa os pontos excluídos; Esses eram exatamente os momentos de início do crack que interessavam ao teste. A exclusão é removida e as violações são levadas para revisão separada. Resultado: Em "Limpeza" o sinal real pode ser apagado; questione cada passo.

modelos de prompt

Modelo 1 – Código de solicitação (com explicação):

Função: Você é um mentor de analista de dados Python. Tarefa: Escrever código que carrega e verifica um CSV de telemetria. Contexto: Colunas: tempo, velocidade (km/h), motor_sic (C), revolução (rpm). Restrição: comentar cada linha; Explique qual verificação foi feita e por quê; adicionar verificação de valor fisicamente impossível; excluindo nada silenciosamente. Saída: código comentado + qual saída devo analisar e por quê.

Modelo 2 – Inspeção de vazamentos:

Função: você é um revisor de código de aprendizado de máquina. Tarefa: Verifique o código de divisão de treinamento/teste a seguir quanto a vazamentos de dados. Contexto: Esta é uma série temporal (telemetria veicular). Restrição: Avisar se houver embaralhamento aleatório; Sugira e justifique a divisão por tempo. Saída: descobertas + código corrigido + explicação.

Modelo 3 – Validação da unidade:

Função: Você é um auditor de qualidade de dados. Tarefa: Sugira verificações que procurem inconsistências de unidades em um DataFrame. Contexto: A capacidade pode ser kWh em algumas linhas e Wh em outras. Saída: Verifique o código + como encontrar o padrão suspeito.

Modelo 4 – Visualização + comentário:

Função: você é um especialista em visualização de dados. Tarefa: Escreva um código que represente graficamente o curso da temperatura do motor e a taxa de aumento. Restrição: Rotule os eixos com a unidade; marcar visualmente a anomalia; não alegue uma falha definitiva ao interpretar o gráfico. Saída: Código + o que procurar no gráfico.

Alerta fraco / Alerta forte

Alerta fraco:

Construa um modelo com esses dados.

Não está claro qual alvo, qual compartimento, qual verificação; A IA pode gerar código embaralhado, com vazamento e cego à unidade.

Alerta poderoso:

Função: você é um mentor de Python ML. Tarefa: Escreva um fluxo de trabalho inicial para prever o desgaste das pastilhas de freio e demonstrar as armadilhas da validação. Contexto: Telemetria de séries temporais; alvo: espessura restante da almofada. Restrição: dividir a série temporal por tempo (sem embaralhamento); sinalizar atributos em risco de vazamento de dados; documentar unidades; interpretar cada etapa; Anote quais verificações são necessárias antes que o resultado vá para o campo. Saída: Código comentado + lista de verificação de verificação.

Erros comuns

  • Executar o código sem entendê-lo. O código AI também pode estar com defeito; Leia linha por linha.
  • Misturando séries temporais. shuffle=True vaza o futuro e produz uma pontuação falsa.
  • Exclua cegamente o outlier. O sinal real (início da falha) pode ser apagado.
  • Não documentar a unidade. Erros como km/h vs m/s, Wh vs kWh crescem silenciosamente.
  • Ignorando a etapa de descrição()/verificação. A maioria dos erros aparece nas primeiras estatísticas resumidas.

Em resumo

  • Python (pandas, numpy, matplotlib, scikit-learn) é o padrão de fato para análise de dados automotivos.
  • Análise repetível: carregar, inspecionar, limpar, caracterizar, analisar, validar e relatar.
  • É fundamental compreender e verificar o código que a IA produz linha por linha; Só porque funciona não significa que esteja certo.
  • Manter distinção passado/futuro em séries temporais; O embaralhamento aleatório cria vazamento de dados.
  • A consistência da unidade e a interpretação de valores discrepantes são pontos de verificação silenciosos, mas críticos.

Tarefa de aplicativo

Pegue um pequeno conjunto de dados (telemetria real ou sintética). (1) Seguindo a estrutura de seis etapas, gere o código de carregamento e controle com o Modelo 1 e confirme se você entendeu cada linha. (2) Encontre pelo menos um valor suspeito na saída describe() e investigue o porquê. (3) Em uma tarefa de previsão, cronometre a divisão de treinamento/teste e verifique o risco de vazamento com o Modelo 2. (4) Documente a unidade de cada coluna usada em um dicionário.

lista de verificação

  • [] Eu configurei a análise com uma estrutura de seis etapas.
  • [] Li e entendi o código produzido pela IA linha por linha.
  • [] Procurei valores suspeitos com description()/audit.
  • [] Dividi a série temporal por tempo (sem embaralhamento).
  • [ ] Marquei os atributos que correm risco de vazamento de dados.
  • [] Documentei a unidade de cada coluna e escrevi as conversões explicitamente.