初始R语言——决策树
决策树是机器学习里很重要的分类算法, 网上也有很多博客进行细致地讲解,这里就不再叙述原理,而是直接运用 R 语言的程序包来进行数据处理。
数据描述
本文使用的数据是对乳腺癌肿瘤良性还是恶性的分类,使用 Breast Cancer Wisconsin (Original) Data Set 数据集。简单描述一下,数据集共有 699 个样本, 根据乳腺癌肿瘤的厚度,细胞大小,细胞形状,附着能力,上皮组织细胞特性,细胞核,染色质以及有丝分裂的特性,来对细胞的良性与恶性进行分类。其中 label 是最后的 class 列(2 代表良性,4 代表恶性),而其他特征值都处于 1-10 之间。
函数包介绍
R 语言中有两个不同的函数包可以进行决策树的生成, 分别是 rpart 和 party。 两者的不同在“R语言中的tree和rpart有什么区别”中有详细的解释,比较重要的一点在于,rpart 包通过rpart.control 有不同的方式来决定何时结束分裂,比如 minsplit,代表最小分支节点数,也就是需要划分的样本数小于一定数值后,就不再进行分裂。rpart 包是可以通过剪枝(prune)来改善过拟合的。而 party 是不需要进行剪枝的。
party包代码
# 导入数据
dat <- read.csv("breast-cancer-wisconsin.data")
# 定义列名
names(dat) <- c("id", "clump_thickness", "uniformity_of_cell_size", "uniformity_of_cell_shape",
"marginal_adhesion", "single_epithelial_cell_size", "bare_nuclei", "bland_chromatin",
"normal_necleoli", "mitoses", "class")
# 将class作为分类变量
dat$