文档中心>TI-ONE 训练平台>实践教程>使用可视化建模进行乳腺癌预测

使用可视化建模进行乳腺癌预测

最近更新时间:2024-05-24 16:01:51

我的收藏

案例背景

近年来,人工智能的风潮为医疗行业带来一场全新革命,AI 在辅助诊断、疾病预测、疗法选择等方面发挥着重要作用。机器学习领域的特征选择和有监督学习建模方法越来越多地用于疾病预测和辅助诊断,常用的算法如决策树算法等。

乳腺癌是目前发病率仅次于肺癌的常见癌症,机器学习算法能够分析已有的临床乳腺癌数据,得到与乳腺癌发病关系最密切的特征,这能够极大地帮助医生进行早期诊断,及时拯救患者。

本案例通过 TI-ONE 平台中的可视化建模,采用机器学习算法(随机森林、逻辑回归、决策树)解决乳腺癌预测问题。

数据集介绍

本次任务我们采用公开的乳腺癌数据集 。您可以下载经过处理后的 乳腺癌数据集 以便更好地使用。该数据集共包含 699 个样本,其中 241 个阳性(label = 1)样本,458 个阴性(y = 0)样本;每个样本有 32 个特征,但本次实验中选取其中 10 个特征。

数据集具体字段信息如下(表格中包括每列字段的名称和对应取值范围):
特征和标签(Attribute)
取值范围(domain)
Clump Thickened
1 ≤ n ≤ 10
Uniformity of Cell Size
1 ≤ n ≤ 10
Uniformity of Cell Shape
1 ≤ n ≤ 10
Marginal Adhesion
1 ≤ n ≤ 10
Single Epithelial Cell Size
1 ≤ n ≤ 10
Bare Nuclei
1 ≤ n ≤ 10
Bland Chromatin
1 ≤ n ≤ 10
Normal Nucleoli
1 ≤ n ≤ 10
Mitoses
1 ≤ n ≤ 10
Label
0 for begin,1 for maligant
数据集具体内容抽样展示如下(前9列是特征取值,最后1列是标签取值):
Clump Thickness
Uniformity of Cell Size
Uniformity of Cell Shape
Marginal Adhesion
Single Epithelial Cell Size
Bare Nuclei
Bland Chromatin
Normal Nucleoli
Mitoses
Label
5
1
1
1
2
1
3
1
1
0
5
4
4
5
7
10
3
2
1
0
3
1
1
1
2
2
3
1
1
0
6
8
8
1
3
4
3
7
1
0
4
1
1
3
2
1
3
1
1
0
8
10
10
8
7
10
9
7
1
1
1
1
1
1
2
10
3
1
1
0
2
1
2
1
2
1
3
1
1
0
2
1
1
1
2
1
1
1
5
0
4
2
1
1
2
1
2
1
1
0

整体流程

工作流整体流程如下:



在乳腺癌研究场景中,我们采用的机器学习算法是分别有随机森林分类、逻辑回归分类、决策树分类。整个模型完成预计需要 15 分钟。工作流整体流程如下:
1. 本地数据准备。
2. 通过饼状图、直方图算子对数据进行可视化,对数据中存在缺失的列进行缺失值填充。
3. 将数据集切分为训练集和测试集。
4. 将训练数据喂给随机森林分类、逻辑回归分类、决策树分类训练算子,然后将训练好的模型和测试集数据喂给预测算子进行预测。
5. 通过分类结果对模型进行性能评估。
注意:
您可以按需自行配置资源参数,不同资源实例类型对应的价格不同。

详细流程

一、数据准备

1. 为了方便操作,请直接使用我们提供的处理后数据集 乳腺癌数据集 ,请下载后在您的 COS 存储桶中新建一个空文件夹,并将数据集上传到其中。
2. 进入 TI-ONE 平台的训练工坊 > 可视化建模,创建您的工程以及工作流,打开控制台的左侧导航栏,选择数据源 > cos,并拖入画布中。
3. cos 对应右边弹出的设置窗口中选择算法 IO 参数中的 cos 数据路径,单击选择文件,选择您 COS 存储桶中存放数据集的文件夹,单击确定

二、数据可视化

通过饼状图算子和直方图算子,我们可以首先对数据集进行可视化。

1. 在控制台的左侧导航栏,选择输出 > 可视化 > 组合 > 饼状图,并拖入画布中。
2. 填写参数:
算法 IO 参数
*输入文件类型:csv
*输入数据包含 header 信息:是
*输入数据分割符:逗号(“,”)
*要统计的列:0-9
3. 在控制台的左侧导航栏,选择输出 > 可视化 > 分布 > 直方图,并拖入画布中。
4. 填写参数:
算法 IO 参数
*输入文件类型:csv
*输入数据包含 header 信息:是
*输入数据分割符:逗号(“,”)
算法参数
*组数:100
*特征列:0-8
*标签列:9
*X 轴:线性
5. 将【cos】的输出连接到饼状图和直方图的输入。




三、数据预处理

在进行模型训练前,我们通常需要对数据进行预处理,常见的预处理有缺失值填充、去除异常值、数据划分等。

本实验对数据集中缺失的第 5 列(从 0 开始计数)进行缺失值填充,并将数据集切割成训练集(training set)和测试集(test set),比例为 8:2(80% 用于训练,20% 用于测试)。

1. 在控制台的左侧导航栏,选择算法 > 机器学习 > 数据预处理 > 缺失值填充,并拖入画布中。
2. 在控制台的左侧导航栏,选择算法> 机器学习 > 数据预处理 > 数据切分,并拖入画布中。
3. cos 的输出连接到缺失值填充的输入。
4. 填写参数:
算法 IO 参数
*输入文件类型:csv
*输入数据包含 header 信息:是
*输入数据分割符:逗号(“,”)
*输出数据包含 header 信息:是
*输出数据分割符:逗号(“,”)
*选择特征列:5
算法参数
*填充方法:均值(average)
5. 缺失值填充的输出连接到数据切分的输入。
6. 填写参数:
算法 IO 参数
*输入文件类型:csv
*输入数据包含 header 信息:是
*输入数据分割符:逗号(“,”)
*输出数据包含 header 信息:是
*输出数据分割符:逗号(“,”)
算法参数
*切分比例:0.8(第一个输出为 80% 的训练数据,第二个输出为 20% 的测试数据)




四、分类算法

1. 在控制台的左侧导航栏,选择算法 > 机器学习 > 分类算法 > 随机森林分类-训练,并拖入画布中。
2. 在控制台的左侧导航栏,选择算法 > 机器学习 > 分类算法 > 随机森林分类-预测,并拖入画布中。
3. 数据切分左边的输出连接到随机森林分类-训练左边的输入,表示训练数据输入训练算子;右边的输出连接到随机森林分类-预测右边的输入的,表示将测试数据输入预测算子。将随机森林分类-训练的输出连接到随机森林分类-预测左边的输入,表示将训练后的模型输入预测算子。
4. 填写随机森林分类-训练参数:
算法 IO 参数
*输入文件类型:csv
*输入数据包含 header 信息:是
*输入数据分割符:逗号(“,”)
*特征列:0-8
*标签列:9
算法参数
*模型保存格式:ML
*maxDepth :5
*maxBins :32
*minInfoGain :0.0
*inpurity :gini
*minInstancesPerNode :1
*maxMemoryInMB :256
*checkpointInterval :-1
*numTrees :20
*featureSubsetStrategy :auto
*subsamplingRate :1.0
5. 填写随机森林分类-预测参数:
算法 IO 参数
*输入文件类型:csv
*输入数据包含 header 信息:是
*输入数据分割符:逗号(“,”)
*输出文件类型:csv
*输出数据包含 header 信息:是
*输出数据分割符:逗号(“,”)
*特征列:0-8
算法参数
*algorithm :RandomForestClassifier
*模型导入格式:ML
6. 在控制台的左侧导航栏,选择算法 > 机器学习 > 分类算法 > 逻辑回归分类-训练,并拖入画布中。
7. 在控制台的左侧导航栏,选择算法 > 机器学习 > 分类算法 > 逻辑回归分类-预测,并拖入画布中。
8. 数据切分左边的输出连接到逻辑回归分类-训练左边的输入,表示训练数据输入训练算子;右边的输出连接到逻辑回归分类-预测右边的输入的,表示将测试数据输入预测算子。将逻辑回归分类-训练的输出连接到逻辑回归分类-预测左边的输入,表示将训练后的模型输入预测算子。
9. 填写逻辑回归分类-训练参数:
算法 IO 参数
*输入文件类型:csv
*输入数据包含 header 信息:是
*输入数据分割符:逗号(“,”)
*特征列:0-8
*标签列:9
算法参数
*模型保存格式:ML
elasticNetParam :0.0
*family :auto
*fitIntercept :true
maxIter :100
regParam :0.0
*standardization :true
tol :0.0
10. 填写逻辑回归分类-预测参数:
算法 IO 参数
*输入文件类型:csv
*输入数据包含 header 信息:是
*输入数据分割符:逗号(“,”)
*输出文件类型:csv
*输出数据包含 header 信息:是
*输出数据分割符:逗号(“,”)
*特征列:0-8
算法参数
*algorithm :LogisticRegression
*模型导入格式:ML
11. 在控制台的左侧导航栏,选择算法 > 机器学习 > 分类算法> 决策树分类-训练,并拖入画布中。
12. 在控制台的左侧导航栏,选择算法 > 机器学习 > 分类算法> 决策树分类-预测,并拖入画布中。
13. 数据切分左边的输出连接到决策树分类-训练左边的输入,表示训练数据输入训练算子;右边的输出连接到决策树分类-预测右边的输入的,表示将测试数据输入预测算子。将决策树分类-训练的输出连接到决策树分类-预测左边的输入,表示将训练后的模型输入预测算子。
14. 填写决策树分类-训练参数:
算法 IO 参数
*输入文件类型:csv
*输入数据包含 header 信息:是
*输入数据分割符:逗号(“,”)
*特征列:0-8
*标签列:9
算法参数
*模型保存格式:ML
*maxDepth :5
*maxBins :32
*minInfoGain :0.0
*inpurity :gini
*minInstancesPerNode :1
*maxMemoryInMB :256
*checkpointInterval :-1
15. 填写决策树分类-预测参数:
算法 IO 参数
*输入文件类型:csv
*输入数据包含 header 信息:是
*输入数据分割符:逗号(“,”)
*输出文件类型:csv
*输出数据包含 header 信息:是
*输出数据分割符:逗号(“,”)
*特征列:0-8
算法参数
*algorithm :DecisionTreeClassifier
*模型导入格式:ML




五、模型评估

1. 在控制台的左侧导航栏,选择输出 > 模型评估 > 分类任务评估,并重复三次拖入画布中。
2. 三个分类预测算子的输出分别连接到三个分类任务评估的输入。
3. 给三个分类任务评估填写参数:
算法 IO 参数
*输入文件类型:csv
*输入数据包含 header 信息:是
*输入数据分割符:逗号(“,”)
*输出文件类型:csv
*输出数据包含 header 信息:是
*输出数据分割符:逗号(“,”)
*标签列:9
*预测概率列:10
*默认阈值:0.5




六、运行调度及模型评估

单击画布上方运行按钮可运行工作流。
运行成功后,鼠标悬浮在饼状图直方图上,可以看到数据可视化的效果;鼠标悬浮在分类任务评估上,可预览评估结果,右键单击分类任务评估 > 查看评估报告,即可查看评估报告。

以下分别是数据集数据可视化的效果:






分类结果以随机森林分类分支为例,评估结果和评估报告如下: