Probabilistic learning 朴素贝叶斯分类

Posted newbie学习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Probabilistic learning 朴素贝叶斯分类相关的知识,希望对你有一定的参考价值。

sms_raw <- read.csv("sms_spam.csv", stringsAsFactors = FALSE)

sms_raw$type <- factor(sms_raw$type)

#类似的把目标变量factor化

table(sms_raw$type)

#首先需要处理的txt数据,SMS信息是一堆text数据构成的。

library(tm)

#tm数据包就是用于处理text数据的

sms_corpus <- Corpus(VectorSource(sms_raw$text))

print(sms_corpus)

inspect(sms_corpus[1:3])

corpus_clean <- tm_map(sms_corpus, tolower)

corpus_clean <- tm_map(corpus_clean, removeNumbers)

corpus_clean <- tm_map(corpus_clean, removeWords, stopwords())

corpus_clean <- tm_map(corpus_clean, removePunctuation)

#先把SMSmessages转化为lowercase。最终我们得到的去除数字、stop词(类似于to and but以及or),标点符号

corpus_clean <- tm_map(corpus_clean, stripWhitespace)

#去除了删除上述词后留下的空白

sms_dtm <- DocumentTermMatrix(corpus_clean)

#DocumentTermMatrix能够把corpus转化为矩阵,计算出现的词频

sms_raw_train <- sms_raw[1:4169, ]

sms_raw_test  <- sms_raw[4170:5574, ]

sms_dtm_train <- sms_dtm[1:4169, ]

sms_dtm_test  <- sms_dtm[4170:5574, ]

sms_corpus_train <- corpus_clean[1:4169]

sms_corpus_test  <- corpus_clean[4170:5559]

#看一下垃圾信息所占的比例

prop.table(table(sms_raw_train$type))

prop.table(table(sms_raw_test$type))

#使用了词云

以上是关于Probabilistic learning 朴素贝叶斯分类的主要内容,如果未能解决你的问题,请参考以下文章

scikit-learn 朴素贝叶斯类库使用小结

Probabilistic Graphical Models 1: Representation-Week1-reasoning-patterns

如何为 scikit-learn 的朴素贝叶斯指定先验概率

SciKit-learn - 训练高斯朴素贝叶斯分类器

Scikit-Learn 朴素贝叶斯分类丨数析学院

处理 scikit learn 的朴素贝叶斯看不见的特征