Introducció

L'aprenentatge automàtic (Machine Learning, ML) és una branca de la intel·ligència artificial que permet als sistemes aprendre i millorar a partir de l'experiència sense ser explícitament programats. Elasticsearch ofereix funcionalitats d'aprenentatge automàtic que permeten detectar anomalies, fer prediccions i analitzar dades de manera avançada.

Objectius del Tema

  • Entendre les capacitats d'aprenentatge automàtic d'Elasticsearch.
  • Aprendre a configurar i utilitzar les funcionalitats d'aprenentatge automàtic.
  • Aplicar tècniques d'aprenentatge automàtic per detectar anomalies i fer prediccions.

Conceptes Clau

  1. Capacitats d'Aprenentatge Automàtic a Elasticsearch

Elasticsearch inclou diverses funcionalitats d'aprenentatge automàtic, com ara:

  • Detecció d'Anomalies: Identificació de patrons inusuals en les dades.
  • Predicció: Estimació de valors futurs basats en dades històriques.
  • Anàlisi de Sèries Temporals: Anàlisi de dades que varien amb el temps.

  1. Components Principals

  • Jobs: Tasques d'aprenentatge automàtic que processen les dades.
  • Datafeeds: Fluxos de dades que alimenten els jobs.
  • Models: Representacions matemàtiques dels patrons detectats en les dades.

Configuració i Ús

  1. Creació d'un Job de Detecció d'Anomalies

Pas 1: Definir el Job

PUT _ml/anomaly_detectors/my_job
{
  "description": "Detecció d'anomalies en les vendes diàries",
  "analysis_config": {
    "bucket_span": "1d",
    "detectors": [
      {
        "function": "mean",
        "field_name": "sales",
        "partition_field_name": "store"
      }
    ]
  },
  "data_description": {
    "time_field": "timestamp"
  }
}

Explicació:

  • description: Descripció del job.
  • analysis_config: Configuració de l'anàlisi, incloent l'interval de temps (bucket_span) i els detectors.
  • data_description: Descripció de les dades, incloent el camp de temps (time_field).

Pas 2: Crear un Datafeed

PUT _ml/datafeeds/datafeed-my_job
{
  "job_id": "my_job",
  "indices": [
    "sales_data"
  ],
  "query": {
    "match_all": {}
  }
}

Explicació:

  • job_id: Identificador del job associat.
  • indices: Índexs que contenen les dades.
  • query: Consulta per seleccionar les dades.

Pas 3: Iniciar el Datafeed

POST _ml/datafeeds/datafeed-my_job/_start

  1. Monitorització i Anàlisi de Resultats

Consultar Resultats d'Anomalies

GET _ml/anomalies/my_job/results

Explicació:

  • Aquesta consulta retorna els resultats de les anomalies detectades pel job.

  1. Predicció amb Elasticsearch

Pas 1: Crear un Job de Predicció

PUT _ml/anomaly_detectors/prediction_job
{
  "description": "Predicció de vendes futures",
  "analysis_config": {
    "bucket_span": "1d",
    "detectors": [
      {
        "function": "mean",
        "field_name": "sales"
      }
    ]
  },
  "data_description": {
    "time_field": "timestamp"
  }
}

Pas 2: Fer una Predicció

POST _ml/anomaly_detectors/prediction_job/_forecast
{
  "duration": "7d"
}

Explicació:

  • duration: Durada de la predicció (per exemple, 7 dies).

Exercicis Pràctics

Exercici 1: Crear un Job de Detecció d'Anomalies

  1. Defineix un job per detectar anomalies en les dades de temperatura diària.
  2. Crea un datafeed per alimentar el job amb dades de l'índex temperature_data.
  3. Inicia el datafeed i consulta els resultats d'anomalies.

Exercici 2: Fer una Predicció

  1. Crea un job per predir les vendes setmanals.
  2. Fes una predicció per als propers 14 dies.

Solucions

Solució a l'Exercici 1

Definir el Job

PUT _ml/anomaly_detectors/temperature_job
{
  "description": "Detecció d'anomalies en la temperatura diària",
  "analysis_config": {
    "bucket_span": "1d",
    "detectors": [
      {
        "function": "mean",
        "field_name": "temperature"
      }
    ]
  },
  "data_description": {
    "time_field": "timestamp"
  }
}

Crear el Datafeed

PUT _ml/datafeeds/datafeed-temperature_job
{
  "job_id": "temperature_job",
  "indices": [
    "temperature_data"
  ],
  "query": {
    "match_all": {}
  }
}

Iniciar el Datafeed

POST _ml/datafeeds/datafeed-temperature_job/_start

Consultar Resultats

GET _ml/anomalies/temperature_job/results

Solució a l'Exercici 2

Crear el Job

PUT _ml/anomaly_detectors/weekly_sales_job
{
  "description": "Predicció de vendes setmanals",
  "analysis_config": {
    "bucket_span": "1w",
    "detectors": [
      {
        "function": "mean",
        "field_name": "sales"
      }
    ]
  },
  "data_description": {
    "time_field": "timestamp"
  }
}

Fer la Predicció

POST _ml/anomaly_detectors/weekly_sales_job/_forecast
{
  "duration": "14d"
}

Conclusió

En aquest tema, hem explorat les capacitats d'aprenentatge automàtic d'Elasticsearch, incloent la detecció d'anomalies i la predicció. Hem après a configurar i utilitzar aquestes funcionalitats per analitzar dades de manera avançada. Amb aquests coneixements, estàs preparat per aplicar tècniques d'aprenentatge automàtic a les teves pròpies dades i obtenir insights valuosos.

© Copyright 2024. Tots els drets reservats