【原创】r语言uci乳房肿块数据分析挖掘报告 下载本文

一. 收集数据

数据由UCI机器学习数据仓库的一个数据集得到,数据集名称为“Breast Cancer Wisconsin (Diagnostic) Data Set ”,包括乳房肿块镇抽吸活检图像的数字化的多项测度值,这些值代表出现在数字化图像中的细胞核的特征。

乳腺癌数据包括569例细胞活检案例,每个案例有32个特征。一个特征是识别号码,一个特征是癌症诊断结果,其他30个特征是数值型的实验室测量结果。

癌症诊断结果用编码“M”表示恶性,用编码“B”表示良性。

30个数值型测量结果由数字化细胞核的10个不同特征的均值、标准差、最大值构成,这10个特征包括:

a) radius (mean of distances from center to points on the perimeter) b) texture (standard deviation of gray-scale values) c) perimeter d) area

e) smoothness (local variation in radius lengths) f) compactness (perimeter^2 / area - 1.0)

g) concavity (severity of concave portions of the contour)

h) concave points (number of concave portions of the contour) i) symmetry

j) fractal dimension

二. 探索和准备数据

使用命令str(iris)可以确认数据是由569个案例和32个特征构成的,输出结果如下所示:

我们看到了预期的569个观察值和32个特征(变量),第一个变量v1是每个病人在数据中唯一的标识符(ID),并不能提供有用的信息,所以我们需要把它从模型中排除。

我们将数据分成两部分:用来建立决策树的训练数据集和用来评估模型性能的测试数据集。将使用70%的数据作为训练数据,30%的数据作为测试数据。

三. 基于数据训练模型

在训练数据集rxa_train中,第1列是类变量v2,我们将它作为一个自变量

从训练数据框中排出,但把它作为用于分类的目标因子向量。

现在,对象rxa_model包含一个C5.0决策树对象,我们通过输入其名称来查看关于该决策树的一些基本数据。

下图显示了决策树的分支:

下图为输出的混淆矩阵,这是一个交叉列表,表示模型对训练数据错误分类的记录数

四. 评估模型性能

表格中单元格的百分比表示落在4个分类里的值所占的比例,在左上角的单元格中,是真阴性的结果,121个值中有67个值表示肿块是良性的,预测结果与实际一致。在右下角的单元格中,显示的是真阳性的结果,这里表示的是预测结果与实际一致认为肿块是恶性的情况。

左下角单元格的7个案例是假阴性的结果,预测值为良性“B”,实际情况是肿块为恶性“M”,可能会发生病人认为自己没有癌症,而实际上这种疾病可能会继续蔓延。右下角单元格包含的是假阳性的结果,模型把肿块标识为恶性“M”,实际结果是良性“B”。这类错误可能会导致医疗系统的额外财政负担和病人的额外压力。

模型的准确率约为90.09%,错误率约为9.91%。

五.提高模型性能

1.Boosting

添加一个额外的参数trials,表示在模型增强团队中使用的独立决策树的数量。设置上限为10,如果该算法识别出额外的实验似乎并没有提高模型的准确

性,那么它将停止添加决策树。

在增强模型性能后,总的错误率由之前的9.91%下降到现在的6.61%

2.随机森林

使用大数量树的目的是是的每一个特征都有机会在多个模型中被充分训练。从结果可看出,总的错误率由之前的9.91%下降到现在的3.69%

3.两种方法的差异

随机森林模型的结果:

Boosting C5.0模型的结果如下: