继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

如何构建一个以数据驱动的客户管理系统?

慕桂英546537
关注TA
已关注
手记 330
粉丝 31
获赞 200
客户群管理

客户群管理 https://medium.com/@hc.ekne/list/customer-base-management-32bbc1c1cf76

构建具有战略影响力的高级CBM系统

本人使用Canva制作的图片

想象一下,如果您的客户数据能够讲述一个推动关键决策、优化定价策略,并且精准预测未来收入的故事。

作为一名数据科学家,我已经花费了职业生涯中的很大一部分时间设计和构建客户基础管理(CBM)系统,这些系统。这些系统可以监控和预测包括客户流失、价格敏感度等在内的各种情况,从推荐客户最可能购买的产品。

我亲眼见证了CBM系统如何被组织成功采用,并帮助他们通过实施有效的定价策略、提高客户保留率和开展更有针对性的销售活动来执行他们的战略。将预测与仪表盘的视觉效果结合,CBM系统可以为管理者提供一种有效的手段,以便与高层领导沟通。这有助于增强决策过程,并帮助领导者更好地理解其行动对客户基础及从该客户基础预测的未来收入的影响,尤其是关于客户基础和从该客户基础预测的未来收入的影响。

本文将探讨 CBM 系统的基础组成部分,以及那些真正提升系统价值的高级功能。通过本指南的介绍,您将对 CBM 系统的关键组成部分有清晰的理解,并了解高级模块如何增强这些基础组成部分,从而为您的企业带来竞争优势。

建立强大的CBM系统的基础

用Canva做的图

一个CBM系统的三大基础组成部分包括:

  • ELT(提取-加载-转换)
  • 基本流失率模型
  • 仪表板

拥有这三个要素后,管理者对流失现象有了基本的认识,直观地了解数据,同时也能够将发现的结果通报给管理层和相关方。下面我们将详细讲解这些部分。

ELT — 获取资料

提取-加载-转换(简称ELT),是客户基础管理(CBM)系统中第一个也是最关键的部分。这是为系统提供数据的模块,通常在创建CBM系统时会首先构建这个模块。开始时,你通常会与某种已经完成了大部分基本数据操作的数据平台交互。在这种情况下,你只需完成“加载”和“转换”。但有时你还需要直接从源系统提取数据。

无论数据来源于何处,都需要将其加载到您的系统中,并转换为您所使用机器学习模型可以轻松接受的格式。您可能还需要将数据转换为更便于生成仪表板的格式。对于某些特定的仪表板,可能还需要对大量数据进行预聚合,以便在较小的表中提升查询和绘图效率。

很明显,如果ELT过程中有错误,或者输入的数据有错误,这可能严重干扰CBM系统的运行。由于系统中的所有内容都依赖于这些输入数据,因此,我们需要格外小心,确保数据准确并符合业务规则。

我多次见到ELT流程出现问题,导致流失预测和仪表板出现错误。监控进入系统数据一致性的一种方法是记录每个变量的分布,并随时间跟踪这些分布。如果分布发生了显著变化,你可以快速检查是否是ELT流程中的逻辑错误导致的,或者数据问题是否源自更上游的环节。

基本流失模型

理解您的客户群体的第二个关键组成部分在于识别客户何时以及为何会流失(对于非专业人士来说,“流失”指的是客户停止使用产品或服务的时刻)。一个好的流失预测模型可以帮助企业集中客户保留策略在最有效的方面,并能帮助识别那些可能面临较高流失风险的客户。

在90年代中期,电信公司、银行、保险公司和公用事业公司是最早开始运用客户流失模型的,而开发基本的客户流失模型相对比较简单。

首先要定义什么是流失。在很多情况下,这非常简单,例如当用户取消了电信服务合同。然而,在其他行业,比如电子商务,定义流失时需要一些判断。例如,如果一个客户在最后一次购物后200天内没有再次购物,就可以认为他流失了。

定义了“流失”后,我们需要为模型选择一个结果期,即我们希望观察流失的时间。例如,如果我们想创建一个以10周为结果期的流失模型,那么该模型将预测在接下来的10周内客户流失的概率。或者,我们可以将结果期定为一年,这样模型将预测客户在未来一年内任何时间点的流失概率。

具体来说,分析师需要将数据转换成一种格式,这种格式使得机器学习模型易于训练并且便于后续应用。具体来说,分析师需要将数据转换成一种格式,这种格式具体来说,使得机器学习模型易于训练并且便于后续应用。

(修正后,重复部分已去除)

具体来说,分析师需要将数据转换成一种格式,这种格式使得机器学习模型易于训练并且便于后续应用。

具体来说,分析师需要将数据转换成一种格式,这种格式使得机器学习模型易于训练并且便于后续应用,具体来说,评估期和流失标准已经确定。

(重复部分已去除,结构调整如下)

具体来说,分析师需要将数据转换成一种格式,这种格式使得机器学习模型易于训练并且便于后续应用,具体来说,在评估期和流失标准已经确定的情况下。

在模型训练完成后,并开始对活跃客户群体进行预测时,存在多种不同的应用场景。例如,我们可以利用流失概率来识别高流失概率的客户,并针对他们实施针对性的挽留策略或促销活动。我们还可以为不同客户群体量身定制营销材料,依据他们的流失概率。或者,我们还可以结合流失概率和客户购买的产品,开发客户终身价值模型,从而用于优先处理各种客户活动。很明显,合理的流失模型可以为公司带来战略优势,在客户管理中领先于忽视这一基本要素的竞争对手。

仪表盘

仪表板、BI 和分析在 2000 年代和 2010 年代初曾非常流行,然而,在机器学习算法成熟之前,我们的关注点从描述性和通常是回顾性的数据转移到了预测上。但是,对于 CBM 工具来说,仪表板仍然是一个关键组成部分。它们允许管理人员有效地与高层领导沟通,特别是在结合高级功能(如价格优化)使用时。可以可视化特定定价策略的潜在影响,对于决策制定非常有帮助。

就像任何数据科学项目一样,你可能需要花费数千小时来构建一个系统。然而,仪表板通常是经理和高管与系统交互的主要界面。如果仪表板不够直观或性能不佳,它可能会掩盖你所付出的其他一切努力的价值。

此外,仪表板提供了一种对数据进行视觉检查的方法,并且有时可以揭示出未被发掘的机会。特别是在系统实施后初期,或许是在所有控制流程尚未投入运行之前,对所有变量和模型的表现进行持续的视觉监控可以作为一个很好的防护措施。

有了主要的基础部分就位,我们可以探索更高级的功能特性,这些功能特性有可能带来更大的价值和更深入的洞察。

用先进组件提升战略优势

这张图是笔者用Canva做的

虽然一个基本的CBM系统也能带来一些实际的好处和见解,但要最大限度地利用CBM系统,需要更多高级组件。接下来我们将讨论几个关键组件,例如具有多个时间跨度的流失模型、加入价格优化、使用模拟预测以及引入竞争对手的价格数据。

多时间框架 churn 模型

有时候从不同的角度来看待流失率是有意义的,其中一个角度是模型的时间范围——或者说是结果期。对于某些商业场景而言,设定一个较短的结果期是有意义的,而对于其他场景,设定一个一年的结果期也是有道理的。

为了更好地解释这个概念,假设你建立了一个10周预测期的churn model。这个模型可以用来预测某个特定客户在10周内是否会流失。然而,假设你已经确定了一个特定事件,你知道这个事件会导致客户流失,并且你有一个大约3周的时间窗口来实施任何预防措施。在这种情况下,训练一个针对特定流失事件的3周预测模型更有意义。这样你就可以专注于对那些最有可能流失的客户采取挽留措施。

这种差异化的方法有助于更有效地配置资源,专注于最需要高影响力措施的领域。根据具体情况调整模型的时间框架,公司可以更好地优化客户保留策略,最终提升客户终身价值并减少不必要的流失。

定价优化与客户的价格敏感度

在很多情况下,价格是执行策略的最后环节,而那些能够将战略有效转换为合理的定价策略的公司才是赢家。这正是具备价格优化功能的CBM系统可以帮助企业做到的。虽然价格优化本身可以单独形成一篇文章,我们将在下面简要总结一些要点。

开始时需要的第一件事是获取历史价格的数据。最好是不同时间段的价格水平和其他解释变量。这使你能够估算价格弹性。一旦有了这些数据,你就可以预测不同价格点下的预期流失率,并使用这些预期值来预测收入。从客户层面汇总数据,可以获得每个产品的预期收入和预期流失率,并据此找到每个产品的最佳价格。在更复杂的情况下,每个产品可能有多个具有各自最佳价格点的客户群体。

比如说,假设一家公司有两种不同的产品,产品A和产品B。对于产品A,公司希望增加用户数量,并且只愿意接受固定数量的流失,同时在市场上保持竞争力。然而,对于产品B,他们愿意接受一定的流失,以获得与预期收入相匹配的最佳价格。客户行为管理系统(CBM系统)允许实施这样的策略,并对未来的预期收入进行预测。

基于仿真的预测

基于模拟的预测提供了一种更稳健的方法来生成预测估计,而不仅仅是基于期望值的点估计。通过使用诸如蒙特卡洛模拟等方法,我们能够生成结果的概率分布,从而为决策者提供我们预测的可能范围。这比单纯依赖点估计更强大,因为我们能够量化这种不确定性。

为了理解基于仿真的预测如何使用,我们可以用一个例子来说明。假设我们有10位客户,每个客户都有给定的流失概率,并且每位客户每年都有预期收入。(实际上,我们通常有一个多变量流失函数来预测每位客户的流失。)为了简化起见,假设如果客户流失,我们就无法获得任何收入,而如果客户不流失,我们就保留全部的收入。我们可以使用Python来使这个例子更具体化。

    import random  
    # 设置随机种子以便结果可重复。  

    # 生成所需的列表  
    churn_rates = [round(random.uniform(0.4, 0.8), 2) for _ in range(10)]  
    yearly_revenue = [random.randint(1000, 4000) for _ in range(10)]  

    churn_rates, yearly_revenue  # 输出两个列表

这给我们带来了以下 churn_ratesyearly_revenue

    流失率:[0.66, 0.41, 0.51, 0.49, 0.69, 0.67, 0.76, 0.43, 0.57, 0.41]  
    年度收入:[1895, 1952, 3069, 3465, 1108, 3298, 1814, 3932, 3661, 3872]

使用上面的数字,并假设用户流失事件是独立的,我们可以轻松计算平均流失的比例以及预计总收入。

    # 通过 (1 - churn_rate) * yearly_revenue 计算每个客户的总预期收入  
    adjusted_revenue = [(1 - churn_rate) * revenue for churn_rate, revenue in zip(churn_rates, yearly_revenue)]  
    total_adjusted_revenue = sum(adjusted_revenue)  

    # 根据原始数据再次计算预期平均流失率  
    average_churn_rate = sum(churn_rates) / len(churn_rates)  

    # 返回平均流失率和调整后的总收入  
    average_churn_rate, total_adjusted_revenue

以下是 average_churn_ratetotal_adjusted_revenue 的具体数值:

    平均流失率:0.56,   
    总收入: 13034.07

所以,预计大约有56%的流失率和总收入为13034,但这并不能告诉我们这些数字背后的波动情况。为了更深入地理解可能出现的结果范围,我们转向蒙特卡洛模拟。我们不是简单地取流失率和总收入的期望值,而是让这种情况模拟10000次(选择10000是随意的;实际上,应根据需要的细致程度来选择合适的数值),在每次模拟中,每个客户会以churn_rate的概率流失,或以1- churn_rate的概率保留。

    import pandas as pd  

    simulations = pd.DataFrame({  
        'churn_rate': churn_rates * 10000,  
        'yearly_revenue': yearly_revenue * 10000  
    })  

    # 添加一个包含0到1之间随机数的列  
    simulations['random_number'] = (  
        [random.uniform(0, 1) for _ in range(len(simulations))])  

    # 添加一个名为'not_churned'的列,并将其设置为1,然后根据随机数将不活跃用户设为0  
    simulations['not_churned'] = (  
        simulations['random_number'] >= simulations['churn_rate']).astype(int)  

    # 添加一个从1到10000轮次的'iteration'列  
    simulations['iteration'] = (simulations.index // 10) + 1

这将产生这样的表格例子:

模拟数据图像/作者供图

我们可以使用以下代码来总结我们的结果。

    # 按 'iteration' 分组,并计算所需的汇总值
    summary = simulations.groupby('iteration').agg(  
        total_revenue=('yearly_revenue',   
           lambda x: sum(x * simulations.loc[x.index, 'not_churned'])),  
        total_churners=('not_churned', lambda x: 10 - sum(x))  # 总流失用户数: 'not_churned' 可视为 '未流失用户数'
    ).reset_index()

最终,使用 plotly 绘图的结果如下:

总收入的直方图 如下 / 作者创作

总流失用户的柱状图 / 作者绘制

上面的图表比我们最初得到的两个点估计值0.56和13034讲述了更丰富的故事。我们现在对可能的结果有了更深入的了解,并且我们可以根据我们对可接受的流失率和收入水平进行有根据的讨论。

继续上面的例子,我们可以说,我们可能只接受8次或更多流失事件0.1%的风险。利用基于个体客户的定价弹性以及模拟预测法,我们可以调整客户的预期流失率churn_rates,从而达到这一效果。这种对客户群体的控制只有通过高级的客户保留管理系统才能实现。

了解对手价格的重要性

定价的一个重要因素是竞争对手的价格。竞争对手的价格策略将很大程度上决定了公司自身定价的灵活性。这一点尤其适用于像公用事业或电信这样的商品化行业,这些行业中提供商很难进行差异化竞争。然而,尽管竞争对手定价非常重要,但许多企业却选择不将这些数据整合进自己的价格优化算法中。

不将竞争对手的定价信息纳入价格算法的原因有很多。一些公司声称收集这些数据太难且耗时,即使现在开始收集,他们也难以获得所需的历史数据来训练价格弹性模型。另一些公司则表示,竞争对手的产品价格与我们产品的价格不具备直接可比性,因此,收集这些数据同样困难。最后,大多数公司则表示,他们有价格经理手动监控市场,在竞争对手价格变动时,他们可以及时调整自己的价格,因此,他们认为不需要将这些信息纳入算法中。

第一个论点可以通过良好的网络抓取和其他情报收集方法逐步缓解。如果这还不够,还可以借助一些机构获取特定行业和部门的历史市场数据。关于第二个问题,即没有可比较的产品,还可以使用机器学习技术来分析单个产品组件的实际成本。另一种方法是使用不同的用户角色来估算特定产品组合的月总成本。

最终来说,不包含竞争对手的价格使得定价算法和优化工具处于劣势。随着价格计算器和比价网站的普及,顾客越来越容易了解市场,在这样的行业内,公司面临被更强大或更先进的对手击败的风险。

结论

在这篇文章中,我们讨论了客户基础管理系统的主要组件以及一些高级功能,这些功能使得这些系统非常宝贵。就我个人而言,作为一名曾经构建过这些系统的人,我认为价格优化算法与强大的仪表板界面相结合,并基于广泛的数据集,包括内部和外部数据,是管理客户极为有效的工具之一。这种组合工具让经理和高级领导层能真正掌控客户管理流程,并理解他们的行动对战略结果的影响。

杰夫·贝索斯曾说,作为一名极度重视客户的领导者:

“我们可以保证,我们会继续 死心塌地为客户服务。我们深信,从长远来看,这种方法对所有者和客户来说都一样重要或有利。”杰夫·贝佐斯,亚马逊2009致股东信

致力于客户管理的承诺,基于数据和人工智能驱动的洞察,不仅提升了客户的满意度,也为所有相关方带来了持久的价值。

谢谢你的阅读!

想要在每次我发布新文章时收到通知吗?➡️点击这里订阅我的通讯邮件⬅️。免费,您随时可以取消订阅!

如果你喜欢这篇文章并想了解更多我的内容,请随时在LinkedIn上与我联系:https://www.linkedin.com/in/hans-christian-ekne-1760a259/ 或访问我的网站:https://www.ekneconsulting.com/,可以找到更多关于我提供的服务的信息。或通过电子邮件 hce@ekneconsulting.com 联系我。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP