2019年认证杯SPSSPRO杯数学建模C题(第一阶段)保险业的数字化变革全过程文档及程序

2019年认证杯SPSSPRO杯数学建模

基于 CART 决策树和 SVR 的客户续保概率预测

C题 保险业的数字化变革

原题再现:

  车险,即机动车辆保险。保险自身是一种分散风险、消化损失的经济补偿制度,车险即为分散机动车辆在行驶过程中可能发作的未知风险和损失的一种保障机制。
  目前国际车险分为国家强制的交强险和商业险,商业险中的根本险种有第三者责任事故险和车辆损失险。除此之外还有玻璃独自破碎险、车上人员责任险、全车盗抢险、自燃损失险和不计免赔特约条款等附加险种。
  近年来,国际保险行业稳步开展,机动车辆保险在我国的财险保费中所占比重最大,以千亿元计。并且,由于我国汽车保有辆的继续增加和相关车险的政策出台,投保率也呈继续上升趋向。
  车险一般可占财险公司业务的 70% 到 80%,所以车险市场历来是财险公司的兵家必争之地。以往,财险公司为了赢得市场,往往采取低价、折扣来争抢客户。但是激烈的市场竞争也带来了利润率的下降,甚至有些企业在亏本经营。大多数车企为了提高利润率开始重视承保车辆的质量。重投保车辆质量的做法,其实是险企科学发展的重要体现,是市场竞争下的企业合理行为。
  中国目前的车险费率制度,大多数符合“从车主义”。即车险保费多少,主要取决于这辆车本身的各项情况,如车的购置价、座位数、排量、购车年限等,根据这些数据计算出一个基本的车险保费价格,再根据这辆车的上年理赔次数来打不同的折扣。这就导致了中国的车险定价模式非常的单调,相似情况的车型,保费也都差不多。
  可以预见未来车险行业的几大发展趋势:
  1. 车险价格与驾驶行为密切相关
  未来的车险定价将逐渐转变为“从人主义”。车险的定价因素将直接与驾驶人的驾驶习惯与行驶里程挂钩,通过驾驶行为来判定车险价格,可能会使车险由原来的一年买一次变成可以一个月买一次。一个具有良好驾驶习惯的车主,可能只需要支付原本保费的 30% 左右,而驾驶习惯不佳的车主,则会在原本保费的基础上继续上涨。
  2. 同价位车型车险价格完全不同
  国内传统的汽车保险定价,通常是以车型和其购置价为主要依据。未来中国车险业,同样的一款车,不同的人开,保费价格会完全不同。这个不同可能是取决于投保人本身的驾驶行为,还可能会以投保人本身的年龄、职业、家庭状况等信息为标准。
  信息时代的到来,为车险企业提供了一个更加有力的武器,可以通过数字化技术来更加精准地了解客户,制定营销和服务方案。
  第一阶段问题:
  1. 请建立合理的数学模型,对附件一中提供的客户进行精准画像,给出客户的续保概率。
  2. 请针对不同的客户设计不同的优惠和福利方案,以提高续保概率。

整体求解过程概述(摘要)

  中国未来车险行业的发展趋势为车险价格与驾驶行为密切相关以及同价位车型车险价格完全不同。在这种情况下,如何对客户进行精准画像十分重要。本文针对题中所给数据信息进行数据挖掘,设计了一套较为科学的预测客户续保概率的模型,并且对提高客户续保概率提出了合理建议。
  针对问题一,我们首先对附件中所给数据作初步处理,包括数据清洗和数据预处理两步,剔除部分错误和缺失数据,并利用卡方检验分析各属性与客户是否续保的相关性,得到相关性最强的前 11 个属性组成属性集。然后,将数据按 3:1 划分为训练集和测试集,先利用基于基尼指数的 CART决策树模型进行分析,得到了每个客户的续保概率,并以 0.5 作为阈值对结果进行划分,在测试集上的准确率为 81.41%;再利用支持向量回归(SVR)模型,同样得到了每个客户的续保概率,取同样的阈值,在测试集上的准确率为 81.88%。最后,利用多项式回归和决策树模型分别对两个弱分类器的结果做模型融合,得到测试集的准确率分别为 82.00%和 86.18%,多项式回归对多个模型的融合效果不佳,但决策树模型使结果有了较大的提升,测试集共 15316 行数据,预测正确的有 13282 行,准确率提升了 5%左右,基本上认为预测的结果符合实际情况。
  针对问题二,我们利用问题一中卡方检验计算出来的属性相关性,得到对客户续保概率影响最大的几个属性,针对这几个影响较大的属性,我们对保险公司提出了探索车友俱乐部、拓宽销售渠道、对未出险客户提供更加优质的服务等合理建议。

问题分析:

  问题一的分析
  问题一需要我们建立数学模型,分析客户的续保概率与客户的各个属性间的关系。
  首先,我们对数据进行处理,包括数据的清洗、预处理以及相关性分析。数据的清洗包括删除不一致的数据以及删除某个属性中存在的极少数的缺失值;数据的预处理包括属性规约和数量规约,属性规约是删除对后续结果影响不大客户的属性以及缺失值存在过多的属性,数量规约包括相似数据的简并、数据类型的转换以及连续属性离散化。在对数据进行处理之后,我们运行卡方检验对每个属性和客户是否续保进行相关性分析,选取得分前 11 名的属性组成因变量集,并以该属性集中各因素为,作为后续模型建立的基础。
  在对数据处理完成之后,我们首先构建了 CART 回归决策树模型,我们从数据中随机选取了 75%的数据作为训练集,25%的数据作为测试集,得到了每个客户的续保概率;为了了解各模型的准确率,我们再次构建了支持向量回归(SVR)的模型,同样将 75%的数据作为训练集,25%的数据作为测试集,得到了每个客户的续保概率,经过对比后发现相较于 CART 决策树,SVR 的对于预测客户续保概率有更高的准确率;
  为了保证预测的客户续保概率的精度,继续提高预测的准确率,我们采取经典的模型融合方法。为了保证模型融合的有效性(即单模型的高精度与模型之间的差异性),我们对以上两种不同模型进行模型融合,得到每个客户的续保概率,准确率相较于 CART决策树以及 SVR 都有了提升。
  问题二的分析
  问题二需要我们针对不同的客户设计不同的优惠和福利方案,以提高续保概率。
  首先,我们利用问题一中利用卡方检验计算出来的属性相关性,得到对客户续保概率影响最大的因素,针对这些影响因素,我们对如何提高不同客户的续保概率提出了合理的建议。

模型假设:

  1. 假设数据的来源是准确可靠的。
  2. 不考虑保险公司伪造数据、客户篡改数据的情况。
  3. 假设影响客户是否续保的因素只考虑附件中的数据所给出的因素。

论文缩略图:

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

%% 决策树回归
% 读取数据 61266 划分为 45950/15316 为训练集和测试集
X_train = all(1:45950,1:11);
Y_train = all(1:45950,12);
rtree = fitrtree(X_train,Y_train);
X_test = all(45951:61266,1:11);
Y_test = all(45951:61266,12);

Y_pre = predict(rtree,X_test);
Y_new = zeros([15316,1]);
for i=1:15316
 if(Y_pre(i,1)>=0.5)
 Y_new(i,1)=1;
 else
 Y_new(i,1)=0;
 end
end
counts=0;
for i=1:15316
 if(Y_new(i,1)==Y_test(i,1))
 counts=counts+1;
 end
end
pre_accu = counts/15316;
%% 多模型融合
% 决策树融合
X = [Y_pre,ypre];
Y = Y_test;
new_tree = fitrtree(X,Y);
Y_tree_pre = predict(new_tree,X);
for i=1:15316
 if(Y_tree_pre(i,1)>0.5)
 Y_tree_pre(i,1)=1;
 else
 Y_tree_pre(i,1)=0;
 end
end
c1=0;
for i=1:15316
 if(Y_tree_pre(i,1)==Y_test(i,1))
 c1=c1+1;
 end
end
middle_accu = c1/15316;
% 利用工具箱/多项式拟合
cftool
y_final = zeros([15316,1]);
Y_final = zeros([15316,1]);
for i=1:15316
 y_final(i,1) = -0.04314+0.9949*Y_pre(i,1)+0.3132*ypre(i,1)-0.5478*Y_pre(i,1)...
 *Y_pre(i,1)-0.124*Y_pre(i,1)*ypre(i,1)+0.4964*ypre(i,1)*ypre(i,1);
 if(y_final(i,1)>0.5)
 Y_final(i,1)=1;
 else
 Y_final(i,1)=0;
 end
end
c=0;
for i=1:15316
 if(Y_test(i,1)==Y_final(i,1))
 c=c+1;
 end
end
final_accu = c/15316;
%python
# 库函数
import xlrd
import numpy as np
from sklearn.svm import SVR
from sklearn.externals import joblib
# from sklearn.feature_selection import SelectKBest
# from sklearn.feature_selection import chi2
# 读取数据 61266 划分为 45950/15316 为训练集和测试集
docs = open('y_pre.txt', 'w')
data = xlrd.open_workbook('C:/Users/Administrator/Desktop/认证杯/附件一_数据清洗+预
处理 2.xlsx')
sheet = data.sheet_by_name('数据表')
X_train = np.zeros([45950, 19], dtype=float)
Y_train = np.zeros([45950, 1], dtype=float)
X_test = np.zeros([15316, 19], dtype=float)
Y_test = np.zeros([15316, 1], dtype=float)
for i in range(45950):
 X_train[i] = sheet.row_values(i+1, 1, -1)
Y_train = sheet.col_values(20, 1, 45951)
for i in range(15316):
 X_test[i] = sheet.row_values(i+45951, 1, -1)
Y_test = sheet.col_values(20, 45951, 61267)
'''
# 卡方检验
X = np.zeros([61266, 19], dtype=float)
Y = np.zeros([61266, 1], dtype=float)
for i in range(61266):
 X = sheet.row_values(i+1, 1, -1)
Y = sheet.col_values(20, 1, 61267)
model1 = SelectKBest(chi2, k=10) # 选择 k 个最佳特征
print(model1.fit_transform(X, Y)) # X 是特征数据,Y 是标签数据,该函数可以选择出 k 
个特征
print(model1.scores_)
print(model1.pvalues_)
'''
# 训练模型并预测
clf = SVR(gamma='scale', C=1.0, epsilon=0.2)
clf.fit(X_train, Y_train)
Y_pre = clf.predict(X_test)
# 保存模型
joblib.dump(clf, 'clf.pkl')
# 读取模型
# clf = joblib.load('clf.pkl')
# 结果分析
for i in range(15316):
 print(Y_pre[i], file=docs)
 if Y_pre[i] >= 0.5:
 Y_pre[i] = 1
 else:
 Y_pre[i] = 0
counts = 0
for i in range(15316):
 if Y_pre[i] == Y_test[i]:
 counts = counts + 1
print(counts)
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/312638.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PPT插件-大珩助手-修改素材名称及搜索功能演示

修改素材名称及搜索功能演示 大珩助手的素材库,支持修改素材的名称,支持动态查找素材,删除素材 移动素材到其他分类 软件介绍 PPT大珩助手是一款全新设计的Office PPT插件,它是一款功能强大且实用的PPT辅助工具,支持…

服务网格 Service Mesh

什么是服务网格? 服务网格是一个软件层,用于处理应用程序中服务之间的所有通信。该层由容器化微服务组成。随着应用程序的扩展和微服务数量的增加,监控服务的性能变得越来越困难。为了管理服务之间的连接,服务网格提供了监控、记…

使用阿里云镜像创建一个Spring Boot项目

由于现在的idea在创建项目时已经不支持Java8版本了,如果我们还想用8版本,可以使用阿里云镜像创建。所以得改变原有的地址为:https://start.aliyun.com springboot版本选择2开头的任意版本的。 1.配置6个依赖 2.改变下载依赖地址 下载依赖默认…

语境化语言表示模型-ELMO、BERT、GPT、XLnet

一.语境化语言表示模型介绍 语境化语言表示模型(Contextualized Language Representation Models)是一类在自然语言处理领域中取得显著成功的模型,其主要特点是能够根据上下文动态地学习词汇和短语的表示。这些模型利用了上下文信息&#xf…

Linux ----冯诺依曼体系结构与操作系统

目录 前言 一、冯诺依曼体系结构 二、为什么选择冯诺依曼体系结构? 三、使用冯诺依曼结构解释问题 问题1: 问题2: 四、操作系统 1.操作系统是什么 2.为什么需要操作系统 3.操作系统怎样管理的 4.如何给用户提供良好环境 五、我们是怎样调用系…

【冥想X理工科思维】场景6:我被调岗了…

冥想音频合集:职场解压冥想音频 压力场景: 领导把我调换到并不喜欢也不擅长的岗位,如何借助冥想面对职业发展或公司变动时的不确定性和焦虑? 点击看大图: 详细说明: 在面对工作中的挑战时,制定一…

shp文件与数据库(创建shp文件)

前言 前面把shp文件中的内容读取到数据库,接下来就把数据库中的表变成shp文件。 正文 简单的创建一个shp文件 暂时不读取数据库的表,先随机创建一个shp文件。既然是随机的,这就需要使用到faker这个第三方库,代码如下。 impor…

mysql的gtid主从复制,从库误操作更新操作,

一:查看mysql的从库,发现sql进程状态 “no”.提示执行传输过来的binlog日志,执行失败, 二:查看主库对应的二进制日志的gtid地方。插入一些数据。 # mysqlbinlog --base64-outputdecode-rows -v mysql-bin.000001 |gre…

CSS 选择器全攻略:从入门到精通(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

HackTheBox-Keeper

OpenVPN连接 连接上HackTheBox! 同时找到这个靶机,进行join!分配的靶机的地址位10.10.11.227! 信息收集 nmap -sT --min-rate 10000 -p- 10.10.11.227 开放端口为22和80端口 服务版本和操作系统信息探测: nmap -s…

6.3、SDN在云计算中的应用

目录 一、SDN概念 1.1、传统网络机制 1.2、SDN网络机制 1.3、二者区别 1.4、SDN架构 二、云数据中心 2.1、公有云环境特点 2.2、两大挑战 2.3、云数据中心引入SDN技术解决两大挑战 三、SDN云计算解决方案 3.1、SDN云计算解决方案之控制平面openflow协议 3.1.…

记录一下Canal的错误,主要是top.javatool.canal.client.util下的StringConvertUtil引起的

项目场景: 提示:这里简述项目相关背景: 由于数据库的一个localdatetime字段是空的, 然后修改数据库数据同步canal的时候报了这个错误: Caused by: java.lang.IllegalArgumentException: Can not set java.time.LocalD…

【PHP】PHP实现与硬件串口交互,接收硬件发送的实时数据

一、前言 目的:借助虚拟串口软件(VSPD)模拟硬件串口发送数据,使用PHP语言实现接收硬件发送的数据。 我这里的需求是连接天平,把天平的称量数据实时的传送到PHP使用。 使用工具:vspd串口调试工具 使用语…

华为网络设备 通过路由器子接口 Dot1q终结子接口实现跨VLAN通信

(二层交换机直接跳过三层交换价接入路由器时才使用该配置。推荐使用三层交换机建立VLANIF配置更简洁明了。如果VLAN较少可直接配置;路由器接口,一个物理接口一个VLAN) S1配置 vlan batch 2 to 3interface GigabitEthernet0/0/1port link-type trunkpor…

ChatGPT为教育发展带来便利与机遇,但也有伦理风险

2022年11月,美国人工智能研究实验室Open AI推出全新聊天机器人模型ChatGPT。凭借出色的生成语言文本能力,ChatGPT在上线后短短5天内便获得100百万用户,2个月的时间,月用户突破1亿,成为史上增长最快的“现象级”应用。作…

2022-ECCV-Explaining Deepfake Detection by Analysing Image Matching

一、研究背景 1.大量工作将深度伪造检测作为一个二分类任务并取得了良好的性能。 2.理解模型如何在二分类标签的监督下学习伪造相关特征仍难是个艰巨的任务。 3.视觉概念:具有语义的人脸区域,如嘴、鼻子、眼睛。 二、研究目标 1.验证假设,并…

MySQL 按日期流水号 条码 分布式流水号

有这样一个场景,有多台终端,要获取唯一的流水号,流水号格式是 日期0001形式,使用MySQL的存储过程全局锁实现这个需求。 以下是代码示例。 注:所有的终端连接到MySQL服务器获取流水号,如果获取到的是 “-1”…

【Python】编程练习的解密与实战(三)

​🌈个人主页:Sarapines Programmer🔥 系列专栏:《Python | 编程解码》⏰诗赋清音:云生高巅梦远游, 星光点缀碧海愁。 山川深邃情难晤, 剑气凌云志自修。 目录 🪐1. 初识Python &a…

.NET 反射的介绍和简单应用

什么是反射? 反射就是动态发现类型信息的能力。它帮助程序设计人员在程序运行时利用一些信息去动态地使用类型,这些信息在设计时是未知的,这种能力类似于后期绑定。反射还支持的更高级的行为,能在运行时动态创建新类型&#xff0…

kylin4.0.3升级问题

话接前文: kylin升级(3.0.1->kylin-4.0.3)-CSDN博客文章浏览阅读941次,点赞29次,收藏12次。原本的cube太多了,换其他OLAP数据库太麻烦。相比之下,升级是一个很好的选择(官网有说明内存降低和构…