Una guía para el modelado automatizado de series de tiempo con FEDOT

Estás leyendo la publicación: Una guía para el modelado automatizado de series de tiempo con FEDOT

En los últimos años, hemos sido testigos del surgimiento de varios enfoques de aprendizaje automático automatizado. Hay marcos y bibliotecas para AutoML que han sorprendido a la comunidad de profesionales de la ciencia de datos con sus resultados. FEDOT también es un marco que puede proporcionarnos varias funciones de aprendizaje automático automatizado. En este artículo, analizaremos FEDOT para el aprendizaje automático automatizado y también cubriremos un ejemplo de modelado de series de tiempo utilizando FEDOT. Los puntos principales que se discutirán en el artículo se enumeran a continuación.

Tabla de contenido

  1. ¿Qué es FEDOT?
  2. Modelado de series de tiempo usando FEDOT
    1. Importación de datos
    2. Importación de módulos desde FEDOT
    3. Procesamiento de datos usando FEDOT
    4. Definición de tarea y modelo
    5. Iniciando el modelado
    6. Haciendo predicciones
    7. Visualización de tubería

¿Qué es FEDOT?

FEDOT es un marco que admite el modelado automatizado de aprendizaje automático y está disponible para nosotros como código abierto. Con este marco, podemos personalizar la canalización de los procedimientos de modelado de aprendizaje automático. Esta biblioteca se puede utilizar para problemas del mundo real de una manera simple y automatizada donde, bajo el capó, utiliza varios enfoques evolutivos de modelado. Con este marco, podemos resolver problemas relacionados con la clasificación, la regresión, la agrupación y el modelado de series temporales.

Una cosa que nos atrae de este marco es que tiene una variedad de módulos que se pueden usar para el modelado de extremo a extremo. Este marco también proporciona módulos para procesos básicos como preprocesamiento de datos, ingeniería de características, optimización de modelos, etc. Al usar este marco, también podemos crear gráficos que nos pueden decir que el marco sigue el procedimiento utilizado para resolver cualquier problema. Algunas de las otras características del marco son las siguientes:

  • La arquitectura del marco es flexible para crear modelos de aprendizaje automático utilizando varios tipos de datos.
  • Este marco puede admitir bibliotecas básicas y populares de aprendizaje automático como SK-Learn, Keras, Statsmodel, etc.
  • Este marco también se puede usar para incrustar modelos relacionados con áreas específicas en canalizaciones como ODE y PDE.
  • Usando este marco, podemos permitirnos usar una variedad de modelos y aumentar la explicabilidad de los procedimientos de modelado.
🔥 Recomendado:  ¿Instagram notifica al otro usuario cuando toma una captura de pantalla?

Podemos instalar este framework usando las siguientes líneas de código.

!pip instalar fedot

Después de la instalación, estamos listos para realizar cualquier operación de aprendizaje automático utilizando FEDOT.

Modelado de series de tiempo usando FEDOT

En esta sección, veremos un ejemplo de cómo podemos realizar análisis de series de tiempo utilizando la biblioteca FEDOT.

Importación de datos

Antes de iniciar el procedimiento, debemos adquirir datos de series temporales, para este ejemplo estamos utilizando los datos de tráfico que se pueden encontrar aquí. Importemos los datos.

importar pandas como pd df = pd.read_csv(‘/content/drive/MyDrive/Yugesh/fedot/trafic.csv’, parse_dates=[‘datetime’]) df.cabeza(10)

Producción:

Aquí, en el resultado anterior, podemos ver que en los datos tenemos dos variables[datetime and value] que será necesario en el modelado de series de tiempo.

Grafiquemos estos datos.

importar matplotlib.pyplot como plt desde pylab importar rcParams rcParams[‘figure.figsize’] = 18, 7 df.plot(‘fechahora’, ‘valor’,c=”magenta”) plt.show()

Producción:

Aquí podemos ver nuestra serie temporal donde tenemos valores de vehículos con fechas. Ahora, después de importar los datos, estamos listos para usar los módulos FEDOT para el modelado de series de tiempo.

Importación de módulos desde FEDOT

de fedot.api.main import Fedot de fedot.core.repository.tasks import Task, TaskTypesEnum, TsForecastingParams de fedot.core.data.data import InputData de fedot.core.data.data import train_test_data_setup de fedot.core.repository.dataset_types importar DataTypesEnum

En lo anterior hemos llamado FEDOT API, módulos para resolver tareas, módulos para dividir, ajustar y predecir, y módulo de tipo de datos FEDOTs.

Procesamiento de datos usando FEDOT

Preparemos los datos de acuerdo con los módulos FEDOT.

Podemos cargar y dividir nuestros datos usando las siguientes líneas de códigos

input_data = InputData.from_csv_time_series(tarea, ‘/content/drive/MyDrive/Yugesh/fedot/trafic.csv’, target_column=’value’) train_data, test_data = train_test_data_setup(input_data)

🔥 Recomendado:  Una guía para explicar la importancia de las características en las redes neuronales usando SHAP

Definición de tarea y modelo

Vamos a comprobar la longitud de los datos.

imprimir(F‘Longitud de la serie temporal – {len(df)}’)

Producción:

Aquí podemos ver que la longitud de nuestros datos es 801. Por lo tanto, 144 valores de predicción serán suficientes, por lo que a continuación definimos una tarea para modelar utilizando los módulos de FEDOT.

tarea = Tarea(TaskTypesEnum.ts_forecasting, TsForecastingParams(forecast_length=144))

Aquí en lo anterior, hemos definido una tarea de pronóstico de series de tiempo donde obtendremos 144 predicciones.

Inicio del proceso de modelado

Iniciemos el modelo usando la API de FEDOT.

modelo = Fedot(problema=’ts_forecasting’, task_params=task.task_params) cadena = model.fit(features=train_data)

Producción:

Aquí, en el resultado anterior, podemos ver que después de ajustar los hiperparámetros, esta API ha comenzado el modelado.

Haciendo predicciones

Ahora estamos obligados a hacer algunas predicciones que se pueden hacer usando las siguientes líneas de códigos.

pronóstico = model.predict(features=test_data) pronóstico

Producción:

Aquí podemos ver la predicción de nuestros modelos. Ahora, para una mejor optimización, debemos visualizar la predicción. Esto se puede hacer usando las siguientes líneas de códigos.

Definición de función para visualización

importar numpy como np de sklearn.metrics importar tráfico de error medio_absoluto = np.array(df[‘value’]) def mostrar_resultados(actual_time_series, valores_predichos, len_train_data, y_name=”Volumen de tráfico”): plt.plot(np.arange(0, len(actual_time_series)), real_time_series, label=”Valores reales”, c=”verde”) plt .plot(np.arange(len_train_data, len_train_data + len(predicted_values)), predicted_values, label=”Predicted”, c=”blue”) # Trace la línea negra que divide nuestra matriz en tren y pruebe plt.plot([len_train_data, len_train_data],
[min(actual_time_series), max(actual_time_series)]c=”negro”, ancho de línea = 1) plt.ylabel(y_name, tamaño de fuente = 15) plt.xlabel(‘Índice de tiempo’, tamaño de fuente = 15) plt.legend(tamaño de fuente = 15, loc=”superior izquierda”) plt .grid() plt.show() mae_value = mean_absolute_error(real_time_series[len_train_data:]valores_predichos) print(f’valor MAE: {mae_value}’)

Visualizando los resultados

Aquí podemos ver las predicciones que están cerca de los datos de prueba. También hemos puesto los resultados absolutos medios con la función. A continuación, podemos ver el MAE.

🔥 Recomendado:  Cómo transmitir en vivo en TikTok: una guía paso a paso

Como podemos ver aquí, hemos obtenido buenos resultados de este modelado.

Visualización de tubería

Verifiquemos la canalización de la que se ha ido nuestro procedimiento de modelado.

chain.show() print(‘Cadena obtenida:’) para el nodo en chain.nodes: print(f'{node.operation}, params: {node.custom_params}’)

Producción:

En el resultado anterior, podemos ver que el modelado ha pasado por la regresión de cresta para el modelo de serie temporal y también podemos ver qué parámetros se están utilizando para el modelado.

Ultimas palabras

En este artículo, hemos discutido FEDOT, que es un marco disponible como código abierto para el modelado automatizado de aprendizaje automático. Utilizando el framework FEDOT, hemos visto un ejemplo de modelado de series temporales donde los resultados son muy satisfactorios.

Referencias