机器学习算法:朴素贝叶斯|python与r语言代码实现

2018-10-1123:59:26数据结构与算法Comments2,405 views字数 1284阅读模式

朴素贝叶斯

它是一种基于贝叶斯定理的分类技术,具有预测者之间的独立性假设。简单地说,朴素贝叶斯分类器假定类中的特定特征的存在与任何其他特征的存在无关。例如,水果如果是红色的、圆的、直径约3英寸的,那么久可以被认为是一个苹果。即使这些特征彼此依赖或存在其他特征,朴素贝叶斯分类器将考虑所有这些属性来独立地区分这种水果是苹果的概率。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html

朴素贝叶斯模型易于建立,特别适用于非常大的数据集。虽然简单,但朴素贝叶斯是已知的高性能甚至高度复杂的分类方法。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html

Bayes定理为P(C)、P(X)和P(X,C)的后验概率p(C* x)的计算提供了一种途径。请看下面的方程式:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html

机器学习算法:朴素贝叶斯|python与r语言代码实现文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html

在这里,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html

  • P(C x)是给定(属性)的类(目标)的后验概率。
  • P(C)是类的先验概率。
  • P(x,c)是预测给定类的概率。
  • P(x)是预测器的先验概率。

例子:让我们用一个例子来理解它。下面我有一个训练数据集的天气和相应的目标变量“玩”。现在,我们需要根据天气情况来判断玩家是否想玩。让我们按照下面的步骤来执行它。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html

步骤1:将数据集转换为频率表文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html

步骤二:通过发现阴暗概率=0.29和概率为0.64的概率来创建似然表。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html

机器学习算法:朴素贝叶斯|python与r语言代码实现文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html

步骤三:使用朴素贝叶斯方程计算每个类的后验概率。具有最高后验概率的类是预测的结果。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html

问题:如果天气晴朗,玩家会想玩,这个说法是正确的吗?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html

我们可以用上面讨论的方法求解它,所以P(Yes | Sunny) = P( Sunny | Yes) * P(Yes) / P (Sunny)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html

这里我们有P (Sunny |Yes) = 3/9 = 0.33, P(Sunny) = 5/14 = 0.36, P( Yes)= 9/14 = 0.64 得出, P (Yes | Sunny) = 0.33 * 0.64 / 0.36 = 0.60,具有较高的概率。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html

朴素贝叶斯使用类似的方法来预测基于不同属性的不同类别的概率。该算法主要用于文本分类,存在多类问题。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html

Python 代码

#Import Library
from sklearn.naive_bayes import GaussianNB
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create SVM classification object model = GaussianNB() # there is other distribution for multinomial classes like Bernoulli Naive Bayes, Refer link
# Train the model using the training sets and check score
model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)

R 语言代码文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html

library(e1071)
x <- cbind(x_train,y_train)
# Fitting model
fit <-naiveBayes(y_train ~ ., data = x)
summary(fit)
#Predict Output 
predicted= predict(fit,x_test)
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/6545.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/suanfa/6545.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定