【第十七章:Sentosa_DSML社区版-机器学习之异常检测】
机器学习异常检测是检测数据集中的异常数据的算子,一种高效的异常检测算法。它和随机森林类似,但每次选择划分属性和划分点(值)时都是随机的,而不是根据信息增益或者基尼指数来选择。
17.1 异常检测
1.算子介绍
异常检测算子(IsolationForestNode)是检测数据集中的异常数据的算子,一种高效的异常检测算法,它和随机森林类似,但每次选择划分属性和划分点(值)时都是随机的,而不是根据信息增益或者基尼指数来选择。在建树过程中,如果一些样本很快就到达了叶子节点,那么就被认为很有可能是异常点,结果生成prediction列,值为0则正常,为1则异常。
2.算子类型
机器学习/异常检测算子。
3.算子属性说明
|-----------------|--------------------|----|---------|------|-----------------------|---------------|
| 属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
| num_tree | 树的数量 | 必填 | Integer | 5 | >0 | 模型中的树的数量 |
| sample_type | 样本取样方式 | 必填 | String | rate | 单选:number,rate | 样本取样方式 |
| sample_rate | 样本采样率(0,1] | 必填 | Double | 1.0 | 范围(0,1],样本取样方式选择rate | 样本采样率 |
| max_depth | 树的最大深度 | 必填 | Integer | 1 | >0 | 树的最大深度 |
| bootstrap | 每棵树是否重采样 | 必填 | Boolean | 否 | 单选:true,false | 每棵树是否重采样 |
| contamination | 异常值在数据集中所占的比例(0,1) | 必填 | Double | 0.1 | (0,1)之间 | 异常值在数据集中所占的比例 |
| skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
异常检测算子的属性设置如图所示
异常检测算子属性设置
(3)算子的运行
异常检测算子为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等),然后接一个异常检测算子,右击算子,点击运行,得到异常检测模型。
运行异常检测算子获得异常检测模型
得到模型后右击模型,可以查看模型信息。模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行,但评估算子对此模型无效。
异常检测模型算子流
可以右击模型,查看模型的模型信息。模型的运行结果如图所示
异常检测模型的运行结果
结果中Predicted_group值为0则认为为正常数据,为1则认为为异常数据。
为了非商业用途的科研学者、研究人员及开发者提供学习、交流及实践机器学习技术,推出了一款轻量化且完全免费的Sentosa_DSML社区版。以轻量化一键安装、平台免费使用、视频教学和社区论坛服务为主要特点,能够与其他数据科学家和机器学习爱好者交流心得,分享经验和解决问题。文章最后附上官网链接,感兴趣工具的可以直接下载使用
Sentosa_DSML算子流开发视频