3.5.16.4.Data frame analytics
创作人:刘晓国
编辑:胡征南
数据集分析需要二维结构化数据,可以通过 Elasticsearch 的 3.5.13章节的 Transforms 功能,将数据转化为用于分析的数据集。
数据集分析可以可以对数据执行多种不同的分析任务,注释对应的结果。查阅3.5.16章节的
Setup and securuty 可以了解分析需要的许可证和安全权限。
总览
数据集分析可以可以对数据执行多种不同的分析任务,并注释对应的结果。通过数据集分析可以深入洞察数据;异常值检测可以识别出数据集中不寻常的点;回归分析可以预测数据的发展趋势;聚类分析可以预测给定数据集的分类;模型推断可以使用训练好的机器学习模型进行连续分析。
数据集分析会通过创建数据副本的方式保障源数据的完整性。可以对数据集进行分片和切块而不影响到原有数据。
可以通过已经标注好的数据集和分析 API 来评估性能和结果,也可以通过已标注数据理解错误分布和识别异常值。
机器学习的种类:
从上面的图中,我们可以看出来机器学习分为两种:
l Unsupervised:无监督的学习
l Supervised: 监督学习
Anomaly Detection 和 Outlier Detection 是数据驱动的,不需要用户指出正常还是异常,这称为无监督机器学习。无监督机器学习是使用户熟悉ML的重要第一步
但是,有一类用例需要通过使用带有标签数据的模型来训练,因此需要一些用户参与,以便你可以使用它对未标签数据进行预测,这就是所谓的 “监督学习”。借助监督学习,你可以训练机器学习模型以基于标记数据学习模式。
我们可以在监督学习模式下,利用现有的已经被证实的例子作为范例进行学习,从而建立一个 ML Supervised 模型。我们也可以利用这个模型对未来的数据进行推断:
相关概念
本章节主要是解释 Elastic 机器学习中数据集分析及效果评估 API 的相关基础概念。
l 异常值检测
l 检测和分析异常值,常用于错误和异常分析
l 回归分析
l 一种机器学习分析方法,分析数据字段之间的关系,并对这些关系做进一步的预测
l 聚类分析
l 一种机器学习分析方法,对数据集数据进行分类。如:预测贷款风险分类、音乐分类、根据 DNA 序列检测潜在癌细胞等
l 模型推断
l 模型推断是一种对机器学习持续改进的功能,用于天气预测等
l 数据集评估
l 使用数据集评估 API 评估数据集表现,理解错误分布和异常值
l 特征编码
l 机器学习模型只能处理数字类型,此功能用于将特征值转换为数字类型
l 特征处理器
l 用于处理特征数据,包括频率编码、多值编码、n-gram 编码,独热编码、Target mean 编码
l 特征重要性
l 用于判断回归分析和聚类分析中的特征重要性
l 超参数优化
l 可以通过 API 获取模型超参数,并进行对应优化
l 模型管理
l 模型上传下载、应用于新的数据集
API
数据集分析API主要包括分析API、评估API及模型管理 API
l 分析 API 基础地址:/_ml/data_frame/analytics
l 评估 API 基础地址:/_ml/data_frame/_evaluate
l 模型管理基础地址:/_ml/trained_models/
案例集
Outlier Detection
Outlier Detection,也称作为异常值检测。它是属于 Unsupervised 机器学习的一个部分。它是用于发现以 entity 为基础的数据集中的异常。在Transforms章节中,我们已经了解了如何把一个时序的数据集转为以 entity 为基础的数据集。如果你的原始数据集本身就是一个以
entity 为基础的数据集,我们就不需要做任何的转换了。我们就可以直接对数据进行 Outlier Dection。
在进行 Outlier Detection 展示之前,我们先来简单地了解一下 Outlier Detection 是如何工作的。 我们先拿一个南瓜作为例子来进行描述。我们知道一个南瓜含有重量(weight)及周长(circumference)。
假如我们我们有如下的一个统计图:
如图所示,在通常的情况下周长越长,那么南瓜的重量就越大。按照这个说法,我们很容易解释左下角及右上角的一些数据。我们用肉眼很容易发现 A 及 B 是两个异类。Elastic 里的机器学习 Outlier Detection 其实按原理就是基于这种理解来进行计算的,只不过它使用了算术的方法来进行计算的。
在 Elastic Stack 的 Outlier Detection 中,它由四种互补的技术来实现的:
回顾之前的例子,A 及 B 被视为异常是因为它们远离大多数正常南瓜所在的区域。这让我们创建一个公式来计算任何一个数据和其它数据之间的距离。当这些数据的距离相比较其它的要大很多,那么就可以视为异常。我们可以通过计算一个数据到它的 kth-nearest 附近数据的距离及平均距离来算出异常值。这个值将计入总的异常分数。尽管这种方法在大多数情况下非常有效,但是针对一些数据比较分散的数据集来说,所有的数据和其它的数据的距离都几乎相当,或者说都很远。我们在这种情况下需要测量这个点周围的数据密度来确定这个点是否异常。
如上所示,我们使用了另外的两个技术来测量一个点和周围的点的密度。通过这个技术我们能了解任何一个点的周围的点到底离它有多近,从而测出这个点的密度。通过这两个技术,我们可以得出另外一个分数。通过上面四种互补技术的运用,我们可以得出一个介于 0 到 1 的分数。这个分数越接近于 1,那么代表该数据越异常。
《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.16. Machine learning——3.5.16.4.Data frame analytics(2) https://developer.aliyun.com/article/1227192