2020华为杯数学建模B题-RON建模 赛后总结与分析
好久好久没有写博客了。。。挺累的,从二月份开始找暑期实习,接着在进行暑期实习,然后马不停蹄地进行秋招,现在总算结束实习,前两天又参加了华为杯数学建模竞赛,感觉接下来就会很轻松了,希望能好好休息休息。这次的比赛还是挺简单的,比起以前参加社会性质的比赛不同,这次不管是从题目还是从要求上都简单几个档次。
1. 数据清洗
说实话,我是挺费解的,看到论坛上好多人都在骂B题数据不对,数据质量差,其实来说,数据整体还算不错,只有几列问题比较大,而且那些列都是异常的大,实际上数值的大小对我们本题影响不大,而且那些异常列并不是大的混乱,他们一般要是异常,都是全部异常,其实这样子的话,信息量就很少了,他们对我们目标贡献值也就会很低,建模过程中特征直接去掉就可以了,毕竟就选了30个特征,原特征有300多个。
以上是针对一些讨论比较激烈的点的一些个人看法。
接下来针对几个讨论的比较多的点说一下个人看法
1. 首先是数据去空,去0,这里我们主要是看极大值极小值和0的交叉,如果0不在极限值或者极大值内,那么说明这是一个空数据,那我们要么是填充,要么是剔除,我们会发现里面有几列就异常了几个数据,我们可以认为这是测量故障,直接用平均值填充就可以了,但是有两列,他们都有16个点位异常,其实我们仔细观察一下数据,可以发现他们0出现的还算有规律,我猜测可能是那种周期性排气,同时我们也要直接对这几列数据做平均,发现为33 ,也就是313数据周围的312 314 数据异常不大,因此我们可以认为其是正确的。就不要进行操作了。这就是对空值的处理
2. 对于极大值和极小值,我觉得这里题目有些问题吧,我们即不能完全剔除,本来数据量就不多,再剔除就没了。。。 所以我采用限幅的办法,但是这里我还是做了一个骚操作,如果表3某一列都超幅值了,我们用表一周围的数据进行填充,这样可以保证我们数据引入的噪声最小。我觉得这么处理的话,模型训练下来mse会降低一些,说明是有效的。
3. 异常值筛选,没啥用吧这个规则。感觉可以忽略。按照我上面这么处理最大值和最小值,然后还有0,改剔除的剔除,改改的改,用这个规则几乎不删除数据,所以我觉得我前面处理的还是很有效果的。
我认为这个数据整体质量还算可以,有点小瑕疵,但是很明显是已经经过几道处理了。从括号有的中文有的英文就可以看出来,那里其实用一个正则就好了。。。毕竟常规操作。
2. 降维
这一步主要是用祖传算法,打比赛的那些降维方法一键降维,什么卡方,IV 都用上,然后再模型融合一下,再用lightGBM进行特征分裂筛选,就ok了,没啥好说的。晒特征,没什么技术含量,都是祖传代码。
3. 模型建立
这里我尝试了三个模型,lgb,线性回归,神经网络,结果是lgb也就比线性回归好了0.002。。。所以我就有点怀疑是不是我降维的时候特征选的太好了,全是线性的。神经网络差一些,mse 0.05。所以这里我们就用线性回归模型,原因嘛,当然是奥卡姆剃刀原则,同时线性回归参数直接获得模型权重,为后面两问打基础
4. 优化
这一问特别有意思,我也觉得是拉开差距的点吧。这道题我一看到的思路,就是用第三问的模型结果,因为他们是线性的,所以只要根据模型正负号,取极大值或者极小值就可以了。所以一开始我就是这么做的,确实可以找到一些3个变量,让损失降低30 以上。 但是这就带来了一个问题,如果我把所有操作变量都调到最优,我们会发现损失变成负的了。。。这里其实就暗示了我们一个问题。
就是我们的极值的取值范围需要再去寻找。
想了挺久的,在第三天的时候才想到,S的含量在5以下,因此我按照S进行数据幅值的确定新的极值的选定。这个地方思路是怎么来的呢?主要是画了S和RON的图像。

我们从这个图可以看出,在89 到90 这一段, 有一个变量严重影响着S和RON,让S和RON反方向变化。因此想到了用S去限制幅值。而且S最低是3.2,可能因为传感器最少就是3.2吧我觉得。
那么按照S进行建模,一看,损失有点大,到了0.9,感觉要凉凉,后来想到3.2 的幅值,就把预测结果小于3.2的改成3.2,然后一算,还可以,然后我们就这么做了。
接着这道题就迎刃而解了,我们用S去限制最大值和最小值,然后重用我们的第一个模型,这道题就做出来了,哈哈。
还有一个问题,就是如何定义降低了百分之30,我的理解是对整体样本求平均值,然后修改某一个变量,看看整体样本下降了多少。其实我还有一个理解,对某一个变量操作,计算出325个样本中有多少个下降了超过百分之30,我个人觉得都对吧,第二个我没有去验证,我用的是第一个。不过我觉得应该都对,结果出来应该差距不大吧。
5. 绘图
没什么好说的,按照线性回归的模型,依照我的第四问选出的操作变量和最大值最小值,进行操作,每次操作det个就可以了,然后对133号样本预测,画图就可以
6. 总结
怎么说呢,我觉得这是我参加的最简单的一次建模吧,可能因为有基础,参加过社会上的建模比赛,感觉出题方比较温和,但是看论坛有的老哥火气就比较大,还是要好好接受题目然后再去解决问题,而不是一味的向出题方撒气。
从题目来说,前三问问题不大,第四问是挺有意思的,可惜时间不够,其实这里可以研究几个变量对RON损失的变化,然后再结合S含量,建立非线性模型,但是时间不够了。很可惜。差不多絮絮叨叨就说了这些,主要说一下自己的处理方案和一些感悟吧。
2020华为杯数学建模B题-RON建模 赛后总结与分析的更多相关文章
- 第四届蓝桥杯 c/c++真题
第四届蓝桥杯 c/c++真题 <1>高斯日记 问题 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们 ...
- 蓝桥杯java历年真题及答案整理1~20.md
蓝桥杯java历年真题及答案整理(闭关一个月,呕心沥血整理出来的) 1 算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种.如:给定 A.B.C三个不同的字符,则结果为:A ...
- Python解答蓝桥杯省赛真题之从入门到真题(二刷题目一直更新)
蓝桥刷题 原文链接: https://github.com/libo-sober/LanQiaoCup Python解答蓝桥杯省赛真题之从入门到真题 不同字串 """ 一 ...
- python解无忧公主的数学时间编程题001.py
python解无忧公主的数学时间编程题001.py """ python解无忧公主的数学时间编程题001.py http://mp.weixin.qq.com/s?__b ...
- [CF1244C] The Football Season【数学,思维题,枚举】
Online Judge:Luogu,Codeforces Round #592 (Div. 2) C Label:数学,思维题, 枚举 题目描述 某球队一共打了\(n\)场比赛,总得分为\(p\), ...
- 华为开发者大会主题演讲:3D建模服务让内容高效生产
内容来源:华为开发者大会2021 HMS Core 6 Graphics技术论坛,主题演讲<3D建模服务使能3D内容高效生产>. 演讲嘉宾:华为消费者云服务 AI算法专家 3D建模服务(3 ...
- BMZCTF 2020祥云杯到点了
2020祥云杯到点了 下载附件得到三个word文档,我们打开第一个文档然后将隐藏文字显示出来 得到提示 我们查看属性应该就是日期了我们先把他记录下来 然后打开第二个文档 输入刚刚的密码 在第二个wor ...
- (更新中)"华为杯" 武汉大学21级新生程序设计竞赛 非官方题解
"华为杯" 武汉大学21级新生程序设计竞赛 https://ac.nowcoder.com/acm/contest/31620#question D.和谐之树 思路:披着线段树外皮 ...
- python+java蓝桥杯ACM日常算法题训练(一)10基础题
目录 1.简单的a+b 2.第一个HelloWorld程序! 3.三个数最大值 4.密码破译 5.母牛的故事 6.7.8.9.10 @(这里写自定义目录标题) 算法题训练网站:http://www.d ...
随机推荐
- Host 'controller' is not mapped to any cell
问题: Host 'controller' is not mapped to any cell 解决: 执行:nova-manage cell_v2 simple_cell_setup 再次检查:
- 牛客网数据库SQL实战解析(41-50题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- Windows servers 2008 环境下, DHCP的搭建。
日常上网,客户端的主机都是使用DHCP动态分配的,家用的路由器就是内置了一个DHCP服务,所以每次分到的IP地址基本的都是192.168.x.x/24 网段的.不过家用的路由器最多只能连十台左右.那么 ...
- Linux 部署java web 项目,验证码图片不显示文字问题
系统上线后,在获取验证码接口时,获取的验证码图片上没有对应的验证码数字,经过验证后,是由于Linux缺少字体造成的. 正常我们也可以将window的字体直接上传到linux服务器上,window的字体 ...
- Orleans 知多少 | Orleans 中文文档上线
Orleans 简介 Orleans是一个跨平台框架,用于构建健壮,可扩展的分布式应用程序 Orleans建立在.NET开发人员生产力的基础上,并将其带入了分布式应用程序的世界,例如云服务. Orle ...
- 树(Tree)解题总结
定义 树是一种抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合.它是由 n(n>0) 个有限节点组成一个具有层次关系的集合.. 二叉搜索树(Binar ...
- Bitmap转ImageSource
bitmap to bytes Bitmap b = new Bitmap( "test.bmp "); MemoryStream ms = new MemoryStream(); ...
- java初探(1)之登录补充
在登录之后,可能服务器是分布式的,因此不能通过一个本地的session来管理登录信息,导致登录的信息不能传递,即在这台服务器上可以得到用户登录信息,但在那台就得不到.因此,需要设置分布式的sessio ...
- 8svg 自定义全局组件
0.https://www.npmjs.com/package/vue2-svg-icon 直接使用vue2-svg-icon插件 .如果不使用,就使用下面用法 注意:用阿里图标时候,最好都选择#ff ...
- vue init深度定制团队自己的Vue template
大家都知道,使用vue-cli可以快速的初始化一个基于Vue.js的项目,全局安装脚手架之后,你可以通过vue list命令看到官方提供的5个模板 vue list 当开发一个独立项目的时候,使用官方 ...