全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4194 9
2015-05-07
原本数据只有1764条,我想对数据做层次聚类,再用cutree显示分类,可是显示分类时竟然有3549个数据。新手啊,为了做毕设才学的,好着急,以下是代码和数据在附件里,望各路大神帮帮小女子啊!!

csv <- read.table("body1.txt",header=T)

csv  <-t(csv)

mystopwords<-unlist (read.table("StopWords.txt",stringsAsFactors=F))

library(tm)

#移除数字

removeNumbers = function(x) { ret = gsub("[0-90123456789]","",x) }

#中文分词,也可以考虑使用rmmseg4jrsmartcn

wordsegment<- function(x) {

library(Rwordseg)

segmentCN(x)

}

#去除停止词,效果比较差,可以进一步完善

removeStopWords = function(x,words) {

ret = character(0)

index <- 1

it_max <- length(x)

while (index <= it_max) {

if (length(words[words==x[index]]) <1) ret <- c(ret,x[index])

index <- index +1

}

ret

}

Sys.setenv(JAVA_HOME='C:/ProgramFiles/Java/jdk1.6.0_43/jre')

sample.words <- lapply(csv, removeNumbers)

sample.words <- lapply(sample.words, wordsegment)

#先处理中文分词,再处理stopwords,防止全局替换丢失信息

sample.words <- lapply(sample.words, removeStopWords, mystopwords)

#构建语料库

corpus = Corpus(VectorSource(sample.words))

sample.dtm<- DocumentTermMatrix(corpus, control = list(wordLengths = c(2, Inf)))

dtm2 = removeSparseTerms(sample.dtm,sparse=0.99)

d <- dist(dtm2, method ="euclidean")

fit <- hclust(d,method="ward.D")

plot(fit)

cutree(fit,k=8)#聚类的图显示的是8类,但数据太多特别密集,也看不出有多少数据,不知道是1700条还是3500条


附件列表

body1.txt

大小:4.15 MB

 马上下载

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-5-7 20:44:07
还有一个问题,毕设做的是新闻点击预测,下一步想做的是根据这一步得出的新闻分类,用向量表示用户点击过哪些类的新闻,然后与其他用户的向量做余弦相似性,选出每个用户最相似的前五个,再从这五个用户中挑选出这五名用户看过最多的而本用户没看过的新闻,这是老师给的思路,看着挺简单的,但实施起来真是无从下手,也不知道需要用到什么方法和函数,还望各路大神不吝赐教,帮忙指点一二。
附件列表

data.txt

大小:11.99 MB

 马上下载

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-5-7 22:45:57
cutree的k选择的是分类数,输出结果是可以table一下,看看每一类分别有多少数据,sum一下看看总数是不是1764,不是就肯定前期处理出错了
-------------------------------------------------------------------------------------
毕设那个,就是最简单的判别分析,用fisher判别,贝叶斯判别,距离判别分别试试,比较结果,建议距离判别KNN
R中对应的包是MASS包中的lda函数,klaR中的NaiveBayes,class中的knn函数,不需要你操心怎么算,很easy的,输入训练集和测试集,几秒就出结果了,结构是dataframe,注意相应变量就行了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-5-8 09:57:56
katymeala 发表于 2015-5-7 22:45
cutree的k选择的是分类数,输出结果是可以table一下,看看每一类分别有多少数据,sum一下看看总数是不是176 ...
太棒了太棒了!算是给我指了条明路啊!太谢谢你了!我先做着, 有问题还请你继续赐教啊!多谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-5-8 09:57:58
katymeala 发表于 2015-5-7 22:45
cutree的k选择的是分类数,输出结果是可以table一下,看看每一类分别有多少数据,sum一下看看总数是不是176 ...
太棒了太棒了!算是给我指了条明路啊!太谢谢你了!我先做着, 有问题还请你继续赐教啊!多谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-5-8 11:03:10
katymeala 发表于 2015-5-7 22:45
cutree的k选择的是分类数,输出结果是可以table一下,看看每一类分别有多少数据,sum一下看看总数是不是176 ...
还得再问一下,你说的判别分析是在哪一步进行的?我想把新闻聚类得出的类别和用户这边的数据联系起来是怎么做呢?还有,你说的方法是按我写的思路来的吗?很多不懂,多谢多谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群