新的 Code Pattern 分析公开的医疗数据集来获取洞察面向不熟悉 Watson Studio 和机器学习但对社会正义或健康问题感兴趣的任何人士。这个 Code Pattern 通过运行各种机器学习分类器,将输出结果与评估方法进行比较,为刚入门的数据科学家提供指导。

这个 Code Pattern 使用来自 Kaggle 阿片类药物项目的数据,该项目提供了从 2014 年阿片类药物统计数据截取的一个小型数据集,其中包含很多值,比如阿片类药物过量造成的死亡人数、处方类型以及处方内容。本 Code Pattern 利用这个小型数据集,解释如何通过机器学习分类器来清理数据和使用数据,以及如何将信息应用到与当前问题相关的数据上。

至于阿片类药物处方为何是个相关话题,大家务必要知道的一点就是,在美国,阿片类药物用药过量这一问题日趋严重,每年都有成千上万的美国人因此而丧生。这一问题不仅没有消失,还在进一步恶化。据美国国家药物滥用研究所 (NIDA) 指出,芬太尼的适用和应用范围日趋扩大尤为体现了这一点。芬太尼是一种非美沙酮合成物,药效比吗啡强 50 到 100 倍。考虑到这个因素,再加上阿片类药物容易上瘾的性质和处方的盛行,每年因药物过量导致的死亡人数成千上万,这一数字着实令人震惊。虽然我们作为数据科学家可能无法独自解决此问题,但我们可以深入研究数据、了解正在发生的准确状况,查明哪些要素可能导致某些结果。

这就是此 Code Pattern 的目的所在。它会深入研究之前提到的 Kaggle 数据集,了解我们如何运用数据科学家的技能,更好地造福于社会,或者至少加深众人的认识。在本 Code Pattern 中,首先您将探索 Watson Studio Notebook 中的数据,学习如何清理数据,以及如何通过各种方式直观查看一些初步研究结果,包括在不同地点使用 Pixie Dust 技术。您可以看到以下两个示例:

范围从浅紫色到浅绿色,浅绿色的比率最高,浅粉色和浅紫色的比率较低。
表示美国阿片类药物过量比率的条形图

通过查看前一张地图,您会看到 2014 年阿巴拉契亚地区和东北部的一些州受阿片类药物过量的影响最大,而北达科他和南达科他等其他州受到的影响较小。查看条形图时,您会看到影响最大的州是西弗吉尼亚州,接着是新墨西哥州、新罕布什尔州、肯塔基州以及罗德岛州。北达科达州、南达科达州以及内布拉斯加州明显受到的影响最小。虽然这个 Code Pattern 主要在于预测处方,但通过这样直观地查看数据,您可以在创建模型之前更好地了解这些数据,了解到阿片类药物过量问题主要集中于美国哪些地方。

完成初步研究之后,您可以使用机器学习库 scikit-learn 根据数据来训练多个模型,确定哪个模型对阿片类药物处方的预测最为准确。如果您对 Scikit-learn 不太熟悉,也没有关系,它非常简单易用,是数据科学家常用的机器学习库。具体来说,通过使用该库,您可以轻松访问多个机器学习分类器,只需相对少量的代码行即可实现这些分类器。此外,scikit-learn 还支持您直观查看自己的输出,展示研究结果。正因如此,该库常用于机器学习类中来训练不同分类器完成不同的工作,很像此 Code Pattern 强调的输出结果!此 Code Pattern 选定的模型与 Kaggle 的挑战保持一致,主要强调逻辑回归、朴素贝叶斯、随机森林、梯度提升、KNN、决策树、LDA、Bagging 分类器以及集成方法。通过应用所有这些模型,您可以看到每个模型的运作情况,了解哪些模型在向前推进。此项目不会超出介绍机器学习模型实现方法的范畴,但是它会为潜在的更大项目奠定基础。事实上,假设有人可以访问更多的数据,那么他就可以为未来几年的阿片类药物处方和处方者构建有效的预测模型。

运行各种分类器后,我们发现随机森林、梯度提升以及集成模型都表现出相对最好的性能。这意味着,如果我们构建更大的项目,我们只需关注这些特定的分类器,在它们的基础上进行构建,从而帮助预测阿片类药物处方(给出更多年份的数据)。

我们还可以再进一步,通过包含精确率/召回率得分在内的一系列指标来评估模型。我们使用精确率/召回率,帮助确定试验的成功与否。精确率/召回率得分表示高召回率和高精确率之间的一种平衡,您会得出四个结果:真正、真负、假正和假负。试验越成功,获得的假正和假负就越少,而获得的真正和真负也就越多。精确率/召回率得分表示总计情况,精确率/召回率曲线有助于直观了解最终结果。在下图中,y 轴表示精确率,x 轴表示召回率。如果该图径直穿过中线,那么就会是类随机的输出或 50% 的概率。鉴于此,如果曲线在中线下方,表示性能较差,而如果曲线在中线上方,就表示更加准确,性能更好。举例来说,如果达到 100 或者自始至终都在最上方,那么它就是个完美的分类器,如果达到 0,那么它就根本不准确。因为我们的分类器得分为 0.84,所以我们可以确信精确率很高。但是,仍有提升空间。

得分为 0.84 的精确率/召回率曲线

根据这些信息,我建议您在此 Code Pattern 基础上进行构建,帮助公众意识到阿片类药物过量危机,并有可能预测到将会发生的结果。我希望您能花些时间查看我的代码,依照并根据我的代码进行构建,最终超越我的得分!

本文翻译自:Predicting opioid prescribers(2018-7-23)

加入讨论