Elastic:验证机器学习预测的准确性

Elastic Stack 的机器学习为我们的异常检测提供了极大的方便。同时它还有一项很重要的功能,那就是它的预测(forecast)功能。这个在很多的实际应用中也有很大的用处。我有时幻想如果我能依据现有的股票时序数据能准确地预测未来股票的价格,那我会不会发大财啊?关于机器学习预测数据的准确性如何,我们今天讲使用一个例子来进行展示。如果你想了解更多关于 Elastic Stack 的机器学习方面的知识,请阅读我之前的文章 “Elastic:机器学习的原理及实践 - single metric job”。

 

准备数据

在今天的展示中,我将使用 Kibana 自动的数据来进行展示。我将使用 Elastic Stack 7.10 来演示:

Elastic:验证机器学习预测的准确性_第1张图片

Elastic:验证机器学习预测的准确性_第2张图片

点击上面的 Add data 按钮:

Elastic:验证机器学习预测的准确性_第3张图片

这样在 Elasticsearch 中,我们就会发现一个叫做 kibana_sample_data_logs 的索引:

GET _cat/indices
green open .apm-custom-link                TlqC9Q2oTtalPjlA8RqORA 1 0     0  0   208b   208b
green open .kibana_task_manager_1          DmCZ94MVTnGm7-mqX8gvUw 1 0     5 36 80.3kb 80.3kb
green open .apm-agent-configuration        2mv66HmOTi-MNW1JnT6aoA 1 0     0  0   208b   208b
green open kibana_sample_data_logs         j1d0m0AUTwG8nF2qDmNr7A 1 0 14074  0 10.4mb 10.4mb
green open .kibana-event-log-7.10.0-000001 pFPXSgZTRSWPMhDWi7vqZA 1 0     1  0  5.6kb  5.6kb
green open .kibana_1                       f0ve1WLgQUOtF0hZm14J2Q 1 0    59  0 10.9mb 10.9mb

这样我们的数据就准备好了。我们接下来将使用 kibana_sample_data_logs 索引来作为我们验证机器学习预测的准确与否。

 

启动白金功能

机器学习需要我们启动白金功能。如果你想了解更多关于订阅的服务,请阅读链接https://www.elastic.co/cn/subscriptions。我们在安装的 Elastic Stack 中启动30天试用:

Elastic:验证机器学习预测的准确性_第4张图片

Elastic:验证机器学习预测的准确性_第5张图片

Elastic:验证机器学习预测的准确性_第6张图片

Elastic:验证机器学习预测的准确性_第7张图片

这样我们就启动了机器学习的白金功能。

 

创建机器学习任务

接下来,我们来创建一个机器学的任务:

Elastic:验证机器学习预测的准确性_第8张图片

Elastic:验证机器学习预测的准确性_第9张图片

Elastic:验证机器学习预测的准确性_第10张图片

Elastic:验证机器学习预测的准确性_第11张图片

Elastic:验证机器学习预测的准确性_第12张图片

在上面我们先选择 Use full kibana_sample_data_logs data 按钮,然后选择终点来进行调整时间。我们留下最后7天的数据不用作机器学习的数据:

Elastic:验证机器学习预测的准确性_第13张图片

在上面显示时间系列的最终时间是2021年2月26日。我们选择19日作为机器学习的终止时间。这样我们就可以留下7天的时间作为我们将来可以进行预测的时间范围,并和真实的数据来进行比较。在上面,我选择2月19日。

Elastic:验证机器学习预测的准确性_第14张图片

Elastic:验证机器学习预测的准确性_第15张图片

Elastic:验证机器学习预测的准确性_第16张图片

Elastic:验证机器学习预测的准确性_第17张图片

Elastic:验证机器学习预测的准确性_第18张图片

点击 Create job:

Elastic:验证机器学习预测的准确性_第19张图片

Elastic:验证机器学习预测的准确性_第20张图片

这样我们就创建了一个单指标的机器学习任务。我们点击上面的 Forecast 按钮:

Elastic:验证机器学习预测的准确性_第21张图片

点击上面的 Run。我们可以看到机器学习为我们创建从2月19日以后的数据预测:

Elastic:验证机器学习预测的准确性_第22张图片

从上面我们可以看出来机器学习帮我们预测了从2月19日到2月26日之前的数据。从先前的原始数据中,我们已经知道这个时间真实数据是存在的。我们现在来用这个预测的数据和真实的数据来进行比较。

我们先回到机器学习的管理页面:

Elastic:验证机器学习预测的准确性_第23张图片

Elastic:验证机器学习预测的准确性_第24张图片

 

选中我们的 forecast 任务,并启动 datafeed:

Elastic:验证机器学习预测的准确性_第25张图片

Elastic:验证机器学习预测的准确性_第26张图片

上面显示 datafeed-forecast 已经被成功启动。点击上面的 Single Metric Viewer:

Elastic:验证机器学习预测的准确性_第27张图片

从上面我们可以看出来之前我选择的时间是2月19日。我们把时间修改为2月26日,这样,我们可以继续让当前的任务完成剩下的一个星期的数据:

Elastic:验证机器学习预测的准确性_第28张图片

点击 Update 按钮:

Elastic:验证机器学习预测的准确性_第29张图片

Elastic:验证机器学习预测的准确性_第30张图片

Elastic:验证机器学习预测的准确性_第31张图片

在上面的图中,我们可以看到黄色的线代表的是机器学习在除去最后一个星期的数据后,然后再预测的数据,而那些蓝色曲线的数据是真实的数据。从上面的图中我们可以看出来机器学习预测的数据和真实的数据还是蛮接近的。

你可能感兴趣的:(Elastic,Observability,elasticsearch,大数据)