分类器

Adaboost与提升树

让人想犯罪 __ 提交于 2020-03-07 19:55:55
Adaboost: 以2分类为例,其最终分类器模型为: 即最终模型是由基本分类模型线性组合得到的,a 表示 G 在最终分类器中的重要性,所以 a > 0。 其损失函数为,正确分类时为 (0,1) 取值,误分类为 (1,+∞) Adaboost将样本损失也看作样本权重 **,令: 样本权重与上一轮的模型有关, 初始时置为1: 总误差为: 将总误差变形为: 这个式子由于 w 可通过上轮模型算出,因此看作常量,进行归一化后对 a 求导: 即为 Gm 对应的权重 am。 将 am 代入原式化简后,原式变为: 所以应使得 Gm 对应的 em 尽可能小 。 对于 w 的更新,有: Adaboost实质为使用前向分步算法处理加法模型,每一步优化当前这个基本分类器,是一个近似优化。 详见《统计学习方法》8.3、8.1、8.2。 提升树模型: 来源: CSDN 作者: 厉害了我的汤 链接: https://blog.csdn.net/YD_2016/article/details/104711488

Adaboost

冷暖自知 提交于 2020-03-07 19:34:49
Boosting提升方法(源自统计学习方法) 提升方法是一种常用的统计学习方法,应用十分广泛且有效。在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。提升算法基于这样一种思路:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家独断的判断好。实际上,就是 “三个臭皮匠顶个诸葛亮” 的道理。 历史上,Kearns和Valiant首先提出了“ 强可学习 (Strongly learnable)”和“ 弱可学习 (Weekly learnable)”的概念。支出:在概率近似正确(probably approximately correct,PAC)学习框架中,一个概念(一个分类),如果存在一个多项式的学习算法能够学习它,并且正确率很好,那么就称这个概念是强可学习的;一个概念(一个分类),如果存在一个多项式的学习算法能够学习它,但学习的正确率仅比随机猜测略好,那么就称这个概念是弱可学习的。非常有趣的是Schapire 后来证明强可学习与弱可学习是等价的 ,也就是说,在PAC学习框架下,一个概念是强可学习的充要条件是这个概念是弱可学习的。 这样一来,问题便成为,在学习中,如果已经发现了“弱学习算法”,那么能否将它提升(boost)为“强学习算法”。大家知道,发现弱学习算法通常要比发现强学习算法容易得多

信息检索评价指标

白昼怎懂夜的黑 提交于 2020-03-07 13:37:36
在信息检索、分类体系中,有一系列的指标,搞清楚这些指标对于评价检索和分类性能非常重要,因此最近做了一个汇总。 准确率、召回率、F1 信息检索、分类、识别、翻译等领域两个最基本指标是 召回率(Recall Rate) 和 准确率(Precision Rate) ,召回率也叫查全率,准确率也叫查准率,概念公式 : 召回率( R ecall) = 系统检索到的相关文件 / 系统所有相关的文件总数 准确率( P recision) = 系统检索到的相关文件 / 系统所有检索到的文件总数 图示表示如下: 注意:准确率和召回率是互相影响的,理想情况下肯定是做到两者都高,但是一般情况下准确率高、召回率就低,召回率低、准确率高,当然如果两者都低,那是什么地方出问题了 。一般情况,用不同的阀值,统计出一组不同阀值下的精确率和召回率,如下图: 如果是做搜索,那就是保证召回的情况下提升准确率;如果做疾病监测、反垃圾,则是保准确率的条件下,提升召回。 所以,在两者都要求高的情况下,可以用F1来衡量。 [python] view plain copy F1 = 2 * P * R / (P + R) 公式基本上就是这样,但是如何算图1中的A、B、C、D呢? 这需要人工标注,人工标注数据需要较多时间且枯燥,如果仅仅是做实验可以用用现成的语料。当然,还有一个办法,找个一个比较成熟的算法作为基准

opencv5-objdetect之级联分类器

馋奶兔 提交于 2020-03-07 00:49:42
这是《opencv2.4.9tutorial.pdf》的objdetect module的唯一一个例子。 在 OpenCV 中进行人脸或者人眼 或者身体的检测 首先就是训练好级联分类器,然后就是检测就行。在 opencv 中,“opencv/sources/data中就有内置训练好的:基于haar特征的级联分类器、基于hog特征的级联分类器、基于lbp特征的级联分类器”三种。相比较来说 算haar文件夹中的分类器最多,其他两个比如:hog的只有一个行人检测分类器“hogcascade_pedestrians.xml”而已; lbp的有三个分类器:“lbpcascade_frontalface.xml”、“lbpcascade_profileface.xml”、“lbpcascade_silverware.xml”。· 采用的是级联分类器类: CascadeClassifier,并通过不同的分类器类型进行初始化。 1、先设定不同的分类器: 这里使用自带的haar特征的前人脸和眼睛级联分类器: string face_cascade_name = "haarcascade_frontalface_alt.xml"; string eyes_cascade_name = "haarcascade_eye_tree_eyeglasses.xml"; 2、然后进行分类器类的初始化:

卷积神经网络:卷积层和池化层

橙三吉。 提交于 2020-03-05 14:23:49
Mnist是针对小图像块处理的,这篇讲的是针对大图像进行处理的。两者在这的区别还是很明显的,小图像(如8*8,MINIST的28*28)可以采用全连接的方式(即输入层和隐含层直接相连)。但是大图像,这个将会变得很耗时:比如96*96的图像,若采用全连接方式,需要96*96个输入单元,然后如果要训练100个特征,只这一层就需要96*96*100个参数(W,b),训练时间将是前面的几百或者上万倍。所以这里用到了部分联通网络。对于图像来说,每个隐含单元仅仅连接输入图像的一小片相邻区域。 卷积层:   自然图像有其固有特性,也就是说,图像的一部分的统计特性与其他部分是一样的。这也意味着我们在这一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,我们都能使用同样的学习特征。   对于图像,当从一个大尺寸图像中随机选取一小块,比如说8x8作为样本,并且从这个小块样本中学习到了一些特征,这时我们可以把从这个8x8样本中学习到的特征作为探测器,应用到这个图像的任意地方中去。特别是,我们可以用从8x8样本中所学习到的特征跟原本的大尺寸图像作卷积,从而对这个大尺寸图像上的任一位置获得一个不同特征的激活值。   看下面例子容易理解:   假设你已经从一个96x96的图像中学习到了它的一个8x8的样本所具有的特征,假设这是由有100个隐含单元的自编码完成的。为了得到卷积特征

通俗理解集成学习boosting和bagging和随机森林

南笙酒味 提交于 2020-03-05 10:50:49
First,What is Ensemble Learning 1.将 多个分类方法聚集在一起 ,以提高分类的准确率(可以是相同or不同算法) 2.集成学习法由 训练数据构建一组基分类器 ,然后通过对每个基分类器的预测进行投票来进行分类 3.严格来说,集成学习并不算是一种分类器,而是一种分类器结合的方法。 4.如果把单个分类器比作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。 那就产生了两个问题。 1.怎么训练每个基分类器? 2.怎么融合每个基分类器 Then,we have bagging and boosting 集成学习大致分为两类,一类串行生成,如 Boosting 。一类为并行化,如 Bagging 。 1.Bagging 1.Bagging又叫自助聚集,是一种根据均匀概率分布从数据中重复抽样(有放回)的技术。 2. 每个抽样生成的自助样本集上,训练一个基分类器;对训练过的分类器进行投票,将测试样本指派到得票最高的类中。 3.每个自助样本集都和原数据一样大 4.有放回抽样,一些样本可能在同一训练集中出现多次,一些可能被忽略。 如下图 举个例子吧。 X 表示一维属性,Y 表示类标号(1或-1)测试条件:当x<=k时,y=?;当x>k时,y=?;k为最佳分裂点 下表为属性x对应的唯一正确的y类别 现在进行5轮随机抽样,结果如下 每一轮随机抽样后

目标检测中一些性能指标的含义

血红的双手。 提交于 2020-03-04 23:49:42
1. TP、FP、TN、FN的含义 对于一个二分类的预测来说,情况可以描述如下: 真实情况 预测结果 预测为正 预测为反 正例 TP(对正例) FN(错反例) 反例 FP(错正例) TN(对反例) TP( True Positives):预测它是正样本,预测 对 了; TN( True Negatives):预测它是负样本,预测 对 了; FP( False Positives):预测它是正样本,预测 错 了; FN( False Negatives):预测它是负样本,预测 错 了。 2. Precision(精度,查准率)和Recall(召回率,查全率)的概念 P r e c i s i o n = T P T P + F P Precision=\frac {TP}{TP+FP} P r e c i s i o n = T P + F P T P ​ 理解为:在分类器预测的所有正例中,预测正确的占多少比例(找得准); R e c a l l = T P T P + F N Recall=\frac {TP}{TP+FN} R e c a l l = T P + F N T P ​ 理解为:一共有这么多正例,分类器找出了其中的百分之多少(找得到); 由于所有情况组成的全集是 T P + F N + F P + T N TP+FN+FP+TN T P + F N + F P + T

机器学习的分类与回归算法

那年仲夏 提交于 2020-03-04 17:22:01
前言:根据机器学习的数据集的目标值是离散or连续,处理的算法包含分类、回归两大类 sklearn的使用教程 https://www.jianshu.com/p/6ada34655862 目录 分类算法 k近邻算法 朴素贝叶斯 决策树、随机森林 分类回归 回归算法 线性回归 分类算法 k近邻算法 算法思想:一个样本与数据集中的k个样本最相似,如果k个样本中的大多数属于一个类别,则认识该样本属于这个类别; 最常见的两点之间或多点之间的距离表示法,又称之为欧几里得度量,它定义于欧几里得空间中。n维空间中两个点x1(x11,x12,…,x1n)与 x2(x21,x22,…,x2n)间的欧氏距离 实现: https://www.cnblogs.com/xiaotan-code/p/6680438.html from sklearn.neighbors import KNeighborsClassifier # 导包 knn = KNeighborsClassifer() # 定义一个分类器对象 knn.fit([特征值],[目标值]) # 调用模型 朴素贝叶斯 算法思想 : https://blog.csdn.net/Growing_hacker/article/details/89790230 实现 from sklearn.naive_bayes import MultinomialNB

简单粗暴理解与实现机器学习之逻辑回归(四):分类评估方法、精确率与召回率、F1-score、分类评估报告api、ROC曲线与AUC指标

送分小仙女□ 提交于 2020-03-04 14:20:53
逻辑回归 文章目录 逻辑回归 学习目标 3.4 分类评估方法 1.分类评估方法 1.1 精确率与召回率 1.1.1 混淆矩阵 1.1.2 精确率(Precision)与召回率(Recall) 1.2 F1-score 1.3 分类评估报告api 2 ROC曲线与AUC指标 2.1 TPR与FPR 2.2 ROC曲线 2.3 AUC指标 2.4 AUC计算API 3 总结 学习目标 知道逻辑回归的损失函数 知道逻辑回归的优化方法 知道sigmoid函数 知道逻辑回归的应用场景 应用LogisticRegression实现逻辑回归预测 知道精确率、召回率指标的区别 知道如何解决样本不均衡情况下的评估 了解ROC曲线的意义说明AUC指标大小 应用classification_report实现精确率、召回率计算 应用roc_auc_score实现指标计算 3.4 分类评估方法 复习:分类评估指标 1.分类评估方法 1.1 精确率与召回率 1.1.1 混淆矩阵 在分类任务下,预测结果(Predicted Condition)与正确标记(True Condition)之间存在四种不同的组合,构成混淆矩阵(适用于多分类) 1.1.2 精确率(Precision)与召回率(Recall) 精确率:预测结果为正例样本中真实为正例的比例(了解) 召回率:真实为正例的样本中预测结果为正例的比例(查得全

04-02 AdaBoost算法

℡╲_俬逩灬. 提交于 2020-03-03 10:11:48
文章目录 AdaBoost算法 AdaBoost算法学习目标 AdaBoost算法详解 Boosting算法回顾 AdaBoost算法 AdaBoost算法目标函数优化 AdaBoost算法流程 输入 输出 强分类器流程 强回归器流程 AdaBoost算法优缺点 优点 缺点 小结 AdaBoost算法   集成学习中弱学习器之间有强依赖关系的,称之为Boosting系列算法,而AdaBoost则是Boosting系列算法中最著名的算法之一。   AdaBoost算法强大之处在于既可以解决分类问题,又可以解决回归问题。 AdaBoost算法学习目标 AdaBoost算法目标函数优化 强分类器和强回归器流程 AdaBoost算法优缺点 AdaBoost算法详解 Boosting算法回顾   Boosting算法的流程是:首先训练处一个弱学习器,根据弱学习器的误差率更新训练样本的权重,然后基于调整权重后的训练集训练第二个弱学习器,直到弱学习器达到事先指定的数目T,停止算法。   对于Boosting算法的流程,可以看到如果我们解决以下4个问题,既可以得到完整的Boosting算法 弱学习器的误差率 训练样本的权重 w w w 更新方法 更新样本权重的方法 结合策略 AdaBoost算法   上面讲到了Boosting算法需要解决的4个问题