请每天点击干货好文分享关注
欢迎致电天善智能微信公众号。 我们是专门从事商务智能BI、大数据、数据分析领域的垂直社区。
邀请对商务智能BI、数据分析挖掘、大数据、机器学习、python、r感兴趣的同学加入微信: fridaybifly、头条新闻爱好者交流群。 数据爱好者们在这里。
一.朴素贝叶斯分类的r函数介绍
1、朴素贝叶斯分类算法的实现函数
r的e1071包中的朴素贝叶斯函数实现朴素贝叶斯算法。 具体的函数格式如下。
朴素贝叶斯(x,y,laplace=0) )。
一般变量的具体参数说明如下。
朴素贝叶斯(公式、数据、laplace=0,subset ) ) ) ) ) ) ) ) ) )。
一般变量的具体参数说明如下。
2、朴素贝叶斯分类算法的预测函数
predict(object,newdata,type=c('class ',' raw ' ) )常见变量的具体参数描述如下:
二、具体案例演示
通过一个具体例子,给出朴素贝叶斯算法,并利用ROC曲线评价模型的性能。 具体数据集来自于r中mlbench包的附属数据集PimaIndiansDiabetes2,基于朴素贝叶斯算法识别糖尿病患者。
1、数据解读
最后一个是分类变量,剩下的是参数
2、代码解释
注:
str函数在查看数据结构时,类变量必须是因子型变量,如果是其他类型的变量,则程序在后续分析时报告错误。
)2) summary函数对数据进行描述性统计,观察有无异常值,出现异常值等时,也可以用boxplot、boxplot.stats等函数进行后续分析
注:
VIM包和mice包可用于缺失值的搜索,具体函数为md.pattern、aggr、na.omit、
complete.cases等以前两个函数很多。 基于aggr的缺损值可视化搜索结果如下。
)2) caret包中的preProcess函数可以进行缺失值的插值工作,preProcess函数的有用性很大,所以这里重点写一下。
preProcess函数可以进行数据标准化/规范化处理和数据缺失值的插值工作,具体函数格式如下:
preprocess(x,method,na.remove=TRUE,k=5)常见变量的具体参数说明如下:
注:
caret软件包的createDataPartition函数可以对数据进行等比采样,具体函数格式如下:
创建数据分区(x,times=1,p,list=FALSE ) )。
其中times为提取次数,1即可; p是提取的概率,也就是数据量。list是不是作为列表输出,使用FALSE,在TRUE中后续的程序会报告错误哦
)2)说到采样,我会想到sample函数。 sample函数是随机采样。 (当然具体代码也可以实现等比,但很麻烦。 ) caret软件包的createDataPartition函数是实现等比采样的好方法。
追记:处理不平衡分类时,请想起DMwR软件包的SMOTE函数!
注:
gmodels软件包的CrossTable函数可以进行模型评价,结果如下:
上图可以得到灵敏度、特异性、精度、伪正率等多种模型性能的指标。 以下叙述的ROC曲线是根据假正率和灵敏度这两个指标作成的。
)2) ROCR包的prediction函数和performance函数可以联合绘制ROC曲线。 首先,让我们来看看这两个函数的函数形式。 一般变量的具体参数说明如下。
pROC软件包也可以完成ROC曲线。 具体代码如下。
建议用pROC包裹。 也给出AUC值。 AUC值的范围为0.5-1,越大表示模型的效果越好。
三.总结
模型的预测正确率为73.44%,但gmodels软件包的CrossTable函数得到的结果预测为31个阳性但阴性(假阴性)。 这很可怕,表明模型拟合不好。
本文的目的是了解朴素贝叶斯算法的建模过程和联想相关函数。
邀请对商务智能BI、数据分析挖掘、大数据、机器学习、python、r感兴趣的同学加入微信: fridaybifly、头条新闻爱好者交流群。 数据爱好者们在这里。
转载请保留以下内容。
这篇文章来自天善社区的瘦歌博客。
原文地址: https://ask.hello bi.com/blog/sunshine 0503/6285