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

本文主要是介绍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:15316if(Y_pre(i,1)>=0.5)Y_new(i,1)=1;elseY_new(i,1)=0;end
end
counts=0;
for i=1:15316if(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:15316if(Y_tree_pre(i,1)>0.5)Y_tree_pre(i,1)=1;elseY_tree_pre(i,1)=0;end
end
c1=0;
for i=1:15316if(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:15316y_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;elseY_final(i,1)=0;end
end
c=0;
for i=1:15316if(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] = 1else: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名片即可

这篇关于2019年认证杯SPSSPRO杯数学建模C题(第一阶段)保险业的数字化变革全过程文档及程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/597834

相关文章

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

uva 10014 Simple calculations(数学推导)

直接按照题意来推导最后的结果就行了。 开始的时候只做到了第一个推导,第二次没有继续下去。 代码: #include<stdio.h>int main(){int T, n, i;double a, aa, sum, temp, ans;scanf("%d", &T);while(T--){scanf("%d", &n);scanf("%lf", &first);scanf

uva 10025 The ? 1 ? 2 ? ... ? n = k problem(数学)

题意是    ?  1  ?  2  ?  ...  ?  n = k 式子中给k,? 处可以填 + 也可以填 - ,问最小满足条件的n。 e.g k = 12  - 1 + 2 + 3 + 4 + 5 + 6 - 7 = 12 with n = 7。 先给证明,令 S(n) = 1 + 2 + 3 + 4 + 5 + .... + n 暴搜n,搜出当 S(n) >=

uva 11044 Searching for Nessy(小学数学)

题意是给出一个n*m的格子,求出里面有多少个不重合的九宫格。 (rows / 3) * (columns / 3) K.o 代码: #include <stdio.h>int main(){int ncase;scanf("%d", &ncase);while (ncase--){int rows, columns;scanf("%d%d", &rows, &col

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG