我是靠谱客的博主 鳗鱼爆米花,最近开发中收集的这篇文章主要介绍R语言数据挖掘样例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 
load("C:/Users/pc/Documents/毕设/data/rdmTweets.Rdata")
library(NLP)
library(SnowballC)
library(RColorBrewer)
library(wordcloud)
library(tm)
library(twitteR)
library(ggplot2)


rdmTweets[11: 15]


#10.2 Transforming Text
#把推文转换成数据框类型
df <- do.call("rbind", lapply(rdmTweets, as.data.frame))
dim(df)
#构建一个语料库,并将源指定为字符向量
dongCorpus <- Corpus(VectorSource(df$text))


#转换成大写字母
dongCorpus <- tm_map(dongCorpus, tolower)
#去掉标点符号
dongCorpus <- tm_map(dongCorpus, removePunctuation)
#移除数字
dongCorpus <- tm_map(dongCorpus, removeNumbers)
#设置超链接的模式
removeURL <- function(x) gsub("http[[:alnum:]]*", "", x)
#移除超链接
dongCorpus <- tm_map(dongCorpus, removeURL)
#使用英文停词表,并加入“avaliable”和“via”
dongStopwords <- c(stopwords('english'), "availale", "via")
#给停词表加入“big”
dongStopwords <- setdiff(dongStopwords, c("big"))
#移除停词表中的单词
dongCorpus <- tm_map(dongCorpus, removeWords, dongStopwords)




#10.3 Stemmin Words
#先做一份拷贝,便于比较前后差异
dongCorpusCopy <- dongCorpus
#去掉词缀
dongCorpus <- tm_map(dongCorpus, stemDocument)
#for (i in 11: 15) {
#  cat(paste("[[", i, "]]", sep = ""))
#  writeLines(strwrap(myCorpus[[i]], width = 73))
#}


#myCorpus <- tm_map(myCorpus, stemCompletion, dictionary = myCorpusCopy)
#比较前后差异
inspect(dongCorpusCopy[11: 15])
inspect(dongCorpus[11: 15])


#10.4 Building a Term-Document Matrix
#选取任意长度的单词建立单词-文本矩阵
dongTdm <- TermDocumentMatrix(dongCorpus, control = list(wordLengths = c(1, Inf)))
dongTdm


#10.5 Frequent Terms ans Associations
#显示频数不低于10的词汇集
findFreqTerms(dongTdm, lowfreq = 10)
#对每个单词的个数进行计数
termFreQuency <- rowSums(as.matrix(dongTdm))
#筛选,只留下频数大于10的单词
termFreQuency <- subset(termFreQuency, termFreQuency >= 10)
termFreQuency


qplot(names(termFreQuency), termFreQuency, xlab = "Terms") + geom_bar(stat= 'identity') + coord_flip()


#barplot(termFreQuency, las = 2)
findAssocs(myTdm, 'r', 0.25)
findAssocs(dongTdm, 'mine', 0.25)




#10.6 word cloud
#转化成常规矩阵
m <- as.matrix(dongTdm)
#统计词频
wordFreq <- sort(rowSums(m), decreasing = TRUE)
#设置随机种子
set.seed(375)
#计算灰度值
grayLevels <- gray( (wordFreq+10) / max(wordFreq + 10) )
#绘制词云
wordcloud(words = names(wordFreq), freq = wordFreq, min.freq = 3, random.order = F, colors = grayLevels)




#10.7 Clustering Words
#移除空项,压缩矩阵
dongTdm2 <- removeSparseTerms(dongTdm, sparse = 0.95)
#把矩阵转化为常规矩阵
m2 <- as.matrix(dongTdm2)
#生成单词距离矩阵
distMatrix <- dist(scale(m2))
#使用“ward.D”方法进行单词聚类
fit <- hclust(distMatrix, method = "ward.D")
#绘制分类图
plot(fit)
#加入分类框,设置类别数10,使得分类图看起来更加直观
rect.hclust(fit, k = 10)
#显示各单词类别序号
(group <- cutree(fit, k = 10))




#10.8.1 Clustering Tweets with the k-means Algorithm
#将矩阵转化为文本集群
m3 <- t(m2)
#设置集群数目为8
k <- 8
#使用kmeans算法聚类分析
kmeansResult <- kmeans(m3, k)
#生成聚类中心
round(kmeansResult$centers, digits = 3)


for (i in 1 : k) {
  cat(paste("cluster ", i, ": ", sep = ""))
  s <- sort(kmeansResult$centers[i, ], decreasing = T)
  cat(names(s)[1:3], "n")
}

#10.8.2 Clustering Tweets with the k-medoids Algorithm
#在估计聚类数量的情况下围绕中心点进行分区
pamResult <- pamk(m3,metric = "manhattan")
#获取集群数目
(k <- pamResult$nc)
pamResult <- pamResult$pamobject
#打印每个集群中心点
for (i in 1: k) {
  cat(paste("cluster", i, ": "))
  cat(colnames(pamResult$medoids)[which(pamResult$medoids[i, ] == 1)], "n")
}
#同时显示两个图
layout(matrix(c(1, 2), 2, 1))
#绘制聚类结果图
plot(pamResult, color = F, labels = 4, lines = 0, cex = .8, col.p = pamResult$clustering)


最后

以上就是鳗鱼爆米花为你收集整理的R语言数据挖掘样例的全部内容,希望文章能够帮你解决R语言数据挖掘样例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部