分类器

监督学习

早过忘川 提交于 2020-01-22 21:08:15
1 监督学习   利用一组带标签的数据, 学习 从输入到输出的映射 , 然后将这种映射关系应用到未知数据, 达到 分类 或者 回归 的目的   (1) 分类: 当输出是离散的, 学习任务为分类任务          输入: 一组有标签的训练数据(也叫观察和评估), 标签 表明了这些数据(观察)的所属类别, 图中"猫"和"狗"就是标签     输出: 分类模型根据这些训练数据, 训练自己的模型参数, 学习出一个适合这组数据的分类器, 当有新数据(非训练数据)需要进行类别判断, 就可以将这组数据作为输入送给学习好的 分类器 进行判断(得到标签)     训练集: 训练模型已经标注的数据, 用来建立模型发现规律     测试集: 已标注的数据, 只不过把标注隐藏了, 再送给训练好的模型, 比对结果与原来的标注, 评判该模型的学习能力       一般来说, 获得了一组标注好的数据, 70%当做训练集, 30%当做测试集 , 另外还有交叉验证法, 自助法来评估学习模型     评价标准       1) 准确率         所有预测对的         把正类预测成正类(TP)         把负类预测成负类(TN)         准确率 = (TP+TN)/总数量       2) 精确率         以二分类为例         预测为正的样本是真的正样本        

徒手现实一个朴素贝叶斯分类器

和自甴很熟 提交于 2020-01-22 13:21:35
徒手实现一个贝叶斯分类器 引子 代码 小结 引子 朴素贝叶斯分类器顾名思义是以贝叶斯公式为基础的分类器,其将后验概率转换为先验概率和不同类的条件概率的乘积,再通过比较不同的类别下该乘积的大小实现分类。不同于其他的分类器,朴素贝叶斯分类器严格意义上没有训练过程,只需计算相关概率即可。贝叶斯分类器比较适合对自然语言分类的模型,下面以对英文评文本类为例,详细描述如何实现一个贝叶斯分类器。 代码 首先引入语料库,其内容为英文网站评论,如果需要处理中文,还需要对中文进行分词,获得单词列表。 postingList = [ [ 'my' , 'dog' , 'has' , 'flea' , 'problems' , 'help' , 'please' ] , [ 'maybe' , 'not' , 'take' , 'him' , 'to' , 'dog' , 'park' , 'stupid' ] , [ 'my' , 'dalmation' , 'is' , 'so' , 'cute' , 'I' , 'love' , 'him' ] , [ 'stop' , 'posting' , 'stupid' , 'worthless' , 'garbage' ] , [ 'mr' , 'licks' , 'ate' , 'my' , 'steak' , 'how' , 'to' , 'stop'

理解SVM(附代码)

六眼飞鱼酱① 提交于 2020-01-21 12:41:10
参考内容: https://blog.csdn.net/weixin_39605679/article/details/81170300 SVM 支持向量机是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的分类器,SVM还包含核技巧,这使它可以成为非线性的分类器。SVM的学习策略就是间隔最大化。 算法原理 SVM 学习的基本思想就是求解能够正确划分训练数据集并且几何间隔距离最大的超平面。 对于线性可分的数据,超平面(w*x+b=0)有无穷多个,但是几何间隔最大的超平面是唯一的 几何间隔: 对于给定的数据集和超平面,定义超平面关于样本点(Xi,Yi)的几何间隔为 根据点到直线的距离 扩展到超平面距离为: 这个d 就是分类间隔。 ||W|| 表示w的二范数,即求所有元素的平方和,然后开方,比如对于二维平面: 分类器的好坏评定依据就是分类间隔W=2d的大小,W越大,我们认为超平面分类效果越好,现在问题变成了最大化问题 约束条件: 至此我们已经获得了目标函数的数学形式,但是为了求解w的最大值,我们需要解决下面问题: 1: 如何判断超平面将样本点正确分类。 2 : 我们知道了求距离d的最大值,首先需要找到支持向量上的点,如何从众多的点中 选出支持向量上的点呢? 上面需要面对的问题就是约束条件,也就是我们优化的变量d的取值范围受到了限制和约束条件。SVM算法通过一些巧妙的技巧

机器学习task06_朴素贝叶斯

旧街凉风 提交于 2020-01-21 12:30:32
贝叶斯决策论(Bayesian decision theory) 是概率框架下实施决策的基本方法。对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。 具体来说,若我们决策的目标是最小化分类错误率,贝叶斯最优分类器要对每个样本 x,选择能使后验概率 P( c | x )最大的类别 c 标记。在现实任务中后验概率通常难以直接获得。从这个角度来说,机器学习所要实现的是基于有限的训练样本集尽可能准确地估计出后验概率 P( c | x )。大体来说,主要有两种策略:给定x,可通过直接建模P( c | x )来预测c,这样得到的是“判别式模型”,例如,决策树、BP神经网络、支持向量机等等;也可先对联合概率分布P( x,c )建模,然后在由此获得P( c | x ),这样得到的是“生成式模型” 朴素贝叶斯分类器 基于贝叶斯公式来估计后验概率P( c | x )的主要困难在于:类条件概率P( x | c )是所有属性上的联合概率,难以从有限的训练样本直接估计而得。因此朴素贝叶斯分类器采用了“属性条件独立性假设”:对已知类别,假设所有属性相互独立。也就是说,假设每个属性独立的对分类结果发生影响。 sklearn接口 from sklearn.naive_bayes import GaussianNB from sklearn

机器学期之贝叶斯分类器

空扰寡人 提交于 2020-01-20 20:49:02
1.相关概念 生成模型 :在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。它给观测值和标注数据序列指定一个联合概率分布。在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。条件概率分布可以由生成模型根据贝叶斯定理形成。常见的基于生成模型算法有高斯混合模型和其他混合模型、隐马尔可夫模型、随机上下文无关文法、朴素贝叶斯分类器、AODE分类器、潜在狄利克雷分配模型、受限玻尔兹曼机 举例 :要确定一个瓜是好瓜还是坏瓜,用判别模型的方法是从历史数据中学习到模型,然后通过提取这个瓜的特征来预测出这只瓜是好瓜的概率,是坏瓜的概率。 判别模型: 在机器学习领域判别模型是一种对未知数据 y 与已知数据 x 之间关系进行建模的方法。判别模型是一种基于概率理论的方法。已知输入变量 x ,判别模型通过构建条件概率分布 P(y|x) 预测 y 。常见的基于判别模型算法有逻辑回归、线性回归、支持向量机、提升方法、条件随机场、人工神经网络、随机森林、感知器 举例 :利用生成模型是根据好瓜的特征首先学习出一个好瓜的模型,然后根据坏瓜的特征学习得到一个坏瓜的模型,然后从需要预测的瓜中提取特征,放到生成好的好瓜的模型中看概率是多少,在放到生产的坏瓜模型中看概率是多少,哪个概率大就预测其为哪个。

task1-机器学习概述

别等时光非礼了梦想. 提交于 2020-01-18 02:16:32
机器学习综述 机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径. A computer program is said to learn from experience E with respect to some task T and performance measure P, if its performance on T, as measured by P, improves with experience E. 一个程序被认为能够从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了P的评判后,程序在处理T时的性能有所提升。下棋游戏中,经验e就是程序上万次的自我练习的经验而任务t就是下棋。性能度量值p就是与新的对手比赛时赢的比赛的概率。 一、机器学习分类 监督学习 supervised learning(每个样本都有对应的正确答案,如回归问题) 监督学习是指利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练或有教师学习。在监督学习的过程中会提供对错指示,通过不断地重复训练,使其找到给定的训练数据集中的某种模式或规律,当新的数据到来时

机器学习之模型融合(详解Stacking,Blending)

╄→尐↘猪︶ㄣ 提交于 2020-01-16 21:10:07
模型融合 Ensemble Generation 常见模型融合的方法 boosting bagging Stacking blending 各种模型融合的区别 Bagging,Boosting二者之间的区别 Stacking,Blending二者之间的区别 Stacking与blending详解及代码 Stacking的两种思想 集成学习和多模型融合的区别 集成学习是指多个弱分类器(子模型)集成为强分类器,这种弱分类器是 同质 的分类器,比如GBDT,Adaboost,RF等。 根据弱分类器之间的关系,可以分为相关(第i个弱分类器依赖于第i-1个弱分类器)和独立(每个弱分类器相互独立)。相关的话,只能串行实现,主要是降低bias(偏差);独立的话,可以并行实现,主要是降低variance(方差) 多模型融合是多个分类器,这些分类器是 异构 的,各模型解决不同的局部问题, 多模型融合一般用来做信息补充和互补 。 Ensemble Generation 常见模型融合的方法 boosting 迭代训练某个基本模型:根据第i-1轮预测错误得到的情况来修改第i轮训练样本的权重,比较容易过拟合。 bagging 这是一种少数服从多数的思想,通过训练集中不同的子集训练不同的子模型,最后对每个子模型进行投票。 Stacking 层次融合的思想,第一层用多个基本模型

08.模型集成

半城伤御伤魂 提交于 2020-01-16 04:31:00
机器学习实战教程(十):提升分类器性能利器-AdaBoost 模型融合方法总结 机器学习模型优化之模型融合 xgboost lightgbm 文章目录 集成方法 1、Bagging 2、Boosting 3、Bagging、Boosting二者之间的区别 4、AdaBoost 1) 计算样本权重 2) 计算错误率 3) 计算弱学习算法权重 4) 更新样本权重 5) AdaBoost算法 5.实例 Bagging Adaboost 集成方法 将不同的分类器组合起来,而这种组合结果则被成为 集成方法 (ensemble method)或者 元算法 (meta-algorithm)。 集成方法主要包括 Bagging 和 Boosting 两种方法,Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的分类器,更准确的说这是一种分类算法的组装方法,即将 弱分类器 组装成 强分类器 的方法。 1、Bagging 自举汇聚法 (bootstrap aggregating),也称为bagging方法。Bagging对训练数据采用自举采样(boostrap sampling),即有放回地采样数据,主要思想: 从原始样本集中抽取训练集( 每次都是从训练集中做有放回的随机采样 )。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本

Hadoop基于朴素贝叶斯分类器的情感判别实践

耗尽温柔 提交于 2020-01-15 04:42:27
1.基础材料说明 1)训练集training.txt文件 该文件是一个大小为75.8MB的文本数据集,并包含了20,000,000条数据记录,每行数据中包含的信息为“评价结论\t 评价内容”。其中,“评价内容”是若干词语组合而成,词语之间是空格隔开,词语包括中文、英文以及其他特殊符号,即其内容为“word1 word2 word3 word4 …… wordn”,其中wordi表示当前文本描述中的第i个词,n为当前文本描述中包含的总词数。 2)测试集test.txt文件 给定“test.data”数据集,该数据集包含了2000条记录,每行记录中包含的信息为“评价内容”,该“评价内容”的具体表现形式与前文描述的“training.txt”数据集相同。 3)文件命名说明 本工程实践为课程作业,故项目名为NB_2017082040,HDFS储存路径为hdfs://master:9000/input_2017082040/training.txt。 4)运行环境说明 编译器:eclipse-jee-2019-12-R-linux-gtk-x86_64.tar.gz Hadoop:Hadoop 2.7.7 2.实现过程 2.1 上传文件至HDFS hadoop fs -put /root/Documents/training.txt hdfs://master:9000/input

python 人脸检测

为君一笑 提交于 2020-01-14 17:32:50
一.开发环境搭建 我们使用Python自带的IDLE进行编程,我使用的电脑是Windows系统,代码在win7 64位,win10 64位这两种电脑上验证过。Python版本为3.xx,需要使用的库有opencv,numpy,pillow。这三个库分别使用pip按照即可,指令分别为; 1)opencv;pip install opencv-python 2)numpy;pip install numpy 3)pillow;pip install pillow 所有的文件夹 face_pic 存档获取的照片 转为灰度图片 本文的路径采用自动获取绝对路径 在Python的安装目录,按照这个路径依次打开文件夹Lib→site-packages→cv2→data,复制文件“haarcascade_frontalface_default.xml”,“haarcascade_frontalcatface.xml”到face_identity文件夹,这两个是分类器,用于进行人脸检测。 注意 如果提示“module' object has no attribute 'face'” 解决方法: 可以输入 pip install opencv-contrib-python解决,如果提示需要commission,可以在后面加上 --user,即 pip install opencv-contrib