7月23日 R进行层次聚类算法的继续完善
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进行层次聚类算法的继续完善相关推荐
- 西湖大学鞠峰:环境微生物宏基因组学(报告视频+PPT,11月23日)
报告题目:环境微生物宏基因组学 报告人:鞠峰研究员 报告时间:2020年11月23日 鞠峰,西湖大学研究员,中国工程院院刊<Engineering>编委.Frontiers系列期刊编委与审 ...
- 2016年3月23日作业
软考中高项学员:2016年3月23日作业 一.项目进度管理 1.进度管理包括哪六个过程? 答:(1)活动定义:确认一些特定的工作,通过完成这些活动就完成了工程项目的各项目细目. (2)活动排序:明确 ...
- 七周二次课(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下抓包 ========================== ...
- 服务器维护lol3.23,LOL测试服3月23日更新了什么?LOL测试服3月23日更新内容介绍...
LOL测试服3月23日更新了什么?LOL测试服3月23日更新内容介绍.据悉,LOL在3月23日凌晨更新了LOL北美测试服,调整了阿狸英雄还有新英雄卡莎等,我们一起看看吧. 3.23日PBE更新: -- ...
- 服务器维护lol3.23,LOL3月23日测试服更新公告 3月23日更新内容介绍
在LOL游戏中,为了让玩家们更好的体验游戏.LOL将于3月23日对游戏体验服进行维护更新,本次体验服更新了哪些内容?不少玩家都不知道,下面我们一起看看LOL3月23日测试服更新公告 3月23日更新内容 ...
- 互联网日报 | 铁路部门推出免费退票措施;腾讯看点启动“百万粉丝扶持计划”;苹果2月23日召开线上股东大会...
今日看点 ✦ 腾讯看点启动"百万粉丝扶持计划",将投入10亿级别流量 ✦ 万达集团去年万达广场出租率99.4%,海外地产项目已清仓 ✦ 字节跳动旗下知识付费社区"好好学习 ...
- 2022年10月23日周赛ZZULIOJ
文章目录 问题 B: 芝华士威士忌和他的小猫咪们 代码&注释 问题 C: 愿我的弹雨能熄灭你们的痛苦 代码注释 问题 D: 猜糖果游戏 代码注释 问题 E: 有趣的次方 代码注释 问题 F: ...
- 服务器维护lol3.23,lol2017年3月23日测试服更新内容一览
lol2017年3月23日测试服更新了什么内容?lol3.23测试服都做了什么更新?还不清楚lol2017年3月23日测试服更新详情的小伙伴们抓紧时间跟上小编一起来看一下吧! 皮肤原画 恐惧新星 德莱 ...
- 英雄联盟7月23日维修服务器,英雄联盟7月23日PBE版本更新 琴女技能小幅度重做...
英雄联盟7月23日PBE版本更新 琴女技能小幅度重做 作者:逍遥时间:2021-07-23 分享到: 英雄联盟官方于2021年7月23日发布了PBE更新,在本次更新中添加了魔女系列的炫彩皮肤,对娑娜进 ...
最新文章
- UI控件无法响应点击等事件的探索
- 一b变频器说明书参数一览表_电工常见的23个变频器问题整理,附专业解答
- 美国诚实签经验——中英文行程单、往返机票、用英语面试的申请者通过率用中文面试的申请者的通过率、一直保持着微笑,看上去很自信,也很诚恳、户口簿带上最好...
- Android Gesture 手势识别使用实例 - Android - mobile - ITeye论坛
- 《Spring 3.0就这么简单》——1.6 展现层
- python练习_如何使用Logzero在Python中练习记录
- Java 并发编程必须知道的七种锁类型以及应用
- 隔行变色java代码_jquery入门—选择器实现隔行变色实例代码
- 基于Java+SpringMvc+vue+element实现上海汽车博物馆平台
- Struct嵌套使用
- java tostring的用处_java中的toString什么意思?toString有什么用?
- golang:map转json字符串
- 需求分析说明书和需求规格说明书
- ECharts 实现地图功能
- Java中学生管理系统(对分数健康查询与修改)
- 辞职信 求助编辑百科名片
- 长视频优化:如何高效减少转码耗时
- 一些情况及问题的说明
- jadx-gui-1.4.4 反编译工具使用教程
- 用友摩天获“2021最受欢迎企业数智化学习认证社区”殊荣