微信公众号:【数据分析学习与实践】
4.1 项目简介
在本章中,我们将介绍预测患者在被诊断为中期结肠癌(B/C)后的剩余生存时间的模型。建模过程中们使用了提升法和一些可解释方法,如特征重要性、其他因素(Ceteris Paribus)和局部依赖性、分解图和LIME。
我们将使用R中survival包中“B/C期结肠癌化疗”的数据。文件链接("https://stat.ethz.ch/R-manual/R-devel/library/survival/html/colon.html" ),该包可以在R控制台用install.packages("survival")命令安装。安装完成后,可以通过survival::colon命令访问数据集。
4.1.1 什么是提升模型?
机器学习中的经典算法认为:预测事件的因果影响是很难的,因为它们更适合于预测行动后的结果。在特定情况下,如营销活动或医疗,因果影响可能是极其重要的。所以,因果关系在机器学习能力和业务具体需求之间的矛盾下,可以通过另一种方式解决,即上升模型可以使用两个训练集(治疗组和控制组)的情况下,这个问题得到了根本解决。
提升模型是机器学习的一个技术或分支,它试图预测接触某种行动或治疗的群体与对照组(没有这种行动或治疗)之间的类别概率差异。
这种技术也在“识别治疗效果最明显的病人”的预测中广泛应用,因此它不仅通常用于营销活动或医疗,也用于其他客户服务。
参考文献:
Uplift modeling with survival data (Jaroszewicz and Rzepakowski 2014),Uplift modeling for clinical trial data (Jaskowski and Jaroszewicz 2012),Uplift Modeling for Multiple Treatments with Cost Optimization (Zhao and Harinen 2019),Linear regression for uplift modeling (Krzysztof and Jaroszewicz 2018),Ensemble methods for uplift modeling (Sołtys, Jaroszewicz, and Rzepakowski 2015).
4.1.2 数据集描述
我们使用的数据来自最早的结肠癌辅助化疗的成功试验之一。有两种类型的治疗。左旋咪唑是一种低毒性的化合物,以前用于治疗动物的虫害,其对结肠癌的治疗效果有一定的疗效。5-氟尿嘧啶(FU)是一种中等毒性的化疗剂。相对来说是"最强"的治疗方法。在癌症切除术后这两种药物开始进行干预,它是辅助性的化学治疗,也成为"术后治疗"。
每个人有两个记录,一条是复发记录,一条是死亡记录。数据集包含1858个观察值和16个特征,在4.1表中有描述。
表4.1: 在数据集中发现的变量描述与数据探索中的数值类型。
通常情况下,生存数据包括两个变量:观察到的生存time(我们数据集中的时间变量)和一个二元状态变量(我们数据集中的状态变量)。状态变量表示事件是否被观察到(通常用 status=1表示‘是’)。然而,如果事件没有被观察到(status=0),那么真实的生存时间就是删失数据,可以逻辑上推理真实的生存时间大于等于time,也就是说没有观察到的数据,我们认为在time时间点下,病人依然存活。
重要说明请注意,这个数据集包含删失数据。这意味着时间变量并不提供关于生存时间的确切信息,而是提供生存时间的下限。因此,该问题应转化为一个分类分类,即某个病人是否超过了给定的时间而存活下来τ阈值,即建立模型 P(t≥τ)。然而,我们在建模时不知道如何处理删减数据,我们坚持把它作为一个典型的回归问题进行建模。
因此,本章不应被视为建模的例子,而应被视为为提升+回归问题创建解释的特定例子。
4.1.3 构思
可以使用这些数据在许多研究方向:
预测病人的预期寿命,包含是否接受治疗两种情况。
预测治疗是否有效。
根据施用的药物预测预期寿命。
我们决定将重点放在提到第三个方向上。有两种模型可以为这种方法建模。其中一种是分类,即病人的寿命是否会超过给定的阈值,第二种是回归,我们将重点关注,回归的结果是治疗对预期寿命的改变程度。
4.1.4 为什么值得费心?
当病人得知结肠癌疾病时,他们通常会问:"我还有多少时间,他还有多少时间?"。那现在怎么办?有什么治疗方法?医生可能会指出一些可能有效的治疗方法,但仍然无法告诉病人还剩多少时间,或者病人的预期寿命是多少。
这个模型的目的是帮助提供更准确的数据来回答病人的问题,以及预测治疗能延长他们的预期寿命多久。
4.2 数据预处理
我们删除了列。
id,
study,
etype,
study - 回归方法
数据集被划分为。
x - 所有特征(不包括time和rx)
y - 目标变量(time)
treatment - rx变量
变量rx的分布如4.2表所示。这一特征已被归类。
表4.2:具有特定处理类型的观察值数量
4.3 模型
为了预测模型,我们使用了Python3中causalml包的算法。为了优化超参数,我们使用了同样在Python3中的软件包hyperopt的算法。
最终的模型是XGBTRegressor,参数总结在4.3表中。
结果得出了(Lev)平均治疗效果74.38,(Lev+5-FU)平均治疗效果185.69
平均治疗效果(ATE)是一种用于比较随机实验中的治疗方法的衡量指标,是对医疗试验的评估。ATE衡量病人在治疗情况下和对照情况之间的平均结果差异。在随机试验中,平均治疗效果可以通过比较接受治疗和未接受治疗的病人的平均结果,从样本中估计出来。个人的治疗效果i的治疗效果由以下公式给出:
其中(4.1)式中的sum所有的N个体。
4.4 解释
我们使用的模型为每种类型的治疗创建了一个子模型。在我们的案例中,我们得到了两个模型--一个用于Lev治疗,另一个用于Lev+5FU治疗。因此,我们正在用已知的方法构建两套独立的解释。此外,我们将尝试解释如何让不同用户所使用。
在本章开始时,我们选择了特征重要性,这似乎是一个自然的选择--检查哪些变量似乎对模型的预测贡献最大。
4.4.1 特征重要性
图4.1所示的特征重要性图显示了对给定变量进行排列组合可能带来的损失。这是已知变量的重要程度的指标,因为丢弃特征重要性高的变量的对模型的损失越大。损失是用均方根来衡量的。为了解释其重要性,我们选择了几个主观上认为有趣的变量。
图4.1所示的两个模型的共同特征“年龄”是相当重要的变量。该图显示,将年龄列进行替换会产生很大的损失。这可以建议使用模型选择最佳治疗方法的时候,医生在选择治疗方法时将病人的年龄考虑在内。另一方面,开发癌症治疗药物的公司可以研究年龄组,并致力于创造治疗某个年龄组的药物,因为该年龄组可能缺乏这种治疗方法,或者目前使用的治疗方法无效。
我们可以从这个图中得到的第二个重要信息是node4的变量。根据我们的领域知识,node4的数量对治疗癌症的手术后的存活率有积极的影响。我们可以看到,在所有的变量中,对于较强的治疗方法(Lev+5FU),这个变量的损失率是最大的。这证明了关于病人病史的信息对于选择正确的治疗方法至关重要,因为nodes给了我们关于治疗效率的信息。
我们想做的最后一个观察是,在描述左旋咪唑治疗的模型中,drop-out率是如何提高的,3.5%很难解释这种趋势。我们得出的一个想法是,更强的治疗方法总体上有更好的效果,因此它对特定变量的特征重要性最低。
4.4.2 因素不变 和 局部依赖
图4.2显示了我们两个模型的因素不变的轮廓和平均局部依赖轮廓。我们可以看到,每个变量的子图在大多数情况下都不会引起我们的兴趣。这是由于数据集中有大量的二元变量。考虑到这一点,我们决定把重点放在两个变量上,这两个变量乍看之下似乎有最有趣的图画。这些变量是age和nodes。为了更清楚地了解所选变量的情况,我们在图4.3中只展示了它们的图谱。
图4.2:在代表不同处理的模型方面,数据集中每个变量的因素不变(Ceteris Paribus)和局部依赖(Partial Dependence Profiles)。
在放大的图4.3中,nodes变量的图象与年龄相比显得更加稳定。对于这两种处理类型,我们可以观察到大的nodes值的平坦化。这种平坦的现象很可能是由于节点数量太多造成的冗余。在预测值为10左右时,预测值有明显的增加。这与我们的领域知识相一致,即12个节点是真正合适的数量,可以增加成功治疗的机会。因此,如果12个节点已经足够好,那么再多的节点也不会对生存能力和模型的预测做出贡献。
对于年龄变量来说,尖峰趋势似乎跨越了图4.3中绘制的所有Ceteris Paribus曲线。这可能是由于治疗不依赖于病人的年龄,或者年龄受其他变量的影响很大。从我们的分析来看,我们热衷于做出假设,即第一个判断是为真。考虑到这一点,有两个明显的尖峰--一个大约是35岁,另一个是65岁。这一观察从不同的角度来看都很有趣。
首先,从我们--数据分析师--的角度来看。这些峰值可以表明,某些年龄组有更高的提升效应。这对监督病人的医生来说是一个关键信息。如果病人的年龄属于能很好地应对其中一种治疗方法的年龄组,那么它可以使选择更容易。另一方面,如果病人的年龄与峰值不重合,那么可能会建议寻找不同类型的治疗方法,而不是我们这里提供的两种。最后,这些信息可以由药房联盟使用。很明显,只有两个年龄组的治疗效果似乎比平均水平好。这可以给出一个明确的方向,在开发新药和治疗方法时,选择年龄组的治疗应该优先被考虑。
分组的部分依赖性概况
为了从医生和资本家的角度进行更详细的分析,我们决定按extent变量对剖面进行分组。这个变量提供了关于病人的疾病进展程度的信息。
正如我们在图4.4中看到的,两个变量的子图的总体形状在不同组之间没有太大变化。这种趋势在我们的两个治疗模型中都得到了保持。说到nodes变量,两个treatment之间有一个相当明显的差异--就是第四组(XGBTRegressor Lev4和XGBTRegressor Lev+5FU4)。较强的处理方法(Lev+5FU)在其他组中并不突出,而较弱的处理方法则落后于其他组。这导致了以下结论:对于高度发展的癌症和转移的病人来说,较弱的治疗方法简单地说就是太弱了,不管病人有多少结节。用左旋咪唑治疗这种晚期疾病是不够的。这是医生在做出最后的治疗选择之前希望看到的结论。如果没有这个信息,所指定的治疗可能没有足够的效果。
相反,年龄变量并没有显示出如此单一的强烈趋势。然而,正如我们之前指出的,35岁和65岁有两个峰值。分组的PDP图显示,年龄=35的尖峰主要由extent=3的病人组成,而年龄=65的尖峰似乎跨越了extent变量的所有水平。这是平均部分依赖性曲线所不能提供的洞察力。从数据科学家的角度来看,这是一个重要的教训,即变量之间的相关性确实会发生,应该彻底检查。对于医生来说,这些信息可以改变提供特定治疗的决定。如果病人属于年龄=35岁组,但没有出现治疗效果好的特定程度,那么可以建议转向其他治疗。另一方面,对于药房来说,这也是一个明确的信号,要分析“为什么给定的治疗对这样一个特定的群体有效”。这项研究可用于开发新的治疗方法和提高癌症患者的预期寿命。
总的来说,局部依赖性剖析对整个数据集提供了有价值的洞察力。我们认为,在这个特定的案例中,也就是衡量治疗的回归任务中,平均和分组的局部依赖性剖面都给出了关于治疗方法对不同目标群体的作用的宝贵信息。在我们的案例中,就结肠癌数据而言,最好的落地方案似乎是帮助医生办公室选择正确的治疗方法,以及药品研发认可的针对对治疗没有满意效果的群体的研究。
4.4.3 实例层面的解释
对于实例级的解释,我们决定把重点放在数量有限的观察上。这些观察结果来自于在数据探索过程中似乎提供了有趣的结果。
两位患者的癌症严重程度相同,都是由extent变量表示的。其中一位是女性,另一位是男性。年龄较大的患者(年龄=68)的癌症与周围的器官粘连,而另一位患者的癌症没有粘连--这是由differ变量表示的。最后,最后一个差异是在差异变量中,即结肠细胞和癌细胞之间的差异。
总结一下,我们有一位68岁的妇女,她的肿瘤粘附在周围器官上,但属于中晚期,因为细胞分化很小,只发现了2个可检测到癌症的淋巴结。让我们称她为“病危夫人”。我们还有一位56岁的男子,他的癌症是相当晚期的,因为他有高度分化的癌细胞和大量的淋巴结。为了解释和文章的目的,让我们称他为“病危先生“。
解释图已经为“病危夫人”和“病危先生“这两个病人构建。对每个病人都有两个不同的图。之所以有两个不同的图,是因为下面的XGBTRegressor模型为每一种治疗方法创建了一个模型。因此,我们对每一种治疗类型都有一个图--在我们的例子中是左旋咪唑(Lev)和左旋咪唑+5-氟尿嘧啶(Lev+5FU)--如下图所示。
4.4.3.1 分解图
分解图显示了变量的给定值对模型结果的影响,即哪个值对模型的影响是正面的(负面的),正面的(负面的)程度。这使我们能够检查特定的病人的哪些方面在特定治疗中是关键的,或者哪些方面可能使他/她失去接受给定治疗的资格。了解这些方面可能有助于为病人选择治疗方法的医生,但也可能有助于概述病人所处的情况,使他有更多的知识和理解。此外,在我们的案例中,我们看到了两种类型的治疗方法之间的比较,这也可以帮助治疗的决策过程,它可以被制药公司在向市场推出新药时使用--通过比较 "旧"和 "新"药物。因此,让先进的治疗方法可以应用于更多病人。
在图4.5中对于Lev的治疗,我们可以看到,年龄、性别和“病危夫人”的癌症来到周围器官的事实对预后有非常消极的影响。然而,少量的淋巴结可检测到癌症,以及“病危夫人”希望在手术后立即开始治疗的事实就会有非常积极的作用。最后,我们可以看到,如果“病危夫人”决定治疗利瓦米索,很不幸会对她造成伤害,也许是因为药性太弱,不会对癌症造成伤害,而是对健康夫人的健康造成伤害。在图4.5的右边,我们有假设Lev+5FU治疗的预测,在这里我们看到对结果有负面影响的变量还有age和与周围器官是否粘连,注意这里的性别和肿瘤分化对预测有积极影响。此外,最终的结果Lev治疗要高。我们可以看到,在这里使用更强的药物会有更好的效果。这样特定的情况可以帮助医生决定选择哪种药物以及解释为什么这样选择。此外,在与病人的交谈中,具体的数字、数据和图表会有镇定的作用,病人会感到更有信心,正如我们所知,心理健康与身体健康一样重要。
在图4.6中对Lev的治疗,我们可以看到“病危先生”的病情非常严重,因为除了肿瘤不与周围器官粘连外,所有的变量都导致了如此低的预测值。从对“病危先生”病情的一般描述中,我们看不出他对治疗的效果如此糟糕。治疗病人的医生看到这样的图表,立即知道必须排除Lev的治疗方案。它提示如果医生和病人决定Lev治疗,它的预测结果非常差,超过1500天的drop-out。现在让我们看看右边的图表,它讲述了“病危先生”属性如何影响对他的病情是否会改善的预测。看到这个预测,即超过800天的损失,我们知道这种治疗也不值得为“病危先生”使用。让我们仔细看一下这个图表。与之前的治疗不同,年龄的影响更加明显,“病危先生”对强效治疗的反应比弱效治疗差200多倍。彼得的肿瘤没有扩散到周围的器官,这对两种治疗都有积极的影响。lev-u5治疗的积极效果是,“病危先生”在手术后立即接受了治疗,并且在手术中至少切除了4个可检测到癌细胞的淋巴结。在“病危先生”的案例中,所建议的治疗方法都不能令人满意。
4.5 总结和结论
解释方法不仅有助于了解数据分析师可以使用的模型的运行情况(特征重要性、PDP、Cateris Paribus),还可以指出哪些变量会影响结果以及它们为什么重要(Cateris Paribus、Break Down)。第二个方面可用于指导病人治疗的医生,也可用于向市场推出新药的药剂师,或临床试验的研究人员。这些人都需要清晰透明的图表来了解预测的本质和特定变量对模型的影响。
在Uplifts问题上,模型架构起着重要的作用。应该记住,一个模型中有两个预测,最后要相互减去,才能知道如果我们使用某种药物与不获得任何药物相比,我们的结果会提高多少。要显示这样一个模型的结果并不容易,而且有很多限制。例如,在这里使用LIME方法是不可取的,因为这种方法不是加法的。减去LIME所返回的因素,不会得到任何信息。
使用任何解释都是不够的,你必须为问题选择正确的方法。在uplist中,只有加法的方法才能带来一些价值。在这一章中,我们处理了一些选定的方法(FI, PDP, CP,BD),但仍有许多方法可以研究,包括SHAP值
微信公众号:【数据分析学习与实践】