Unidad 9 / 11

Análisis de datos automotrices con Python: de extremo a extremo

Ganancias:

  • Capacidad para establecer un flujo de trabajo de análisis repetible que carga y limpia datos de telemetría, pruebas y producción con pandas.
  • Capacidad para comprender y verificar la salida línea por línea mientras recibe código, atributos y asistencia de visualización de la inteligencia artificial.
  • Capacidad para auditar los resultados del análisis para determinar la coherencia de la unidad, la fuga de datos y la reproducibilidad.

En unidades anteriores utilizamos la inteligencia artificial como "asesor". En esta unidad, vamos un paso más allá y establecemos un flujo de trabajo que analiza datos automotrices con nuestras propias manos, usando Python. El objetivo no es convertirte en desarrollador de software; Se trata de formar un ingeniero que pueda comprender y verificar ese código línea por línea mientras recibe asistencia de código de la IA. Porque el código producido por la IA puede ser defectuoso, al igual que el texto producido por la IA; puede confundir el volumen, filtrar datos, centrar la columna incorrecta. Ejecutar el código sin comprenderlo es como publicar un informe sin firmar.

Pitón ¿por qué? Porque es el estándar de facto en el análisis de datos: puede procesar fácilmente datos de telemetría, pruebas y producción con las bibliotecas pandas (datos tabulares), numpy (procesamiento numérico), matplotlib (trama) y scikit-learn (aprendizaje automático).

Seis pasos para un análisis reproducible

Un análisis sólido siempre sigue el mismo marco:

  1. Cargar: leer datos del archivo.
  2. Inspeccionar: dimensión, columnas, tipos de datos, valores faltantes.
  3. Limpiar: faltante/valor atípico, unidad, corrección de marca de tiempo.
  4. Función de extracción: deriva variables significativas.
  5. Análisis/modelo: Estadísticas, visualización o modelo.
  6. Verificar e informar: provisión de resultados, verificación de volumen/fugas, registro.
Consejo: cuando le pida código a la IA, diga "comenta lo que estás haciendo en cada paso y escribe tus suposiciones". Para que puedas verificar el código mientras lo lees.

Ejemplo paso a paso: análisis de telemetría

El siguiente código carga un registro CAN/telemetría y realiza comprobaciones básicas. (Nota: asegúrese de comprender los códigos antes de ejecutarlos; los nombres de las columnas varían según sus datos).

importar pandas como pd# 1) Cargar: CSV con semipuntos, primera columna timestampdf = pd.read_csv("telemetry.csv", parse_dates=["time"])# 2) Checkprint(df.shape) # cuántas filas, cuántas columnasprint(df.dtypes) # tipo de cada columna (número o texto)print(df.isna().sum()) # número de valores faltantes por columnprint(df.describe()) # estadísticas resumidas: mínimo, máximo, promedio

La salida describe() es su primera oportunidad para verificar: si el valor máximo de velocidad del motor es 45,000 rpm (motor de pasajeros típico ~7,000 rpm), hay una falla en la unidad o el sensor.

Los comandos de pandas más utilizados en el paso de auditoría y lo que hacen:

comando

¿Qué hace?

¿Qué confirma?

df.forma

Número de filas/columnas

¿Es el tamaño esperado?

df.dtipos

Tipos de columnas

¿La columna numérica se ha convertido en texto?

df.isna().suma()

Recuento de valores faltantes

¿Cuánto espacio hay?

df.describe()

Mínimo/máximo/promedio

¿Es físicamente razonable?

df.duplicado().suma()

fila duplicada

¿Existe doble registro?

#3) Claro: marcar valores físicamente imposibles

Precaución: No elimine el valor atípico inmediatamente; Primero comprenda por qué es un valor atípico. ¿Es un evento real (calentamiento repentino) o una falla del sensor? La eliminación ciega puede ocultar el error real.

# 4) Función de extracción: tasa de aumento de temperatura (derivada)df = df.sort_values("time")df["sic_increase_speed"] = df["motor_sic"].diff() / df["time"].diff().dt.total_segundos()# 5) Visualización simple: importe matplotlib.pyplot como pltplt.plot(df["time"], df["motor_sic"])plt.xlabel("Tiempo"); plt.ylabel("Temperatura del motor (C)")plt.title("Curso de temperatura del motor")plt.show()

Prevenir la fuga de datos en Python

El error más peligroso al construir un modelo de predicción es la fuga de datos (unidad 5): cuando el modelo ve información que no se puede conocer en el momento de la predicción. La regla de oro para evitar esto en las series temporales: entrenar con el pasado, probar con el futuro, sin cambios aleatorios.

de sklearn.model_selection import train_test_split# FALSO: dividir aleatoriamente la serie temporal filtra el futuro# df[df["time"] > umbral] # último 20% futuro

Precaución: train_test_split mezcla los datos de forma predeterminada (shuffle=True). En la serie temporal, esto confunde el futuro con la educación y produce una puntuación alta falsa. Si la IA ha hecho esto en el código que produce, asegúrese de solucionarlo.

Consistencia de la unidad: asesino silencioso

Los errores más insidiosos en automoción son los errores unitarios: km/h a m/s, Nm a lb-ft, bar a kPa, °C a K. Mantener un diccionario de cuál es la unidad de cada columna en el análisis y anotar las conversiones claramente salva vidas.

# Documentar las unidades explícitamente = {"velocidad": "km/h", "motor_sic": "C", "presión": "bar"}# Conversión explícita si es necesario (km/h -> m/s)df["velocidad_ms"] = df["velocidad"] / 3.6

Mini estudios de casos

Caso 1: error detectado con describe(). Un analista ejecuta el código de la IA y realiza una estimación del alcance; El resultado es absurdamente alto. Cuando miramos la salida describe(), vemos que la capacidad de la batería se ingresa en Wh en algunas líneas y en kWh en otras (diferencia de 1000 veces). Cuando la unidad alcanza un tipo uniforme, el resultado mejora. Conclusión: una simple estadística resumida evitó una mala predicción.

Caso 2 - Trampa de confusión. El modelo de desgaste de frenos de un pasante tuvo una precisión del 98% en el conjunto de prueba. Cuando se examina el código, se puede ver que train_test_split(shuffle=True) y la serie temporal están mezclados, lo que significa que los puntos futuros se filtran en el entrenamiento. Cuando se divide por tiempo, la precisión cae al 80%, pero ahora es realista. Conclusión: el hecho de que el código de IA funcionara no era correcto; El humano detectó la fuga.

Caso 3: Comprender el valor atípico. En un registro de durabilidad, el código AI elimina automáticamente los valores de deformación atípicos. El ingeniero mira los puntos eliminados; Estos fueron exactamente los momentos de inicio del crack que interesaron a la prueba. La eliminación se elimina y las infracciones se llevan a una revisión separada. Resultado: En "Limpiar" se puede borrar la señal real; Cuestiona cada paso.

plantillas de mensajes

Plantilla 1 - Código de solicitud (con explicación):

Rol: Eres un mentor de analista de datos de Python. Tarea: Escribe código que cargue y verifique un CSV de telemetría. Contexto: Columnas: tiempo, velocidad (km/h), motor_sic (C), revolución (rpm). Restricción: comenta cada fila; Explique qué control se realizó y por qué; agregar verificación de valor físicamente imposible; sin eliminar nada silenciosamente. Salida: código comentado + qué salida debo mirar y por qué.

Plantilla 2 - Inspección de fugas:

Rol: eres un revisor de código de aprendizaje automático. Tarea: Verifique el siguiente código dividido de entrenamiento/prueba para detectar fugas de datos. Contexto: Esta es una serie temporal (telemetría de vehículos). Restricción: Advierte si hay una mezcla aleatoria; Sugerir y justificar la división por tiempo. Salida: Hallazgos + código corregido + explicación.

Plantilla 3 - Validación unitaria:

Rol: es un auditor de calidad de datos. Tarea: sugiere verificaciones que busquen inconsistencias de unidades en un marco de datos. Contexto: la capacidad puede ser kWh en algunas filas y Wh en otras. Salida: verificar el código + cómo encontrar el patrón sospechoso.

Plantilla 4 - Visualización + comentario:

Rol: Eres un experto en visualización de datos. Tarea: escribir código que trace el curso de la temperatura del motor y la tasa de aumento. Restricción: Etiquete los ejes con la unidad; marcar visualmente la anomalía; No reclame culpa definitiva al interpretar el gráfico. Salida: Código + qué buscar en el gráfico.

Aviso débil / Aviso fuerte

Aviso débil:

Construya un modelo con estos datos.

No está claro qué objetivo, qué compartimento, qué verificación; La IA puede generar códigos codificados, con fugas y ciegos a las unidades.

Potente mensaje:

Rol: Eres un mentor de Python ML. Tarea: escribir un flujo de trabajo inicial para predecir el desgaste de las pastillas de freno y demostrar los errores de validación. Contexto: Telemetría de series temporales; objetivo: espesor restante de la almohadilla. Restricción: dividir series temporales por tiempo (sin barajar); marcar atributos en riesgo de fuga de datos; documentar unidades; interpretar cada paso; Anote qué controles se requieren antes de que el resultado salga al campo. Salida: Código comentado + lista de verificación de verificación.

Errores comunes

  • Ejecutar el código sin entenderlo. El código AI también puede estar defectuoso; Leer línea por línea.
  • Mezcla de series temporales. shuffle=True filtra el futuro y produce una puntuación falsa.
  • Elimina ciegamente el valor atípico. La señal real (inicio de fallo) se puede borrar.
  • No documentar la unidad. Errores como km/h vs m/s, Wh vs kWh crecen silenciosamente.
  • Saltándose el paso describir()/verificar. La mayoría de los errores aparecen en las primeras estadísticas resumidas.

En resumen

  • Python (pandas, numpy, matplotlib, scikit-learn) es el estándar de facto para el análisis de datos automotrices.
  • Análisis repetible: cargar, inspeccionar, limpiar, presentar, analizar, validar e informar.
  • Es imperativo comprender y verificar el código que produce la IA línea por línea; Sólo porque funcione no significa que sea correcto.
  • Mantener la distinción pasado/futuro en las series temporales; La mezcla aleatoria crea fuga de datos.
  • La coherencia de la unidad y la interpretación de valores atípicos son puntos de verificación silenciosos pero críticos.

Tarea de aplicación

Tome un pequeño conjunto de datos (telemetría real o sintética). (1) Siguiendo el marco de seis pasos, genere el código de carga y control con la Plantilla 1 y confirme que comprende cada línea. (2) Encuentre al menos un valor sospechoso en la salida de describe() e investigue por qué. (3) En una tarea de predicción, cronometre la división entre entrenamiento y prueba y verifique el riesgo de fuga con la Plantilla 2. (4) Documente la unidad de cada columna que utilice en un diccionario.

lista de verificación

  • [] Configuré el análisis con un marco de seis pasos.
  • [] Leí y entendí el código producido por AI línea por línea.
  • [] Busqué valores sospechosos con describe()/audit.
  • [] Divido la serie temporal por tiempo (sin barajar).
  • [] Marqué los atributos que corren riesgo de fuga de datos.
  • [] Documenté la unidad de cada columna y escribí las conversiones explícitamente.