使用KNIME进行数据分类
数据选择
癌症预测数据集来自cancer-prediction-dataset|Kaggle,该数据集总数量为1500条,包括年龄,性别,BMI,是否抽烟等9个字段。分析目标是根据年龄,性别,BMI等身体指标对是否患有癌症进行二分类(患癌或不患癌),有离散分类特性(gender、smoking、cancerHistory等)和连续分类特征(BMI、PhysicalActivity)等。
分析过程
导入数据
本次使用的分析工具为KNIME
首先将数据导入csv Reader 节点,并且要对数据的类型进行转换,否则会影响之后的分类
将其中的diagnosis、cancerHistory、 smoking、gender由inter转化为string。
连接color manager 节点,按照我们要预测的标签进行颜色设置
将pie chart连接到color manager上,并查看数据
可以看到两种类别数量有偏差,但是没有偏差太大。
相关性分析
分析特性之间的相关性,将linear correlation 节点连接到csv reader上。使用默认配置,并进行预览。
可以看到与diagnosis相关性比较强的特征是cancerHistory,其次是smoking和gender。
数据审核
使用数据审核节点Data Explorer,并且与csv reader节点连接
可以看到特征的多样性较好(其中geneticRisk代表了基因患癌的风险,共0、1、2三个值,忘记转化成string了)
可见没有需要删除的列。
数据分区
将partitioning连接到column Filtter,其中column Filtter未删除数据。设置训练集比例为80%。
训练和测试模型
将Decision Tree Learner 与partitioning连接,Execute and open views
可以看到cancerHistory为第一层决策树特征,BMI、GeneticRisk为第二层决策树特征,与线性回归结果一致
使用Decision Tree Predictor节点检测模型表现
添加概率列,并连接Scorer节点,对结果进行评估。
可以看到预测准确率为91.33%
查看ROC曲线
将ROC curve节点连接到predictor节点
打开roc曲线,正确率为90%,可见准确率较高。
结果分析
cancerHistor):这是与目标变量(diagnosis)最相关的特征,表明有癌症历史的人更有可能再次患癌。
smoking:与癌症诊断有显著的相关性,吸烟是已知的癌症风险因素。
gender:也表现出与癌症诊断的较高相关性,反映了某些癌症类型在不同性别间的发生率差异。
BMI和GeneticRisk:这两个特征在决策树模型中显示了次要但重要的分裂节点,意味着它们对分类有一定贡献。
模型利用cancerHistory、smoking和BMI等特征来区分患癌与否,这些特征在数据分析中被证明是与癌症诊断密切相关的。
决策树的结构显示出特征的选择和使用是简化的,只包括了几个最相关的特征。这样做有助于避免过度拟合,提高模型的泛化能力。