比赛时间
第一阶段:北京时间2019年4月19日下午20:00时——4月22日下午20:00时
第二阶段:北京时间2019年5月17日下午20:00时——5月20日下午20:00时
Preface
被数学老师叫去让我组织参加这个比赛,经历几个月最终募集好了三人团队~~(绝对不是我没有朋友,肯定是没什么人想参加,嗯~~
今天发布了第二阶段证书的电子版,顺便写下了这篇博文
我干了啥
充当队里的辣鸡程序猿,并使用了世界上最好的语言 Python 完成两场比赛的代码编写
作为没有经过任何培训的一个专科(高二)组,基本很难和本科组、研究生组比肩,嘛,爽就完事了(
Detail
队号: 1360
相关地址:
Source: https://github.com/iyume/code-tzmcm-12th
WebPage: https://code.iyume.cc
论文已在数学中国开放下载
最终成绩
第一阶段
分数:
55
排名:
2075/3971
简短评语: 排版有些问题,缺少对数据的预处理
第二阶段
分数:
41
排名:
1311/1653
简短评语: 文章结构不完整,摘要分析了文章思路,与正文契合点少,还需要突出自己的研究基础、主要方法、重要成果和创新点,这样更为突出论文成果;正文对赛题的分析不足,分析内容偏离赛题要求,对模型的可靠性、实用性分析不足。
一些感想
别去搞建模!别去搞建模!别去搞建模!(逃
嗯…帮助还是挺大的,说实话当初不知道自己可以做到这个水平(反正还是个菜鸡就是了
搞建模可能真的会秃头的吧,当时两个阶段的比赛时间都是开始半天学校,然后 1 天半蹲别人家里,剩下 1 天还要拿着笔记本去学校拼死肝代码(
比赛里几乎每天都是半夜 2 点睡的(当然指我咯
一开始选择的是 D 题,因为 D 题是专门为专科组设计的,理论上
难度较低,是一道双向十字路口车流分析建模的问题,其实根本就看不懂啦,让人感觉这究竟是不是给人做的,然后本人发现 C 题是一道大数据,于是果断换了 C 题
C 题主要就是人物画像,在车险行业中,绘出人物画像并将用户分类,还有利用卡方检验设计问卷等等
咱的解题方法
Introduction
大数据作为时下最火热的IT行业的词汇,随之而来的数据仓库、数据安全、数据分析、数据挖掘等等围绕大数据的商业价值的利用逐渐成为行业人士争相追捧的利润焦点。随着大数据时代的来临,大数据分析也应运而生。
——百度百科
数据分析的几个步骤
- Data Preprocessing(数据预处理)
- Data Mining(数据挖掘)
- Data Prediction(数据预测)
大数据分析与数学统计的区别有
- 大数据分析不使用抽样
- 大数据分析侧重分析所有变量的相关性,而不再根据背景科学进行假设检验
Data Preprocess
- 若某列缺失值较少,则直接删除对应行
- 若某列缺失值较多,直接按照现有比例进行
df.fillna
仔细考虑过到底该怎么填,虽然可能并不可靠,但也没别的好的替代方案
- 针对数字,计算特征的中值、均值,将其替换为缺失值
- 数据量足够大的前提下,对目测不可靠的列,直接
df.drop
删除列 - 对时间列进行标准(格式)化
- 将
是
、否
分别替换为1
和0
方便计算 - 特定行具有特定特征的空值(错误值),直接
df.drop
删除行
第一阶段
题目概述:
计算续保概率
-
首先计算实际续保概率,也就是不考虑任何因素影响下,所有用户总的续保概率
-
再对各列进行分析,求出理论续保概率
- 计算各列总的续保概率
x_n
- 将用户分为几个近于均等的区间然后计算每个区间的续保概率
- 将每个列得到的所有续保概率求标准差
w_n
- 计算各列总的续保概率
-
最后以
w_n
作为权重、x_n
代入加权平均数的计算公式求出了理论续保概率 -
实际续保概率与理论续保概率相差
0.0054
,纳入误差允许范围,至此解题完毕
第二阶段
题目概述:
求出三个可靠性最大的列(即用户最愿意提供的信息)
-
建立
Cronbach α
信度系数 -
公式
α=(k/(k-1))*(1-(∑Si^2)/ST^2)
- K:其中一个属性分类的种类总数
- Si^2:一个属性中第 i 项的方差
- ST^2:该属性的方差
其实这里搞砸了,计算并多次校验后出来信度的不仅全是负值,而且绝对值全位于 0 - 0.3 这个区间,而信度检验需要在 0.7 - 0.9 之间才是高信度的表现,当时已经无回天之力了(时间仅剩 2 小时),干脆死马当活马医,将计算出来的错误值取绝对并放大 3 倍来当数值用(
- 揣揣不安看别人论文时,竟然发现咱的信度系数排列与别队差异不大,嘛,也算是运气嘛(
没啥好讲的了,放两张优秀奖截图
后记
证书给寄到别的学校了qwq…