朴素贝叶斯(Naive Bayes)算法

朴素贝叶斯(Naive Bayes)算法,第1张

朴素贝叶斯算法属于分类算法。发源于古典数学理论,对缺失数据不太敏感,有稳定的分类效率,模型所需估计的参数很少,算法比较简单。

朴素贝叶斯算法 贝叶斯 是说明这个算法和贝叶斯定理有联系,而 朴素 是因为处理实际的需要,做了一个简化—— 假设每个特征之间是独立的 (如果研究的对象互相之间的影响很强,计算概率时考虑的问题非常复杂,做了独立假设,就可以分解后进行研究),这是这个算法模型与贝叶斯定理的区别。

将 x 作为特征,y 作为类别,那公式左边的 P(yi|x)就是说在知道特征 x 的情况下,计算这个特征属于 yi 类的可能性大小。通过比较找出这个可能性的值最大的属于哪一类,就将特征 x 归为这一类。

第3步的计算就是整个关键所在,计算依据是上面的贝叶斯公式。

对于每一个类的概率计算,公式右边的分母的 P(x)都是相同的,所以可以不计算(我们只是对最终结果进行比较,不影响)。

P(yi)也称为先验概率,是 x 属于 yi 类的一个概率,这个是通过历史信息得到的(在程序实现的时候,历史信息或者说先验信息就是我们的训练数据集),我们通过对训练样本数据进行统计,分别算出 x 属于 y1,y2,,yn 类的概率是多少,这个是比较容易得到的。

所以,主要是求 P(x|yi)= P(a1,a2,,am|yi)

这个时候对于贝叶斯模型的 朴素 的独立性假设就发挥作用了(综合的计算变成了独立计算后的综合,简化模型,极大地减少了计算的复杂程度):

P(a1,a2,,am|yi) = P(a1|yi)P(a2|yi)P(am|yi)

所以计算想要得到的东西如下:

一个程序简例

机器学习中常用的算法有哪些?

机器学习中常用的算法有哪些?

机器学习已经成为了人工智能领域中的重要一部分,它利用算法和模型来自动化学习数据并进行预测。在机器学习领域中,有许多不同的算法可供选择。这些算法分类不同,并针对不同的数据和问题提供不同的解决方案。本文将简要介绍一些机器学习中常用的算法。

1决策树

决策树算法基于一系列规则,用于预测给定数据集属于哪个类别。这些规则“分支”出一棵树,每个分支就是一条决策路径,树的“叶子”是预测结果。

2线性回归

线性回归算法的目标是找到一条直线来拟合给定数据集。直线的斜率和截距可以预测因变量的值。该算法是最简单和最常用的机器学习算法之一。

3逻辑回归

逻辑回归算法基于一个概率模型,用于预测给定数据集的类别。该算法通过计算每个类别的概率,并将概率最高的类别作为预测结果。

4支持向量机(SVM)

支持向量机算法是一种分类器,它试图在不同的类别之间找到最优的决策边界。该算法建立在一系列向量之上,每个向量代表一个训练集数据点。

5朴素贝叶斯

朴素贝叶斯算法是一种分类器,它基于贝叶斯定理,计算在给定数据点之后某个事件发生的概率。该算法假设不同的特征彼此独立,因此称为“朴素”。

6聚类

聚类算法将给定数据集分成多个组,每个组中包含相似的数据点。这种算法常用于数据挖掘和模式识别任务,帮助研究人员深入挖掘数据集中的模式和结构。

7神经网络

神经网络是由多个节点组成的模型,模拟人脑的处理方式。该模型使用多个输入值来计算输出值,中间可能包含多层节点。神经网络是解决多种问题的强大算法。

总结

本文介绍了一些在机器学习中常用的算法,包括决策树、线性回归、逻辑回归、支持向量机(SVM)、朴素贝叶斯、聚类和神经网络。这些算法可用于分类、回归、聚类、特征匹配和预测等任务。机器学习的发展将会不断扩大这种算法的应用,提升算法效率和性能,推动人工智能技术的发展。

读到了一篇不错的关于贝叶斯方法和贝叶斯网络的 文章 ,整理一下理解和思考。

概率和统计是两个非常相关的概念,大家印象里很容易把统计变量等同于某个概率值或概率分布,但对于不同的统计方法而言,如何看待统计变量是存在区别的。

对于某个待推断的统计变量 ,频率学派认为 是一个固定变量,给定了一系列随机样本 后,通过计算频率来估计样本的分布,从而确定 。相反,贝叶斯学派认为 也是随机变量,在没有观察到任何样本之前,人们可以对 有一个主观的猜测,通常表示为先验分布 。而当观察到样本后X,先验分布会被逐渐修正为后验分布 ,从而逼近真正 的取值。

既然贝叶斯方法中,需要由后验分布来估计统计变量,那么一个重要的问题是如何计算后验分布。这里就需要引入贝叶斯公式: 。

可以看到,后验分布 是先验分布 通过乘以某个修正因子 得到的。这里 被称为Likelihood,表示已知 ,样本X发生的概率; 称为联合分布,表示 同时发生的概率; 则代表样本X发生的边缘分布,可以通过将联合分布 对 积分求得。

在实践中,我们一般取使后验概率分布 最大的 作为估计,也即最大后验估计。对于给定的X,一般认为 也是固定的,因此最大后验估计也就被转化为最大化 。

以上方法被广泛应用在各类问题中,比如应用朴素贝叶斯算法解决垃圾邮件分类,应用noisy channel model解决拼写检查。

参考:

从贝叶斯方法谈到贝叶斯网络

算法太多挑花眼?教你如何选择正确的机器学习算法

机器学习算法虽多,却没有什么普适的解决方案。决策树、随机森林、朴素贝叶斯、深度网络等等等等,是不是有时候觉得挑花了眼呢?福利来啦~本文将教你慧眼识精,快速挑选出满意的算法!

机器学习既是一门科学,也是一种艺术。纵观各类机器学习算法,并没有一种普适的解决方案或方法。事实上,有几个因素会影响你对机器学习算法的选择。

有些问题是非常特别的,需要用一种特定的解决方法。例如,如果你对推荐系统有所了解,你会发现它是一类很常用的机器学习算法,用来解决一类非常特殊的问题。而其它的一些问题则非常开放,可能需要一种试错方法(例如:强化学习)。监督学习、分类、回归等问题都是非常开放的,可以被用于异常检测或建立更加广泛的预测模型。

此外,我们在选择机器学习算法时所做出的一些决定与算法的优化或技术层面关系并不大,而更多地与业务决策相关。下面,让我们一起来看看有哪些因素能帮你缩小机器学习算法的选择范围。

数据科学过程

在你开始研究不同的机器学习算法前,你需要对自己拥有的数据、面对的问题及相关约束有清晰的了解。

理解你的数据

当我们决定使用哪种算法时,我们所拥有的数据的类型和形态起着关键性的作用。有些算法可以利用较小的样本集合工作,而另一些算法则需要海量的样本。特定的算法对特定类型的数据起作用。例如,朴素贝叶斯算法对处理待分类的输入特别有效,但是对于缺失值则一点都不敏感。

因此,你需要做到:

了解你的数据

1 查看总结统计和数据可视化的结

百分比可以帮助你识别大多数数据的范围

平均数和中位数可以描述集中趋势

相关系数可以指出强的关联性

2 数据可视化

箱形图可以识别出异常值

密度图和直方图可以显示出数据的散布情况

散点图可以描述二元关

数据清洗

1 处理缺失值。缺失的数据对于某些模型的影响比对其它模型更大。即使是对于那些被用于处理缺失数据的模型来说,它们也可能对缺失数据很敏感(某些变量的缺失数据可能导致预测性能变差)

2 选择处理异常值的方法

异常值在多维数据中十分常见。

有些模型对异常值的敏感性比其它模型要低。通常而言,树模型对于异常值的存在不太敏感。然而回归模型、或者任何试图使用方程的模型都会受到异常值的严重影响。

异常值可能是糟糕的数据收集造成的,也可能是合理的极值。

3 数据需要被聚合吗?

数据增强

1 特征工程是从原始数据中产生能够被用于建模的数据的过程,可以起到以下几种作用:

使模型更容易被解释(如数据分箱(binning))

捕获更复杂的关系(如神经网络)

减少数据冗余并降低数据维度(如主成分分析(PCA))

重新缩放变量(如标准化或归一化)

2 不同的模型可能有不同的特征工程的要求。有的模型有内置的特征工程。

对问题进行分类

下一步是对问题进行分类。这是一个需要分两步实现的过程。

1 根据输入分类:

如果你拥有的是带标签的数据,那么这就是一个监督学习问题。

如果你拥有的是未标注过的数据,并且希望从中找到有用的结构,那么这就是一个无监督学习问题。

如果你想要通过与环境的交互来优化一个目标函数,那么这就是一个强化学习问题。

2 根据输出分类:

如果模型的输出是一个(连续的)数字,那么这就是一个回归问题。

如果模型的输出是一个类别,那么这就是一个分类问题。

如果模型的输出是一组用输入数据划分出的簇,那么这就是一个聚类问题。

你想发现一个异常点吗?此时你面对的就是一个异常检测问题。

理解你要满足的约束条

你需要考虑你能够存储数据的容量有多大?这取决于系统的存储容量,你可能无法存储若干 GB 大小的分类、回归模型或者若干 GB 的用于聚类分析的数据。例如,在嵌入式系统中,你就会面临这种情况。

对预测过程的速度是否有要求?在实时应用中,很显然,尽快得出预测结果是十分重要的。例如,在自动驾驶问题中,应用必须尽可能快地对道路标志进行分类,以免发生交通事故。

对学习过程的速度是否有要求?在某些情况下,快速训练模型是十分必要的:有时,你需要使用不同的数据集快速地实时更新你的模型。

寻找可用的算法

当对自己的任务环境有了一个清晰的认识后,你就可以使用你所掌握的工具确定适用于待解决的问题并切实可行的算法。一些影响你选择模型的因素如下:

模型是否满足业务目标

模型需要多少数据预处理工作

模型有多准确

模型的可解释性如何

模型运行的速度有多快:构造模型需要多久?模型做出预测需要多长时间?

模型的可伸缩性如何

模型的复杂度是一个影响算法选择的重要标准。一般来说,一个更复杂的模型具备下列特征:

它依赖于更多的特征进行学习和预测(例如,使用十个而不是两个特征来预测目标)

它依赖于更复杂的特征工程(例如,使用多项式特征、交互特征或主成分)

它有更大的计算开销(例如,需要一个由 100 棵决策树组成的随机森林,而不是一棵单独的决策树)

除此之外,同样的机器学习算法可以基于参数的个数和某些超参数的选择而变得更加复杂。例如:

回归模型可以拥有更多的特征,或者多项式项和交互项。

决策树可以拥有更大或更小的深度。

将相同的算法变得更加复杂增加了发生过拟合的几率。

常用的机器学习算法

线性回归

这可能是机器学习中最简单的算法。例如,当你想要计算一些连续值,而不是将输出分类时,可以使用回归算法。因此,当你需要预测一个正在运行的过程未来的值时,你可以使用回归算法。然而,当特征冗余,即如果存在多重共线性(multicollinearity)时,线性回归就不太稳定。

在下列情况下可以考虑使用线性回归:

从一个地方移动到另一个地方所需的时间

预测下个月某种产品的销售情况

血液中的酒精含量对协调能力的影响

预测每个月礼品卡的销售情况,并改善年收入的估算

Logistic 回归

Logistic 回归执行二进制分类,因此输出二值标签。它将特征的线性组合作为输入,并且对其应用非线性函数(sigmoid),因此它是一个非常小的神经网络的实例。

logistic回归提供了许多方法对你的模型进行正则化处理,因此正如在朴素贝叶斯算法中那样,你不必担心你的特征是否相关。该模型还有一个很好的概率化的解释。不像在决策树或者支持向量机中那样,你可以很容易地更新你的模型以获取新的数据。如果你想要使用一个概率化的框架,或者你希望在未来能够快速地将更多的训练数据融合到你的模型中,你可以使用 logistic 回归算法。logistic 回归还可以帮助你理解预测结果背后起作用的因素,它不完全是一个黑盒方法。

在下列情况下可以考虑使用 logistic 回归算法:

预测客户流失

信用评分和欺诈检测

评价市场营销活动的效果

决策树

决策树很少被单独使用,但是不同的决策树可以组合成非常高效的算法,例如随机森林或梯度提升树算法。

决策树很容易处理特征交互,并且决策树是一种非参数模型,所以你不必担心异常值或者数据是否是线性可分的。决策树算法的一个缺点是,它们不支持在线学习,因此当你要使用新的样本时,你不得不重新构建决策树。决策树的另一个缺点是,它很容易发生过拟合,而这就是像随机森林(或提升树)这样的集成学习方法能够派上用场的地方。决策树也需要大量的内存空间(拥有的特征越多,你的决策树可能会越深、越大)

决策树能够很好地帮助你在诸多行动路径中做出选择:

做出投资决策

预测客户流失

找出可能拖欠银行贷款的人

在「建造」和「购买」两种选择间进行抉择

销售主管的资质审核

K-均值

有时,你完全没有数据的标签信息,并且你的目的是根据对象的特征来为其打上标签。这种问题被称为聚类任务。聚类算法可以在这种情况下被使用:例如,当你有一大群用户,你希望根据他们共有的一些属性将其划分到一些特定的组中。

如果在你的问题声明中有这样的问题:例如,找出一群个体的组织形式,或将某些东西分组,或找出特定的组。这时,你就应该使用聚类算法。

该方法最大的缺点是,K-均值算法需要提前知道你的数据会有多少簇,因此这可能需要进行大量的试验去「猜测」我们最终定义的簇的最佳个数——K。

主成分分析(PCA)

主成分分析能够对数据进行降维。有时,你拥有各种各样的特征,这些特征之间的相关性可能很高,而模型如果使用如此大量的数据可能会产生过拟合现象。这时,你可以使用主成分分析(PCA)技术。

主成分分析(PCA)能够起作用的关键因素是:除了低维的样本表征,它还提供了各种变量的一种同步的低维表征。同步的样本和变量的表征提供了一种能够可视化地找到能够表示一组样本的特征的变量的方法。

支持向量机

支持向量机(SVM)是一种在模式识别和分类问题中被广泛应用的监督机器学习技术——当你的数据恰好有两类时。

支持向量机准确率高,对于防止过拟合很好的理论保障。当你使用一个合适的核函数时,即使你的数据在基(低维)特征空间中是线性不可分的,他们也可以很好地工作。支持向量机在文本分类问题中非常流行,在该问题中,输入是一个维度非常高的空间是很正常的。然而,SVM 是一种内存密集型算法,它很难被解释,并且对其进行调优十分困难。

在下列现实世界的应用中,你可以使用支持向量机:

发现患有糖尿病等常见疾病的人

手写字符识别

文本分类——将文章按照话题分类

股票市场价格预测

朴素贝叶斯

这是一种基于贝叶斯定理的分类技术,它很容易构建,非常适用于大规模数据集。除了结构简单,据说朴素贝叶斯的表现甚至比一些复杂得多的分类方法更好。当 CPU 和内存资源有限时,朴素贝叶斯算法也是一个很好的选项。

朴素贝叶斯非常简单,你仅仅是在做大量的计数工作。如果朴素贝叶斯的条件独立假设确实成立,朴素贝叶斯分类器的收敛速度会比 logistic 回归这样的判别模型更快,因此需要的训练数据更少。即使朴素贝叶斯的假设不成立,朴素贝叶斯分类器往往也能很好地完成任务。如果你想使用一种快速的、简单的、性能也不错的模型,朴素贝叶斯是一个很好的选择。这种算法最大的缺点就是它不能学习到特征之间的相互作用。

在下列真实世界的应用中,你可以使用朴素贝叶斯:

情感分析和文本分类

类似于 Netflix、Amazon 这样的推荐系统

识别垃圾邮件

人脸识别

随机森林

随机森林是一种决策树的集成方法。它能够同时解决具有大规模数据集的回归问题和分类问题,还有助于从数以千计的输入变量中找出最重要的变量。随机森林具有很强的可伸缩性,它适用于任何维数的数据,并且通常具有相当不错的性能。此外,还有一些遗传算法,它们可以在具有最少的关于数据本身的知识的情况下,很好地扩展到任何维度和任何数据上,其中最简单的实现就是微生物遗传算法。然而,随机森林学习的速度可能会很慢(取决于参数设置),并且这种方法不能迭代地改进生成模型。

在下列现实世界的应用中,你可以使用随机森林:

预测高危患者

预测零件在生产中的故障

预测拖欠贷款的人

神经网络

神经网络中包含着神经元之间连接的权重。这些权重是平衡的,逐次对数据点进行学习。当所有的权重都被训练好后,如果需要对新给定的数据点进行回归,神经网络可以被用于预测分类结果或一个具体数值。利用神经网络,可以对特别复杂的模型进行训练,并且将其作为一种黑盒方法加以利用,而在训练模型之前,我们无需进行不可预测的复杂特征工程。通过与「深度方法」相结合,甚至可以采用更加不可预测的模型去实现新任务。例如,最近人们已经通过深度神经网络大大提升了物体识别任务的结果。深度学习还被应用于特征提取这样的非监督学习任务,也可以在人为干预更少的情况下,从原始图像或语音中提取特征。

另一方面,神经网络很难被解释清楚,其参数设置也复杂地让人难以置信。此外,神经网络算法也都是资源密集型和内存密集型的。

SCIKIT 参考手册

Scikit learning 为大家提供了一个非常深入的、解释地很清楚的流程图,它能够帮助你选择正确的算法。我认为此图十分方便。

结论

一般来说,你可以根据上面介绍的要点来筛选出一些算法,但是要想在一开始就知道哪种方法最好是很难的。你最好多迭代几次选择算法的过程。将你的数据输入给那些你确定的潜在优秀机器学习算法,通过并行或串行的方式运行这些算法,最终评估算法性能,从而选择出最佳的算法。

在最后,我想告诉你:为现实生活中的问题找到正确的解决方案,通常不仅仅是一个应用数学方法的问题。这要求我们对业务需求、规则和制度、相关利益者的关注点有所了解,并且具备大量的专业知识。在解决一个机器学习问题的同时,能够结合并平衡这些问题是至关重要的,那些能做到这一点的人可以创造最大的价值。

机器学习中常用的方法有:(1) 归纳学习符号归纳学习:典型的符号归纳学习有示例学习、决策树学习。函数归纳学习(发现学习):典型的函数归纳学习有神经网络学习、示例学习、发现学习、统计学习。(2) 演绎学习(3) 类比学习:典型的类比学习有案例(范例)学习。(4) 分析学习:典型的分析学习有解释学习、宏操作学习。

扩展资料:

机器学习常见算法:1、决策树算法决策树及其变种是一类将输入空间分成不同的区域,每个区域有独立参数的算法。决策树算法充分利用了树形模型,根节点到一个叶子节点是一条分类的路径规则,每个叶子节点象征一个判断类别。先将样本分成不同的子集,再进行分割递推,直至每个子集得到同类型的样本,从根节点开始测试,到子树再到叶子节点,即可得出预测类别。此方法的特点是结构简单、处理数据效率较高。 2、朴素贝叶斯算法朴素贝叶斯算法是一种分类算法。它不是单一算法,而是一系列算法,它们都有一个共同的原则,即被分类的每个特征都与任何其他特征的值无关。朴素贝叶斯分类器认为这些“特征”中的每一个都独立地贡献概率,而不管特征之间的任何相关性。然而,特征并不总是独立的,这通常被视为朴素贝叶斯算法的缺点。简而言之,朴素贝叶斯算法允许我们使用概率给出一组特征来预测一个类。与其他常见的分类方法相比,朴素贝叶斯算法需要的训练很少。在进行预测之前必须完成的唯一工作是找到特征的个体概率分布的参数,这通常可以快速且确定地完成。这意味着即使对于高维数据点或大量数据点,朴素贝叶斯分类器也可以表现良好。 3、支持向量机算法基本思想可概括如下:首先,要利用一种变换将空间高维化,当然这种变换是非线性的,然后,在新的复杂空间取最优线性分类表面。由此种方式获得的分类函数在形式上类似于神经网络算法。支持向量机是统计学习领域中一个代表性算法,但它与传统方式的思维方法很不同,输入空间、提高维度从而将问题简短化,使问题归结为线性可分的经典解问题。支持向量机应用于垃圾邮件识别,人脸识别等多种分类问题。

参考资料:

-机器学习(多领域交叉学科)

朴素贝叶斯分类器是一种应用基于独立假设的贝叶斯定理的简单概率分类器,之所以成为朴素,应该是Naive的直译,意思为简单,朴素,天真。

1、贝叶斯方法

贝叶斯方法是以贝叶斯原理为基础,使用概率统计的知识对样本数据集进行分类。由于其有着坚实的数学基础,贝叶斯分类算法的误判率是很低的。

贝叶斯方法的特点是结合先验概率和后验概率,即避免了只使用先验概率的主观偏见,也避免了单独使用样本信息的过拟合现象。贝叶斯分类算法在数据集较大的情况下表现出较高的准确率,同时算法本身也比较简单。

2、朴素贝叶斯算法

朴素贝叶斯算法(Naive Bayesian algorithm) 是应用最为广泛的分类算法之一。

朴素贝叶斯方法是在贝叶斯算法的基础上进行了相应的简化,即假定给定目标值时属性之间相互条件独立。也就是说没有哪个属性变量对于决策结果来说占有着较大的比重,也没有哪个属性变量对于决策结果占有着较小的比重。

虽然这个简化方式在一定程度上降低了贝叶斯分类算法的分类效果,但是在实际的应用场景中,极大地简化了贝叶斯方法的复杂性。

扩展资料

研究意义

人们根据不确定性信息作出推理和决策需要对各种结论的概率作出估计,这类推理称为概率推理。概率推理既是概率学和逻辑学的研究对象,也是心理学的研究对象,但研究的角度是不同的。概率学和逻辑学研究的是客观概率推算的公式或规则。

而心理学研究人们主观概率估计的认知加工过程规律。贝叶斯推理的问题是条件概率推理问题,这一领域的探讨对揭示人们对概率信息的认知加工过程与规律、指导人们进行有效的学习和判断决策都具有十分重要的理论意义和实践意义。

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/qinggan/870273.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-10
下一篇2023-07-10

发表评论

登录后才能评论

评论列表(0条)

    保存