下载试用

博客

Splunk Machine Learning Toolkit 介绍

Posted on 2017年05月8日

Machine Learning Toolkit是研究机器学习概念的APP,它包含了新的搜索命令扩展ML-SPL、强大的可视化界面、自定义图表、助手向导和实际样例等。

 

介绍

 

首先我们看一下机器学习的一般过程

a) 数据的清洗和转化

b) 训练模型

c) 验证模型

d) 调整模型

e) 部署模型

这些复杂的过程都可以通过Splunk轻松实现。Machine Learning Toolkit是研究机器学习概念的APP,它包含了新的搜索命令扩展ML-SPL、强大的可视化界面、自定义图表、助手向导和实际样例等。

Splunk Machine Learning Toolkit APP实现的机器学习算法

图片1

 

如果你不熟悉这些算法,也可以参考官方提供的视频教程,帮助你快速上手。

安装

 

  1. 安装Splunk_SA_Scientific_Python,它包含了Machine Learning Toolkit的依赖,比如以下几个python常用数据计算包

a) numpy 1.10.4

b) scipy 0.17.0

c) pandas 0.17.1

d) scikit-learn 0.17.0

把包解压到$SPLUNK_HOME/etc/apps目录下,重启服务即可。

如果在自定义命令中要使用这些模块,可以把包内的exec_anaconda.py文件拷贝到应用的bin目录,加入以下代码即可使用。

#!/usr/bin/python

import exec_anaconda

exec_anaconda.exec_anaconda()

import numpy as np

B.安装Machine Learning Toolkit,它包含常用机器学习算法的实现。

把包解压到$SPLUNK_HOME/etc/apps目录下,重启服务即可。

 

搜索命令扩展(ML-SPL)

 

APP提供了机器学习搜索命令(ML-SPL)的扩展,有以下几个

• fit: 使用机器学习模型搜索。

• apply: 应用已经使用fit学习过的模型。

• summary: 返回已经使用fit命令学习过的机器学习模型概要。

• listmodels: 返回已经使用fit命令学习过的机器学习模型列表。

• deletemodel: 删除一个使用fit命令学习过的机器学习模型。

• sample: 随机抽样或分区事件。

 

fit

 

语法

fit <algorithm> (<option_name>=<option_value>)* (<algorithm-arg>)+ (into <model_name>)? (as <output_field>)?

参数algorithm,算法名;参数into,保存为模型

例如,使用线性模型通过 _time 预测errors

… | fit LinearRegression errors from _time

使用线性模型通过 _time 预测 errors,保存到模型errors_over_time

… | fit LinearRegression errors from _time into errors_over_time

使用线性模型通过 petal_length petal_width sepal_length sepal_width 预测 species

… | fit LogisticRegression species from petal_length petal_width sepal_length sepal_width

 

apply

 

语法

apply <model_name> (as <output_field>)?

例如,应用已经学习过的模型(errors_over_time)

… | apply errors_over_time

重命名模型的输出为 predicted_errors

… | apply errors_over_time as predicted_errors

 

summary

 

语法

summary <model_name>

检查学习过的模型 errors_over_time

| summary errors_over_time

 

listmodels

 

语法

listmodels

列出所有模型

| listmodels

 

deletemodel

 

语法

deletemodel <model_name>

删除模型 errors_over_time

| deletemodel errors_over_time

 

sample

 

sample命令用来随机抽样或分区事件

  1. 抽样模式

a) ratio:在0和1之间的浮点数,表示每个事件已被包含在结果集中的百分比概率。当你想要一个近似值时使用ratio,例如,0.01的比例表示事件具有被包括在结果中的概率1%。可以省略关键字ratio,例如| sample ratio=0.01 可以写成 | sample 0.01。

b) count:表示随机选择的事件返回的准确数量。如果样本数超过搜索中的事件总数,则返回所有事件。可以省略关键字count,例如| sample count=10 可以写成 | sample 10。

c) proportional:用于确定每个事件的抽样概率的数字字段的名称,其产生偏置采样。每个事件以该字段值指定的概率进行采样。

B.分区模式

a) partitions:随机分割事件的分区数。当您希望将结果分成不同的目的使用partitions,例如使用结果进行测试和训练。

C.其他选项

a) seed:一个指定随机种子的数字。使用seed确保可重复的结果。如果未指定,则使用伪随机值。

b) by <field>:用于计数。指定用于拆分事件的字段,返回指定字段的每个值的计数事件数。如果事件数超过count,则所有事件都包含在结果中。

c) inverse:和proportional一起使用。反转概率,返回一个样本减去比例域中指定的概率。

d) fieldname:要存储分区号的字段的名称。 默认为“partition_number”。

 

语法

sample (ratio=<float between 0 and 1>)? (count=<positive integer>)? (proportional=<name of numeric field> (inverse)?)? (partitions=<natural number greater than 1> (fieldname=<string>)?)? (seed=<number>)? (by <split_by_field>)?

 

样例

随机抽取大约1%的事件

… | sample ratio=0.01

… | sample 0.01

随机抽取20个事件

… | sample count=20

… | sample 20

按照host随机抽取20个事件

… | sample count=20 by host

“some_field”的值确定的概率返回每个事件

… | sample proportional=”some_field”

将事件分为7组,所选组在一个称为“partition_number”的字段中返回

… | sample partitions=7 fieldname=”partition_number”

更多使用参考MLTKCheatSheet 。

 

配置

 

可以修改mlspl.conf文件配置fit和apply命令mlspl.conf文件路径$SPLUNK_HOME/etc/apps/Splunk_ML_Toolkit/default/。通常保存到用户配置路径$SPLUNK_HOME/etc/apps/Splunk_ML_Toolkit/local/中。以下是支持的配置选

项。

设置 默认值 说明
max_inputs 100000 算法在拟合模型时考虑的最大事件数。如果超过此限制并且use_sampling为真,则在拟合模型之前,fit命令将先对输入使用储层采样算法进行处理。如果use_sampling为false并且超出了此限制,则fit命令会引发错误。use_sampling true 配置是否对超过max_inputs的数据集使用“储层采样”算法进行处理,或者引用错误。
max_fit_time 600 在算法的“拟合”阶段花费的最长时间(以秒为单位)。此设置与搜索的其他阶段(例如从索引检索事件)无关。
max_memory_usage_mb 1000 在拟合模型时,fit命令允许的最大允许内存使用量(以兆字节为单位)。
max_model_size_mb 15 由fit命令创建的模型的最大允许的大小(单位mb)。 一些算法(例如SVM和RandomForest)可能会创建异常大的模型,这可能导致捆绑复制的性能问题。

用例

图片2

APP提供了ITSecurityBusinessLot四种使用场景,我们以IT场景中Predict Server Power Consumption为例,来看一下它的使用。

当进入这个样例时,APP自动使用预置数据进行搜索。选择训练使用的算法,配置要预测的字段和使用哪些预测字段等参数进行模型训练。点击fit model进行模型训练,同时”show SPL”可以查看fit命令的使用。

图片3

图片4

使用apply命令验证模型,通过内置的图表查看预测结果。

图片5

 

图片6

图片7

备注:

Machine Learning Toolkit视频教程(http://tiny.cc/splunkmlvideos)

Machine Learning Toolkit(https://splunkbase.splunk.com/app/2890/)

Splunk_SA_Scientific_Python(https://splunkbase.splunk.com/apps/#/search/Splunk_SA_Scientific_Python/)

MLTKCheatSheet(http://tiny.cc/mlcheatsheet)

 

By Derek

 

问问专家
Splunk销售与支持

  • 联系电话:400-067-1005
  • 电子邮件:contact@10data.com


沪ICP备11017547 沪公网安备 31011502002368号 ©版权所有 2005-2017 上海天旦网络科技发展有限公司(Netis)

GO TOP

返回