热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

【机器学习-斯坦福】学习笔记6-朴素贝叶斯

朴素贝叶斯本次课程大纲:1、朴素贝叶斯-朴素贝叶斯事件模型2、神经网络(简要)3、支撑向量机(SVM)铺垫–最大间隔分类器复习:1、朴素贝叶斯一种生成学习算法,对p(

朴素贝叶斯

本次课程大纲:

1、 朴素贝叶斯

-          朴素贝叶斯事件模型

2、 神经网络(简要)

3、 支撑向量机(SVM)铺垫 – 最大间隔分类器

 

复习:

1、 朴素贝叶斯

一种生成学习算法,对p(x|y)建模。

 

例:垃圾邮件分类

以邮件输入流作为输入,输出y{0,1}1为垃圾邮件,0为非垃圾邮件。

将邮件文本表示为一个输入向量x

1)  xi{0,1},表示字典中的第i个词是否出现在邮件中

2)  x长度为nn为字典的词数

3)  该模型称为多元伯努利事件模型 

假设xi在给定y的时候是条件独立的,则x在给定y下的概率可简化为:

根据朴素贝叶斯公式,求p(y|x)最大时的y

 

算法变化版本:

1)  让xi取多个值,xi{1,2,…,k},类似上式有:p(x|y) = ∏ p(xi|y),但是p(xi|y)变成多项式分布,而不是伯努利分布。

 

例:估计房屋面积预测房屋能否被卖掉,将房屋面积分成几个离散区间,如0-,1000xi=1,1000-1500xi=21500-2000xi=3,2000以上为xi=4

 

2)  如上例处理邮件(文本)中,x向量记录每个词出现的次数(而不是是否出现)

 

多项式事件模型

 

接上例,给出一封邮件,将它表示成特征向量:

ni表示邮件中词的数量,xj是个到词典的索引,表示该词在词典的位置。

 

如邮件中有300个词,那么特征向量x(i)长度为300,若词典有50000个词,每个元素xj的取值范围为{1,2,…,50000}

 

则生成模型的联合概率p(xy)为:

n为邮件长度

上式理解:邮件内容满足一些概率分布,有一些随机分布在生成这些邮件。过程为:首先确定y,即是否为垃圾邮件,决定一个人是否向你发送垃圾邮件后,遍历邮件的300个词,按照某种概率分布生成一些词,基于他们是否向你发送垃圾邮件

 

模型参数:

表示某人决定向你发送垃圾邮件(y=1)时,选择词k的概率,类似有:

 

给出训练集后,求极大似然估计:

得到:

上面第一个式子,分子的意思是,对所有标签为1的邮件求和,之后对垃圾邮件中的词k求和,所以分子实际上就是训练集中所有垃圾邮件中词k出现的次数。分母是训练集中所有垃圾邮件的长度。比值的含义就是所有垃圾邮件中,词k占的比例。表示生成垃圾邮件时选择词k的概率。

 

应用Laplace平滑,分子加1,分母加总词数(字典大小,xi可能取值的数目):

 

事实上,多项式事件模型比之前的模型要好,可能是因为考虑了词出现的次数这个因素。但此问题仍存在争论。

 

非线性分类算法

 

例:logistic回归中,假设值小于0.5预测0,大于0.5预测1。即给定一个训练集,logistic回归会找到一条直线(牛顿方法或梯度下降),将正负样本合理分开。但有时数据不能被一条直线分开,需要一种算法,学习非线性的分界线。

 

上一讲的推论:

x|y=1 ~ ExpFamily(η1)x|y=0 ~ ExpFamily (η0)  =>  p(y=1|x)logistic函数

x|y的分布属于指数分布族,可推出后验分布是logistic函数。

朴素贝叶斯模型也属于指数分布族,所以也是用logistic线性分类器。下面介绍一种非线性分类器。

 

2、 神经网络

假设特征是x0,x1,x2,x3x0设置为1,用连线表示logistic回归单元,圆圈表示计算节点,下图中间的节点以x0等特征作为输入,hθ(x)作为输出,这是一个sigmoid函数。为了找到非线性的界限,需要找到一种方式,表示出能够输出非线性分界限的假设。

将之前画的小单元拼在一起,得到神经网络。特征输入到若干个sigmoid单元,在输入到另外一个sigmoid单元,得到输出。中间节点的输出值设为a1,a2,a3。这些中间节点称为隐藏层,神经网络可以由多个隐层。

 

每个中间节点有一系列参数:

a2,a3同理。gsigmoid函数。最终的输出值为:

其中,a向量由a1,a2,a3组成。

一种学习模型参数的方法是,利用成本函数J(θ),使用梯度下降使J(θ)最小。即用梯度下降使得神经网络的预测结果和你观察到的训练集中的样本标签尽可能接近。在神经网络中,这种方法称为反向传播。

 

3、 支撑向量机铺垫 – 最大间隔分类器

另外一种能生成非线性分类器的学习算法。本节课先介绍另外一类线性分类器,在下一讲或者下下讲中,利用支撑向量机的想法,进行一些巧妙的改动和扩展,让它可以生成非线性分界线。

 

两种对于分类的直观理解:

1)       考虑logistic回归,计算θTx

输出1  <=> θTx>=0;输出0  <=> θTx<0

如果θTx>>0,相当确定的预测y=1;如果θTx<<0,相当确定的预测y=0

对于所有的i,如果y=1θTx(i)>>0,如果y=0θTx(i)<<0,那么我们认为分类器是良好的。即如果我们根据训练集找到了参数,我们的学习算法不仅需要保证分类结果正确,更要进一步保证分类结果的确定性。

2)       假设训练集是线性可分割的,即一定有一条直线可以将训练集分开。那么直观来看,我们一定会选择和正负样本都有一定距离的直线。后面讲到分类器的几何间隔时,再正式讨论。

 

支撑向量机中改动的符号:

输出y{-1,+1}

h输出的假设值也改为{-1,+1}

g(z) = { 1 , 如果z>=0;  -1, 如果z<0}

之前在使用式:hθ(x)=g(θTx)时,假设x0=1xn+1维向量,现在忽略这两个假设,表示为:hw.b(x)=g(wTx+b),这里的b相当于原来的θ0w相当于原来θ除去θ0剩余部分,长度为n维。将截距b单提出来,方便引出支撑向量机。

 

函数间隔

一个超平面(w,b)和某个特定训练样本(x(i),y(i))对应的函数间隔定义为:

参数(w,b)定义了一个分类器,例如定义了一个线性分界线。

如果y(i)=1,为了获得较大的函数间隔,需要令wTx(i)+b >> 0

如果y(i)=-1,为了获得较大的函数间隔,需要令wTx(i)+b <<0

如果y(i)(wTx(i)+b) > 0,意味着分类结果正确

 

一个超平面(w,b)和整个训练集的函数间隔定义为:

即相对于整个训练集的函数间隔定义为所有相对于样本的函数间隔的最坏情形(上述讲到,分界线距离样本越远效果越好)。

 

几何间隔:

几何距离定义为:一个训练样本对应的点到由超平面确定的分隔线的距离。如下图A到分隔线的距离AB就是几何距离。

和分隔线垂直的单位向量表示为:w/||w||AB这段距离表示为γ(i),γ上有小三角表示函数间隔,没有表示几何间隔。若A点表示x(i),那么点B表示为:

由于点B在分隔线上,它应该还满足:

可以解出:

上式说明,对于一个训练样本x(i),到由参数wb确定的分隔平面之间的距离,可以由上式得到。

 

由于上述一直假设对样本进行了正确的分类,所以更一般的,将几何间隔定义为:

这个定义和函数间隔很相似,不同点是对向量w进行了标准化。同样,希望几何间隔也是越大越好。

 

结论:如果||w||=1,函数间隔等于几何间隔。更一般的,几何间隔等于函数间隔除以||w||

 

一个超平面(w,b)和整个训练集的几何间隔定义为:

和函数间隔类似,取样本中最小的几何间隔。

 

最大间隔分类器可以看做是支撑向量机的前身,是一种学习算法,选择特定的wb,使几何间隔最大化。最大分类间隔是下述这样的优化问题:

即选择γ,wb是γ最大,同时满足条件:所选取的最大几何间隔必须保证每个样本的结合间隔至少为γ。

 

最大间隔分类器的效果和logistic回归结果差不多好,深入研究这个分分类器,可以用一种更巧妙的方法让其支持无限维的特征空间,得到有效的非线性分类器。


推荐阅读
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • Python中HOG图像特征提取与应用
    本文介绍如何在Python中使用HOG(Histogram of Oriented Gradients)算法进行图像特征提取,探讨其在目标检测中的应用,并详细解释实现步骤。 ... [详细]
  • 大数据时代的机器学习:人工特征工程与线性模型的局限
    本文探讨了在大数据背景下,人工特征工程与线性模型的应用及其局限性。随着数据量的激增和技术的进步,传统的特征工程方法面临挑战,文章提出了未来发展的可能方向。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • 李宏毅机器学习笔记:无监督学习之线性方法
    无监督学习主要涵盖两大类别:一是聚类与降维,旨在简化数据结构;二是生成模型,用于从编码生成新的数据样本。本文深入探讨了这些技术的具体应用和理论基础。 ... [详细]
  • 吴恩达推出TensorFlow实践课程,Python基础即可入门,四个月掌握核心技能
    量子位报道,deeplearning.ai最新发布了TensorFlow实践课程,适合希望使用TensorFlow开发AI应用的学习者。该课程涵盖机器学习模型构建、图像识别、自然语言处理及时间序列预测等多个方面。 ... [详细]
  • 强人工智能时代,区块链的角色与前景
    随着强人工智能的崛起,区块链技术在新的技术生态中扮演着怎样的角色?本文探讨了区块链与强人工智能之间的互补关系及其在未来技术发展中的重要性。 ... [详细]
  • 本文探讨了图像标签的多种分类场景及其在以图搜图技术中的应用,涵盖了从基础理论到实际项目实施的全面解析。 ... [详细]
  • 本文详细记录了作者从7月份的提前批到9、10月份正式批的秋招经历,包括各公司的面试流程、技术问题及HR面的常见问题。通过这次秋招,作者深刻体会到了技术积累和面试准备的重要性。 ... [详细]
  • 支持向量机(SVM)算法综述
    支持向量机(Support Vector Machine, SVM)是由Cortes和Vapnik于1995年首次提出的一种机器学习算法。SVM在处理小样本、非线性及高维模式识别问题上表现出显著的优势,并广泛应用于函数拟合等其他机器学习任务中。 ... [详细]
  • AI炼金术:KNN分类器的构建与应用
    本文介绍了如何使用Python及其相关库(如NumPy、scikit-learn和matplotlib)构建KNN分类器模型。通过详细的数据准备、模型训练及新样本预测的过程,展示KNN算法的实际操作步骤。 ... [详细]
  • 机器学习算法:SVM(支持向量机)
    SVM算法(SupportVectorMachine,支持向量机)的核心思想有2点:1、如果数据线性可分,那么基于最大间隔的方式来确定超平面,以确保全局最优, ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
author-avatar
尼一奥鸟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有