R语言分类回归决策树交互式修剪和更美观地可视化分析细胞图像分割数据集
原文链接:http://tecdat.cn/?p=24956
绘制分类或回归树的基本方法的 rpart() 函数只是调用 plot。然而,总的来说,结果并不漂亮。事实证明,一段时间以来,有一种更好的方法来绘制 rpart() 树。
我们可以大概浏览下如何实现,并且进一步研究。
# 绘制分类树图library(rpart) # 流行的决策树算法
library(party) # 替代决策树算法
library(partykit) # 将rpart对象转换为二叉树
data# 获取一些数据# 制大树
frm <- as.form
tee1 <- rpart
#
plot# 绘图很混乱
text
#
pr# 将对树进行绘图
vale=3 # 缩短变量名称# 对树进行交互式修剪
pp$obj # 以交互方式修剪树形
pp # 显示新的树木
#
#-------------------------------------------------------------------
rpart# 一个更合理的树
prp# 一个快速绘图
fayRpPot# 一个来自rattle的花式绘图
#
#-------------------------------------------------------------------
# 绘制一棵用RevoScaleR构建的树
# 构建一个模型公式
names
X <- as.vector
frm <- as.form
# 运行模型
DTree
# 绘制树形图
prp
faRaPlt
数据描述 Hill, LaPan, Li和Haney(2007)开发了模型来预测高含量屏幕中哪些细胞被很好地分割。该数据由2019年的119次成像测量组成。最初的分析使用1009个进行训练,1010个作为测试集(见称为案例的一栏)。
详细内容 结果类别包含在一个名为Class的因子变量中,水平为 "PS "表示分割不良,"WS "表示分割良好。
【R语言分类回归决策树交互式修剪和更美观地可视化分析细胞图像分割数据集】论文中使用的原始数据可以在Biomedcentral网站上找到。caret < 4.98的版本包含原始数据。现在的版本是经过修改的。首先,一些预测因子的几个离散版本(后缀为 "状态")被删除。第二,有几个最小值为0的倾斜预测因子(将受益于某种转换,如对数)。在这些字段中加入了1的常量值。AvgIntenCh2、FiberAlign2Ch3、FiberAlign2Ch4、SpotFiberCountCh4和TotalIntenCh2。
修剪和绘制树 加载数据后,脚本构建 rpart() 分类树。使用 plot() 绘制树会产生一些覆盖文本的黑云,这是您尝试绘制一棵大树所期望的典型结果。但是,pp() 在绘制树并仅使用默认设置显示其结构方面做得非常好。并且,使用指示 pr() 缩写变量名称的参数使绘图更具可读性。
文章图片
接下来的几行代码展示了 pp() 的交互式修剪功能。分配对象 _new.tree.1 的行_ 产生一个“实时”树图。使用鼠标修剪树,点击“退出”并重新绘制,您将得到一个相当不错的树顶部绘图。这是将树顶部的清晰图片获取到报告中的巧妙方法。
修剪后绘制更美观的树 tree.2,一个更合理的树,是仅仅接受rpart的结果。首先,使用默认设置使用 pp() 绘制这棵树,然后在下一行中,绘制该树。
文章图片
此函数只是 pp() 函数的包装,但易于用于绘制分类树,并且是美学如何促进交流的一个很好的例子。每个节点框显示分类、该节点上每个类的概率(即以该节点为条件的类的概率)以及该节点使用的观察百分比。请注意虚线的使用如何倾向于强调节点而不是树本身,以及底部的叶子排列如何帮助查看者猜测节点框中的百分比表示到达每个节点的观察百分比节点。(底行增加到 100%)。
脚本的最后几行使用函数构造了一个树,用于构建具有大量数据集的分类和回归树模型。
文章图片
最受欢迎的见解
1.从决策树模型看员工为什么离职
2.R语言基于树的方法:决策树,随机森林
3.python中使用scikit-learn和pandas决策树
4.机器学习:在SAS中运行随机森林数据分析报告
5.R语言用随机森林和文本挖掘提高航空公司客户满意度
6.机器学习助推快时尚精准销售时间序列
7.用机器学习识别不断变化的股市状况——隐马尔可夫模型的应用
8.python机器学习:推荐系统实现(以矩阵分解来协同过滤)
9.python中用pytorch机器学习分类预测银行客户流失
推荐阅读
- 【生信技能树】R语言练习题|【生信技能树】R语言练习题 - 中级
- 逻辑回归的理解与python示例
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- C语言学习|第十一届蓝桥杯省赛 大学B组 C/C++ 第一场
- jQuery插件
- C语言解方程的根和判断是否是闰年
- C语言的版本比较