传达数据科学的商业价值
传达数据科学的商业价值
原文:https://medium.com/hackernoon/communicating-the-business-value-of-data-science-ff8782a5cb34
工具如此简单,连您的销售团队也能理解!
您已经创建了一个模型来预测哪些销售线索可能会转化为付费客户。这个模型是算法美的真实作品——它是你的蒙娜丽莎,但更好,因为它实际上做了一些有用的事情。您已经调整了参数并交叉验证了结果,这意味着剩下唯一要做的事情就是将您的工作呈现给公司的高管。“没问题”你对自己说,你只是通过一个困惑矩阵和 ROC 曲线告诉他们,然后等待他们给你大量的财富和赞美。
任何试图引导商业利益相关者通过预测模型性能的人都知道,你更有可能得到紧张的表情和茫然的凝视,而不是起立鼓掌。所以我想分享一个简单的工具,叫做提升图,我们在甲骨文公司依靠它将模型性能转化为业务影响。
模型升降机
提升图是一种直观的方式,它显示了我们在用模型预测成功结果方面比我们随机猜测要好得多。更重要的是,它显示了被评分人群中不同群体积极响应的可能性。ROC AUC 和 F1 分数等指标很受欢迎,因为它们用一个数字概括了模型的表现。然而,在大多数应用机器学习任务中,预算限制迫使我们专注于人口的子集。稍后将详细介绍这一点,但现在我们来看一个提升图示例。

该图显示了我们尝试预测哪些销售线索将转化为客户的示例的提升。根据该图,我们可以看到前 10%的销售线索(由模型确定)成为客户的可能性是我们随机追踪销售线索的 3 倍多一点。在获得前 35%的线索后,我们已经用尽了模型的预测能力以及您的建模人群中不同群体的提升< 1x indicates that leads beyond this point are less likely to become customers the “typical” lead.
Applying Business Context to the Lift Chart
You’re probably thinking to yourself “Great, so what?” Aside from controlling for the base success rate, a lift chart doesn’t appear to be anything special. From a data science perspective this is true, it’s simply the 精度。
提升图的真正力量来自于这样一个事实,即它将我们的机器学习问题放到了制定商业决策的相同术语中——边际成本和收益。
让我们说,你的公司决定追求的每个销售线索的成本是 100 美元的人员和营销成本。根据单独的分析,您计算出新客户的终身价值(LTV) 为 500 美元。我们可以很容易地将这些信息叠加在提升图的顶部,以显示每个销售线索的预期收入——销售线索转化为客户的概率乘以新客户的 LTV。

绿色的预期收入曲线和红色的成本曲线之间的差异是公司可以从这些销售线索中预期的利润。如果目标是最大化公司的美元利润,我们应该追求由模型识别的前 40%的销售线索。超过这一点,追求每一条线索的成本超过了预期收益,侵蚀了公司的利润。
传达业务影响
所以你的思想被吹了吗?
…没有?
这才是重点!电梯图表的美妙之处在于它是如此的直截了当,以至于任何人都可以看着它,直观地领会它的含义。上述图表最显著的特点是,在任何地方都找不到数据科学术语的痕迹。没有必要以真阳性与假阳性、精确度与召回率、灵敏度与特异性的序言来开始你的演讲。事实上,根本没有必要讨论概率(这是一件好事,因为人类通常不擅长这个)。
虽然简单是提升图的最大优势,但它也是采用提升图的最大障碍之一。对于数据科学家来说,通过让首席执行官浏览一张看起来像是从经济学 101 教科书中摘录的图表来结束为期 6 个月的 R&D 项目有些虎头蛇尾。数据科学家通常会将演示作为一个机会,通过展示他们的工作有多复杂来证明他们的价值。然而,重点应该是由工作驱动的业务成果,而不是工作本身,这正是提升图所做的。
创建提升图:循序渐进
让我们浏览一下创建类似于上面的提升图的步骤。在这个例子中,我将使用 Python(特别是 scikit-learn、pandas 和 matplotlib),但是这里重要的是直觉而不是代码。
第一步:创建预测模型:
以下步骤将适用于任何二元分类任务,而不管所使用的特征集或算法类型。对于我们的示例问题,我创建了一个包含 20 个特征的 10,000 行数据集,用于训练决策树模型,以预测每个销售线索是否会成功转换为付费客户(y=1)或保持为非客户(y=0)。
同样,分类器的类型在这里并不重要,因为无论您是使用朴素贝叶斯、SVM、随机森林,还是良好的线性回归,下面的步骤都是相同的。
第二步:对观察结果进行评分并分成十分位数
使用测试集(x_test)中的功能,预测每个销售线索的成功概率(y_test = 1)。然后根据预测的概率按降序对销售线索进行排序,并将销售线索分成 10 个相等的组。因为 Python 是零基础的,所以组 0 包含最有可能购买的潜在客户(根据他们的得分),而组 9 中的潜在客户是最不可能成为客户的。
评论:实际上,我们很难知道这些概率有多准确,因为我们数据集中的每个线索只会发生一次。这意味着我们不能根据单个潜在客户的结果来判断模型性能,但是我们可以查看一组潜在客户的结果,这些潜在客户具有相似的成为客户的概率。
第三步:计算十分位数内的转换率
在每组中,合计成功转化的销售线索数(y_test=1 ),然后除以该组中的销售线索总数。这将为您提供每组中转化为客户的销售线索的百分比。
评论:提升图的另一个好处是它提供了一个快速检查过度拟合的方法。具有最高分数的组应该具有最成功的转化率,并且每个后续组的转化率应该单调递减。在实践中,在图的尾部看到一点锯齿状并不罕见,但是如果得分较低的组持续优于得分较高的组,那么可能值得回到您的模型,以确保它是正确的概括。
第四步:基线转换率指数和绘图
为了给提升数字赋予意义,我们需要计算基线转换率。这只是销售线索转化为客户的百分比,不考虑时段(y_test =1)。然后用每个桶的转化率除以基线转化率。这就是你需要的电梯图表!
下面是我用来在 Matplotlib 中创建图表的代码,但是你也可以很容易地在 Excel 中创建图表。作为参考,以下是该图的基本数据