分类分析--数据准备
分类分析
有监督机器学习领域中包含许多可用于分类的方法,如逻辑回归、决策树、随机森林、支持向量机、神经网络等,有监督学习基于一组包含预测变量值和输出变量值的样本单元。将全部数据分为一个训练集和一个验证集,其中训练集用于建立预测模型,验证集用于测试模型的准确性。
主要例子来源于UCI机器学习数据库中的威斯康星州乳腺癌数据。数据分析的目的是根据细胞组织细针抽吸活检所反映的特征,来判断被检者是否患有乳腺癌(细胞组织样本单元由空心细针在皮下肿块中抽得)。
需要如下几个包:
install.packages("party", depend = T) library(rpart) library(rpart.plot) library(party) library(randomForest) library(e1071)
1 数据准备
威斯康星州乳腺癌数据集是一个由逗号分隔的txt文件,可在UCI机器学习数据库(http://archive.ics.uci.edu/ml)中找到。本数据集包含699个细针抽吸活检的样本单元,其中458个 (65.5%)为良性样本单元,241个(34.5%)为恶性样本单元。数据集中共有11个变量,表中未标明变量名。共有16个样本单元中有缺失数据并用问号(?)表示。
数据集中包含的变量包括:
q ID
q 肿块厚度
q 细胞大小的均匀性
q 细胞形状的均匀性
q 边际附着力
q 单个上皮细胞大小
q 裸核
q 乏味染色体
q 正常核
q 有丝分裂
q 类别
第一个变量ID不纳入数据分析,最后一个变量(类别)即输出变量(编码为良性=2,恶性=4)。
对于每一个样本来说,另外九个变量是与判别恶性肿瘤相关的细胞特征,并且得到了记录。
这些细胞特征得分为1(最接近良性)至10(最接近病变)之间的整数。任一变量都不能单独作为判别良性或恶性的标准,建模的目的是找到九个细胞特征的某种组合,从而实现对恶性肿瘤的准确预测。
下面给出R中数据准备流程。数据从UCI数据库中抽取,并随机分出训练集和验证集,其中
训练集中包含499个样本单元(占70%),其中良性样本单元329个,恶性160个;验证集中包含210个样本单元(占30%),其中良性129个,恶性81个。
(1)乳腺癌数据准备
loc <- "http://archive.ics.uci.edu/ml/machine-learning-databases/" ds <- "breast-cancer-wisconsin/breast-cancer-wisconsin.data" url <- paste(loc, ds, sep="") breast <- read.table(url, sep=",", header=FALSE, na.strings="?") names(breast) <- c("ID", "clumpThickness", "sizeUniformity", #给数据集属性贴标签 "shapeUniformity", "maginalAdhesion", "singleEpithelialCellSize", "bareNuclei", "blandChromatin", "normalNucleoli", "mitosis", "class") df <- breast[-1] df$class <- factor(df$class, levels=c(2,4), labels=c("benign", "malignant")) set.seed(1234) train <- sample(nrow(df), 0.7*nrow(df)) #划分训练集和验证集 df.train <- df[train,] #训练集 df.validate <- df[-train,] #验证集 table(df.train$class)
table(df.validate$class)
训练集将用于建立逻辑回归、决策树、条件推断树、随机森林、支持向量机等分类模型,测试集用于评估各个模型的有效性。采用相同的数据集,因此可以直接比较各个方法的结果。
本文来自博客园,作者:zhang-X,转载请注明原文链接:https://www.cnblogs.com/YY-zhang/p/15152935.html