Procesos gaussianos desde cero.  Obtenga una comprensión más profunda de Gaussiano… |  de Theo Wolf |  enero de 2024

Obtenga una comprensión más profunda de los procesos gaussianos implementándolos solo con NumPy.

Los procesos gaussianos (GP) son una clase increíble de modelos. Existen muy pocos algoritmos de aprendizaje automático que le brinden una medida precisa de la incertidumbre de forma gratuita y al mismo tiempo sean súper flexibles. El problema es que conceptualmente los médicos de cabecera son muy difíciles de entender. La mayoría de las explicaciones utilizan algo de álgebra y probabilidad complejas, lo que a menudo no es útil para tener una intuición sobre cómo funcionan estos modelos.

También hay muchas guías excelentes que se saltan las matemáticas y le brindan una intuición sobre cómo funcionan estos modelos, pero cuando se trata de usar médicos de cabecera usted mismo, en el contexto correcto, mi creencia personal es que el conocimiento superficial no es suficiente. Es por eso que quería explicar una implementación básica, desde cero, para que tenga una idea más clara de lo que sucede bajo el capó de todas las bibliotecas que implementan estos modelos para usted.

También vinculo mi repositorio de GitHub, donde encontrarás la implementación de GPs usando únicamente NumPy. He tratado de abstraerme de las matemáticas tanto como sea posible, pero obviamente todavía hay algunas que son necesarias…

El primer paso es siempre echar un vistazo a los datos. Usaremos la concentración atmosférica mensual de CO2 a lo largo del tiempo, medida en el observatorio de Mauna Loa, un conjunto de datos común para los médicos de cabecera. [1]. Este es intencionalmente el mismo conjunto de datos que sklearn usa en su tutorial de médico de cabeceraque enseña cómo usar su API y no lo que sucede bajo el capó del modelo.

Partes por millón (ppm) de CO2 mensuales en el observatorio de Mauna Loa. (Imagen del autor)

Este es un conjunto de datos muy simple, que facilitará la explicación de las matemáticas siguientes. Las características destacables son la tendencia lineal al alza así como la tendencia estacional, con un periodo de un año.

Lo que haremos será separar el componente estacional y componentes lineales de los datos. Para hacer esto, ajustamos un modelo lineal a los datos.