Bijoul,
Peut-on calculer la dérivée d’une moyenne dans machine learning?
Je vois la moyenne (median), j’entend parler de la dérivée sans la trouver, je questionne sur mon besoin.
Cimer Omer
Bijoul,
Peut-on calculer la dérivée d’une moyenne dans machine learning?
Je vois la moyenne (median), j’entend parler de la dérivée sans la trouver, je questionne sur mon besoin.
Cimer Omer
Bonjour Régis,
Pour utiliser le résultat d'une dérivée en tant que métrique de l'analyse, il faut créer le job via l'API pour personnaliser la query.
Tout job contient ce qu'on appelle un datafeed: c'est en réalité le flux de données qui sera utilisé pour l'analyse.
Un datafeed contient une query Elasticsearch. Quand vous choisissez une fonction dans le processus de création du job, en réalité vous générez un datafeed et sa query.
Un exemple:
"datafeed_config": {
"datafeed_id": "datafeed-high_event_duration",
"job_id": "high_event_duration",
"query_delay": "89336ms",
"indices": [
"filebeat-*"
],
"query": {
"bool": {
"filter": [
{
"term": {
"event.module": "nginx"
}
},
{
"term": {
"event.dataset": "nginx.access"
}
}
]
}
},
"scroll_size": 1000,
"chunking_config": {
"mode": "auto"
},
"delayed_data_check_config": {
"enabled": true
},
"state": "started",
"timing_stats": {
"job_id": "high_event_duration",
"search_count": 34434,
"bucket_count": 3187,
"total_search_time_ms": 763917,
"average_search_time_per_bucket_ms": 239.69783495450267,
"exponential_average_search_time_per_hour_ms": 722.1705237015839
}
}
Dans l'exemple ci-dessus la query représente l'ensemble de données récupérées à intervalle régulier pas le job.
Dans la définition d'un job vous retrouverez aussi un block donnant la fonction et le champs sur lequel elle sera appliquée:
"analysis_config": {
"bucket_span": "15m",
"detectors": [
{
"detector_description": "high_mean(event.duration)",
"function": "high_mean",
"field_name": "event.duration",
"detector_index": 0
}
],
"influencers": [
"source.address"
]
},
La fonction high_mean sera appliqué au champs event.duration.
L'exemple complet peut être retrouvée sur https://demo.elastic.co/app/ml#/jobs?_g=(refreshInterval:(pause:!f,value:30000),time:(from:now-15m,to:now)). Dépliez un job et cliquez sur JSON, vous retrouverez toute la définition générée par le processus de création d'un job.
Tout cela dit, pour une dérivée, il faut:
Créer le job via l'API ML pour avoir la main sur le JSON - https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-apis.html
Utiliser une pipeline aggregation de type derivative en tant que query du datafeed https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-pipeline-derivative-aggregation.html
Appliquer votre fonction sur le champs généré par l'aggregation.
Merci Bahaaldine,
Je vais regarder ça, j'ai compris quelques trucs mais il va falloir que je creuse.
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
© 2020. All Rights Reserved - Elasticsearch
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant logo are trademarks of the Apache Software Foundation in the United States and/or other countries.