楼主: 我就是只猫
4235 9

[问答] R语言将导入的文本数据进行转置、层次聚类等操作后,用cutree分组时发现数据变多 [推广有奖]

  • 0关注
  • 1粉丝

已卖:3份资源

大专生

43%

还不是VIP/贵宾

-

威望
0
论坛币
110 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
326 点
帖子
57
精华
0
在线时间
39 小时
注册时间
2014-7-16
最后登录
2015-5-23

楼主
我就是只猫 发表于 2015-5-7 20:29:27 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
原本数据只有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条


二维码

扫码加我 拉你入群

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

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

关键词:Tree 文本数据 cut R语言 小女子 帮帮小女子

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

data.txt

11.99 MB

藤椅
katymeala 发表于 2015-5-7 22:45:57
cutree的k选择的是分类数,输出结果是可以table一下,看看每一类分别有多少数据,sum一下看看总数是不是1764,不是就肯定前期处理出错了
-------------------------------------------------------------------------------------
毕设那个,就是最简单的判别分析,用fisher判别,贝叶斯判别,距离判别分别试试,比较结果,建议距离判别KNN
R中对应的包是MASS包中的lda函数,klaR中的NaiveBayes,class中的knn函数,不需要你操心怎么算,很easy的,输入训练集和测试集,几秒就出结果了,结构是dataframe,注意相应变量就行了
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
我就是只猫 + 1 + 1 + 1 精彩帖子
admin_kefu + 30 热心帮助其他会员

总评分: 论坛币 + 30  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

板凳
我就是只猫 发表于 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 ...
还得再问一下,你说的判别分析是在哪一步进行的?我想把新闻聚类得出的类别和用户这边的数据联系起来是怎么做呢?还有,你说的方法是按我写的思路来的吗?很多不懂,多谢多谢!

7
katymeala 发表于 2015-5-8 22:25:42
我就是只猫 发表于 2015-5-8 11:03
还得再问一下,你说的判别分析是在哪一步进行的?我想把新闻聚类得出的类别和用户这边的数据联系起来是怎 ...
寻找类似个体之类的自己手动,通过类似个体集的关系预测测试集的过程用软件解决

8
lisong-1227 学生认证  发表于 2015-5-9 02:52:34

9
lisong-1227 学生认证  发表于 2015-5-9 02:55:39

10
txyw 在职认证  发表于 2015-5-12 14:06:35

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 06:44