例说高职数学建模常见的数据预处理方法
2019-04-15段峰周同
段峰 周同
例说高职数学建模常见的数据预处理方法
段峰 周同
(铜陵职业技术学院基础部,安徽铜陵,244061)
数据预处理是确保数学建模质量必不可少的步骤,因此在数学建模课程学习过程中应得到重点关注。对竞赛赛题的阐述结果表明高职学生在数学建模过程中常见的数据预处理方法主要有数据清理、数据的归一化处理以及建模对象的量化等。
数据预处理;数据清理;多项式拟合;归一化处理;量化。
近几年来,我国高职院校数学建模竞赛相关活动逐步兴起,逐步规范。全国数学建模竞赛热度有增无减,各类建模竞赛活动此起彼伏,仅2018年全国大学生数学建模竞赛,专科组参赛队就达到3555队。当下,高职院校的高等数学课程要出彩,数学建模是为数不多的可选项之一。经过近几年的数学建模教学培训活动,不得不承认,数据处理在高职数学建模活动中是重头戏。作为指导教师,要有意识地去总结常用的数据处理方法,培训培养学生的数据处理能力和预处理能力。
数学建模问题中给出的数据,大多来自生产实践或实验,当数据量比较大时,部分出现明显记录错误或者缺失是正常的。但在数学建模过程中,为了提高建模的质量,不仅要保证数据的准确性、完整性、科学性,还要对数据格式进行处理,以保证数据的可读性。因此,在进行数学建模之前,需要对所给数据进行预处理。下面通过举例,来说明高职数学建模过程中常见的数据预处理方法。
1. 数据清理
数据清理是指通过填写缺失的值、光滑噪声数据、识别或删除离群点并解决不一致性来“清理”数据。使建模数据达到以下目标:格式标准化,异常数据清除,错误纠正,重复数据的清除[1]等。
1.1 修改有误数据
数学建模题目附件数据如果有明显错误或缺失,一般情况下,通过浏览、比较、查阅资料、逻辑推理等等常规分析手段是可以找出差错的。如2017年全国大学生数学建模竞赛C题《颜色与物质浓度辨识》[2],在处理数据的过程中,发现data1.xls中关于奶中尿素的数据明显有误,即赛题原附件data1.xls中单元格B80中的数据5应为500,单元格B81中的500应为1000。在进行数据处理和模型计算时,需要按此修正值进行操作。具体见表1:
表1-1 奶中尿素浓度随颜色变化情况表
项目浓度(ppm)BGRHS 奶中尿素水1181361392537 5001171371392741 10001081361382854 15001101361392652 20001081401422860 水1201361382633 51191401422640 5001111391422755 15001071361392658 20001051361372858
1.2 补全缺失数据
2016年全国大学生数学建模竞赛D题《风电场运行状况分析及优化》。在数据的整理过程中,我们发现附件1所给出的数据存在部分缺失或错误,比如2015年3月30日的数据出现了遗漏,2015年3月15日的数据出现了明显的错误,具体情况如下:
表1-2 风电场日实际发电曲线统计表(数据缺失的情况)
2015年3月30日功率单位:MW 风速单位:m/s 时间功率风速时间功率风速时间功率风速时间功率风速 5:1513 7.0 11:1516 4.1 17:151 3.1 23:154 3.2 5:3013 6.9 11:3016 4.0 17:300 2.7 23:304 3.2 5:4510 6.8 11:4517 4.2 17:450 2.6 23:453 3.1 6:0012 12:0023 4.3 18:000 1.9 0:001 3.0
表1-3 风电场日实际发电曲线统计表(数据记录错误的情况)
2015年3月15日功率单位:MW 风速单位:m/s 时间功率风速时间功率风速时间功率风速时间功率风速 2:0035 5.4 8:0074 9.0 14:0028 5.7 20:0057 7.0 2:1530 5.6 8:1579 9.5 14:1521 4.8 20:1577 8.0 2:3035 5.7 8:3081 9.7 14:3021 4.74.920:3082 8.5 2:4535 5.4 8:4580 9.6 14:4523 4.6 20:4577 8.0
针对上述两种情况采用多项式拟合进行数据的补全,拟合效果图如下:
图1-1 情况一的拟合效果图
图1-2 情况二的拟合效果图
最终补全数据如下表:
表1-4 风速的预测数据表
日期风速(m/s) 2015年3月30日6:006.4 2015年3月15日2:304.5
补全缺失的数据,常用的方法有拟合法、线性回归法、插值法、通过经验数据取平均值法[3]等等,这里就不再一一赘述。
1.3 数据筛选、数据排序与数据格式的修改
2018年全国大学生数学建模竞赛C题《大型百货商场会员画像描绘》,该题附件数据量巨大,格式各异,需要对数据进行筛选、排序、格式修改。比如附件1中有会员注册信息中出现出生日期为1753/01/01,有会员登记时间为2004-11-4,与客观实际显然不符,因此,需要对数据进行筛选,剔除注册时间在2000年前的数据,剔除消费时间在2015年3月前的数据,同时有必要对消费时间进行重新排序。另外,附件3-会员消费明细表中会员消费时间数据是按照“年-月-日时:分:秒”格式给出的,比如其中给出一个顾客某次消费时间是2016-5-8 11:32:25。在数学建模过程中,要考察同一顾客在统计时段内所有的购物时间及每两次购物的时间间隔,我们就需要对数据格式进行修改。在巨大数据量下,为了便于计算机读取和运算,节约计算时间,需要将购物时间中的“年-月-日”保留,但要去掉中间的符号“-”,月份和日期方面,需要在个位月份、日期前加上“0”,同时截去时间数据后面的“时:分:秒”部分,最后修改时间格式为“年月日”,比如“20160508” 。这样修改时间数据格式后,才便于计算机调用数据,便于编程求解。
2. 数据的归一化处理
数据的归一化处理主要目的是将不同量纲和不同数量级大小的数据转变成可以相互进行数学运算的,具有相同量纲和相同数量级的具有可比性的数据[4]。
还以2017年全国大学生数学建模竞赛C题《颜色与物质浓度辨识》为例,在附件数据中给出了5种物质浓度随颜色变化情况表,见上表1-1 ,奶中尿素浓度随颜色变化情况表,浓度为0(水)、500ppm、1000ppm等情况下颜色分量数据都给出了3组数据,建模过程中到底该调用哪一组数据合适呢?这里我们就可以对数据进行归一化处理,取3组数据的均值作为建模模型数据,这里考虑到计算机提取的RGBHS值都是区间[0,255]上的整数值,故我们对计算出的RGBHS“四舍五入”取整后得到模型数据。结果见下表。
表1-5 奶中尿素浓度随颜色变化归一化处理结果
项目浓度(ppm)BGRHS 奶中尿素水1211361392432 5001171371402642 10001101361382750 15001071351392657 20001071371392758
数据的归一化处理,除了上面的平均值法之外,常见的还有最大值最小值法、中间值法、对数函数转换法等等。
3. 建模对象的量化
在许多建模问题中,需要对对象进行比较,而所给条件和数据又没有明确给出该对象评比的标准,此时,我们就需要制定标准或规则,将该对象进行量化。比如层次分析模型中,人们经常需要将方案层对准则层的权重、准则层对目标层的权重进行量化评分。再如2018年全国大学生数学建模竞赛C题《大型百货商场会员画像描绘》,会员的消费时间间隔、消费频率和平均消费金额等指标,就是将会员进行分类的指标依据,将这些指标量化后就可以将会员进行分级分类。
下例详细分析2016年全国大学生数学建模竞赛D题《风电场运行状况分析及优化》的第二个问题,要求结合附件3中风机风速-功率实测数据以及附件4中风机生产企业提供的部分新型号风机的主要参数,从风能资源与风机匹配角度选用合适的风机。
首先,对附件3的两种风机参数以及其风速-功率实测数据进行分析,并结合风速与输出功率的关系式[4]如下:
其中v为切入风速,v为额定风速,v为切出风速,P为风机额定功率,、P(v)为输出功率。
由上式可知在切入风速与额定风速之间,风速与功率成线性关系,即
因此,对附件3中的风速-功率实测数据进行最小二乘的线性回归分析,得到
图1-3 机型2回归分析效果
由式(1-1)得到
再结合上面求得的k,k,b和b可得到机型的k与b,公式如下
得到对应机型的系数如下表:
表1-6 机型的系数
机型机型Ⅲ机型Ⅳ机型Ⅴ 154.15144.51136.01 -443.98-485.60-391.74
由式(1-2)可预测对应机型的风速-输出功率数据。
接下来建立模型,由上分析得到的风速-输出功率呈线性关系,而风速与风能资源(风功率密度)呈正相关,可采用分段评分的方法,针对特定时间段对应机型的风机的输出功率进行打分,然后通过每种机型的总得分判断风能资源与该机型风机的匹配程度。此处分段打分机制,就是对风机综合指标的量化。
表1-7 对风机的打分标准
评判标准得分 0 1 2
根据上表1-7和式(1-2),代入数据可以很容易得出各机型风机每个月的打分情况如下表:
表1-8 一期工程各机型打分情况
月份机型Ⅰ机型Ⅱ机型Ⅲ机型Ⅳ机型Ⅴ 11015941104210151000 29899131022989957 3979892993979967 4926868940926911 59849061003984964 61027957105810271002 7102793510541027987 8924837932924913 9101795310441017998 109879161004987971 11861764876861842 12937847960937911 总分1167310729119281167311423
表1-9 二期工程各机型打分情况
月份机型Ⅰ机型Ⅱ机型Ⅲ机型Ⅳ机型Ⅴ 1101695010471016998 29919201022991956 3930847942930921 4886812904886871 5968909987968957 6975907994975949 7957885979957951 8894777900894888 99939371004993984 10934857942934920 11886806900886871 12100090610261000972 总分1143010513116471143011238
由此可得到各机型总得分的直方图,如下所示:
图1-4 一期工程各机型总得分情况直方图
图1-5 二期工程各机型总得分情况直方图
根据上述风机的打分情况,对于一期工程来说,总的得分排序是机型III>机型I=机型IV>机型V>机型II;对于二期工程来说,总的得分排序是机型III>机型I=机型IV>机型V>机型II,由此得分结果,我们可看出,新型号风机中的机型III、机型IV和旧型号中的机型I与风能资源具有较好的匹配度,而机型II的与风能资源的匹配度较差。
众所周知,数据的预处理对于所建立模型的准确度来讲至关重要。一般情况下,数据预处理过程需要结合建模问题领域知识和分析目标,分析数据中存在的问题并采取有效的处理方法[6]。对学生来讲,数据的预处理能力是不可或缺的一项数学建模能力,是数学建模基本功,在数学建模课程学习过程中必须重点关注。本文所提及的数据预处理方法及实例,希望能够起到抛砖引玉的作用,引导同学们走进数学建模课程。
[1]姜启源.数学建模[M]. 第四版. 北京: 高等教出版社, 2011.
[2]中国工业与应用数学学会.全国大学生数学建模竞赛[EB/OL]. http://www.mcm.edu.cn/html_cn/block/8579f5fce999cdc896f78bca5d4f8237.html, 2019-03-13。
[3]周建兴. MATLAB从入门到精通[M]. 北京: 人民邮电出版社, 2008。
[4]李大潜. 将数学建模思想融入数学类主干课程[J]. 工程数学学报, 2006,22(8):3-7.
[5]吴婷婷. 风电场风能资源评估中重要参数的计算与应用[D]. 呼和浩特: 内蒙古工业大学, 2015: 5-14.
[6]姚泽清. 全国大学生数学建模竞赛赛题与优秀论文评析[M]. 北京: 国防工业出版社, 2012.
Demonstration on Common Data Preprocessing Methods of Mathematical Modeling in Higher Vocational Institutes by Examples
DUAN Feng & ZHOU Tong
Data preprocessing is an indispensable step to ensure the quality of mathematical modeling, so should be paid more attention to in the course of learning mathematical modeling. Demonstration on contest questions showed that data preprocessing methods commonly used by higher vocational students in the process of mathematical modeling include data cleaning, data normalization, quantification of modeling objects, etc.
data preprocessing; data cleaning; polynomial fitting; normalization processing; quantification.
G642
A
1009-1114(2019)04-0057-07
2019-10-09
段峰(1977—),湖北英山人,硕士研究生,铜陵职业技术学院副教授,研究方向为应用数学。
2018年安徽高校自然科学研究重点项目(KJ2018A0749);2018年铜陵职业技术学院校级教研重点项目(tlpt2018TK003);铜陵职业技术学院校级教研一般项目(tlpt2018TG002)
文稿责编 刘有新