2021“华数杯”C题完整解答附全代码

8.20
昨天比赛出成绩了,一等奖,哈哈哈和队友还是很开心的,希望国赛能好好准备发挥

拿到三个题以后,各自看了半个小时,和队友开了会。因为我们三个都没有偏物理专业的,所以A题就没有考虑,B题C题感觉都可以处理,C题更加开放好写。

整个题目解决比较顺畅,大概花了2天,最后一天对论文进行了润色。比赛完了负责国赛带我们组的老师点评这个题有更好的解法,三个队员都有一些问题,以后继续努力吧

1
所属类别
2021 年“华数杯”全国大学生数学建模竞赛
参赛编号
本科组 CM 211297
基于 GA-BP 模型的客户销售方案
摘要
对电动汽车客户挖掘和销售决策研究是十分有意义的问题,这对于电动汽车行业
快速发展有着重要影响。公司不仅需要提高客户对产品的满意度,对性能做出改变,
更要对汽车的销售,对客户做出更加个性化的销售方案。因此,本文的主要目标就是
对清洗后的数据进行全面分析,从中提炼出最影响客户购买电动汽车的因素,并利用
这些因素建立一套合理有效的针对不同品牌电动汽车的客户挖掘模型。
针对问题一,本文从 a1~a8 指标中找到了四组异常数据进行剔除,并借助箱型图
法进行了检验。借助 B5,B6,B7 以及 B13,B15,B16,B17 之间的逻辑关系对异常数据进行
修改与剔除。得到正常数据后主要针对 a1~a8 指标进行均值、方差、偏度、峰度上的
描述性统计分析。数据处理的最终结果见附件附录一整理.xlsx。
针对问题二,首先对第一问清洗后的客户数据进行训练,以 90%作为训练集,10%
作为数据集进行求解。由于 BP 网络随机生成初始参数易造成局部最优和收敛速度慢,
而后使用遗传算法对其进行优化。最终归一化得到该指标的贡献率,分析即可得出各
因素的影响程度高低,对不同品牌电动汽车的销售影响因素最大的是 a1、B1、B3、B5 和 B9 项。本文将权值贡献率低于 2%的因素划分为影响最小的因素,有 a2、a4、a7、 B4、B6、B11、B14、B15 八项因素。
针对问题三,通过主成分分析法和 GA-BP 神经网络建立客户挖掘模型。利用主成
分分析法对第二问结果中大于 2%的因素集进行降维处理,得到累计贡献率达 85%的客
户评分模型。基于问题一中筛选后的数据进行训练,网络初始化后使用遗传算法优化
神经网络预测,输入需要预测的 15 条数据后得到各位顾客的购买意愿,将 15 名目标
客户购买电动车的可能性填入表格,对模型的优良性进行分析。
针对问题四,本文利用第三问的主成分分析法所得的评分模型对附件三 15 名客户
进行评分,基于客户 ABC 分类管理法筛选出三名未购车的客户。基于 GA-BP 神经网络
的潜在客户挖掘模型进行控制变量法分析,将测试集带入模型进行预测识别,得到各
指标的满意度增长表,见附录满意度增长表.xlsx。用效益难度比来刻画销售者应当在
哪方面提升服务力度,将通过 BP 神经网络得到的结果利用 Matlab 绘图工具绘制折线
图,最终得到在短时间内,提升与 a1 指标相关的服务力度将获得最好的效果。
针对问题五,需要基于上述四问的分析结果和客户生命周期理论给出销售策略建
议。根据问题四应该根据电池技术性能等方面对客户进行销售。结合问题一的描述性
分析与客户挖掘模型得出,针对品牌 1,品牌 2 可以走大众路线,在价格,性价比等方
面可以出台优惠政策;针对品牌 3,则可以走小众化路线,一是可以调查获取数据利用
客户挖掘模型,二是可以在宣传时着重凸显品牌的特点。具体的销售策略见正文。
最后,我们分析了模型的优缺点,在对缺点提出相应的改进方式的基础之上,将
该模型推广到其他领域。
关键词:描述性统计 数据清洗 GA-BP 神经网络 客户 ABC 分类管理 主成分分析
2

  1. 问题重述 1.1 问题背景
    近十几年来,中国的汽车竞争激烈,客户需求快速变化,整车厂必须迅速准确地
    认识到自身发展所需的必要条件,才能在高速前进的市场中保持蓬勃发展[1]。 而新能源汽车产业是战略性新兴产业,大力发展以电动汽车为代表的新能源汽车
    是解决能源环境问题的有效途径。然而,电动汽车相较于传统汽车,消费者在一些领
    域,如电池问题,也存在着一些疑惑。
    本文需要根据题目给出的各品牌各项购买意愿来制定出各品牌相应的购买策略,
    如电池性能、舒适度、经济性、安全性、动力性等等,同时还需要结合目标客户体验
    者个人特征的信息建立不同品牌电动汽车的客户挖掘模型,根据模型判断出目标客户
    购买电动车的可能性与销售策略。并对销售部门给出销售策略建议。
    1.2 附件分析
    本题一共给出了三个附件数据,本文将对这些附件进行初步的解读。
    附件一:给出了 1964 位目标客户的体验数据,由三部分组成。第一部分是对各品
    牌的各项指标的满意度的打分,包括电池技术性能(电池耐用和充电方便)满意度得
    分(满分 100 分,下同)a1、舒适性(环保与空间座椅)整体表现满意度得分 a2、经
    济性(耗能与保值率)整体满意度得分 a3、安全性表现(刹车和行车视野)整体满意
    度得分 a4、动力性表现(爬坡和加速)整体满意度得分 a5、驾驶操控性表现(转弯和
    高速的稳定性)整体满意度得分 a6、外观内饰整体表现满意度得分 a7、配置与质量品
    质整体满意度得分 a8。第二部分是目标客户个人特征统计数据,第三部分是各企业的
    购买意愿统计。
    附件二:给出了调查者针对 1964 位目标客户所做的个人特征调查表,户口、所在
    地、驾龄、家庭人数、家庭收入丰方面统计客户数据。
    附件三:给出了待判定的数据,问题三需要我们对附件 3 中 15 名目标客户购买电
    动车的可能性做出判断。其中 B7 列即客户孩子数部分未知,需要对此数据分析。
    1.3 问题要求
    现某汽车公司最新推出三款品牌电动汽车,包含合资品牌、自主品牌和新势力品
    牌。需要根据消费者对电动汽车的购买意愿制定相应的销售策略。公司统计来了 1964
    位目标客户体验三种品牌汽车后给出的满意度得分。此外,题目还提供了目标客户体
    验个人特征的信息。
    基于上述背景和附件信息我们需要建立数学模型解决以下问题: (1)从 1964 位目标顾客的满意度与特征信息数据统计中提取信息,进行数据清
    洗,指出异常值和数据以及处理方法,并且对数据进行描述性统计分析。分析目标客
    户对不同品牌汽车满意度的差异比较。 (2)在上述给出的影响客户购买体验的电动车的因素很多,分析电动汽车本身的
    因素和目标客户个人特征的因素判断主要影响不同品牌汽车的销售的影响因素。
    (3)基于(1)(2)问的数据分析后的结果建立不同品牌电动汽车的客户挖掘模
    型并要求模型进行分析。同时分析 15 名目标客户对电动汽车的购买可能性。
    (4)综合考虑品牌满意度的提高和服务难度的提高来加大销售力度。基于前面的
    研究成果和提高满意度的思路,在挑选的 1 名没有购买电动汽车的客户,给出销售策
    略。
    (5)基于上述研究结果,向销售部分提出提高销售的销售策划建议。
  2. 问题分析
    3
    本文要解决的是基于三种不同品牌的销售策略问题。无论是合资品牌、自主品牌
    还是新势力品牌,针对每一品牌,最终都要给出其最合适的销售策略,探究哪些因素可
    能会对不同品牌电动汽车的销售有影响并且建立客户挖掘模型。问题一是先要对数据
    进行清洗与分析,处理好异常值和缺失值并对目标客户对于不同品牌汽车满意度的比
    较分析;而问题二是针对影响销售因素的分析,本文采用 BP 神经网络方法对经过问题
    一处理后的数据进行分析,BP 网络求解的具体算法思路如下:
    图 1 问题二的解决流程图
    问题三是在前两问的基础上建立客户挖掘模型并用该模型判断客户购买电动车的
    可能性。针对问题四基于神经网络建立潜在客户挖掘模型。在该模型过程中,需确定
    学习样本集,对预测模型进行训练,确定网络参数,进行预测仿真,检验网络;还需测
    试样本集,分别进行预测潜在购机人群的综合属性。问题五则是针对上述研究结果对
    相关部门提出销售建议,五个问题是一脉相承,层层递进的。
  3. 模型假设与符号系统
    3.1 模型的假设 (1)未婚情况下不会孕育小孩
    (2)假设客户在填写调研表时,B7 问题回答不准确以致出现误差数据的可能性
    远大于 B6,大于 B5 (3)与父母同住情况时家中的人口数包括父亲、母亲其中一位或两位同居以及与
    兄弟姐妹同住的情况
    (4)各品牌竞争相互独立
    (5)营销者在短时间内只能针对 a1 到 a8 中的某一个指标最多提升 5%的服务满
    意度
    (6)服务难度和满意度的提升只需考虑为整数的情况,即 1%,2%,3%,4%,5%
    3.2 符号系统
    本文部分符号说明如下:
    符号 意义
    因素集 x 矩阵每一列的均值
     j
    因素集 x 矩阵每一列的标准差
    购买电动汽车的客户数
    W 初始权值
    第 i 项指标提升 n%的效益
    Din
    第 i 项指标提升 n%的难度
    Pin
    第 i 项指标提升 n%后客户购车概率
     j Ein
    4
  4. 问题一数据处理与分析
    4.1 问题一数据的清洗 (1)对 a1~a8 进行异常数据筛选
    观察表格数据,发现 a1,a3,a5,a7 列存在异常数据,本文使用 excel 筛选出
    a1,a3,a5 超过 100 的数据,筛选出 a7 中过小的数据,将其剔除。
    (2)a 项数据使用箱图法筛选数据
    使用 matlab 箱图法寻找差距过大的数据,验证 excel 分析正确。Matlab 所得结果
    如下图(图中已经标注出了异常的四个数据):
    图 2 箱图法筛选 a 项异常数据结果
    结果图中展示横坐标为 a1~a8 项,纵坐标为附件 1 中数据,可以看出 a1,a3,
    a5,a7 项存在明显的异常数据。
    (3)B 项数据的筛选
    针对 B1~B17 组数据,本文通过 B5,B6,B7 的关系以及对 B13,B15,B16,B17 的逻 辑关系进行分析筛选并修改出异常数据。
    根据附件二可以得知,B5 等项代表的含义如下表:
    表 1:B 项主要代码所表示含义
    指标代码 含义
    B5 家庭人口数
    B6 婚姻家庭情况代号
    B7 家庭孩子个数
    B13 家庭年收入
    B15 家庭可支配年收入
    B16 全年房贷支出占比
    B17 全年车贷支出占比
    其中 B6 值为代码,有以下含义:1 表示“未婚,单独居住”,2 表示“未婚,与
    父母同住”,3 表示“已婚/同居无子女(两人世界)”,4 表示“已婚/同居无子女
    (与父母同住)”,5 表示“已婚,有小孩,不与父母同住”,6 表示“已婚,有小
    孩,与父母同住”,7 表示“离异/丧偶”,8 表示“其他”。
    5
    易知正常数据应该满足:
    由于题目中并未给出对年收入更为详细的相关数据,所以本文直接利用 matlab 将
    不满足上述不等式的数据剔除。
    B5,B6,B7 三组数据应满足某种数学关系,基于假设 1,假设 2,本文利用 matlab
    将不缺失的 B7 数据作为准确数据分类讨论,如下: (1)当 B7=1 时,应用 EXCEL 进行数据的筛选可以得到 B6 可取 1,2,3,4,5,6。 若 B6=1,2,3,4 即分别代表“未婚,单独居住”,“未婚,与父母居住”,“已婚/
    同居无子女(两人世界)”“已婚/无子女(与父母居住)”。证明是不可能有小孩
    的,所以不成立。此时,本文根据 B6,B7 的约束对表中数据进行修改。
    若 B6=5,即代表已婚,有小孩,不与父母同住。则可知 B5 为 3,即家庭 3 口
    人。据此再次对附件 1 中数据进行筛选。
    若 B6=6,即代表已婚,有小孩,与父母同住,则 B5(家庭人口数)可以为
    4,5,6,7,8,9。由附件 1 中数据可知当 B7 为 1,B6 为 6 时表格中 B5 只有 3,4,5,6 各
    值,可以得知 3 为异常值。本文把 B5 为 3 的数据改为 5,即家庭情况为一对夫妻孕育
    有一个孩子,孩子爷爷奶奶一起居住。
    (2)当 B7=2 时,应用 EXCEL 进行数据的筛选可以得到 B6 可取 1,2,3, 5,6。 若 B6=1,2,3 即分别代表“未婚,单独居住”,“未婚,与父母居住”,“已婚/
    同居无子女(两人世界)”。证明是不可能有小孩的,所以不成立。此时,本文根据
    B6,B7 的约束对表中数据进行修改。
    若 B6=5,即代表已婚,有小孩,不与父母同住。则可知 B5 为 4,即家庭 4 口
    人。据此再次对附件 1 中数据进行筛选。
    若 B6=6,即代表已婚,有小孩,与父母同住,则 B5(家庭人口数)可以为
    5,6,7,8,9,10。由附件 1 中数据可知当 B7 为 2,B6 为 6 时表格中 B5 只有 4,5,6 各
    值,可以得知异常值。本文把 B5 为 4 的数据改为 6,即家庭情况为一对夫妻孕育有两
    个孩子,孩子爷爷奶奶一起居住,据此修改附件。
    (3)当 B7=3 时,应用 EXCEL 进行数据的筛选 B6 仅可取 5 或 6 且仅只有 6 个
    数据。
    若 B6=5,即分别代表已婚,有小孩,不与父母同住。所以家庭人数(B5)只能
    为 5。此时,本文根据 B6,B7 的约束对表中数据进行修改。
    若 B6=6,即代表已婚,有小孩,与父母同住。附件 1 中 2 个数据均合理,此情况
    没有异常值。 (4)B7 值为未知时,根据附件 1 可知此时 B6 有近 99%的数据为未婚或没有子
    女的情况,由此可知缺失数据应该全为 0。此时将 B6,B7 作为标准数据填入表格,根
    据约束条件来调整 B5 的值,修改后的表格程序太长不做赘述,详见支撑文件。
    4.2 数据描述性统计分析
    本文主要针对满意度进行描述性分析,将产品 1,2,3 独立分析,分别求解品牌 1,
    品牌 2,品牌 3 以及 3 种综合的 a1~a8 项数据分析。本文主要从均值、方差、偏度、
    峰度四个方面进行描述性统计分析。
    4.2.1 均值的分析与评价
    均值是表示一组数据集中趋势的量数,它是反映数据集中趋势的一项指标。本文
    对 a 项满意度使用 matlab 进行均值处理后得到均值,通过 excel 可得均值如下图:
    16 17 13 15+ 13
    100
    B B B B B 
     
    图 3a 项各类满意度均值统计
    由上图各均值具体数据可知 3 种品牌综合得分为 77.5 左右,以及各项得分差距并
    不大,同时由图可知 a3 与 a5 的得分偏低。a3 反映了经济性(耗能与保值率)整体满
    意度得分,a5 为动力性表现(爬坡和加速)整体满意度得分。人们对电动汽车的经济
    性与动力性表现满意度不是很高,为提高销售策略,可以从这两方面入手。
    4.2.2 方差分析与评价
    方差可以衡量数据的离散程度,也可用来度量随机变量和其数学期望(即均值)之
    间的偏离程度。本文对 a 项满意度使用 matlab 进行均值处理后得到如下方差,通过 excel
    可得下图:
    图 4 a 项满意度的各品牌方差值
    由图可知,3 种品牌中品牌 3 的方差最大,说明 1964 位体验者对品牌 3 的评价褒贬
    不一,但是 3 种品牌中购买意愿的均值品牌 3 最大(为 9.4%),这说明品牌 3 的受众群
    体比较专一,若可以为品牌建立良好的客户挖掘模型,则品牌 3 可为公司带来巨大的利
    润收益。
    4.2.3 偏度的分析与评价
    偏度这一指标,又称偏斜系数、偏态系数,是用来帮助判断数据序列的分布规律性
    的指标。在偏度系数的绝对值较大的时候,最有可能的含义是“离群”数据离群的程度
    很高(很大或很小),亦即分布曲线某侧的拖尾很长。本文通过 matlab 得到满意度的各项
    数据的偏度,并绘制如下表格
    6
    图 5 各品牌满意度的偏度
    由图可知 3 种品牌及其总和的偏度分布在 0~-0.7 之间,品牌 1,2 的偏度较为集中,
    品牌 3 的偏度较为分散。偏度的分布说明还存在相当多的人对电动汽车存在顾虑,公司
    在挖掘客户的同时也应当着力消除人们的顾虑。
    4.2.4 峰度的分析与评价
    与偏度一样,峰度也是一个用于评价数据系列分布特征的指标。峰度越大,说明该
    数据系列中的极端值越多。在正态分布情况下,峰度系数值是 3。峰度的绝对值越大,
    说明数据越陡峭,峰度的绝对值大于 3,意味着数据严重不正态。对附件 1 修改后的数
    据进行分析,通过 matlab 可得到个品牌的峰度大概情况如下图
    图 6 各品牌满意度的峰度
    峰度的分布约有 84.3%的数据分布在 3.5~4 之间,比较接近 3,即偏离正态分布的
    程度不是很大,也就是说明了数据处理的有效性。
  5. 问题二的分析与求解
    5.1 问题二的分析思路
    问题二基于第一问清洗后的附件 1 给出的客户数据进行训练,随机选取数据,以
    90%作为训练集,10%作为数据集进行求解。使用 BP 神经网络对导入的数据进行训
    练,最终绝对值后归一化就是该指标的贡献率,分析即可得出各因素的影响程度高
    低。
    使用 MIV 算法即可计算各指标影响占比,BP 网络随机生成初始参数易造成局部最
    优和收敛速度慢,故利用遗传算法对其进行优化。
    5.2 BP 神经网络的建立与求解
    5.2.1 求解 BP 神经网络基本原理 7
    8
    本文采用的 BP 神经网络由三层组成: 输入层,隐含层与输出层。顾名思义:输入
    单元接受外部给的信号与数据;输出单元实现系统处理结果的输出;隐含单元处在输入
    和输出单元之间,从网络系统外部是无法观测到隐含单元的结构的。如下图。 图 7 BP 人工神经网络构造示意图
    除了上述三个处理信息的单元之外,神经元间的连接强度大小由权值等参数来决定。
    在处理时需要先让每个神经元代表对数据进行一次处理: 图 8 神经元处理数据示意图
    每个隐含层和输出层神经元输出与输入的函数关系为:
    其中 表示神经元 i 与神经元 j 之间连接的权重, 代表神经元 j 的输出, sigmoid
    是一个特殊的函数用于将任意实数映射到(0,1)区间。
    本文用一个完成训练的神经网络处理回归问题,每个样本拥有 n 个输入。相应地,
    神经网络拥有 n 个输入神经元和 1 个输出神经元。
    接着将 n 个特征依次送入输入神经元, 隐含层神经元获得输入层的输出并计算自
    己输出值, 输出层的神经元根据隐含层输出计算出回归值。
    然后开始训练神经网络,首先我们随机初始化连接权重 ,对某一训练样本进行一
    次前馈过程得到各神经元的输出。
    首先计算输出层的误差: Wij Oj Wij l j 1
    ( )
    1 l I O sigmoid I
    e
     

    9
    其中 代表神经元 j 的误差, 表示神经元 j 的输出, 表示当前训练样本的参考
    输出, sigmod′(x)是上文 sigmod 函数的一阶导数。
    计算隐含层误差:
    隐含层输出不存在参考值, 使用下一层误差的加权和代替 。计算完误差后
    就可以更新 和 j :
    其中λ是一个称为学习率的参数,一般在(0,0.1)区间上取值。每一个训练样本都
    会更新一次整个网络的参数。再额外设置训练终止的条件。
    最简单的训练终止条件为设置最大迭代次数,如将数据集迭代 1000 次后终止训练,
    本文此题解答时迭代了八百多次,准确度较高。
    单纯的设置最大迭代次数不能保证训练结果的精确度,更好的办法是使用损失函数
    作为终止训练的依据。损失函数可以选用输出层各节点的方差:
    为了避免神经网络进行无意义的迭代,我们通常在训练数据集中抽出一部分用作校
    验。当预测误差高于阈值时提前终止训练。
    5.2.2 BP 神经网络的实现
    对于 BP 神经网络的构建,本文在对 ANN 进行分析是从其三要素入手,即从网络拓
    扑结构、传递函数、学习算
  • 56
    点赞
  • 196
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值