1、前面读取数据库不变

##连接数据库,将数据库中的文件读取出来
#加载包
library(RMySQL)
#建立连接
conn <- dbConnect(dbDriver("MySQL"), dbname = "eswp", user="root", password="root")
#读取 表2008yearnew
text = dbReadTable(conn, "sixclasscleaned")[1:594,2:2]#只读取mesh词的那一列,通过前面的第一个下标修改读取的行数,读取20行

2、在此-文档矩阵的生成过程中加入了不进行小写转换的参数(tolower=FALSE),

#加载tm包
library(tm)
#建立语料库
corpus=Corpus(VectorSource(text))
#从语料库建立词-文档矩阵,用tf-idf来表示,stopwords = stopwords("mesh")#表示使用mesh停用词表;
#tolower = FALSE标识不将大写转换成小写,而默认是转换的;
#停用词表放在tm包中的stopwords文件夹中,目前停用词表中只有aged一词
tdm = TermDocumentMatrix(corpus,control = list(stopwords=stopwords("mesh"), weighting = weightTfIdf,tolower = FALSE))

3、降维的方法,使用removeSparseTerms函数。

##词太多,需要在这里进行筛选,使用removeSparseTerms()进行词的筛选
tdm_removed = removeSparseTerms(tdm, 0.99)#这个值需要不断测试来设置,和矩阵原来的稀疏程度有关

4、聚类中距离的计算公式不便,但是在聚类过程中尝试了所有method的组合,即词间距离和类间距离的计算方法,最终使用下面的方法,但是不一定适合你。

#R中计算距离的方法有euclidean,maximum,manhattan,canberra,minkowski,binary等,在这里使用euclidean距离,即欧氏距离
dist_tdm_removed <- dist(tdm_removed, method = 'canberra')#根据距离行层次聚类,距离使用average即类平均法距离,可以使用的其他距离有,single,complete,median,mcquitty,average,centroid,ward等
hc <- hclust(dist_tdm_removed, method = 'mcquitty')

5、用cutree函数对层次聚类结果进行分割,并进行了格式化输出。

cutNum = 25 #设置分割的类的数目
#对树进行分割
ct = cutree(hc,k=cutNum)
write(paste("共分为",cutNum,"类"),"data.txt",append=FALSE) #统计各个类的数目
write("----------------","data.txt",append=TRUE)
write("\n","data.txt",append=TRUE)#输出各个类
#输出到屏幕
#for(i in 1:cutNum){print(paste("第",i,"类:",sum(ct==i),"个"));print(attr(ct[ct==i],"names"));print("----------------")}
#输出到外部文件
for(i in 1:cutNum){write(paste("第",i,"类: ",sum(ct==i),"个"),"data.txt",append=TRUE);write("----------------","data.txt",append=TRUE);write(attr(ct[ct==i],"names"),"data.txt",append=TRUE);write("----------------","data.txt",append=TRUE)write("\n","data.txt",append=TRUE)}

输出结果如下

共分为 25 类
----------------

第 1 类: 16 个
----------------
adenocarcinoma,follicular
biopsy,fine-needle
carcinoma,papillary
carcinoma,squamous_cell
fluorodeoxyglucose_f18
iodine_radioisotopes
lymph_node_excision
lymph_nodes
lymphatic_metastasis
positron-emission_tomography
prospective_studies
radiopharmaceuticals
thyroid_gland
thyroid_neoplasms
thyroid_nodule
thyroidectomy
----------------

第 2 类: 14 个
----------------
adolescent
asian_continental_ancestry_group
case-control_studies
child
child,preschool
china
cohort_studies
genetic_predisposition_to_disease
incidence
polymorphism,single_nucleotide
precursor_cell_lymphoblastic_leukemia-lymphoma
risk_factors
smoking
survival_analysis
----------------

6、输出图像方法不变

#如果类数目较多,则会重合看不清楚,使用下列方法画出大像素图形
png("test.png",width=3500,height=3000) #将输出设备改为png,像素尽可能的大,但是如果改的过大容易出现问题。#cex为标签的大小,同时,可以使用cex.axis属性来改变坐标系上数字的大小,使用cex.lab改变下面矩阵名字的大小#使用cex.main改变上方标题的大小,使用cex.sub改变下方聚类方法名称的大小,lwd是图形中线的宽度,此时图形将会在工作目录中看到
plot(hc,cex=2,cex.axis=3,cex.lab=3,cex.main=3,cex.sub=3,lwd=1.5)
rect.hclust(hc,k=30, border="red")#对聚类结果的标识
dev.off()

转载于:https://www.cnblogs.com/todoit/archive/2012/07/23/2605461.html

7月23日 R进行层次聚类算法的继续完善相关推荐

  1. 西湖大学鞠峰:环境微生物宏基因组学(报告视频+PPT,11月23日)

    报告题目:环境微生物宏基因组学 报告人:鞠峰研究员 报告时间:2020年11月23日 鞠峰,西湖大学研究员,中国工程院院刊<Engineering>编委.Frontiers系列期刊编委与审 ...

  2. 2016年3月23日作业

    软考中高项学员:2016年3月23日作业  一.项目进度管理 1.进度管理包括哪六个过程? 答:(1)活动定义:确认一些特定的工作,通过完成这些活动就完成了工程项目的各项目细目. (2)活动排序:明确 ...

  3. 七周二次课(1月23日) 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包...

    七周二次课(1月23日) 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包 ========================== ...

  4. 服务器维护lol3.23,LOL测试服3月23日更新了什么?LOL测试服3月23日更新内容介绍...

    LOL测试服3月23日更新了什么?LOL测试服3月23日更新内容介绍.据悉,LOL在3月23日凌晨更新了LOL北美测试服,调整了阿狸英雄还有新英雄卡莎等,我们一起看看吧. 3.23日PBE更新: -- ...

  5. 服务器维护lol3.23,LOL3月23日测试服更新公告 3月23日更新内容介绍

    在LOL游戏中,为了让玩家们更好的体验游戏.LOL将于3月23日对游戏体验服进行维护更新,本次体验服更新了哪些内容?不少玩家都不知道,下面我们一起看看LOL3月23日测试服更新公告 3月23日更新内容 ...

  6. 互联网日报 | 铁路部门推出免费退票措施;腾讯看点启动“百万粉丝扶持计划”;苹果2月23日召开线上股东大会...

    今日看点 ✦ 腾讯看点启动"百万粉丝扶持计划",将投入10亿级别流量 ✦ 万达集团去年万达广场出租率99.4%,海外地产项目已清仓 ✦ 字节跳动旗下知识付费社区"好好学习 ...

  7. 2022年10月23日周赛ZZULIOJ

    文章目录 问题 B: 芝华士威士忌和他的小猫咪们 代码&注释 问题 C: 愿我的弹雨能熄灭你们的痛苦 代码注释 问题 D: 猜糖果游戏 代码注释 问题 E: 有趣的次方 代码注释 问题 F: ...

  8. 服务器维护lol3.23,lol2017年3月23日测试服更新内容一览

    lol2017年3月23日测试服更新了什么内容?lol3.23测试服都做了什么更新?还不清楚lol2017年3月23日测试服更新详情的小伙伴们抓紧时间跟上小编一起来看一下吧! 皮肤原画 恐惧新星 德莱 ...

  9. 英雄联盟7月23日维修服务器,英雄联盟7月23日PBE版本更新 琴女技能小幅度重做...

    英雄联盟7月23日PBE版本更新 琴女技能小幅度重做 作者:逍遥时间:2021-07-23 分享到: 英雄联盟官方于2021年7月23日发布了PBE更新,在本次更新中添加了魔女系列的炫彩皮肤,对娑娜进 ...

最新文章

  1. UI控件无法响应点击等事件的探索
  2. 一b变频器说明书参数一览表_电工常见的23个变频器问题整理,附专业解答
  3. 美国诚实签经验——中英文行程单、往返机票、用英语面试的申请者通过率用中文面试的申请者的通过率、一直保持着微笑,看上去很自信,也很诚恳、户口簿带上最好...
  4. Android Gesture 手势识别使用实例 - Android - mobile - ITeye论坛
  5. 《Spring 3.0就这么简单》——1.6 展现层
  6. python练习_如何使用Logzero在Python中练习记录
  7. Java 并发编程必须知道的七种锁类型以及应用
  8. 隔行变色java代码_jquery入门—选择器实现隔行变色实例代码
  9. 基于Java+SpringMvc+vue+element实现上海汽车博物馆平台
  10. Struct嵌套使用
  11. java tostring的用处_java中的toString什么意思?toString有什么用?
  12. golang:map转json字符串
  13. 需求分析说明书和需求规格说明书
  14. ECharts 实现地图功能
  15. Java中学生管理系统(对分数健康查询与修改)
  16. 辞职信 求助编辑百科名片
  17. 长视频优化:如何高效减少转码耗时
  18. 一些情况及问题的说明
  19. jadx-gui-1.4.4 反编译工具使用教程
  20. 用友摩天获“2021最受欢迎企业数智化学习认证社区”殊荣

热门文章

  1. tensorflow 安装_tensorflow安装
  2. 动态标题_动态打印区域和打印标题
  3. matlab 将矩阵A写入文件
  4. FPGA的设计艺术(5)STA实战之时钟偏斜对建立保持时间的影响以及时序报告分析
  5. 【 FPGA 】组合逻辑中的竞争与险象问题(五)
  6. 【 MATLAB 】eps (浮点相对精度)简介
  7. P5147 随机数生成器 [数列]
  8. ubuntu下安装nginx时依赖库zlib,pcre,openssl安装方法
  9. WebGIS中基于AGS的画圆查询简析以及通过Polygon来构造圆的算法
  10. webdriver中处理alert