分类

安卓应用安卓游戏

教育学习

Bayesian Computation With R

Bayesian Computation With R 免费版

大小:3.5 MB

语言:简体中文系统:WinXP, Win7, Win8, Win10

类别:教育学习时间:2018-06-26 19:46

R语言基于贝叶斯算法
  • Bayesian Computation With R
  • Bayesian Computation With R
  • Bayesian Computation With R

Tags:编程开发数控编程编程软件

R语言贝叶斯计算 英文版 Bayesian Computation With R是一本关于R语言基于贝叶斯算法的数据分析的教程,非常的实用,七达网小编这里欢迎各位有需要的赶快下载体验吧!

如何利用贝叶斯算法来判断一条信息是否是垃圾短信。

代码如下:

data<-read.csv("sms_spam.csv",stringsAsFactors = FALSE)  
str(data)  
data  
  
data$type<-factor(data$type)  
data$text<-iconv(x = data$text,from = "WINDOWS-1252",to = "UTF-8")  
  
library(tm)  
data_corpus_text<-Corpus(VectorSource(data$text))  
  
data_corpus_text_train<-data_corpus_text[1:5000]  
data_corpus_text_test<-data_corpus_text[5001:5558]  
  
dtm_train<-DocumentTermMatrix(x = data_corpus_text_train)  
dtm_test<-DocumentTermMatrix(x = data_corpus_text_test)  
  
inspect(dtm_test)  
  
conver_to_matrix<-function(x){  
  x0,1,0)  
  x<-factor(x,levels = c(0,1),labels = c(""No"",""Yes""))  
  return(x)  
}  
  
m_dtm_train<-apply(X = dtm_train,MARGIN = 2,FUN = conver_to_matrix)  
  
m_dtm_test<-apply(X = dtm_test,MARGIN = 2,FUN = conver_to_matrix)  
  
  
library(e1071)  
  
classifier<-naiveBayes(x = m_dtm_train,y = data$type[1:5000])  
predictions<-predict(object = classifier,newdata = m_dtm_test)  
  
library(gmodels)  
  
CrossTable(x = data$type[5001:5558],y = predictions,dnn = c("Actual","Predict"))

关键点解释如下:

1. 第一步肯定是要通过read.csv()加载数据。其中stringAsFactors=FALSE表明了加载数据的时候不要自动的将字符型数据自动转换成因子水平,这样有利于我们之后自己决定因子

2.data$type<-factor(data$type) 。 由于type是我们将要预测的值,所以我们需要将type转换成因子

3.然后就涉及到语料库(Corpus)的概念。在处理文本类数据的时候,建议将文本转换成corpus语料库来处理,因为这样的话,tm包提供了DocumentTermMatrix函数,可以很方便的将一个语料库转换成稀疏矩阵。

稀疏矩阵:

Docs代表每个文本数据,and、are等下的表示该单词在Docs表示的文本中出现的次数。例如,第187的文本中and出现了2次,for出现了1次,that出现了4次等等。

4.但是在用贝叶斯算法分析的时候,要求数据框(或矩阵)必须有明确的的数据特征,也就是每个属性不是yes,就要是no. 所以,我们要修改生成的稀疏矩阵,先构建一个函数conver_to_matrix, 用来将每个输入转换成0或1的因子。0表示该单词在该文本中没有出现过,1表示该单词在文本中出现过(基于贝叶斯的特性以及需求,不用考虑单词出现的次数)。m_dtm_train<-apply(X = dtm_train,MARGIN = 2,FUN = conver_to_matrix) 这样得到的m_dtm_train就是符合贝叶斯要求的训练数据。

5.classifier<-naiveBayes(x = m_dtm_train,y = data$type[1:5000]) 之后就是构造出分类器,然后在预测的时候使用这个分类器进行判断就可以了。

6.最后当然是比较一下预测数据和真实数据的误差。

可以看出结果还是很可观的。

注意,值得一提的是:

data$text<-iconv(x = data$text,from = "WINDOWS-1252",to = "UTF-8")。

我在ubuntu下写的代码,当时遇到的问题是数据中含有不能被正常编码的字符,是很生僻的那种,于是在执行tolower函数时候就会报错,执行上面代码虽然还是不可以让字符得到正确的解读,但是至少不再是不能编码了。

∨ 展开

同类推荐

特别下载

猜你喜欢

相关文章

热门推荐

下载排行

热门关键字

文明时代2Mod电视直播软件短剧平台植物大战僵尸版本大全天正电气版本合集迅读软件版本大全鸿合教育软件大全口袋妖怪系列破解版口袋妖怪玩家自制版老爹模拟经营游戏系列The Foundry软件产品系列EndNote软件合集乐教乐学软件版本大全滤镜多的美图相机手机日语学习软件像素地牢推荐版本免费手机录屏软件苹果电脑网课软件大全好用的手机影院剑网三游戏版本大全激战2游戏版本大全免费电视电影App宅男影音神器忍者题材动作游戏推荐电脑热门网络游戏排行PC端二次元游戏推荐千牛版本大全Creo3.0版本合集Creo软件专区Microsoft Office2016版本合集

网友评论

我要跟帖
取消
游客

R语言贝叶斯计算 英文版 Bayesian Computation With R

回复赞(4)
查看所有评论 共 1