作者:William Koehrsen
想象一下这样一个场景:老板要求你构建一个机器学习模型,对每个月订阅服务中流失的客户进行预测。而客户流失被定义为超过31天没有活动。你可以通过人工的办法统计客户流失的数量,并采用头脑风暴和工程师特征的历史实例来精心估测,然后训练并人工调整机器学习模型以进行预测。
你可能对于测试集的指标感到满意,然后将这个结果提交给到你的老板。但现在你必须要开发一个不同的解决方案:每两周进行一次预测,并将客户流失定义为14天没有活动。令人沮丧的是,你可能发现以前的工作都不能重复使用,因为它是针对单个预测问题而设计的。
于是,你要为这个狭窄的流失定义编写了一个标记函数,并且管道中的特征工程和建模中下游步骤也依赖于初始参数,并且必须重做。由于对一组特定值进行硬编码,你必须构建一个全新的管道来解决问题定义中的微小变化。
构建机器学习过程
这种情况表明目前将如何解决机器学习问题。该过程是临时的,即使使用相同的数据,也需要为每个参数集提供自定义解决方案。其结果是错过了机器学习的全部好处,因为它们仅限于用时间密集的方法解决少数问题。
缺乏标准化的方法意味着不存在解决机器学习问题的框架,而机器学习可以快速地适应并部署为问题变化的参数。
我们如何改进这个过程?使机器学习更容易获取将需要一个用于建立和解决问题的通用框架。该框架应适应现有工具,能够快速适应不断变化的参数,适用于不同行业,并提供足够的结构,为数据科学家提供一条明确的途径,用于布置和解决机器学习中的具有意义的问题。
我们在特征实验室(Feature Labs)对如何解决这个问题进行了大量思考,并开发了我们认为通过机器学习解决有用问题的更好方法。在本系列接下来的三部分中,我将介绍如何以结构化、可重复的方式构建框架和构建机器学习解决方案,这些方法是围绕预测工程、特征工程和建模的步骤构建的。
https://www.featurelabs.com/
我们将逐步介绍完全应用于预测客户流失的一个用例的方法,并了解如果问题的参数发生变化,将如何调整解决方案。此外,我们将能够采用用于机器学习的Pandas、Scikit-Learn、Featuretools等现有的特征工具。
通用的机器学习框架概述如下:
(1)预测工程:陈述业务需求,转化为机器学习问题,并从数据集生成标记示例。
(2)特征工程:从每个标签的原始数据中提取预测变量,也就是特征。
(3)建模:在部署到新数据之前,针对特征训练机器学习模型,调整业务需求并验证预测。
用于通过机器学习定义和解决有意义问题的通用框架
我们将逐步介绍每个步骤的基础知识以及如何在代码中实现它们。完整的项目在GitHub上以Jupyter Notebooks的形式提供。(我在Feature Labs工作,Jupyter Notebooks是一个初创的开发工具,包括用于解决机器学习问题的Featuretools。这里记录的所有工作都是用开源工具和数据完成的。) https://github.com/Featuretools/predicting-customer-churn
虽然该项目仅讨论了一个应用程序,但可以跨行业应用相同的流程来构建有用的机器学习解决方案。终交付成果是一个框架,可用于解决任何领域的机器学习问题,并且可直接应用于你自己的客户流失数据集的特定解决方案。
商业动机:确保解决正确的问题
除非可以为公司创造价值,否则复杂的机器学习管道将不会产生任何影响。因此,构建机器学习任务的步是了解业务需求,以便确定要解决的正确问题。在这个系列中,我们将处理解决客户流失的常见问题。
对于基于订阅的商业模式,预测哪些客户会流失,并停止在指定的时间段内支付服务费用,这至关重要。准确预测客户是否流失以及何时会流失,可以让企业与那些有退订风险的客户进行互动,或者为降低费率提供优惠,以此作为维持订阅的激励动力。有效的客户流失预测模型使公司能够积极主动地扩大客户群。
对于客户流失问题,业务需求是:
通过降低客户流失率来增加付费用户的数量。
减少客户流失传统的方法需要使用生存分析技术来预测哪些客户会流失,但是,考虑到大量的历史客户行为数据,这提供了监督机器学习的理想应用。
https://towardsdatascience.com/survival-analysis-in-python-a-model-for-customer-churn-e737c5242822
https://www.sciencedirect.com/science/article/pii/S1569190X15000386
我们可以通过构建监督算法来解决机器学习的业务问题,该算法从过去的数据中学习以预测客户流失。
陈述业务目标并根据机器学习可解决的任务表达它是管道中关键的步。一旦我们知道我们希望模型预测到什么,就可以继续使用可用数据来开发和解决受监督的机器学习问题。
下一步发展
在接下来的三篇文章中,我们将应用预测工程、特征工程和建模框架来解决亚洲大的订阅音乐流媒体服务KKBOX的客户流失问题。
查找以下帖子(或查看GitHub存储库):
https://github.com/Featuretools/predicting-customer-churn
1.预测工程:如何设置机器学习问题
https://medium.com/@williamkoehrsen/prediction-engineering-how-to-set-up-your-machine-learning-problem-b3b8f622683b
2.特征工程:为机器学习提供动力(即将推出)
3.建模:训练算法进行预测(即将推出)
我们将看到如何使用现有的数据科学工具填充细节,以及如何在不重写整个管道的情况下更改预测问题。后,我们将有一个有效的模型来预测流失,并调整以满足业务需求。
可根据业务需求进行调整的模型的回忆曲线
通过这些文章,我们将看到一种机器学习方法,可以让我们快速构建多个预测问题的解决方案。下次你的老板再次要求更改问题参数时,你就可以启动并运行新的解决方案,只需对代码进行更改即可。
文章来源:
https://towardsdatascience.com/how-to-create-value-with-machine-learning-eb09585b332e