大数据人|大数据第一社区

 找回密码
 注册会员

扫一扫,访问微社区

查看: 1827|回复: 0
打印 上一主题 下一主题

[其它] 十大经典数据挖掘算法R语言实践(三)朴素贝叶斯算法

[复制链接]
  • TA的每日心情
    奋斗
    2015-7-30 23:05
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    852

    主题

    972

    帖子

    4804

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    4804
    QQ
    跳转到指定楼层
    楼主
    发表于 2015-11-18 09:43:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    续《十大经典数据挖掘算法R语言实践(二)》,本文中介绍朴素贝叶斯算法在R语言中如何使用。
    数据集,采用R语言内置的iris数据集
    #查看数据集前六个观测
    head(iris)
    Sepal.Length
    Sepal.Width
    Petal.Length
    Petal.Width
    Species
    5.1
    3.5
    1.4
    0.2
    setosa
    4.9
    3.0
    1.4
    0.2
    setosa
    4.7
    3.2
    1.3
    0.2
    setosa
    4.6
    3.1
    1.5
    0.2
    setosa
    5.0
    3.6
    1.4
    0.2
    setosa
    5.4
    3.9
    1.7
    0.4
    setosa
    朴素贝叶斯算法R代码
    第一步:加载包e1071
    library(e1071)
    library(printr)
    第二步:iris数据集分为训练集和测试集
    index <-sample(1:nrow(iris), 100)
    iris.train <-iris[index, ]
    iris.test <-iris[-index, ]
    第三步:利用朴素贝叶斯算法构建模型
    model.NaiveBayes <-naiveBayes(x =subset(iris.train,select=-Species), y= iris.train$Species)
    第四步:用模型对测试集做测试
    results.NaiveBayes <-predict(object = model.NaiveBayes, newdata =iris.test, type="class")

    第五步:混淆矩阵
    table(results.NaiveBayes, iris.test$Species)
    results.NaiveBayes/
    setosa
    versicolor
    virginica
    setosa
    18
    0
    0
    versicolor
    0
    15
    1
    virginica
    0
    0
    16

    朴素贝叶斯算法思想
    贝叶斯分类的基础是概率推理,就是在各种条件的存在不确定,仅知其出现概率的情况下,如何完成推理和决策任务。概率推理是与确定性推理相对应的。而朴素贝叶斯分类器是基于独立假设的,即假设样本每个特征与其他特征都不相关。

    贝叶斯分类器特点
    1、需要知道先验概率,先验概率是计算后验概率的基础。在传统的概率理论中,先验概率可以由大量的重复实验所获得的各类样本出现的频率来近似获得,其基础是“大数定律”,这一思想称为“频率主义”。而在称为“贝叶斯主义”的数理统计学派中,他们认为时间是单向的,许多事件的发生不具有可重复性,因此先验概率只能根据对置信度的主观判定来给出,也可以说由“信仰”来确定。
    2、按照获得的信息对先验概率进行修正在没有获得任何信息的时候,如果要进行分类判别,只能依据各类存在的先验概率,将样本划分到先验概率大的一类中。而在获得了更多关于样本特征的信息后,可以依照贝叶斯公式对先验概率进行修正,得到后验概率,提高分类决策的准确性和置信度。
    3、分类决策存在错误率由于贝叶斯分类是在样本取得某特征值时对它属于各类的概率进行推测,并无法获得样本真实的类别归属情况,所以分类决策一定存在错误率,即使错误率很低,分类错误的情况也可能发生。

    参考资料
    1 《数据挖掘导论》和《数据挖掘:概念与技术》
    2 数据挖掘十大经典算法(详解)
    3 Top10 data mining algorithms in plain R

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条


    id="mn_portal" >首页Portalid="mn_P18" onmouseover="navShow('P18')">应用id="mn_P15" onmouseover="navShow('P15')">技术id="mn_P37" onmouseover="showMenu({'ctrlid':this.id,'ctrlclass':'hover','duration':2})">前沿id="mn_P36" onmouseover="navShow('P36')">宝箱id="mn_P61" onmouseover="showMenu({'ctrlid':this.id,'ctrlclass':'hover','duration':2})">专栏id="mn_P65" >企业id="mn_Nd633" >导航 折叠导航 关注微信 关注微博 关注我们

    QQ|广告服务|关于我们|Archiver|手机版|小黑屋|大数据人 ( 鄂ICP备14012176号-2  

    GMT+8, 2024-5-7 01:03 , Processed in 0.254419 second(s), 34 queries .

    Powered by 小雄! X3.2

    © 2014-2020 bigdataer Inc.

    快速回复 返回顶部 返回列表