大数据智能算法及测评技术(二)

3、分类算法及其测评

3.1 分类算法介绍

分类算法需要事先定义好类别,并对训练样本进行人工标记。分类算法通过有标记的训练样本,学习得到分类器,该分类器可对新样本自动分类,分类的流程下图所示。分类算法是一种有监督的机器学习算法。

分类的算法种类繁多,大致可分为单一型分类算法和组合型分类算法。单一型分类算法有KNN(K近邻)、决策树、朴素贝叶斯、支持向量机、人工神经网络等;组合型分类算法是组合单一型分类算法的集成学习算法,如Bagging和Boosting算法等。考虑到大数据应用,算法需要便于实现并行化计算。

朴素贝叶斯分类算法对于样本数据稀疏时非常敏感,但仍然是应用最广的分类算法之一,被广泛应用于文本分类领域、用户行为分析等大数据分析挖掘领域。尽管朴素贝叶斯是最简单的贝叶斯网络,但理解应用朴素贝叶斯分类算法及拉普拉斯平滑技巧需要具备基本的概率统计知识。因为简单,仍然是应用最广泛的分类方法。

支持向量机(Support Vector Machines,SVM)是建立在统计学习理论VC维(VapNik-Chervonenkis Dimension)和结构风险最小化原理基础上的分类算法,在解决非线性和高维数据的分类问题中表现出很好的性能,并在很大程度上克服了“过拟合”和“维数灾难”等问题。支持向量机算法的目标是寻找一个满足分类要求的最优分类超平面,使得该超平面在保证分类精度的同时,能够使超平面两侧的间隔最大化。

3.2  分类算法正确性测评

以通过蜕变测试验证朴素贝叶斯算法为例。(说明:蜕变测试最适合的场合。)

1、针对算法的蜕变关系的识别(整个测试构造数据的基础)

通过与领域专家一起分析,针对朴素贝叶斯分类算法的特点可以构造如下五类蜕变关系:
MR 1.1:全局仿射变换的一致性。如果对原始测试用例中的每个属性值x(i)做线性变换f(x(i))=ax(i)+b(a≠0)得到衍生测试用例,则分类结果不变。
MR 2.1:类标签的置换。如果对原始测试用例中的类标签作统一置换,比如原先属于类别0的全部置换为类别1,而把类别1全部置换为0,则分类结果也应作相应置换。
MR 2.2:列置换。如果对原始测试用例中的任意两列属性做交换得到衍生测试用例,则分类结果不变。
MR 3:增加不提供信息属性。在原始测试用例基础上,增加一列属性,增加属性值全部相同,即与原始测试用例中属性信息无关,得到衍生测试用例,则分类结果不变。
MR 4:复制全部样本。如果把原始测试用例中的所有样本全部复制一份,增加到原始用例上得到衍生测试用例,则分类结果不变。
MR 5:移除某一类。对于原始测试用例,假设对于某一个测试样本ts得到结果ct=li。在衍生测试用例中移除S中标签不为li的某一类样本,分类结果不变

2、测试结果与分析

1)构造一个基础测试用例数据集合

2)构造蜕变测试用例数据集合

3)执行测试用例

4)比对不同蜕变关系的测试用例执行结果

5)分析结果

3.3  分类算法性能测评

分类算法设计过程中,一般将数据分为两部分,一部分称为训练样本,另一部分称为测试样本。训练集中性能表现很好的分类器,有可能在测试集中分类精度并不高,这种现象称为“分类的过拟合”问题,其本质是分类器的泛化能力比较差。

1)分类器性能评估的方法

a、留置法:互不相交的训练集和测试集,分别使用。

b、随机子抽样:每次随机抽取训练集和测试集,分别使用。

c、交叉验证(Cross-validation) 交叉验证中,每个数据用于训练的次数相同,并且恰好测试一次。假设把数据分为相同大小的两个子集,首先选择其中一个子集作为训练集,另一个作为测试集,然后交换两个子集的角色,这种方法称为二折交叉验证。分类总误差通过对两次运行的误差求和得到。K折交叉验证方法是二折交叉验证的推广,即把数据集分成独立并数量相同的K份。每次验证时选择其中的一份作为测试集,其余的K-1份都作为训练=集,该过程重复K次,使得每份数据都用于测试恰好一次。同样,分类的总误差是所有K次误差之和。

d、自助法(Bootstrap) 前面介绍的三种评估方法都是假定训练数据采用不放回抽样,因此训练集和测试集都不包含重复记录。在自助法中,训练数据采用有放回抽样,即已经选作训练的数据将放回原来的数据集中,使得所有数据等概率的被重新抽取。

2)分类器性能评估指标

a)准确性和F-Measure

1、准确性(Accuracy )。准确性定义为测试集中正确分类的样本数占总测试样本的比例:

2、F-Measure。分类的F-Measure同样利用信息检索中的准确率和召回率来评价。准确率和召回率的定义如下:

b)ROC曲线与AUC 

ROC是接受者操作特性(Receiver Operating Characteristic)的缩写,最早是一种用于信号检测的分析工具。近年来ROC分析被广泛应用于机器学习与数据
挖掘领域算法的评估。ROC曲线是个二维坐标图形:

显然,一个好的分类器得到的点应该尽可能靠近图形的左上角。

ROC曲线直观清楚地描述了分类器的性能,但是在实际应用中往往希望用数值来进行评估。显然,如果仅用ROC曲线将两者进行比较,很难评估两条曲线对应的分类器哪个性能更好,更无法说明两者之间的差距。因此需要引入ROC曲线下方面积(the Area Under the ROC Curve,AUC)指标来解决这个问题。如果ROC曲线B的AUC值大于曲线A的值,则B对应的分类器性能优于A。求AUC值的最通用方法是通过积分法求ROC曲线下方的面积。

4、个性化推荐系统算法及其测评

4.1 个性化推荐算法介绍

                                                               推荐系统核心模块示意图

1)基于内容的推荐算法

基于内容的推荐算法的核心技术是根据物品(Item)的特征计算物品与物品之间内容的相似度。

优点:无需使用其他用户数据;能为爱好比较独特的用户进行推荐;能推荐新的或比较冷门的物品;通过列出推荐物品的内容特征来解释推荐的原因;
缺点:仅适用于物品特征容易抽取的领域,难以挖掘出用户潜在的兴趣。

2)基于用户的协同过滤推荐

基本思想是一个用户会喜欢和他有相似偏好的用户喜欢的物品。主要包括以下两个步骤:
(1)计算用户相似度,找到与目标用户偏好相似的用户集合。
(2)在这个用户集合中分析并找出目标用户可能喜欢,并且没有听说过的物品推荐给目标用户。

3)基于物品的协同过滤推荐

基本思想是一个用户会喜欢和他之前喜欢的物品类似的物品。主要包括以下两个步骤:
(1)计算物品之间的相似度。
(2)根据物品的相似度和用户的历史行为给用户推荐他们可能感兴趣的物品。

4.2 推荐系统的测评

1、难点

(1)不同的推荐算法在不同的数据集上的表现不同;某些算法可能对于小数据集表现不错,但当数据集不断增大,算法的性能和运行速度都可能明显下降。
(2)推荐系统的评估指标繁多,而且指标之间并不一致。评估指标包括基本的准确度、多样性、覆盖率、惊喜度、可扩展性等。而且,准确度指标和多样性指标本身是一对矛盾。
(3)推荐系统的不同指标需要通过不同的测试方法来计算度量。比如,准确度可以通过离线计算,但惊喜度就需要通过用户调查才能得出,而有些指标的评估需要在线实验获得。


2、主要方法

1)离线实验   优势是不需要真实用户的交互,因此可以以较低的代价快速地测试评估各种不同的算法。不足之处是这类实验通常只能计算某一个算法的预测能力,无法评
估惊喜度、满意度等其他指标。

2)用户调查   用户调查是推荐系统评估的重要测试方式,这种方式可以测试用户与推荐系统交互的行为,以及推荐系统对用户行为的影响。用户调查还可以收集定性的数据,这些数据往往对解释定量的结果至关重要。然而,用户调查也有一些缺点。首先,用户调查的成本很高,一方面需要招募大量的测试人员,另一方面需要测试人员完成大量的与推荐系统交互的任务。所以通常情况下,需要控制测试人员的数量及测试任务的规模。此外,还需要考虑测试人员的分布问题,如兴趣爱好、男女比例、年龄、活跃程度的分布都应和真实系统中的用户分布尽量相同。

3)在线评估   在线评估就是在一个部署好的推荐系统上运行大规模测试,在线评估中通过真实的用户执行真实的任务来测评或比较不同的推荐系统。在线评估是三种实验方法中能获得最真实测评结果的实验方法。在线评估的优势是可以获得推荐系统整体性能评估。推荐系统的实际效果取决于多种因素,运行在线评估测试,需要考虑多种问题。值得注意的是,在线评估测试是有一定风险的。

基于以上原因,在线评估往往放在三类测评实验的最后阶段。通常先采用离线实验评估比较各种推荐算法,得到最合适的几种候选的推荐算法,并调整这些算法的参数以获得最好的推荐性能。然后,在用户调查阶段,通过记录测试人员与推荐系统交互的各种任务,评估测试人员对候选推荐系统的认可程度,从而进一步筛选候选的推荐算法,并完成算法参数的调优。最后,再通过在线评估确定最合适的推荐系统。这种循序渐进的测评流程可以降低在线测评的风险,同时获得满意的推荐效果。

3、推荐系统的评估

1)基于机器学习视角——推荐算法的预测准确度度量

在计算该指标时需要有一组离线数据集,该数据集包含用户的评分记录,比如用户对商品或电影的评分。数据集分为训练集与测试集,在训练集上建立用户评分的预测模型,然后在测试集上预测用户评分,训练集与测试集的划分可采用K折交叉验证方法。误差即为预测评分与真实评分的偏差。

2)基于信息检索视角——基本的决策支持度量与基于排名的度量

决策支持的目标就是帮助用户选择“好”的物品。而基于排名的度量关心的是为用户推荐他喜欢物品的顺序

(1)准确率、召回率、F-Measure

(2)平均准确率 平均准确率(Mean Average Precision,MAP),即多个推荐准确率的平均值,推荐的相关物品越靠前,平均准确率越高

(3)ROC曲线

(4)平均倒数排名

(5)斯皮尔曼等级相关系数 斯皮尔曼等级相关系数(Spearman Rank Correlation Coefficient,SRCC)用于计算推荐系统推荐物品的排名顺序与真实的(Ground Truth)排名顺序之间的皮尔逊相关系数。

(6)归一化折损累积增益   考虑a、基于排名位置的折损函数,使得前面物品的排名更重要;b、推荐列表中每个位置物品的效用(utility),

(7)覆盖率(Coverage) 覆盖率指标包括物品的覆盖率与用户的覆盖率。在推荐系统中,物品的覆盖率指的是被推荐的各类物品数占总物品的比例。用户的覆盖率指的是被推荐物品的用户占总用户的比例。

3)基于人机交互与用户体验视角——推荐的多样性、信任度、新颖性与惊喜度

(1)多样性(Diversity) 在推荐系统中,物品多样性的定义与相似性刚好相反。在设计推荐系统时,不但需要关心预测准确度,还需要考虑到推荐的产品需要一定的多样性,以满足用户的不同需求。
(2)信任度(Trust) 信任度指的是用户对推荐系统的推荐的信任程度。推荐系统的信任度一般只能通过用户调查的方式来统计获得,即询问用户是否信任推荐系统的推荐结果。现在推荐系统获得用户信任的主要方法是对推荐的解释,即告诉用户为什么给他推荐这些物品,比如说与他兴趣爱好类似的用户也喜欢这些物品等。合理的解释可以提高用户对推荐系统的信任度。
(3)新颖性(Novelty) 推荐系统的新颖性是指为用户推荐他们不了解的物品。提高推荐新颖性的另一个方法是利用推荐物品的平均流行度,越流行的物品新颖性越低,而推荐不太热门的物品可能反而让用户感觉新颖。还可以通过用户调查来统计推荐系统的新颖性。

商业化的推荐系统需要平衡预测准确率与推荐的新颖性、多样性等指标。

4)基于软件工程视角——系统的实时性、鲁棒性、可扩展性

(1)实时性(Real-time) 推荐系统的实时性包含两个方面。第一个方面是实时地将新添加到系统的物品推荐给用户;第二个方面是实时地根据用户的行为(购买或
点击)为用户推荐新的物品。
2)鲁棒性(Robustness)一方面是指推荐系统在面对虚假(作弊)信息时的稳定性,这些虚假信息的目的是为了影响推荐结果。另一方面指的是在极端条件下系统的稳定性,如某一时间段的大规模用户请求。这一类的鲁棒性与推荐系统基础设施的架构相关,如硬件规模、可靠性、数据库软件等。
(3)可扩展性(Scalability) 推荐系统刚刚上线时,其数据量(物品数据与用户数据)通常比较小,有些可能是一些模拟数据。随着数据集的不断增长,推荐算法通常会速度变慢或需要额外的计算、存储资源。因此在设计推荐系统时就需要考虑其可扩展性,并在系统运行时监控其资源消耗的变化。

5、大数据应用的性能测评技术

5.1大数据应用的影响因素

1、数据集   2、数据多样性   3、数据持续更新

5.2性能测评

性能测试一般可分为并发测试、负载测试、压力测试、容量测试。

这个和普通的web应用系统的性能测试类似,但应重点关注数据增长时各个指标的增长趋势,即可扩展性。

5.3  测评要点

1、数据构造

a、结构化数据  b、非结构化数据   c、半结构化数据

需要关注大数据设计的代表性、广泛性和数据分布密集程度。

  • 代表性:测试数据应具有代表性,不仅包括合理的、处于取值区间的测试数据,而且应包括不合理、非法的、处于取值区间边界的和越界的测试数据,甚至是极限的数据。在测试数据设计中应考虑偏离数据,如空缺值类型的数据、噪声数据、不一致的数据、重复的数据四大类
  • 广泛性:测试数据应尽可能多地包含可取的数值。广泛性指测试数据应能普遍地发现错误,而不是针对某一个错误反复测试。测试数据应针对应用特点,覆盖所有可能的组合。
  • 数据分布密集程度:数据的分布密集程度可以理解成数据倾斜,可能导致分布计算严重不均衡。应根据实际情况,不具备条件时应根据设计需求来设计。

测试数据的设计包括手动设计、规则设计、场景设计和动态生成。

2、性能测评模型

负载策略是指在测试过程中采取何种负载模式向被测系统增加压力的过程。大数据应用中,主要包括应用负载模型、数据样本模型。

1)应用负载模型   负载模型可从数据量、功能点、业务现状、预测分析等方法进行。

2)数据样本模型    负载策略包括固定负载、增量式负载、动态负载、队列负载和面向目标的负载设置策略。

6、大数据应用的安全测评

6.1  影响因素分析

1、分布式计算框架

1)不可信的Map函数 Map函数可能被修改以用于一些不可告人的目的,比如监听请求、改变MapReduce工作流程或篡改计算结果,也可能发生某种故障而导致错误的计算结果。可能发生的安全事件有:一个故障的Map工作节点产生了错误的结果,使得最终的数据分析结论不符合事实,或造成用户数据的泄漏;黑客利用自己伪造的Map函数对云架构实施攻击,如中间人攻击、拒绝服务攻击等;一个伪造的Map节点被加入集群中,发送大量重复数据,并不断引入新的伪造Map节点,对数据的分析产生影响。以上安全隐患都是由不可信的Map函数引起,更为不幸的是,在大量的Map节点中很难找出有问题的Map节点,从而对安全隐患的探测造成更大的困难。
(2)缺乏用户以及服务器的安全认证机制和访问控制机制 由于缺乏用户认证,因此任何用户都可以冒充他人,并非法访问MapReduce集群,恶意提交作业,或者随意地写入或修改数据节点上的数据,甚至可以任意修改或删除任何其他用户的作业,不受任何限制。
(3)缺乏传输以及存储加密 客户与服务器之间的数据传输和存储过程中没有加解密处理,而是使用明文传输和存储,攻击者可以在传输的过程中窃取数据,或入侵存储系统窃取数据。

2、NOSQL数据库的存储

 

3、数据挖掘和分析中的隐私问题

大数据的核心是数据挖掘技术,然而使用数据挖掘技术为企业创造价值的同时,随之产生的就是隐私泄露的问题。

6.2 安全测评技术

1、分布式计算框架的安全测评

1)检查身份认证和授权的配置;2)检查调度器配置;3)检查作业队列权限配置;4)检查DFS permission配置

2 、非关系型数据库的安全测评

1)检查身份认证配置; 2)检查接口调用的安全配置;3)检查访问控制配置;

3、数据的安全性测评

1)数据来源的安全性测评:恶意数据输入的预防机制及其测评、基于数据溯源技术的数据可信性评估

2)隐私保护程度的测评:数据去隐私处理效果的测评、访问控制机制的测评、对计算结果隐私程度的测评

4、应用安全等级保护测评

参考等保2.0标准。

 

 

Guess you like

Origin blog.csdn.net/hgstclyh/article/details/112001874
Recommended