Filtro Savitzky-Golay para el suavizado de datos: hacia la IA

Estás leyendo la publicación: Filtro Savitzky-Golay para el suavizado de datos: hacia la IA

Publicado originalmente en Hacia la IA, la empresa líder mundial en noticias y medios de IA y tecnología. Si está creando un producto o servicio relacionado con la IA, lo invitamos a considerar convertirse en patrocinador de la IA. En Hacia la IA, ayudamos a escalar las empresas emergentes de IA y tecnología. Permítanos ayudarlo a dar rienda suelta a su tecnología a las masas.

Aprendizaje automático

La técnica más subestimada durante el preprocesamiento de datos

La regla no escrita en la vida de cualquier ingeniero de ML/IA o científico de datos es que “dedique una buena cantidad de tiempo a la limpieza y el preprocesamiento de datos”, porque “la basura entra, la basura sale”. Mientras preparamos el conjunto de datos para el entrenamiento/modelado, olvidamos tener en cuenta los valores atípicos en los datos.

Valores atípicos y cómo lidiar con ellos

Los valores atípicos son puntos en los datos que se encuentran en los extremos de sus respectivos rangos de variables. por ejemplo: una altura de 7 pies rara vez se ve en cualquier conjunto de datos que contenga las alturas de algunas X personas. En este ejemplo en particular, la altura es una inconsistencia en el registro de datos o la medida correcta; de cualquier manera, es difícil saberlo con certeza y tiene un gran impacto en el modelo si no se trata de antemano.

Hay una serie de soluciones que se pueden aplicar en estos casos. Podríamos usar algoritmos de detección de anomalías/valores atípicos para eliminarlos. Hay muchos tipos diferentes de algoritmos para hacer esto que no cubriré en este artículo, ya que es un área de estudio muy amplia que no se puede incorporar en un solo artículo.

🔥 Recomendado:  6 consejos de gestión de proyectos para hacer las cosas

Existe otro método conocido como suavizado de datos que intenta retener la información proporcionada a través de estos puntos anormales y no eliminarlos por completo. Es una buena práctica eliminar los puntos que se encuentran en los extremos (significativamente diferentes de los datos), por ejemplo, una altura de 20 pies, es sin duda un valor atípico y no se debe muestrear al entrenar sus modelos. Las técnicas de suavizado son mejores cuando hay datos anormales de vez en cuando en los datos, por ejemplo, picos repentinos en los datos de series temporales de AQI, lo que podría ser cierto, pero tratarlos es un paso importante.

Filtro Savitzky-Golay

Aquí es donde este increíble filtro de paso bajo entra en escena. Esto se usa principalmente en el procesamiento de señales como un filtro para las fluctuaciones de la señal. Esto también podría usarse para suavizar los datos. Este filtro trata de aproximarse a la función original eliminando las fluctuaciones/ruidos inútiles de los datos que muy bien pueden confundir a su modelo.

Como funciona

Para las personas que están familiarizadas con el concepto de convolución nD en el aprendizaje profundo, este filtro funciona así. Para aquellos que no están familiarizados, esto funciona de manera muy similar a una técnica de promedio móvil, pero podemos especificar el orden del polinomio con el que se ajustan los datos.

Este filtro se usa ampliamente en química analítica y electrónica, y se pasa por alto principalmente en el aprendizaje automático (la razón por la que decidí escribir sobre esto).

Para la derivación matemática consulte Aquí.

🔥 Recomendado:  Cuando los zapatos se encuentran con los trajes: historias épicas de éxito empresarial de jugadores de fútbol profesionales

Implementación en Python

Veamos un ejemplo del mundo real que nos aclararía esto. Usaremos la función savgol_filter del paquete scipy.signal. Eche un vistazo al siguiente código simple que escribí para demostrar cómo funciona este filtro. El tamaño de ventana óptimo y se descubren experimentando con diferentes valores. Tomar tamaños de ventana más altos cambiará demasiado el significado de los datos, por lo que se recomiendan ventanas pequeñas impares, aunque estas se determinan en función del dominio, la situación y los resultados de varios experimentos.

Tomé 5 días de datos de DOGE: datos en USD de Yahoo Finance y usé los máximos de todos los días para mostrar cómo podemos suavizar los datos conservando la estructura original del conjunto de datos.

Esto produce la siguiente trama:

Conclusión

En ejemplos del mundo real, esto funciona bastante bien y es muy flexible según nuestras necesidades. Esto realmente se pasa por alto en este campo y, con suerte, he arrojado algo de luz sobre este concepto. Consulte el documento original si la idea le interesa y desea obtener más información al respecto.

Gracias por leer. Si lo has leído hasta aquí, me siento honrado.


El filtro Savitzky-Golay para el suavizado de datos se publicó originalmente en Towards AI en Medium, donde las personas continúan la conversación resaltando y respondiendo a esta historia.

Publicado a través de Hacia la IA