分类器

机器学习:集成学习:随机森林.GBDT

一曲冷凌霜 提交于 2019-12-25 00:45:05
集成学习(Ensemble Learning) 集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器.弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测的分类器(error rate < 0.5); 集成算法的成功在于保证弱分类器的多样性(Diversity).而且集成不稳定的算法也能够得到一个比较明显的性能提升 常见的集成学习思想有: Bagging Boosting Stacking Why need Ensemble Learning? 1. 弱分类器间存在一定的差异性,这会导致分类的边界不同,也就是说可能存在错误。那么将多个弱分类器合并后,就可以得到更加合理的边界,减少整体的错误率,实现更好的效果; 2. 对于数据集过大或者过小,可以分别进行划分和有放回的操作产生不同的数据子集,然后使用数据子集训练不同的分类器,最终再合并成为一个大的分类器; 3. 如果数据的划分边界过于复杂,使用线性模型很难描述情况,那么可以训练多个模型,然后再进行模型的融合; 4. 对于多个异构的特征集的时候,很难进行融合,那么可以考虑每个数据集构建一个分类模型,然后将多个模型融合。 Bagging方法 Bagging方法又叫做自举汇聚法(Bootstrap Aggregating),思想是:在原始数据集上通过有放回的抽样的方式

CS231n与深度学习入门>>>学习周记1

无人久伴 提交于 2019-12-23 17:55:44
目录 1 感知机 1.1 感知机的基本概念 1.2 感知机实现的简单逻辑电路 1.2.1 与门(AND gate) 1.2.2与非门与或门(NAND gate,OR gate) 1.2.3 感知机的实现 1.2.4 阶段小结 1.3 感知机的局限性 1.3.1 异或门(XOR gate) 1.3.2 阶段小结 2 基本分类器 2.1 最近邻分类器(Nearest Neighbor Classifier) 2.2 K近邻分类器(k - Nearest Neighbor Classifier) 2.3 交叉验证(Cross-validation) 2.4 阶段小结 3 线性分类器 3.1 计分函数(Score function) 3.2 损失函数(Loss function) 3.2.1 支持向量机损失(Multiclass Support Vector Machine (SVM) ) 3.2.2 Softmax损失 3.3 阶段小结 4 优化(Optimization) 4.1 梯度计算 4.2 梯度下降法(Gradient Descent) 4.3 阶段小结 1 感知机 1.1 感知机的基本概念 一个感知机类似于多个神经元构成的一个整体,接收多个信号,输出一个信号。感知机的信号可以形成流,向前方输送信息。而感知机的信号只有"0"和"1"两种取值。

【文智背后的奥秘】系列篇——自动文本分类

社会主义新天地 提交于 2019-12-22 19:19:02
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 版权声明:本文由文智原创文章,转载请注明出处: 文章原文链接: https://www.qcloud.com/community/article/132 来源:腾云阁 https://www.qcloud.com/community 一.自动文本分类 概述文本分类,顾名思义,就是将一篇文档归为已知类别中的一类或者几个类,为了实现自动分类的目标,通常有以下几个步骤: 构建分类类别体系 获取带有类别标签的训练数据 训练数据的文本表达及特征选择 分类器的选择与训练 分类应用数据 给定一篇待分类的文档,若对其进行自动分类,通常需要把文档表达成机器可以处理的数据类型。目前常用的文本表达方式有向量空间模型(VSM),即把文档映射为一个特征向量 其中ti为文档分词后的词条项,w(ti)为相应词条项的权重。 我们的自动文本分类系统,为用户提供自动文本分类服务,平台已对文本分类的模型算法进行了封装,用户只需提供待分类的文本数据,而不必关注具体的实现,通过平台就能得到提供文本的所属类别。目前平台能识别类别囊括了软件、影视、音乐、健康养生、财经、广告推广、犯罪、政治等40多个类别,且系统算法支持快速迭代更新已有类别及增加新类别。 二.自动文本分类系统 1.系统主要框架 目前我们的自动分类系统框架如图1.1所示。系统主要分为三大块

【文智背后的奥秘】系列篇——基于CRF的人名识别

笑着哭i 提交于 2019-12-22 19:17:52
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 版权声明:本文由文智原创文章,转载请注明出处: 文章原文链接: https://www.qcloud.com/community/article/133 来源:腾云阁 https://www.qcloud.com/community 【文智背后的奥秘】系列篇——基于CRF的人名识别 文智 标签: 人名识别 , 文智分析 2016-10-09 11:06:20 1378 一.命名实体识别 命名实体识别的主要任务就是从输入文本中把含有特定意义的词或者词组挑出来。命名实体根据其特点可以分为两大类,一类是可以根据构词法规则及上下文语境识别出来的,比如人名、地名、机构名;另外一类是可以穷举的垂直类实体,比如影视名,小说名,游戏名等。 命名实体识别是自然语言处理领域的基础任务,对很多应用都有十分大的作用,比如信息检索,文本摘要,信息抽取,文本聚类分类等。拿信息检索来举例,命名实体识别的结果可以在检索端生成完整索引,在query端做整体下发,这样既可以提高检索效率,又可以降低检索噪音,提高相关性。 二.人名识别 人名识别是命名实体识别中比较典型的一类问题,目前业界主要采用的方法是基于统计的。我们可以把人名识别问题看成是一个序列标注的问题,即根据观察序列预测最优隐含状态序列。 我们把标记定义为:姓用字 B,名中字用字I

ROC曲线-阈值评价标准

微笑、不失礼 提交于 2019-12-20 04:34:12
 ROC曲线指受试者工作特征曲线 / 接收器操作特性曲线(receiver operating characteristic curve), 是反映 敏感性和特异性连续变量的综合指标 ,是用构图法揭示 敏感性和特异性的相互关系 , 它通过将连续变量设定出多个不同的临界值,从而计算出一系列敏感性和特异性 ,再 以敏感性为纵坐标 、 (1-特异性)为横坐标 绘制成曲线, 曲线下面积越大,诊断准确性越高 。在ROC曲线上,最靠近坐标图 左上方的点 为敏感性和特异性均较高的临界值。 ROC曲线的例子   考虑一个二分问题,即将实例分成正类(positive)或负类(negative)。对一个二分问题来说,会出现四种情况。如果一个实例是正类并且也被 预测成正类,即为真正类(True positive),如果实例是负类被预测成正类,称之为假正类(False positive)。相应地,如果实例是负类被预测成负类,称之为真负类(True negative),正类被预测成负类则为假负类(false negative)。 TP:正确肯定的数目; FN: 漏报 ,没有正确找到的匹配的数目; FP: 误报 ,给出的匹配是不正确的; TN:正确拒绝的非匹配对数; 列联表如下表所示,1代表正类,0代表负类。    预测 1 0 合计 实际 1 True Positive(TP) False Negative

特征工程:特征生成,特征选择(三)

青春壹個敷衍的年華 提交于 2019-12-19 14:00:59
转自: https://blog.csdn.net/cymy001/article/details/79169862 特征生成 特征工程中引入的新特征,需要验证它确实能提高预测得准确度,而不是加入一个无用的特征增加算法运算的复杂度。 1. 时间戳处理 时间戳属性通常需要分离成多个维度比如年、月、日、小时、分钟、秒钟。但是在很多的应用中,大量的信息是不需要的。比如在一个监督系统中,尝试利用一个’位置+时间‘的函数预测一个城市的交通故障程度,这个实例中,大部分会受到误导只通过不同的秒数去学习趋势,其实是不合理的。并且维度’年’也不能很好的给模型增加值的变化,我们可能仅仅需要小时、日、月等维度。因此在呈现时间的时候,试着保证你所提供的所有数据是你的模型所需要的。并且别忘了时区,假如你的数据源来自不同的地理数据源,别忘了利用时区将数据标准化。 2. 分解类别属性(one-hot) 一些属性是类别型而不是数值型,举一个简单的例子,由{红,绿、蓝}组成的颜色属性,最常用的方式是把每个类别属性转换成二元属性,即从{0,1}取一个值。因此基本上增加的属性等于相应数目的类别,并且对于你数据集中的每个实例,只有一个是1(其他的为0),这也就是独热(one-hot)编码方式(类似于转换成哑变量)。 如果你不了解这个编码的话,你可能会觉得分解会增加没必要的麻烦(因为编码大量的增加了数据集的维度)。相反

SIGAI机器学习第二十一集 AdaBoost算法2

时光总嘲笑我的痴心妄想 提交于 2019-12-19 11:25:37
讲授Boosting算法的原理,AdaBoost算法的基本概念,训练算法,与随机森林的比较,训练误差分析,广义加法模型,指数损失函数,训练算法的推导,弱分类器的选择,样本权重削减,实际应用。 大纲: 广义加法模型 指数损失函数 AdaBoost训练算法的推导 实现细节问题 弱分类器的选择 弱分类器的数量 样本权重削减 上节课我们介绍了AdaBoost算法的训练算法和预测算法,其中训练算法还是一个很精密的过程,这个算法是怎么想出来的有没有什么依据?包括弱分类器的权重为什么是1/2log(1-et)/et?样本权重的更新公式为什么是那样的?它们都是有理论依据的。 可以把AdaBoost算法和微积分来对比,它们两个其实非常类似。微积分它是先有方法,先有一些计算公式然后再补充的理论,微积分发明的时候有很多不严密的地方包括牛顿本人他就没法解释无穷小是怎么回事一会可以当作0一会不能当作0,整个微积分它的严密的体系是柯西给建立的,其中非常核心的就是建立了极限这个概念的严格的定义,ε-δ这种定义方式。而AdaBoost算法和这个类似,他也是先有了方法,然后再有了理论解释,它是用广义加法模型和指数损失函数相结合的一个产物来解释的,也就是用广义加法模型来求解指数损失函数,最后就导出了我们的AdaBoost算法的训练算法。 广义加法模型: 来源: https://www.cnblogs.com

AdaBoost算法理解

会有一股神秘感。 提交于 2019-12-18 12:51:11
AdaBoost的前身和今世 强可学习和弱可学习 在概率近似正确(PAC)学习框架中, 一个类如果存在: 一个多项式复杂度的学习算法,正确率略大于随机猜测(例如二分类问题中大于1/2),称 弱可学习的 一个多项式复杂度的学习算法,并且正确率很高,称 强可学习的 Kearns和Valiant证明了强可学习和弱可学习是 等价 的 The Strength of Weak Learnability Adaboost算法就是将弱学习器组成强学习器的算法 Explaining AdaBoost 算法受到工业界和学术界的关注, 充分的理论研究 (统计学习方法证明) AdaBoost算法是为了证明弱可学习和强可学习算法等价而提出的 ,随后,人们发现该类集成算法能够有效的提升一个学习器的作用,基于AdaBoost演化出了诸多的算法,例如在各大数据挖掘上大放光彩的XGBoost,几乎霸占了诸多数据竞赛榜单的前几多年(从2017开始),在数据预处理上填充空值常用的随机森林算法等等。 随后,学术界纷纷把关注点投向了这个算法的理论证明。得到了该类算法的统计学派角度的证明, 即为AdaBoost是在指数损失函数、模型是加性模型、算法是前向分布算法 。进一步的,给出了学习算法的训练误差界,说明了其训练过程中的最坏情况,并且表明其训练误差是以指数级别下降的。在明白了AdaBoost的统计意义后

深度 | 解决真实世界问题:如何在不平衡类上使用机器学习?

心已入冬 提交于 2019-12-17 15:56:50
原文:http://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650718717&idx=1&sn=85038d7c906c135120a8e1a2f7e565ad 选自 SVDS 作者: TOM FAWCETT 机器之心编译 参与:孙睿、吴攀、李亚洲 本文作者 Tom Fawcett 在机器学习和数据挖掘的实践应用上已有 20 多年的研究历史,曾就职于 Verizon 和惠普实验室(HP Labs)等机构,也曾在斯坦福大学语言和信息的研究中心从事过研究工作;现任 Silicon Valley Data Science 首席数据科学家兼 Machine Learning Journal 编辑,著有《Data Science for Business》一书。文中提到的论文可点击「阅读原文」下载。 如果你是机器学习课程的新手,那么你使用过的数据库很大程度上都是非常简单的。其中一个原因就是,当你构建分类器时,样本类都是平衡的——也就是说,每个类中的样本数量是大致相同的。在教学中,数据库通常是净化过的,这样老师才能够把注意力集中在教授特定算法或技巧上,而不被其它问题干扰。一般情况下,你遇到的样本类似下方的二维图表,其中的点代表样本、点的不同颜色(或形状)代表类: 分类算法的目标是尝试学习出一个能够分辨二者的分离器(分类器)。根据不同的数学

ADAboost 和GBDT和XGboost

拥有回忆 提交于 2019-12-16 01:54:16
(一)Adaboost算法的模型是一个弱学习器线性组合,特点是通过迭代,每一轮学习一个弱学习器,在每次迭代中,提高那些被前一轮分类器错误分类的数据的权值,降低正确分类的数据的权值。最后,将弱分类器的线性组合作为强分类器,给分类误差小的基本分类器大的权值。每一次迭代都可以减少在训练集上的分类误差率。 当然,就如每一个算法都有自己的优缺点一样,AdaBoost 也有自身的缺点。AdaBoost 算法只直接支持二分类,遇到多分类的情况,需要借助 one-versus-rest 的思想来训练多分类模型。关于 one-verus-rest 的细节可以参考本系列第一篇文章 SVM。 AdaBoost能够有效的降低偏差,能够在泛化性能非常弱的学习器上构建成很强的集成。缺点是对噪声敏感。 AdaBoost 的核心就是不断迭代训练弱分类器,并计算弱分类器的权重。需要注意的是,弱分类器的训练依赖于样本权重。每一轮迭代的样本权重都不相同,依赖于弱分类器的权重值和上一轮迭代的样本权重。( 相当于改变了数据的分布情况 ,分类器学习和改变数据分布) 用 AdaBoost 也可以实现回归模型,需要将弱分类器替换成回归树,并将平方误差作为损失函数 GBDT与Adaboost的主要差别为,Adaboost每轮学习的一个基本学习器是通过改变样本的权值,关注上轮分类错误的样本的权值,以逐步减少在训练集上的分类误差率