
1. 项目概述与赛题核心解读2021年的华数杯数学建模竞赛C题题目是“电动汽车目标客户销售策略研究”。这个题目一出来当时我们团队就意识到这绝对是一个“接地气”的好题。它不像一些纯理论推导的题目而是直接把一个现实商业问题抛给你一家电动汽车公司手头有一批潜在客户的调查数据怎么从里面精准地找出最可能买车的人并且制定有效的销售策略这本质上是一个典型的数据挖掘与商业智能问题融合了机器学习、统计分析、运筹优化等多个领域。对于参赛者来说挑战不仅在于模型的建立更在于如何将数学工具转化为有说服力的商业洞察。很多新手队伍容易一头扎进复杂的算法里却忽略了题目最根本的商业诉求——帮企业赚钱。今天我就结合当年的解题思路和后续的一些反思把这个题的“里子”和“面子”都拆开来讲透希望能给未来参赛的朋友们一些实实在在的启发。这道题提供的核心数据是一份客户特征问卷数据包含了客户的基本属性、家庭情况、对电动汽车的认知、态度以及购买意愿等信息。你的任务很明确第一建立模型识别高价值潜在客户也就是“目标客户”第二分析这些客户的特征为企业制定销售策略提供依据。听起来简单但每一步都藏着坑。比如特征怎么选模型用哪个策略怎么才算“有效”这些都需要你有一个清晰的、闭环的逻辑链条来支撑。2. 解题整体思路与框架设计面对这类数据驱动的商业问题一个系统性的分析框架至关重要。不能拿到数据就开始跑模型那样很容易迷失方向。我们当时的整体思路遵循了一个经典的商业分析流程商业理解 - 数据理解与预处理 - 建模与评估 - 策略生成与验证。这个流程能确保你做的每一件事都紧扣题目要求。2.1 第一步商业问题数学化这是最关键的一步决定了你后续所有工作的方向。题目问“销售策略”但策略是建立在“目标客户”识别基础上的。所以我们首先要定义什么是“目标客户”。题目数据中有一个“购买意愿”字段这通常可以作为我们模型的标签。但这里有个小心思直接把它当作二分类标签买/不买可能过于粗糙。因为客户的购买意愿是一个从0到1的概率或者是一个有序的等级比如强烈不愿意、不愿意、中立、愿意、强烈愿意。我们当时认为将购买意愿视为一个有序多分类或回归问题可能更精细能够区分出“一般潜在客户”和“高价值潜在客户”。最终我们将其处理为一个二分类问题高意愿 vs 低意愿但特征工程和模型选择都为更精细的划分留了余地。接下来要把抽象的“销售策略”转化为可量化的数学目标。策略的目的是什么提高销量、降低成本、提升投入产出比。那么我们的模型和后续分析就应该服务于这些目标。例如在识别客户时不仅要关注预测的准确性还要关注查准率——我们找出来的人有多大比例真的会买因为销售资源是有限的把资源浪费在不可能购买的客户身上就是成本。因此我们初步确定的核心任务是构建一个以高查准率为主要优化目标之一的分类模型并能够输出客户的“价值评分”用于优先级排序。2.2 第二步数据勘探与预处理实战数据是模型的基石这一步做不好再高级的算法也是空中楼阁。题目给的数据通常不会是“干净”的一定会存在缺失值、异常值、量纲不统一、类别分布不平衡等问题。1. 缺失值处理我们首先检查了每个特征的缺失比例。对于缺失比例较低如5%的特征如果特征是数值型我们采用了中位数填充对于偏态分布的数据中位数比均值更稳健如果是类别型则用众数填充。对于缺失比例较高的特征我们评估了该特征的重要性如果认为其重要性不高则直接删除该特征以避免引入过多噪声。例如某个关于“充电桩了解程度”的问题缺失了30%我们通过相关性分析发现它与其他几个关于基础设施认知的特征高度相关于是选择删除它用其他特征来替代这部分信息。2. 异常值处理对于数值型特征如年龄、收入我们使用了箱线图进行可视化检查。对于明显超出合理范围的异常值比如年龄填了200岁我们将其视为缺失值并按上述缺失值方法处理。对于在合理范围内但分布极端的值我们采用了缩尾处理即将超出99%分位数和低于1%分位数的值用分位数值进行替换以减少极端值对模型特别是线性模型的干扰。3. 特征编码数据中包含大量类别型特征如性别、教育程度、职业类型、对电动汽车各项特性的态度非常不同意、不同意、中立、同意、非常同意。对于有序类别如态度量表、教育程度我们采用了标签编码或有序整数编码以保留其顺序信息。对于无序类别如职业、车型偏好我们使用了独热编码。这里要注意维度爆炸问题如果某个类别特征取值非常多可以考虑先进行归类如将几十种职业归为几大类或者使用目标编码用该类别下目标变量的均值来编码但目标编码要小心过拟合最好在交叉验证中进行。4. 特征工程这是提升模型性能的“魔法”环节。我们不仅仅使用原始特征还尝试创造新的特征。交互特征例如“家庭年收入”与“家庭人数”可以生成“人均收入”这可能比单独的收入更能反映购买力。多项式特征对于与购买意愿可能存在非线性关系的特征如年龄我们尝试创建了年龄的平方项。分箱将连续变量如年龄、收入离散化成几个区间如青年、中年、老年有时能让线性模型捕捉到非线性关系也便于后续的业务解读。态度指数合成问卷中多个关于性能、环保、成本的态度问题我们可以通过主成分分析或简单加权平均合成一个“总体态度积极指数”既能降维又能减少共线性。注意所有基于目标变量的特征工程如目标编码、基于目标的分箱都必须在严格的交叉验证框架下进行或者先划分训练集和测试集只在训练集上计算统计量再应用到测试集防止数据泄露。2.3 第三步模型选择与构建逻辑在预处理后的数据上我们开始构建客户识别模型。没有哪个模型是万能的我们的策略是“先集成后精选”。1. 基准模型我们首先建立了逻辑回归作为基准模型。逻辑回归的优点在于可解释性强每个特征的系数大小和正负代表了其对购买意愿的影响方向和力度这对后续生成业务策略至关重要。通过逻辑回归我们可以初步筛选出显著的特征。2. 集成模型为了追求更高的预测性能我们采用了树模型。一开始我们尝试了单一的决策树但容易过拟合。随即我们转向了集成模型随机森林这是我们的主力模型之一。它能有效处理非线性关系、交互作用并且可以给出特征重要性排序非常实用。我们通过网格搜索调整了树的数量、最大深度等超参数。梯度提升树我们使用了XGBoost或LightGBM。这类模型通常在表格数据上表现优异尤其是LightGBM速度快且内存占用小。它同样能提供特征重要性。为什么选择这两个随机森林训练快抗过拟合能力强特征重要性稳定适合作为第一道防线。GBDT类模型精度往往更高但需要仔细调参。我们通常会同时训练这两个模型并比较它们在验证集上的表现特别是查准率和ROC-AUC。3. 模型评估与选择我们最关注的指标不是单纯的准确率因为数据可能存在不平衡想买的人总是少数。我们更关注查准率模型预测为“会购买”的客户中真正会购买的比例。这直接关系到销售资源的投放效率。查全率所有真正会购买的客户中被模型找出来的比例。这关系到市场覆盖率。F1-Score查准率和查全率的调和平均数是一个综合指标。ROC曲线与AUC值衡量模型整体排序能力的好坏AUC越高说明模型越能把“会买”的客户排在前面。我们通过交叉验证来获取稳定的评估结果。最终模型的选择是在保证一定查全率的基础上尽可能追求高查准率。因为对于企业来说优先联系那些购买概率最高的客户ROI可能最大。2.4 第四步客户分群与策略制定模型预测出每个客户的购买概率后工作只完成了一半。更重要的是如何利用这个结果。我们采用了客户分群的方法。1. 基于预测概率的分层我们将所有潜在客户按预测购买概率从高到低排序划分为几个层级S级核心目标客户概率最高的前10%-15%。这部分客户是销售团队应立即优先跟进的对象可以分配最多的资源和最优惠的促销政策。A级高潜力客户概率次高的15%-20%。可以进行定期培育如发送深度产品资料、邀请参加试驾活动。B级一般潜在客户中间部分。进行低成本维护如发送新闻资讯、品牌动态。C级低意向客户概率最低的部分。暂时保持观望或仅进行品牌广宣。2. 基于特征画像的策略生成对于S级和A级客户我们深入分析他们的共同特征。通过模型的特征重要性来自随机森林或XGBoost和逻辑回归的系数我们找出驱动购买的关键因素。如果发现“对环保性能评分高”是强相关特征那么针对这部分客户的营销话术和材料应重点突出电动汽车的环保特性、低碳足迹。如果“家庭有儿童”且“关注安全性”特征显著则销售策略应强调车辆的安全评级、儿童锁等相关功能。如果“对充电便利性担忧”是主要负向特征企业策略则应考虑向这部分客户提供详细的充电桩安装服务方案、赠送充电卡、或强调公司合作的公共充电网络覆盖度。我们当时为每一类高价值客户群体都绘制了“人物画像”并配套制定了相应的沟通渠道建议如线上广告、电话销售、线下活动、产品推介重点和促销方案如金融贴息、充电补贴、延长保修。这使得我们的解决方案从一个单纯的数学模型落地为一个可执行的商业计划草案。3. 核心环节实现与关键技术细节3.1 特征重要性分析与业务解读模型建好了但你不能只给评委一个AUC值。你必须解释清楚模型“为什么”这样工作。我们以随机森林模型为例输出特征重要性排序后做了两件事第一可视化。用水平条形图将最重要的前15-20个特征展示出来直观明了。第二业务翻译。这是体现你思考深度的关键。例如如果“周围朋友推荐意愿”这个特征重要性排第一你不能只说“这个特征很重要”。你要解读出口碑营销和社交影响对于电动汽车推广至关重要。企业应加强老客户推荐计划打造用户社群利用KOC进行传播。如果“每月可承受用车支出”重要性高则可以解读为客户对使用成本敏感灵活的电池租赁方案、充电服务套餐可能比单纯降低车价更有效。我们还会使用SHAP值进行更细致的解释。SHAP值能展示每个特征对于单个预测结果的贡献是正向还是负向。比如对于一个被预测为高购买概率的客户SHAP图可以显示是“高收入”和“环保意识强”这两个特征贡献最大。这能让销售人员在面对具体客户时更有针对性地沟通。3.2 销售策略的量化与模拟制定策略不能拍脑袋。我们尝试对提出的策略进行简单的量化模拟以增强说服力。例如假设传统广撒网式的电话销售转化率为2%单次联系成本为10元。我们的策略使用模型筛选出前20%的高概率客户进行重点联系假设在这部分人群中转化率提升至8%单次联系成本因需要更专业的销售而升至15元。我们设定一个固定的总预算比如10万元然后计算两种策略下的预期成交客户数和单客获取成本传统策略可联系人数 100,000 / 10 10,000人。预期成交 10,000 * 2% 200人。单客成本 10 / 2% 500元。模型策略只联系前20%的客户假设总潜在客户池为10,000人则高价值客户为2,000人。联系这些人的总成本 2,000 * 15 30,000元远低于预算。预期成交 2,000 * 8% 160人。单客成本 15 / 8% 187.5元。对比结论虽然模型策略触达人数少预期成交总数略少160 vs 200但单客获取成本大幅降低187.5元 vs 500元投入产出比显著提高。在预算有限的情况下企业采用模型策略可以用更少的钱获得更优质的客户线索销售团队也能更专注。这样的量化对比比空谈“提升效率”要有力得多。3.3 模型部署与持续迭代的思考在论文中我们还简要探讨了模型落地可能面临的问题和解决方案这能体现你对问题思考的完整性。数据更新销售是一个动态过程新数据会不断产生。模型需要定期如每季度用新数据重新训练以保持其预测能力。线上部署可以将训练好的模型封装成API服务集成到企业的CRM系统或销售线索管理平台中。当新的潜在客户信息录入时系统自动调用模型API实时输出购买概率评分。反馈闭环最重要的环节。销售人员的跟进结果最终是否成交应作为新的标签数据回流到数据池中用于下一轮的模型优化。这样模型就在业务实践中不断进化越用越聪明。4. 常见问题、避坑指南与参赛心得4.1 数据处理中的“坑”坑1盲目处理缺失值。看到缺失值就用均值填充这是大忌。一定要先分析缺失模式是随机缺失还是系统缺失比如“收入”字段缺失可能因为高收入人群更不愿意透露。这种情况下用均值填充会严重低估这部分人的收入。更好的做法是将“是否缺失收入”本身作为一个新的二值特征可能具有很强的预测能力。坑2忽略特征缩放。如果你使用了逻辑回归、SVM或K-Means聚类等基于距离的模型必须对连续特征进行标准化或归一化。树模型虽然不需要但良好的习惯是对所有数值特征进行缩放特别是当你后续可能尝试不同模型时。坑3在划分训练测试集之前做特征工程。这是导致数据泄露、模型评估结果虚高的最常见原因。尤其是那些用到目标变量信息的操作如目标编码、基于目标的分箱必须在训练集上完成拟合然后将拟合器应用到测试集。最安全的做法是使用Pipeline和ColumnTransformer在sklearn中将预处理和模型打包在交叉验证中整体进行。4.2 模型构建与评估的“坑”坑1只用一个指标评判模型。盯着准确率不放对于不平衡数据集毫无意义。一定要结合混淆矩阵、查准率、查全率、F1、AUC等多个指标综合判断。并向评委解释在本题的商业背景下你更看重哪个指标以及为什么。坑2不进行交叉验证。直接用一次划分的测试集成绩作为最终模型性能结果非常不稳定。务必使用K折交叉验证尤其是数据量不大的时候它能给出更可靠的性能估计。坑3堆砌复杂模型忽视可解释性。一上来就用深度神经网络结果可能还不如调好参的XGBoost。在数学建模竞赛中模型的可解释性和商业洞察往往比那一点点预测性能的提升更重要。逻辑回归、决策树、随机森林的特征重要性都是很好的解释工具。复杂模型可以作为“黑盒”补充但一定要有“白盒”模型来支撑你的论点。4.3 论文写作与表达的“坑”坑1只有模型没有分析。论文里大段代码和公式却没有对结果深入分析。评委想看到的是这个特征重要意味着什么这个客户群体有什么特点我们提出的策略具体怎么操作要把数学语言翻译成商业语言。坑2策略空洞无物。“加强宣传”、“提高服务质量”这类建议等于没说。你的策略必须是具体的、可操作的、与你的模型发现紧密挂钩的。例如“针对模型识别出的、对‘续航焦虑’敏感但‘通勤距离固定’的年轻白领群体设计‘一周通勤无忧’试驾套餐并提供公司周边三公里内充电桩地图。”坑3忽视模型的局限性。任何模型都有假设和局限。主动在论文中讨论你的模型有哪些不足例如数据是横截面数据无法捕捉时间趋势问卷数据可能存在主观偏差等以及未来可以如何改进这体现了严谨的科学态度是加分项。4.4 我的参赛心得与技巧三人分工要明确但沟通要频繁。一个人主攻建模和编程一个人主攻论文写作和可视化一个人主攻思路梳理和策略设计。但每天必须集中讨论多次确保三个部分严丝合缝写作的人必须完全理解模型的结果。可视化是第二语言。多用图表说话。特征重要性图、ROC曲线、客户分群雷达图、策略效果对比柱状图……一图胜千言。图表要美观、规范、有自明性不看正文也能懂个大概。从评委角度思考。评委时间紧要看大量论文。你的摘要是否清晰概括了所有工作你的章节结构是否一目了然你的核心创新点和结论是否突出在摘要和引言部分就牢牢抓住评委的眼球。代码要整洁附在附录。虽然论文主体不展示大量代码但附录里整洁、有注释的代码能体现你的工作扎实。确保你的代码从头到尾可以复现论文中的所有结果。时间管理是生命线。三天时间第一天必须确定思路、完成数据探索和预处理第二天上午完成基础建模和调优下午开始论文写作和深入分析第三天全天用于论文打磨、策略深化、可视化优化和检查。最后留出几个小时应对突发问题。回过头看华数杯C题是一个经典的“数据科学”赛题它考察的远不止建模技术更是将技术应用于解决实际商业问题的综合能力。其核心逻辑——用数据识别机会用模型指导决策用分析创造价值——在当今的数据驱动时代具有普适性。希望这份详细的思路拆解能帮助你不仅赢得比赛更掌握一种解决问题的思维框架。