Elastic Stack 的机器学习为我们的异常检测提供了极大的方便。同时它还有一项很重要的功能,那就是它的预测(forecast)功能。这个在很多的实际应用中也有很大的用处。我有时幻想如果我能依据现有的股票时序数据能准确地预测未来股票的价格,那我会不会发大财啊?关于机器学习预测数据的准确性如何,我们今天讲使用一个例子来进行展示。如果你想了解更多关于 Elastic Stack 的机器学习方面的知识,请阅读我之前的文章 “Elastic:机器学习的原理及实践 - single metric job”。
准备数据
在今天的展示中,我将使用 Kibana 自动的数据来进行展示。我将使用 Elastic Stack 7.10 来演示:
点击上面的 Add data 按钮:
这样在 Elasticsearch 中,我们就会发现一个叫做 kibana_sample_data_logs 的索引:
GET _cat/indices
-
green open .apm-custom-link TlqC
9Q
2oTtalPjlA
8RqORA
1
0
0
0
208b
208b
-
green open .kibana_task_manager_
1 DmCZ
94MVTnGm
7-mqX
8gvUw
1
0
5
36
80.
3kb
80.
3kb
-
green open .apm-agent-configuration
2mv
66HmOTi-MNW
1JnT
6aoA
1
0
0
0
208b
208b
-
green open kibana_sample_data_logs j
1d
0m
0AUTwG
8nF
2qDmNr
7A
1
0
14074
0
10.
4mb
10.
4mb
-
green open .kibana-event-log-
7.
10.
0-
000001 pFPXSgZTRSWPMhDWi
7vqZA
1
0
1
0
5.
6kb
5.
6kb
-
green open .kibana_
1 f
0ve
1WLgQUOtF
0hZm
14J
2Q
1
0
59
0
10.
9mb
10.
9mb
这样我们的数据就准备好了。我们接下来将使用 kibana_sample_data_logs 索引来作为我们验证机器学习预测的准确与否。
启动白金功能
机器学习需要我们启动白金功能。如果你想了解更多关于订阅的服务,请阅读链接https://www.elastic.co/cn/subscriptions。我们在安装的 Elastic Stack 中启动30天试用:
这样我们就启动了机器学习的白金功能。
创建机器学习任务
接下来,我们来创建一个机器学的任务:
在上面我们先选择 Use full kibana_sample_data_logs data 按钮,然后选择机器学习的终止时间来进行调整时间。我们留下最后7天的数据不用作机器学习的数据:
在上面显示时间系列的最终时间是2021年2月26日。我们选择19日作为机器学习的终止时间。这样我们就可以留下7天的时间作为我们将来可以进行预测的时间范围,并和真实的数据来进行比较。在上面,我选择2月19日。
点击 Create job:
这样我们就创建了一个单指标的机器学习任务。我们点击上面的 Forecast 按钮:
点击上面的 Run。我们可以看到机器学习为我们创建从2月19日以后的数据预测:
从上面我们可以看出来机器学习帮我们预测了从2月19日到2月26日之间的数据。从先前的原始数据中,我们已经知道这个时间真实数据是存在的。我们现在来用这个预测的数据和真实的数据来进行比较。
我们先回到机器学习的管理页面:
选中我们的 forecast 任务,并启动 datafeed:
上面显示 datafeed-forecast 已经被成功启动。点击上面的 Single Metric Viewer:
从上面我们可以看出来之前我选择的时间是2月19日。我们把时间修改为2月26日,这样,我们可以继续让当前的任务完成剩下的一个星期的数据:
点击 Update 按钮:
在上面的图中,我们可以看到黄色的线代表的是机器学习在除去最后一个星期的数据后,然后再预测的数据,而那些蓝色曲线的数据是真实的数据。从上面的图中我们可以看出来机器学习预测的数据和真实的数据还是蛮接近的。
转载:https://blog.csdn.net/UbuntuTouch/article/details/112396716