第一篇:机器学习中关于模型评估方法总结
模型评估
我们在建立模型之后,接下来就要去评估模型,确定这个模型是否有用。在实际情况中,我们会用不同的度量去评估我们的模型,而度量的选择取决于模型的类型和模型以后要做的事。
1.1 二分类评估
二分类模型的评估。
1.1.1 业界标准叫法
二分类评估;分类算法。
1.1.2 应用场景
信息检索、分类、识别、翻译体系中。
1.1.2.1 新闻质量分类评估 对于新闻APP,其通过各种来源获得的新闻,质量通常良莠不齐。为了提升用户体验,通常需要构建一个分类器模型分类低质新闻和优质新闻,进而进行分类器的评估。
1.1.2.2垃圾短信分类评估 垃圾短信已经日益成为困扰运营商和手机用户的难题,严重影响人们的生活、侵害到运营商的社会公众形象。构建二分类器模型对垃圾短信和正常短信进行分类,并进行二分类评估。
1.1.3 原理
1.1.3.1混淆矩阵 混淆矩阵(Confusion Matrix)。来源于信息论,在机器学习、人工智能领域,混淆矩阵又称为可能性表格或错误矩阵,是一种矩阵呈现的可视化工具,用于有监督学习,在无监督学习中一般叫匹配矩阵。混淆矩阵是一个N*N的矩阵,N为分类(目标值)的个数,假如我们面对的是一个二分类模型问题,即N=2,就得到一个2*2的矩阵,它就是一个二分类评估问题。混淆矩阵的每一列代表预测类别,每一列的总数表示预测为该类别的数据的数目,每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的实例的数目。
图1 2*2混淆矩阵图
阳性(P,Positive): 阴性(N,Negative):
真阳性(TP,True Positive):正确的肯定,又称“命中”(Hit);被模型预测为正类的正样本。
真阴性(TN,True Negative):正确的否定,又称“正确拒绝”(correct rejection),被模型预测为负类的负样本。
伪阳性(FP,false Positive):错误的肯定,又称“假警报”(false alarm);被模型预测为负类的正样本。
伪阴性(FN,false Negative):错误的否定,又称“未命中”(miss);被模型预测为正类的负样本。
灵敏度(Sensitivity)或真阳性率(TPR,Ture Negative Rate):又称“召回率”(recall)、命中率(Hit Rate)。在阳性值中实际被预测正确所占的比例。TPR=TP/P=TP/(TP+FN)伪阳性率(FPR,false positive rate):又称“假正类率”、“错误命中率”、“假警报率”。FPR=FP/(FP+TN)特异度(SPC,Specificity)或真阴性率:在阴性值中实际被预测正确所占的比例。SPC=TN/N=TN/(FP+TN)=1-FPR 假发现率(FDR,false discovery rate):FDR=FP/(FP+TP)=1-TPR 准确度(ACC):预测正确的数占样本数的比例。ACC=(TP+TN)/(P+N)阳性预测值(PPV,positive predictive value)或精度(precision):阳性预测值被预测正确的比例。PPV=TP/(TP+FP)阴性预测值(NPV,negative predictive value):阴性预测值被预测正确的比例。NPV=TN/(TN+FN)
图2 一个模型的2*2混淆矩阵图示例
我们可以看出,这个模型的准确度是88%,阳性预测值比较高而阴性预测值较低,对于灵敏度和特异度也是相同。这是因为我们选的阈值导致的,若我们降低阈值,这两对数值就会变得接近。1.1.3.2 ROC曲线 ROC曲线(Receiver Operation Characteristic Curve),中文名叫“接受者操作特征曲线”,其实是从混淆矩阵衍生出来的图形,其横坐标是Specificity(特异度),纵坐标是Sensitivity(灵敏度)。
图3 ROC曲线图
随着阈值的减小,更多的值归于正类,敏感度和特异度也相应增加。而那条45度线是一条参照线,ROC曲线要与这条参照线比较。如果我们不用模型,直接把客户分类,我们得到的曲线就是这条参照线,然而,我们使用了模型进行预测,就应该比随机的要好,所以,ROC曲线要尽量远离参照线,越远,我们的模型预测效果越好。ROC曲线反映了错误命中率和灵敏度之前权衡的情况,即灵敏度随着错误命中率递增的情况下,谁增长的更快,快多少。灵敏度增长的越快,曲线越往上屈,反映了模型的分类性能越好。当正负样本不平衡时,这种模型评价方式比起一般的精确度评价方式好处尤为明显。
ROC曲线快速爬向左上,表示模型准确预测数据。一般情况下,ROC曲线都应该处于参照线的上方。1.1.3.3AUC(ROC曲线下面积 Area Under ROC Curve)
图3 AUC曲线图
ROC曲线是根据与45度参照线比较判断模型的好坏,但这只是一种定性的分析,如果需要定量的计算判断,就用到了AUC,即:ROC曲线下面积。参考线的面积是0.5,ROC曲线越往左上方靠拢,AUC就越大(这里的面积是0.869),模型评估的性能越好,完美分类的AUC值是1。1.1.3.4基尼系数 基尼系统经常用于分类问题,公式:Gini=2*AUC-1。基尼系数大于60%,就算好模型。1.1.3.5
LIFT(提升)
图3 LIFT提升图
LIFT=(TP/(TP+FP))/((TP+FN)/(TP+FN+FP+TN))LIFT越大,模型的预测效果越好。LIFT值应一直大于1,如果LIFT值等于1,模型就没有任何提升了。横轴是预测为正例的比例,即:(TP+FN)/(TP+FN+FP+TN)1.1.3.6
Gains(增益)
图3 Gains增益图
与LIFT类似,区别在于纵轴的刻度不同,横轴相同。Gains= TP/(TP+FP)=LIFT*((TP+FN)/(TP+FN+FP+TN))
1.1.3.7
K-S(Kolmogorov-Smirnov chart)图 K-S图是用来度量阳性和阴性分类区分程度的。若我们把总体严格按照阳性和阴性分成两组,则K-S值为100,如果我们是随机区分阳性和阴性,则K-S值为0。所以,分类模型的K-S值在0到100之间,值越大,模型表现越好。
1.2 多分类评估
多分类模型的评估。
1.2.1 业界标准叫法
多分类评估。
1.2.2 应用场景
1.2.2.1商品图片分类 淘宝、京东等电商含有数以百万级的商品图片,“拍照购”等应用必须对用户提供的商品图片进行分类。
1.2.3 原理
同1.1.3节。
1.2.3.1 混淆矩阵 如果有150个样本数据,这些数据分成3类,每类50个。分类结束后得到的混淆矩阵如下:
每一行之和为50,表示50个样本。第一行说明类1的50个样本有43个分类正确,5个错分为类2,2个错分为类3。第一行第一列中的43表示有43个实际归属第一类的实例被预测为第一类,同理,第二行第一列的2表示有2个实际归属为第二类的实例被错误预测为第一类。
1.2.4 不同应用场景使用的方法及参数
1.2.4.1 混淆矩阵
混淆矩阵一般只能用于分类输出模型中。
对于混淆矩阵,一般情况下,我们只关心其中一个定义度量。例如:在医药公司,一般会更加关心最小化误诊率,也就是高特异度。而在磨损模型中,我们更关心的是灵敏度。1.2.4.2ROC和AUC曲线 ROC曲线的一个应用场景是在人脸检测中,很多相关的研究或者企业评价他们的检测性能程度是通过ROC曲线来评定的。
ROC和AUC曲线常被用来评价一个二值分类器的优劣。
1.3 Spark模型预测
Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。是一种计算框架。
1.3.1 业界标准叫法
Spark。
1.3.2 应用
1.3.2.1 腾讯社交广告平台—广点通 广点通是最早使用Spark的应用之一。腾讯大数据精准推荐借助Spark快速迭代的优势,围绕“数据+算法+系统”这套技术方案,实现了在“数据实时采集、算法实时训练、系统实时预测”的全流程实时并行高维算法,最终成功应用于广点通pCTR投放系统上,支持每天上百亿的请求量。基于日志数据的快速查询系统业务构建于Spark之上的Shark,利用其快速查询以及内存表等优势,承担了日志数据的即席查询工作。在性能方面,普遍比Hive高2-10倍,如果使用内存表的功能,性能将会比hive快百倍。
1.3.2.2 Yahoo—Audience Expansion(读者扩张)Yahoo将Spark用在Audience Expansion中的应用。Audience Expansion是广告中寻找目标用户的一种方法:首先广告者提供一些观看了广告并且购买产品的样本客户,据此进行学习,寻找更多可能转化的用户,对他们定向广告。Yahoo采用的算法是logistic regression。同时由于有些SQL负载需要更高的服务质量,又加入了专门跑Shark的大内存集群,用于取代商业BI/OLAP工具,承担报表/仪表盘和交互式/即席查询,同时与桌面BI工具对接。目前在Yahoo部署的Spark集群有112台节点,9.2TB内存。1.3.2.3 淘宝—搜索和广告业务 阿里搜索和广告业务,最初使用Mahout或者自己写的MR来解决复杂的机器学习,导致效率低而且代码不易维护。淘宝技术团队使用了Spark来解决多次迭代的机器学习算法、高计算复杂度的算法等。将Spark运用于淘宝的推荐相关算法上,同时还利用Graphx解决了许多生产问题,包括以下计算场景:基于度分布的中枢节点发现、基于最大连通图的社区发现、基于三角形计数的关系衡量、基于随机游走的用户属性传播等。
1.3.2.4 优酷土豆—视频推荐和广告业务 优酷土豆在使用Hadoop集群的突出问题主要包括:第一是商业智能BI方面,分析师提交任务之后需要等待很久才得到结果;第二就是大数据量计算,比如进行一些模拟广告投放之时,计算量非常大的同时对效率要求也比较高,最后就是机器学习和图计算的迭代运算也是需要耗费大量资源且速度很慢。最终发现这些应用场景并不适合在MapReduce里面去处理。通过对比,发现Spark性能比MapReduce提升很多。首先,交互查询响应快,性能比Hadoop提高若干倍;模拟广告投放计算效率高、延迟小(同hadoop比延迟至少降低一个数量级);机器学习、图计算等迭代计算,大大减少了网络传输、数据落地等,极大的提高的计算性能。目前Spark已经广泛使用在优酷土豆的视频推荐(图计算)、广告业务等。
1.3.3 原理
1.3.3.1Spark生态圈 如下图所示为Spark的整个生态圈,最底层为资源管理器,采用Mesos、Yarn等资源管理集群或者Spark自带的Standalone模式,底层存储为文件系统或者其他格式的存储系统如Hbase。Spark作为计算框架,为上层多种应用提供服务。Graphx和MLBase提供数据挖掘服务,如图计算和挖掘迭代计算等。Shark提供SQL查询服务,兼容Hive语法,性能比Hive快3-50倍,BlinkDB是一个通过权衡数据精确度来提升查询晌应时间的交互SQL查询引擎,二者都可作为交互式查询使用。Spark Streaming将流式计算分解成一系列短小的批处理计算,并且提供高可靠和吞吐量服务。
图4 spark生态圈图
1.3.3.2 Spark运行框架
图5 spark运行框架图
Spark的运行框架首先有集群资源管理服务(Cluster Manager)和运行作业任务节点(Worker Node),然后就是每个应用的任务控制节点Driver和每个机器节点上有具体任务的执行进程。与MR计算框架相比,Executor有二个优点:一个是多线程来执行具体的任务,而不是像MR那样采用进程模型,减少了任务的启动开稍。二个是Executor上会有一个BlockManager存储模块,类似于KV系统(内存和磁盘共同作为存储设备),当需要迭代多轮时,可以将中间过程的数据先放到这个存储系统上,下次需要时直接读该存储上数据,而不需要读写到hdfs等相关的文件系统里,或者在交互式查询场景下,事先将表Cache到该存储系统上,提高读写IO性能。另外Spark在做Shuffle时,在Groupby,Join等场景下去掉了不必要的Sort操作,相比于MapReduce只有Map和Reduce二种模式,Spark还提供了更加丰富全面的运算操作如filter,groupby,join等。1.3.3.3 Spark与hadoop
Hadoop有两个核心模块,分布式存储模块HDFS和分布式计算模块Mapreduce spark本身并没有提供分布式文件系统,因此spark的分析大多依赖于Hadoop的分布式文件系统HDFS Hadoop的Mapreduce与spark都可以进行数据计算,而相比于Mapreduce,spark的速度更快并且提供的功能更加丰富 1.3.3.4 Spark运行流程
图5 spark运行流程图
1.构建Spark Application的运行环境,启动SparkContext。2.SparkContext向资源管理器(可以是Standalone,Mesos,Yarn)申请运行Executor资源,并启动StandaloneExecutorbackend。3.Executor向SparkContext申请Task。4.SparkContext将应用程序分发给Executor。
5.SparkContext构建成DAG图,将DAG图分解成Stage、将Taskset发送给Task Scheduler,最后由Task Scheduler将Task发送给Executor运行。
6.Task在Executor上运行,运行完释放所有资源。1.3.3.5 Spark运行特点
1.每个Application获取专属的executor进程,该进程在Application期间一直驻留,并以多线程方式运行Task。这种Application隔离机制是有优势的,无论是从调度角度看(每个Driver调度他自己的任务),还是从运行角度看(来自不同Application的Task运行在不同JVM中),当然这样意味着Spark Application不能跨应用程序共享数据,除非将数据写入外部存储系统。2.Spark与资源管理器无关,只要能够获取executor进程,并能保持相互通信就可以了。
3.提交SparkContext的Client应该靠近Worker节点(运行Executor的节点),最好是在同一个Rack里,因为Spark Application运行过程中SparkContext和Executor之间有大量的信息交换。4.Task采用了数据本地性和推测执行的优化机制。
1.4 回归评估
对回归模型的评估。
1.4.1 业界标准叫法
回归模型评估。
1.4.2 应用
1.4.3 原理及方法
1.4.3.1
均方根误差(Root Mean Squared Error,RMSE)RMSE是一个衡量回归模型误差率的常用公式。然而,它仅能比较误差是相同单位的模型。
1.4.3.2
相对平方误差(Relative Squared Error,RSE)与RMSE不同,RSE可以比较误差是不同单位的模型。
1.4.3.3
平均绝对误差(Mean Absolute Error,MAE)MAE与原始数据单位相同,它仅能比较误差是相同单位的模型。量级近似与RMSE,但是误差值相对小一些。
1.4.3.4
相对绝对误差(Relative Absolute Error,RAE)
1.4.3.5
相对绝对误差(Coefficient of Determination)
决定系数(R2)回归模型汇总了回归模型的解释度,由平方和术语计算而得。R2描述了回归模型所解释的因变量方差在总方差中的比例。R2很大,即自变量和因变量之间存在线性关系,如果回归模型是“完美的”,SSE为零,则R2为1。R2小,则自变量和因变量之间存在线性关系的证据不令人信服。如果回归模型完全失败,SSE等于SST,没有方差可被回归解释,则R2为零。
1.4.3.6 标准化残差图(Standardized Residuals Plot)标准化残差图是一个对在标准化尺度上显示残差分散图有帮助的可视化工具。标准化残差图与普通残差图之间没有实质不同,唯一区别是在Y轴的标准化可以更容易检测到潜在的异常值。
第二篇:责任心评估模型
责任心评估模型
评估一个人的责任心比较流行的方式有两种:
一是:从流程上评估,二是:从“态度”和“行为”两个维度去评估。
所谓从流程上评估,亦即通过考察一个人在做某件事情或完成某个目标中从事前事中事后所思所为,去考查此人的责任心的方式。考查3个阶段2大要素,分别是事前计划与准备,事中控制与推进,事后总结与助攻。
从态度和行为上评估,实际上时考察一个人做人和做事两方面表现,概括起来可从六个维度进行考察,进而评价一个人的责任心的方式。
下面就本人几年来工作的经验,简单地介绍一下第一种评估方式的建模和操作方法:
事前
各轴满分5分,据知行合一的原理,有计划有行动才得分,有计划无行动和无计划无行动均无分,无计划有行动(调动了资源),根据事中推进的难易评分。只是要注意将这些定性的事后
事中
评分准则通过一定的状态描述来取评分标准,以近似评价各维度分数。
获取信息的方式多种多样,可以是情景演示,可以是执行游戏,也可以是问话,如下面:在过去的学习、生活、工作中你处理过不少事情,举一件印象比较深刻的,描述一下当时你是怎么考虑的,采取了哪些行动,效果又怎样?
第一种方式评价结果稍显粗略,但易于操作。第二种方式则较为精细,操作起来须费些功夫。根据评价要素的不同,第二种方式的评价模型如下(我们仍然用雷达图):
做事 关注细节做人 敬业精神543210做人 积极主动分值分值分值做人 为人正直做事 过程监控做事 表率作用
最简单易行的考察方式-------问话 要素
一、敬业精神
释义:能够尽职尽责第履行工作职责,试图调动各种资源、发挥创造力地完成工作 问话
1、在以往的工作、学习和生活中,你感觉压力最大的是什么?怎么想的?怎么做的?效果怎么样? 答案越正向和肯定,分值越高。
要素
二、积极主动
释义:在没有外界压力的情况下,能够自觉地完成岗位职责之外且无人负责的工作。问话
2、你身边的电话响了,然而你的同事又不在位上,你会怎么办?
A 通常要等它响几声,之后看一下没别人认,我再接。B 如果不忙就去接,忙了就不接。
C 通常不去接,因为不知道对方是谁或者不知道是什么事情,怕尴尬。D 通常去接,并告诉对方自己同事不在,让他一会再打过来。E 通常去接,并了解一下对方是谁或什么事情,以便转告。分值依次是:1,2,3,4,5
要素
三、为人正直
释义:不考虑个人私利,为了公司的利益,敢于坚持原则,不怕得罪人,敢于承担责任。问话
3、假如你们公司规定:迟到不能超过三次,三次以上者每次计旷工半天。而在你的考勤核算中有一个人,有一个平时德高望重的干部偶尔迟到超了一次。当他找你问及此事时,你怎么讲? A迟到是偶然的,又是老员工,可以酌情放宽,我带着你去跟领导反映一下。B领导规定这样的,超过一次就要算半天旷工,我也没办法,要不你去找领导问问。C这是公司的规定,我们只能按制度办
D 您是知道的,公司既然规定了,我们就要带头执行呀!E这只是偶然,我想咱们做领导的不会再有第二次了。分值依次是:1,2,3,4,5
要素
四、表率作用
释义:为实现公司战略目标和工作结果的达成,用自己的行动去影响他人和带动他人。问话
4、某股份制民营企业,某阶段核心领导狠拼业绩。公司明文规定:所有职工必须穿工衣上班,且公司给每个员工都发了两套工衣,包括领导。一个下雨天的上班时间,车间的绝大部分员工都穿工衣;办公室人员有一半人穿了,一半人没穿,其中有些核心领导也没穿。作为公司这项制度的监督落实者,你怎么看?
A 既然是下雨天,特殊情况特殊考虑嘛,个别人没穿也没事。B 领导都没穿,看来对天气的情况都有考虑,今天就算了。
D 办公室里的领导和其他办公职员跟车间不同,没必要整天都穿那套工衣服,将来考虑给定做不同的制服。
E 调查一下,情况是偶然的,要先汇报给直接上司知道,之前也出现过或许多人都有不同的看法,要想一定的对策呈报给上司。分值依次是:1,2,3,4,5
要素
五、过程监控
释义:根据工作计划,对工作过程进行监督,确保工作结果的达成
问话
5、你是某个项目组的成员之一,项目的关键问题都已经攻克,整个项目也进入尾声,就差某些局部细节的复查和资料的整理。这时有几个人提出喝茶、唱歌等活动放松一下,你怎么做?
A 自己不喜欢或者累了,不去凑热闹。
B 看一下别的人,选择出去放松的人多,就跟着去。C无所谓,去也行,不去也行。
D最后的工作做完了再说,不然我睡不着觉的。
E 按照分工,要求项目组的部分人留守,把工作做完再去。分值依次是:1,2,3,4,5
要素
六、关注细节
释义:考虑问题周密,做事细致,追求工作成果的完美。
问话
6、公司要在总部组织全国性的营销会议,将历时3天,由行政副总领衔统筹,组成会务小组,负责整个会务的接待和会议服务工作。副总已经给各小组成员分工明确了,大家各自也很清楚自己该在什么时间什么地点做做什么事情,做为会务组的协调者,你该做些什么呢?
描述的要点要切合工作开展的五步骤给分:
1、有目标分解
2、有危机计划
3、有时间节点
4、有过程控制
5、有阶段总结 每切合一点给1分。
第三篇:自然语言处理常用模型方法总结
自然语言处理常用模型使用方法总结
一、N元模型
思想:
如果用变量W代表一个文本中顺序排列的n个词,即W = W1W2…Wn,则统计语言模型的任务是给出任意词序列W 在文本中出现的概率P(W)。利用概率的乘积公式,P(W)可展开为:P(W)= P(w1)P(w2|w1)P(w3| w1 w2)…P(wn|w1 w2…wn-1),不难看出,为了预测词Wn的出现概率,必须已知它前面所有词的出现概率。从计算上来看,这太复杂了。如果任意一个词Wi的出现概率只同它前面的N-1个词有关,问题就可以得到很大的简化。这时的语言模型叫做N元模型(N-gram),即P(W)= P(w1)P(w2|w1)P(w3| w1 w2)…P(wi|wi-N+1…wi-1)…实际使用的通常是N=2 或N=3的二元模型(bi-gram)或三元模型(tri-gram)。以三元模型为例,近似认为任意词Wi的出现概率只同它紧接的前面的两个词有关。重要的是这些概率参数都是可以通过大规模语料库来估值的。比如三元概率有P(wi|wi-2wi-1)≈ count(wi-2 wi-1… wi)/ count(wi-2 wi-1)式中count(…)表示一个特定词序列在整个语料库中出现的累计次数。统计语言模型有点像天气预报的方法。用来估计概率参数的大规模语料库好比是一个地区历年积累起来的气象纪录,而用三元模型来做天气预报,就像是根据前两天的天气情况来预测今天的天气。天气预报当然不可能百分之百正确。这也算是概率统计方法的一个特点吧。(摘自黄昌宁论文《中文信息处理的主流技术是什么?》)
条件: 该模型基于这样一种假设,第n个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计N个词同时出现的次数得到。常用的是二元的Bi-Gram和三元的Tri-Gram。
问题:
虽然我们知道元模型中, n越大约束力越强,但由于计算机容量和速度的限制及数据的稀疏,很难进行大n的统计。
二、马尔可夫模型以及隐马尔可夫模型
思想:
马尔可夫模型实际上是个有限状态机,两两状态间有转移概率;隐马尔可夫模型中状态不可见,我们只能看到输出序列,也就是每次状态转移会抛出个观测值;当我们观察到观测序列后,要找到最佳的状态序列。隐马尔科夫模型是一种用参数表示的用于描述随机过程统计特性的概率模型,是一个双重随机过程,由两个部分组成:马尔科夫链和一般随机过程。其中马尔科夫链用来描述状态的转移,用转移概率描述。一般随机过程用来描述状态与观察序列之间的关系,用观察值概率描述。因此,隐马尔可夫模型可以看成是能够随机进行状态转移并输出符号的有限状态自动机,它通过定义观察序列和状态序列的联合概率对随机生成过程进行建模。每一个观察序列可以看成是由一个状态转移序列生成,状态转移过程是依据初始状态概率分布随机选择一个初始状态开始,输出一个观察值后再根据状态转移概率矩阵随机转移到下一状态,直到到达某一预先指定的结束状态为止,在每一个状态将根据输出概率矩阵随机输出一个观察序列的元素。
一个 HMM有 5个组成部分,通常记为一个五元组{S,K, π,A,B},有时简写为一个三元组{π ,A,B},其中:①S是模型的状态集,模型共有 N个状态,记为 S={s1,s2, ⋯,sN};②K是模型中状态输出符号的集合,符号数为 M,符号集记为K={k1,k2,⋯,kM};③是初始状态概率分布,记为 ={ 1, 2,⋯, N},其中 i是状态 Si作为初始状态的概率;④A是状态转移概率矩阵,记为A={aij},1≤i≤N,1≤j≤N。其中 aij是从状态 Si转移到状态 Sj的概率;⑤B是符号输出概率矩阵,记为B={bik},1≤i≤N,1≤k≤M。其中 bik是状态 Si输出 Vk的概率。要用HMM解决实际问题,首先需要解决如下 3个基本问题:①给定一个观察序列 O=O1O2⋯OT和模型{ π,A,B},如何高效率地计算概率P(O|λ),也就是在给定模型的情况下观察序列O的概率;②给定一个观察序列 O=O1O2⋯OT和模型{ π,A,B},如何快速地选择在一定意义下“最优”的状态序列Q=q1q2⋯qT,使得该状态序列“最好地解释”观察序列;③给定一个观察序列 O=O1O2⋯OT,以及可能的模型空间,如何来估计模型参数,也就是说,如何调节模型{π,A,B}的参数,使得 P(O|λ)最大。
问题:
隐马模型中存在两个假设:输出独立性假设和马尔可夫性假设。其中,输出独立性假设要求序列数据严格相互独立才能保证推导的正确性,而事实上大多数序列数据不能被表示 2 成一系列独立事件。
三、最大熵模型
最大熵原理原本是热力学中一个非常重要的原理,后来被广泛应用于自然语言处理方面。其基本原理很简单:对所有的已知事实建模,对未知不做任何假设。也就是建模时选择这样一个统计概率模型,在满足约束的模型中选择熵最大的概率模型。若将词性标注或者其他自然语言处理任务看作一个随机过程,最大熵模型就是从所有符合条件的分布中,选择最均匀的分布,此时熵值最大。
求解最大熵模型,可以采用拉格朗日乘数法,其计算公式为:
pyx1expifi(x,y)Z(x)i
Z(x)expifi(x,y)yi为归一化因子 ,i是对应特征的权重,fi表示其中,一个特征。每个特征对词性选择的影响大小由特征权重学习算法自动得到。
i决定,而这些权值可由GIS或IIS
四、支持向量机
原理:
支持向量机的主要思想可以概括为两点:(1)它是针对线性可分情况进行分析,对于线性不可分的情况, 通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能;(2)它基于结构风险最小化理论之上在特征空间中建构最优分割超平面,使得学习器得到全局最优化,并且在整个样本空间的期望风险以某个概率满足一定上界。
支持向量机的目标就是要根据结构风险最小化原理,构造一个目标函数将两类模式尽可能地区分开来, 通常分为两类情况来讨论,:(1)线性可分;(2)线性不可分。
线性可分情况
在线性可分的情况下,就会存在一个超平面使得训练样本完全分开,该超平面可描述为: w ·x + b = 0(1)其中,“·”是点积, w 是n 维向量, b 为偏移量。
最优超平面是使得每一类数据与超平面距离最近的向量与超平面之间的距离最大的这样的平面.3 最优超平面可以通过解下面的二次优化问题来获得: 满足约束条件: , i = 1 ,2 ,3 ,......, n.(3)
在特征数目特别大的情况,可以将此二次规划问题转化为其对偶问题:
(4)
(5)(6 满足约束条件:
这里
(7)
是Lagrange 乘子,是最优超平面的法向量,是最优超平面的偏移量,在这类优化问题的求解与分析中, KKT条件将起到很重要的作用,在(7)式中,其解必须满足:
从式(5)可知,那些
(8)
= 0 的样本对分类没有任何作用,只有那些
> 0 的样本才对分类起作用,这些样本称为支持向量,故最终的分类函数为:
根据f(x)的符号来确定X 的归属。线性不可分的情况
(9)对于线性不可分的情况,可以把样本X 映射到一个高维特征空间H,并在此空间中运用原空间的函 数来实现内积运算,这样将非线性问题转换成另一空间的线性问题来获得一个样本的归属.根据泛函的有关理论,只要一种核函数满足Mercer 条件,它就对应某一空间中的内积,因此只要在最优分类面上采用适当的内积函数就可以实现这种线性不可分的分类问题.此时的目标函数为:
0)
(1 4 其分类函数为:(11)
内积核函数 :
目前有三类用的较多的内积核函数:第一类是
(12)
我们所能得到的是p阶多项式分类器,第二类是径向基函数(RBF),也称作高斯核函数:
第三类是Sigmoid函数
特点:
概括地说,支持向量机就是首先通过内积函数定义的非线性变换将输入空间变换到另一个高维空间,在这个空间中求最优分类面。SVM分类函数形式上类似于一个神经网络,输出是中间节点的线性组合,每个中间节点对应一个输入样本与一个支持向量的内积,因此也叫做支持向量网络。
SVM方法的特点:
① 非线性映射是SVM方法的理论基础,SVM利用内积核函数代替向高维空间的非线性映射;② 对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想是SVM方法的核心;③ 支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支持向量。
SVM 是一种有坚实理论基础的新颖的小样本学习方法。它基本上不涉及概率测度及大数定律等,因此不同于现有的统计方法。从本质上看,它避开了从归纳到演绎的传统过程,实现了高效的从训练样本到预报样本的“转导推理”,大大简化了通常的分类和回归等问题。
SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、“剔除”大量冗余样本,而且注定了该方法不但算法简单,而且具有较好的“鲁棒”性。这种 “鲁棒”性主要体现在: ①增、删非支持向量样本对模型没有影响;②支持向量样本集具有一定的鲁棒性;③有些成功的应用中,SVM 方法对核的选取不敏感
五、条件随机场
原理:
条件随机场(CRFs)是一种基于统计的序列标记识别模型,由John Lafferty等人在2001年首次提出。它是一种无向图模型,对于指定的节点输入值,它能够计算指定的节点输出值上的条件概率,其训练目标是使得条件概率最大化。线性链是CRFs中常见的特定图结构之一,它由指定的输出节点顺序链接而成。一个线性链与一个有限状态机相对应,可用于解决序列数据的标注问题。在多数情况下,CRFs均指线性的CRFs。用x=(x1,x2,…,xn)表示要进行标注的数据序列,y=(y1,y2,…,yn)表示对应的结果序列。例如对于中文词性标注任务,x可以表示一个中文句子x=(上海,浦东,开发,与,法制,建设,同步),y则表示该句子中每个词的词性序列y=(NR,NR,NN,CC,NN,NN,VV)。
对于(X,Y),C由局部特征向量f和对应的权重向量λ确定。对于输入数据序列x和标注结果序列y,条件随机场C的全局特征表示为
Fy,xfy,x,ii ⑴
其中i遍历输入数据序列的所有位置,f(y,x,i)表示在i位置时各个特征组成的特征向量。于是,CRFs定义的条件概率分布为
p(Y,X)其中 expFY,XZX
⑵
ZXexpFy,xy ⑶
给定一个输入数据序列X,标注的目标就是找出其对应的最可能的标注结果序列了,即
yargmaxpy|xy ⑷
由于Zλ(X)不依赖于y,因此有
yargmaxpy|xargmaxFy,xyy ⑸
CRFs模型的参数估计通常采用L—BFGS算法实现,CRFs解码过程,也就是求解未知串标注的过程,需要搜索计算该串上的一个最大联合概率,解码过程采用Viterbi算法来完成。
CRFs具有很强的推理能力,能够充分地利用上下文信息作为特征,还可以任意地添加其他外部特征,使得模型能够获取的信息非常丰富。CRFs通过仅使用一个指数模型作为在给定观测序列条件下整个标记序列的联合概率,使得该模型中不同状态下的不同特征权值可以彼此交替,从而有效地解决了其他非生成有向图模型所产生的标注偏置的问题。这些特点,使得CRFs从理论上讲,非常适合中文词性标注。‘
总结
首先,CRF,HMM(隐马模型)都常用来做序列标注的建模,像词性标注,True casing。但隐马模型一个最大的缺点就是由于其输出独立性假设,导致其不能考虑上下文的特征,限制了特征的选择,而另外一种称为最大熵隐马模型则解决了这一问题,可以任意的选择特征,但由于其在每一节点都要进行归一化,所以只能找到局部的最优值,同时也带来了标记偏见的问题(label bias),即凡是训练语料中未出现的情况全都忽略掉,而条件随机场则很好的解决了这一问题,他并不在每一个节点进行归一化,而是所有特征进行全局归一化,因此可以求得全局的最优值。目前,条件随机场的训练和解码的开源工具还只支持链式的序列,复杂的尚不支持,而且训练时间很长,但效果还可以。最大熵隐马模型的局限性在于其利用训练的局部模型去做全局预测。其最优预测序列只是通过viterbi算法将局部的最大熵模型结合而成的。条件随机场,隐马模型,最大熵隐马模型这三个模型都可以用来做序列标注模型。但是其各自有自身的特点,HMM模型是对转移概率和表现概率直接建模,统计共现概率。而最大熵隐马模型是对转移概率和表现概率建立联合概率,统计时统计的是条件概率。最大熵隐马模型容易陷入局部最优,是因为最大熵隐马模型只在局部做归一化,而CRF模型中,统计了全局概率,在 做归一化时,考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置的问题。
第四篇:机器学习报告
机器学习总结报告
刘皓冰
大部分人错误地以为机器学习是计算机像人一样去学习。事实上,计算机是死的,怎么可能像人类一样“学习”呢,机器学习依靠的是数学,更确切地说是靠统计。
如果我们让计算机工作,是给它一串指令,然后计算机会遵照这个指令一步步执行下去,有因有果,非常明确。但这种方式在机器学习中是行不通的。机器学习是不会接受你输入的指令的,它接受的是你输入的数据。也就是说,机器学习是一种让计算机利用数据而不是指令来进行各种工作的方法。这听起来非常不可思议,但结果上却是非常可行的。“统计”思想将在你学习“机器学习”相关理念时无时无刻不伴随,相关而不是因果的概念将是支撑机器学习能够工作的核心概念。
依据数据所做的判断跟机器学习的思想根本上是一致的。机器学习方法是计算机利用已有的数据(输入),得出了某种模型,并利用此模型预测未来(输出)的一种方法。从数据中学得模型的过程称为“学习”(learning)或“训练”(training),这个过程通过执行某个学习算法来完成。训练过程中使用的数据成为“训练数据”(training data),其中每个样本称为一个“训练样本”(training sample),训练样本组成的集合称为“训练集“(training set)。学得模型对应了关于数据的某种潜在的规律,因此亦称”假设“(hypothesis);这种潜在规律自身,则称为”真相“或”真实“(ground-truth),学习过程就是为了找出或逼近真相。模型有时也被称为”学习器“(learner),可看作学习算法在给定数据和参数空间上的实例化。
若欲预测的是离散值则此类学习任务被称为“分类”;若欲预测的是连续值则此类学习任务称为“回归”;对只涉及两个类别的“二分类”任务,通常称其中一个类为“正类”,另一个类为“反类”;涉及多个类别时,则称为“多分类”任务。
模型是否准确依赖与数据。如果我的数据越多,我的模型就越能够考虑到越多的情况,由此对于新情况的预测效果可能就越好。这是机器学习界“数据为王”思想的一个体现。一般来说(不是绝对),数据越多,最后机器学习生成的模型预测的效果越好。
机器学习里面有非常多的经典算法,每种算法都能形成一个模型。下面在简要介绍一下机器学习中的经典代表方法。重点介绍的是这些方法内涵的思想。
1、回归算法 在大部分机器学习课程中,回归算法都是介绍的第一个算法。原因有两个:一.回归算法比较简单,介绍它可以让人平滑地从统计学迁移到机器学习中。二.回归算法是后面若干强大算法的基石,如果不理解回归算法,无法学习那些强大的算法。回归算法有两个重要的子类:即线性回归和逻辑回归。
线性回归一般使用“最小二乘法”来求解。“最小二乘法”的思想是这样的,假设我们拟合出的直线代表数据的真实值,而观测到的数据代表拥有误差的值。为了尽可能减小误差的影响,需要求解一条直线使所有误差的平方和最小。最小二乘法将最优问题转化为求函数极值问题。函数极值在数学上我们一般会采用求导数为0的方法。但这种做法并不适合计算机,可能求解不出来,也可能计算量太大。计算机科学界专门有一个学科叫“数值计算”,专门用来提升计算机进行各类计算时的准确性和效率问题。例如,著名的“梯度下降”以及“牛顿法”就是数值计算中的经典算法,也非常适合来处理求解函数极值的问题。梯度下降法是解决回归模型中最简单且有效的方法之一。
逻辑回归是一种与线性回归非常类似的算法,但是,从本质上讲,线型回归处理的问题类型与逻辑回归不一致。线性回归处理的是数值问题,也就是最后预测出的结果是数字,例如预测一所房子大约可以买多少钱。而逻辑回归属于分类算法,也就是说,逻辑回归预测结果是离散的分类,例如判断肿瘤是恶性还是良性等等。实现方面的话,逻辑回归只是对对线性回归的计算结果加上了一个Sigmoid函数,将数值结果转化为了0到1之间的概率(Sigmoid函数的图像一般来说并不直观,你只需要理解对数值越大,函数越逼近1,数值越小,函数越逼近0),接着我们根据这个概率可以做预测,例如概率大于0.5,肿瘤就是恶性的等等。
2、神经网络
神经网络(也称之为人工神经网络,ANN)算法是80年代机器学习界非常流行的算法,不过在90年代中途衰落。现在,携着“深度学习”之势,神经网络重装归来,重新成为最强大的机器学习算法之一。
神经网络的诞生起源于对大脑工作机理的研究。早期生物界学者们使用神经网络来模拟大脑。机器学习的学者们使用神经网络进行机器学习的实验,发现在视觉与语音的识别上效果都相当好。在BP算法(加速神经网络训练过程的数值算法)诞生以后,神经网络的发展进入了一个热潮。
下图是一个简单的神经网络的逻辑架构。在这个网络中,分成输入层,隐藏层,和输出层。输入层负责接收信号,隐藏层负责对数据的分解与处理,最后的结果被整合到输出层。每层中的一个圆代表一个处理单元,可以认为是模拟了一个神经元,若干个处理单元组成了一个层,若干个层再组成了一个网络,也就是”神经网络”。
图神经网络的逻辑架构
在神经网络中,每个处理单元事实上就是一个逻辑回归模型,逻辑回归模型接收上层的输入,把模型的预测结果作为输出传输到下一个层次。通过这样的过程,神经网络可以完成非常复杂的非线性分类。
进入90年代,神经网络的发展进入了一个瓶颈期。其主要原因是尽管有BP算法的加速,神经网络的训练过程仍然很困难。因此90年代后期支持向量机(SVM)算法取代了神经网络的地位。
3、SVM(支持向量机)
支持向量机算法是诞生于统计学习界,同时在机器学习界大放光彩的经典算法。
支持向量机算法从某种意义上来说是逻辑回归算法的强化:通过给予逻辑回归算法更严格的优化条件,支持向量机算法可以获得比逻辑回归更好的分类界线。但是如果没有某类函数技术,则支持向量机算法最多算是一种更好的线性分类技术。
但是,通过跟高斯“核”的结合,支持向量机可以表达出非常复杂的分类界线,从而达成很好的的分类效果。“核”事实上就是一种特殊的函数,最典型的特征就是可以将低维的空间映射到高维的空间。
上述机器学习算法均为监督学习算法。监督学习,就是人们常说的分类回归,通过已有的训练样本(即已知数据以及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优则表示在某个评价准则下是最佳的),再利用这个模型将所有的输入映射为相应的输出。在人对事物的认识中,我们从孩子开始就被大人们教授这是猫啊、那是狗啊、那是桌子啊,等等。我们所见到的景物就是输入数据,而大人们对这些景物的判断结果(是房子还是鸟啊)就是相应的输出。当我们见识多了以后,脑子里就慢慢地得到了一些泛化的模型,这就是训练得到的那个(或者那些)函数,从而不需要大人在旁边指点的时候,我们也能分辨的出来哪些是猫,哪些是狗。无监督学习则是另一种研究的比较多的学习方法,它与监督学习的不同之处,在于我们事先没有任何训练样本,而需要直接对数据进行建模。这听起来似乎有点不可思议,但是在我们自身认识世界的过程中很多处都用到了无监督学习。比如我们去参观一个画展,我们完全对艺术一无所知,但是欣赏完多幅作品之后,我们也能把它们分成不同的派别(比如哪些更朦胧一点,哪些更写实一些,即使我们不知道什么叫做朦胧派,什么叫做写实派,但是至少我们能把他们分为两个类)。无监督学习里典型的例子就是聚类了。聚类的目的在于把相似的东西聚在一起,而我们并不关心这一类是什么。因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了。
那么,什么时候应该采用监督学习,什么时候应该采用非监督学习呢?一种非常简单的回答就是从定义入手,如果我们在分类的过程中有训练样本,则可以考虑用监督学习的方法;如果没有训练样本,则不可能用监督学习的方法。但是事实上,我们在针对一个现实问题进行解答的过程中,即使我们没有现成的训练样本,我们也能够凭借自己的双眼,从待分类的数据中人工标注一些样本,并把他们作为训练样本,这样的话就可以把条件改善,用监督学习的方法来做。然而对于不同的场景,正负样本的分布如果会存在偏移(可能是大的偏移,也可能偏移比较小),这样的话用监督学习的效果可能就不如用非监督学习了。
今天,在计算机科学的诸多分支学科领域中,都能找到机器学习技术的身影,尤其是在计算机视觉、语音识别、模式识别、自然语言处理等“计算机应用技术”领域,机器学习已成为最重要的技术进步源泉之一。此外,机器学习还为许多交叉学科提供了重要的技术支撑比如说“生物信息学”。
可以说“计算机视觉=图像处理+机器学习“。图像处理技术用于将图像处理为适合进入机器学习模型中的输入,机器学习则负责从图像中识别出相关的模式。计算机视觉相关的应用非常的多,例如百度识图、手写字符识别、车牌识别等等应用。这个领域是应用前景非常火热的,同时也是研究的热门方向。随着机器学习的新领域深度学习的发展,大大促进了计算机图像识别的效果,因此未来计算机视觉界的发展前景不可估量。
如果说“计算机视觉=图像处理+机器学习“,那么”语音识别=语音处理+机器学习“。语音识别就是音频处理技术与机器学习的结合。语音识别技术一般不会单独使用,一般会结合自然语言处理的相关技术。目前的相关应用有苹果语音助手siri、微软小娜等。
“自然语言处理=文本处理+机器学习“。自然语言处理技术主要是让机器理解人类的语言的一门领域。在自然语言处理技术中,大量使用了编译原理相关的技术,例如词法分析,语法分析等等,除此之外,在理解这个层面,则使用了语义理解,机器学习等技术。作为唯一由人类自身创造的符号,自然语言处理一直是机器学习界不断研究的方向。按照百度机器学习专家余凯的说法“听与看,说白了就是阿猫和阿狗都会的,而只有语言才是人类独有的”。如何利用机器学习技术进行自然语言的的深度理解,一直是工业和学术界关注的焦点。
谈到对数据进行分析利用,很多人会想到“数据挖掘”(data mining)。数据挖掘领域在二十世纪九十年代形成,它受到很多学科领域的影响,其中数据库、机器学习、统计学无疑影响最大。数据挖掘是从海量数据中发掘知识,这就必然涉及对“海量数据”的管理和分析。大体来说,“数据挖掘=机器学习+数据库“——数据库领域的研究为数据挖掘提供数据管理技术,而机器学习和统计学的研究为数据挖掘提供数据分析技术。由于统计学往往醉心于理论的优美而忽视实际的效用,因此,统计学界提供的很多技术通常都要在机器学习界进一步研究,变成有效的机器学习算法之后才能再进入数据挖掘领域。从这个意义上说,统计学主要是通过机器学习来对数据挖掘发挥影响,而机器学习和数据库则是数据挖掘的两大支撑技术。从数据分析的角度来看,绝大多数数据挖掘技术都来自机器学习领域,但机器学习研究往往并不把海量数据作为处理对象,因此,数据挖掘要对算法进行改造,使得算法性能和空间占用达到实用的地步。同时,数据挖掘还有自身独特的内容,即关联分析。
通过上面的介绍,可以看出机器学习是多么的重要,应用是多么的广泛。现随着大数据(big data)概念的兴起,机器学习大量的应用都与大数据高度耦合,几乎可以认为大数据是机器学习应用的最佳场景。例如经典的Google利用大数据预测了H1N1在美国某小镇的爆发、百度预测2014年世界杯结果从淘汰赛到决赛全部正确。这实在太神奇了,那么究竟是什么原因导致大数据具有这些魔力的呢?简单来说,就是机器学习技术。正是基于机器学习技术的应用,数据才能发挥其魔力。
大数据的核心是利用数据的价值,机器学习是利用数据价值的关键技术,对于大数据而言,机器学习是不可或缺的。相反,对于机器学习而言,越多的数据会越可能提升模型的精确性,同时,复杂的机器学习算法的计算时间也迫切需要分布式计算与内存计算这样的关键技术。因此,机器学习的兴盛也离不开大数据的帮助。大数据与机器学习两者是互相促进,相依相存的关系。
机器学习与大数据紧密联系。但是,必须清醒的认识到,大数据并不等同于机器学习,同理,机器学习也不等同于大数据。大数据中包含有分布式计算、内存数据库、多维分析等等多种技术。单从分析方法来看,大数据也包含以下四种分析方法:
1.大数据,小分析:即数据仓库领域的OLAP分析思路,也就是多维分析思想。2.大数据,大分析:这个代表的就是数据挖掘与机器学习分析法。3.流式分析:这个主要指的是事件驱动架构。4.查询分析:经典代表是NoSQL数据库。
也就是说,机器学习仅仅是大数据分析中的一种而已。尽管机器学习的一些结果具有很大的魔力,在某种场合下是大数据价值最好的说明。但这并不代表机器学习是大数据下的唯一的分析方法。
第五篇:行业纳税评估模型模版
行业(产品)纳税评估模型模版
一、行业(产品)介绍
(一)行业(产品)定义
介绍该行业定义、概况、属性以及编号。
(二)企业类型划分
对该行业(产品)企业具体划分类型,并加以说明。
(三)工艺简介
简要介绍该行业(产品)的主要工艺流程及特点。
二、行业(产品)生产经营规律及涉税管理难点
(一)行业生产经营规律
描述该行业(产品)的主要经营规律。
(二)涉税管理难点
详细列举评估可能存在的难点。
三、评估方法
结合该行业企业的生产工艺流程、生产经营规律、涉税管理难点,详细列举主要评估方法。每种评估方法不是孤立存在,在税收管理过程中,应运用二种以上方法进行评估测算,相互比对和印证。
具体的评估方法包括以下部分:
1.原理描述
2.评估模型
3.标准值参考范围
4.数据获取途径
5.疑点判断
6.应用要点
四、印证案例
选取若干典型案例对评估模型进行验证。验证案例应包括以下内容:
1.企业基本情况介绍
2.数据采集来源及内容
3.确定疑点列举
4.实地核查情况
5.测算税收差异情况
6.评估约谈
7.评定处理