在前面文章中我们对Splunk Machine Learning Toolkit 2.1.0版本进行了介绍,近日ML-Toolkit迎来了3.0.0版本,相比2.1.0版本有哪些更新和改进呢,我们来看一下吧。
新的功能
1、加入模型管理模块
可以在模型管理模块中查看训练出的模型,查看模型详情,检查模型的配置,删除模型,更改模型权限。
2、 自定义算法和打包
自定义算法加入“algos.conf”配置文件,可以把自定义算法轻松打包成APP。
3、权限控制
ML-Toolkit中的fit、apply、summary等命令和训练出的模型可以通过splunk对象权限模型来管理;“加载现有设置”选项卡只加载当前用户的配置。
4、ML-SPL API重构
开发者可以友好的导入自定义算法,增强了ML-Toolkit的扩展能力。
新的算法
1、Gradient Boosting Classifier
3、ACF
4、PACF
5、ARIMA
功能介绍
模型管理模块
在APP导航栏加入“Models”选项,进入我们可以看到模型清单,包括一个过滤器和筛选框
加入创建模型按钮
查看模型信息
配置模型权限
使用ML-SPL API添加自定义算法
1、 加入算法代码文件
我们建立SVR_app应用,使用Support Vector Regression(SVR)算法,在SPLUNK_HOME/etc/apps/SVR_app/bin/目录下建立app_algos文件夹,在app_algos目录下建立文件__init__.py、SVR.py,在SVR.py文件加入以下代码并保存:
from sklearn.svm import SVR as _SVR from base import BaseAlgo, RegressorMixin from util.param_util import convert_params class SVR(RegressorMixin, BaseAlgo): def __init__(self, options): self.handle_options(options) params = options.get('params', {}) out_params = convert_params( params, floats=['C', 'gamma'], strs=['kernel'], ints=['degree'], ) self.estimator = _SVR(**out_params) @staticmethod def register_codecs(): from codec.codecs import SimpleObjectCodec from codec import codecs_manager codecs_manager.add_codec('algos.SVR', 'SVR', SimpleObjectCodec) codecs_manager.add_codec('sklearn.svm.classes', 'SVR', SimpleObjectCodec)
2、修改配置文件
在SPLUNK_HOME/etc/apps/SVR_app/local/目录下建立文件algos.conf文件,加入以下内容:
[SVR] package=app_algos disabled=false
3、 修改权限
打开SPLUNK_HOME/etc/apps/SVR_app/metadata/local.meta文件修改权限,添加以下内容:
[algos] export = system
4、测试
重启splunk服务后,进入Ml-Toolkit应用的search,使用以下SPL进行搜索,如果没有错误说明自定义算法可以使用了。
|inputlookup iris.csv | fit SVR petal_width from sepal_length
总结
如果你了解机器学习确不知道如何使用、想避免复杂的算法,减少学习成本、想快速知道哪种算法最适合你的数据、想让自己算法和一套成熟可视化数据平台相结合、使用了开源算法想减少开发成本,那么使用Splunk Machine Learning Toolkit是不错的选择。