好久好久没有写博客了。。。挺累的,从二月份开始找暑期实习,接着在进行暑期实习,然后马不停蹄地进行秋招,现在总算结束实习,前两天又参加了华为杯数学建模竞赛,感觉接下来就会很轻松了,希望能好好休息休息。这次的比赛还是挺简单的,比起以前参加社会性质的比赛不同,这次不管是从题目还是从要求上都简单几个档次。

1. 数据清洗

2.降维

3.模型训练

4.优化

5.画图

6.结论

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建模 赛后总结与分析的更多相关文章

  1. 第四届蓝桥杯 c/c++真题

    第四届蓝桥杯 c/c++真题 <1>高斯日记 问题 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们 ...

  2. 蓝桥杯java历年真题及答案整理1~20.md

    蓝桥杯java历年真题及答案整理(闭关一个月,呕心沥血整理出来的) 1 算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种.如:给定 A.B.C三个不同的字符,则结果为:A ...

  3. Python解答蓝桥杯省赛真题之从入门到真题(二刷题目一直更新)

    蓝桥刷题 原文链接: https://github.com/libo-sober/LanQiaoCup Python解答蓝桥杯省赛真题之从入门到真题 不同字串 """ 一 ...

  4. python解无忧公主的数学时间编程题001.py

    python解无忧公主的数学时间编程题001.py """ python解无忧公主的数学时间编程题001.py http://mp.weixin.qq.com/s?__b ...

  5. [CF1244C] The Football Season【数学,思维题,枚举】

    Online Judge:Luogu,Codeforces Round #592 (Div. 2) C Label:数学,思维题, 枚举 题目描述 某球队一共打了\(n\)场比赛,总得分为\(p\), ...

  6. 华为开发者大会主题演讲:3D建模服务让内容高效生产

    内容来源:华为开发者大会2021 HMS Core 6 Graphics技术论坛,主题演讲<3D建模服务使能3D内容高效生产>. 演讲嘉宾:华为消费者云服务 AI算法专家 3D建模服务(3 ...

  7. BMZCTF 2020祥云杯到点了

    2020祥云杯到点了 下载附件得到三个word文档,我们打开第一个文档然后将隐藏文字显示出来 得到提示 我们查看属性应该就是日期了我们先把他记录下来 然后打开第二个文档 输入刚刚的密码 在第二个wor ...

  8. (更新中)"华为杯" 武汉大学21级新生程序设计竞赛 非官方题解

    "华为杯" 武汉大学21级新生程序设计竞赛 https://ac.nowcoder.com/acm/contest/31620#question D.和谐之树 思路:披着线段树外皮 ...

  9. python+java蓝桥杯ACM日常算法题训练(一)10基础题

    目录 1.简单的a+b 2.第一个HelloWorld程序! 3.三个数最大值 4.密码破译 5.母牛的故事 6.7.8.9.10 @(这里写自定义目录标题) 算法题训练网站:http://www.d ...

随机推荐

  1. centos7下的redis集群模式

    1.先安装好单机版的redis 2.Reids安装包里有个集群工具,要复制到/usr/local/bin里去 cd /home/redis/redis-4.0./src ls - cp redis-t ...

  2. github Repository not found 解决办法

    git pull的时候遇到下面的报错. remote: Repository not found fatal: repository 'https://github.com/MyRepo/projec ...

  3. win10中搭建Linux子系统

    win10自带的Linux子系统,简称WSL(Windows Subsystem for Linux).优点是打通了Linux系统和windows系统,改变了传统虚拟机/双系统造成的两个系统相互隔绝的 ...

  4. Spark on Yarn运行时加载的jar包

    spark on yarn运行时会加载的jar包有如下: spark-submit中指定的--jars $SPARK_HOME/jars下的jar包 yarn提供的jar包 spark-submit通 ...

  5. 操作系统-存储管理(5)IA-32/Linux的地址转换

    IA-32/Linux按字节编址:在保护模式下,IA-32采用段页式虚拟存储管理方式,存储地址采用逻辑地址.线性地址和物理地址来进行描述. 逻辑地址由48位组成,包含16位段选择符(高13位为段表项的 ...

  6. 问卷星的数据导入spss后变量乱码如何处理?

    一般是字符编码问题.打开一个空的SPSS数据集,选择[编辑]-[选项]-[常规]-[数据和语法的字符编码].修改下当前的编码系统,原来是第一种就换成第二种,原来是第二种就换成第一种,打开一个数据再看看 ...

  7. fprintfAndFscanf简单操作

    C语言fscanf和fprintf函数的用法详解(格式化读写文件)(代码转载) #include<stdio.h> #define N 2 struct stu{ char name[10 ...

  8. 力扣Leetcode 11. 盛最多水的容器

    盛最多水的容器 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0).找 ...

  9. e3mall商城的归纳总结1之项目的架构

    首先来谈谈e3mall商城,e3mall商城是黑马推出一个学习的项目,前身是淘淘商城.两个用的技术差不多.,但由于后期加了一些新技术,更名为e3mall商城.本商城为分布式商城,主要用到的技术使mav ...

  10. [ASP.NET Core开发实战]基础篇05 服务器

    什么是服务器 服务器指ASP.NET Core应用运行在操作系统上的载体,也叫Web服务器. Web服务器实现侦听HTTP请求,并以构建HttpContext的对象发送给ASP.NET Core应用. ...