数学建模学习(6):数学建模数据预处理专题

news2024/9/25 13:25:54

1 数据预处理是什么?

在数学建模赛题中,官方给所有参赛选手的数据可能受到主
观或客观条件的影响有一定的问题,如果不进行数据的处理而直
接使用的话可能对最终的结果造成一定的影响,因此为了保证数
据的真实性和建模结果的可靠性,需要在建模之前对数据进行相
关的预处理工作!
数据预处理一般包括: 数据清洗、数据集成、数据变换及数据规约

 2 数据预处理——数据清洗

当我们得到一组数据时,这组数据可能会存在一些缺失值和
异常值(噪声数据)。此时我们进行数据清洗,主要包括两个部
分: 缺失值处理与异常值处理

 2.1 缺失值处理

缺失值的处理方法主要有三种: 删除记录、数据插补和不处理。
删除记录:指当该组数据某一个案的数据缺省时,删除这组个案的数据,这种方法的优点是处理
方便,但在数据较少时要慎重使用。
数据插补:使用不同的插补方法将缺省的数据补齐。主要插补方法有:均值/中位数/众数插补;
使用固定值插补;最近邻插补;回归方法插补;插值法插补。
最近邻插补:即在记录中找到与缺失样本最接近的样本的该属性插补,可以通过计算对象间的欧
式距离衡量。
回归方法插补:根据已有数据和与其有关的其他变量的数据建立拟合模型来预测缺失值。
插值法:常用的插值法有很多,主要有 拉格朗日插值法、牛顿插值法。
不处理,有时我们可以将所有缺省数据的样本划分为另一组,进行特殊处理。

 

 

 

Matlab插值:一维插值
yi=interp1(x,y,xi, 'method')
%x,y 为插值点, xi,yi 为被插值点和结果, x,y xi,yi 通常为向量
%'method' 表示插值方法:常用方法有 'nearest''linear''spline''cubic'
nearest —— 最邻近插值 : 插入与其距离最近的值
linear —— 线性插值:构造线性函数进行插值
spline —— 三次样条插值,构造三次多项式进行插值
cubic —— 立方插值:构造立方函数进行插值
method ’缺省时默认为线性插值
Matlab插值:二维插值
yi=interp2(x,y,z,xi,yi, 'method')
%x,y,z 为插值点, xi,yi 为被插值点 ,zi 为输出的插值结果,即插值函数在
xi,yi )处的值; x,y 为向量, xi,yi 为向量或矩阵,而 z zi 则为矩阵
%'method' 表示插值方法:常用方法有 'nearest''linear''spline''cubic'
nearest —— 最邻近插值 : 插入与其距离最近的值
linear —— 双线性插值:构造两组线性函数进行插值
spline —— 双三次样条插值,在每个区间内构造三次多项式进行插值
cubic —— 双立方插值:构造立方函数进行插值
默认为双线性插值
% 一维插值

clc;clear all;

y=[0.31472 0.84549 0.98429 0.81619 0.51237];

x=[1 2 3 4 5];

x1=0:0.1:5;

y1=interp1(x,y,x1,'spline');%三次样条插值,构造三次多项式进行插值

plot(x1,y1)
%二维插值
x=1:5;
y = 1:3;
temps = [82 81 80 82 84;79 63 61 65 81;84 84 82 85 86];
xi = 1:.2:5;
y1 = 1:.2:3;
zzi = interp2(x,y,temps,xi',y1,'spline');
mesh(xi,y1,zzi);
clc;clear all;
x=[123 55 89 84 56 54 100];
y=[2 5 8 9 10 16 15];
z=[165 654 852 254 0 456 251];
x1=50:0.1:150;
y1=0:0.1:20;
[x1,y1]=meshgrid(x1,y1);
z1=griddata(x,y,z,x1,y1,
'linear');
meshc(x1,y1,z1);
2.2 异常值处理
例如:一组身高的数据,大部分数据都是一点几米,突然蹦出个5米,显然和其他数据差异过
大,则判断该数据属于异常值。
处理方法有两种: 正态分布3σ原则,和画箱型图。
1、正态分布3σ原则
数值分布在(μ-3σ,μ+3σ)中的概率为99.73%,其中μ为平均值,σ为标准差。
求解步骤:
1.计算均值μ和标准差σ;2.判断每个数据值是否在(μ-3σ,μ+3σ)内,不在则为异常值。
适用题目: 总体符合正态分布,例如人口数据、测量误差、生产加工质量、考试成绩等。
不适用题目: 总体符合其他分布,例如公交站人数排队论符合泊松分布
2、画箱型图
箱型图中,把数据从小到大排序。
下四分位数 Q1 是排第25%的数值,上四分位数 Q3 是排第75%的数值。
四分位距 IQR = Q3 - Q1 ,也就是排名第75%的减去第25%的数值
正态分布类似,设置个合理区间,在区间外的就是异常值。
一般设[ Q1 1.5* IQR , Q3 +1.5* IQR ]内为正常值

3 数据预处理——数据变换

3.1 数据类型的一致化处理方法
极大型 : 期望取值越大越好;
极小型 : 期望取值越小越好;
中间型 : 期望取值既不要太大,也不要太小为好,取适当的区间为最好 ;
区间型 : 期望取值最好是落在某一个确定的区间内为最好。

料请关注公众号【数学建模老哥】课件或代码请公众号回复“课件” ,粉丝

3.1 数据类型的一致化处理方法 

为了客观评价我国研究生教育的实际状况和各研究生院的教学质量,国务
院学位办组织过一此研究生院的评估。为了取得经验,先选了5所研究生院,
收集有关数据进行了式评估,表1给出了部分数据。

 3.2数据指标的无量纲化处理

 

 

 

 常用方法: 标准差法、极值差法和功效系数法等。

 (1)标准差方法

 

 (2) 极值差方法

(3 ) 功效系数方法

 

 

 

 

 

 

 数据无量纲化处理的函数:

%数据预处理方法:线性归一化
%a为处理数据矩阵 u为选择处理方法 1为效益型 2
为成本型 3为区间型 qujian为效益形中的最优属性
区间 rennai为忍耐上下限区间
function b=topsis(a,u,qujian,rennai)
am1=min(a);am2=max(a);
% 效益型数据处理(即数据越大越好)
if u==1
b=(a-am1)./(am2-am1);
% 成本型数据处理(即数据越小越好)
elseif u==2
b=(am2-a)./(am2-am1);
% 区间型数据处理
elseif u==3
n=length(a);
for k=1:n
if a(k)>=rennai(1)&a(k)<qujian(1)
b(k)=1-(qujian(1)-a(k))/(qujian(1)-rennai(1));
elseif a(k)>=qujian(1)&a(k)<=qujian(2)
b(k)=1;
elseif a(k)>qujian(2)&a(k)<=rennai(2)
b(k)=1-(a(k)-qujian(2))/(rennai(2)-qujian(2));
else
b(k)=0;
end
end
end

调用无量纲化处理的函数

A=[0.1 0.2 0.4 0.9 1.2;
5 6 7 10 2;
5000 6000 7000 10000 400;
4.7 5.6 6.7 2.3 1.8];
A=A';
a1=A(:,1);a2=A(:,2);a3=A(:,3);a4=A(:,4);
b1=topsis(a1,1);
b2=topsis(a2,3,[5,6],[2,12]);
b3=topsis(a3,2);
b4=topsis(a4,2);
[b1,b2',b3,b4]
3.3 定性指标的量化处理方法
 在社会实践中,很多问题都涉及到定性因素(指标)的定量处理
问题。诸如:教学质量、科研水平、工作政绩、人员素质、各种满意
度、信誉、态度、意识、观念、能力等因素有关的政治、社会、人
文等领域的问题。
如何对有关问题给出定量分析呢?
按国家的评价标准,评价因素一般分为五个等级,
如A,B,C,D,E。
如何将其量化?若A-,B+,C-,D+等又如何合理量化?
简单地对应数字分量化方法是不科学的!
根据实际问题,构造模糊隶属函数的量化方法是一种可行
有效的方法。
假设有多个评价人对某项因素评价为A,B,C,D,E共5个等级:
{v1 ,v2 ,v3 ,v4,v5}。
譬如:评价人对某事件“满意度”的评价可分为
{很满意,满意,较满意,不太满意,很不满意}
将其5个等级依次对应为5,4,3,2,1。
为取连续量化,取偏大型柯西分布和对数函数作为隶属函数:

 

 

 

根据这个规律,对于任何一个评价值,
都可以给出一个合适的量化值。
根据实际情况也可以构造其他的隶属
函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/805843.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

简单理解大模型参数高效微调中的LoRA(Low-Rank Adaptation)

[论文地址] [代码] [ICLR 22] 阅前须知&#xff1a;本博文可能有描述不准确/过度简化/出错的地方&#xff0c;仅供参考。 网络结构 其中&#xff0c;原有模型的参数是直接冻结的&#xff0c;可训练参数只有额外引入的LoRA参数(由nn.Parameter实现)。 模型微调的本质 记网络原…

MySQL数据库——DML基本操作

文章目录 前言插入数据全列插入指定列插入 修改数据删除数据 前言 前面我们学习了MySQL——DDL操作&#xff0c;对数据库和表的结构的操作&#xff0c;那么今天我将为大家分享MySQL——DML操作&#xff0c;对表数据的操作。 MySQL DML操作有以下几种&#xff1a; 插入操作&am…

opencv-28 自适应阈值处理-cv2.adaptiveThreshold()

什么是自适应阈值处理? 对于色彩均衡的图像&#xff0c;直接使用一个阈值就能完成对图像的阈值化处理。但是&#xff0c;有时图像的色彩是不均衡的&#xff0c;此时如果只使用一个阈值&#xff0c;就无法得到清晰有效的阈值分割结果图像。 有一种改进的阈值处理技术&#xff…

【六大锁策略-各种锁的对比-Java中的Synchronized锁和ReentrantLock锁的特点分析-以及加锁的合适时机】

系列文章目录 文章目录 系列文章目录前言一、六大"有锁策略"1. 乐观锁——悲观锁2. 轻量级锁——重量级锁3. 自旋锁——挂起等待锁4. 互斥锁——读写锁5. 可重入锁——不可重入锁6. 公平锁——非公平锁 二、Synchronized——ReentrantLockSynchronized的特点&#xf…

掌握Python的X篇_13_Python条件语句实例:判断闰年、成绩评定

前面学习了条件语句以及调试的基本技巧&#xff0c;本篇介绍两个与条件语句有关的实例&#xff0c;对前面的知识又深刻认识。 文章目录 1. 判断闰年1.1 版本11.2 版本21.3 一行代码太长的处理方法 2. 根据成绩评级 1. 判断闰年 用户输入年份&#xff0c;判断该年份是否为闰年…

相对位置编码和绝对位置编码

位置编码的区别&#xff1a; 相对位置编码和绝对位置编码是两种不同的位置编码方法。 绝对位置编码是一种基于位置嵌入的方法&#xff0c;其中每个位置都被分配了一个唯一的位置向量。这些向量是固定的&#xff0c;与输入序列的内容无关。这种编码方式对于处理较短的序列效果…

【图论】树上差分(点差分)

一.题目 输入样例&#xff1a; 5 10 3 4 1 5 4 2 5 4 5 4 5 4 3 5 4 3 4 3 1 3 3 5 5 4 1 5 3 4 输出样例&#xff1a;9 二 .分析 我们可以先建一棵树 但我们发现&#xff0c;这样会超时。 所以&#xff0c;我们想到树上差分 三.代码 /* 5 10 3 4 1 5 4 2 5 4 5 4 5 4 3 5 …

基金经理二季度AI概念股操作分化

公募基金二季度仍在加仓AI板块&#xff0c;但不同于一季度全线加仓题材各环节&#xff0c;二季度对AI产业链的操作出现分化。 资金更加聚拢在业绩率先兑现的上游算力板块。其中光模块、服务器是加仓最为显著的两个领域&#xff1b;对于部分业绩短期兑现前景不明的AI板块&#…

机器学习 day31(baseline、学习曲线)

语音识别的Jtrain、Jcv和人工误差 对于逻辑回归问题&#xff0c;Jtrain和Jcv可以用分类错误的比例&#xff0c;这一方式来代替单单只看Jtrain&#xff0c;不好区分是否高偏差。可以再计算人类识别误差&#xff0c;即人工误差&#xff0c;作为基准线来进行比较Jtrain与baselin…

论文分享:PowerTCP: Pushing the Performance Limits of Datacenter Networks

1 原论文的题目&#xff08;中英文&#xff09;、题目中包含了哪些关键词&#xff1f;这些关键词的相关知识分别是什么&#xff1f; 题目&#xff1a;PowerTCP: Pushing the Performance Limits of Datacenter Networks PowerTCP&#xff1a;逼近数据中心的网络性能极限 2 论…

银河麒麟安装mysql数据库(mariadb)-银河麒麟安装JDK-银河麒麟安装nginx(附安装包)

银河麒麟离线全套安装教程&#xff08;手把手教程&#xff09; 1.银河麒麟服务器系统安装mysql数据库&#xff08;mariadb&#xff09; 2.银河麒麟桌面系统安装mysql数据库&#xff08;mariadb&#xff09; 3.银河麒麟服务器系统安装JDK 4.银河麒麟桌面系统安装JDK 5.银河麒麟…

【Linux后端服务器开发】MAC地址与其他重要协议

目录 一、以太网 二、MAC地址 三、MTU 四、ARP协议 五、DNS系统 六、ICMP协议 七、NAT技术 八、代理服务器 一、以太网 “以太网”不是一种具体的网路&#xff0c;而是一种技术标准&#xff1a;既包含了数据链路层的内容&#xff0c;也包含了一些物理层的内容&#xf…

Linuxcnc-ethercat从入门到放弃(1)、环境搭建

项目开源网站 LinuxCNChttps://www.linuxcnc.org/当前release版本2.8.4 Downloads (linuxcnc.org)https://www.linuxcnc.org/downloads/可以直接下载安装好linuxcnc的实时debian系统&#xff0c;直接刻盘安装就可以了 安装IgH主站&#xff0c;网上有很多教程可供参考 git clo…

【Rust】枚举类型创建单链表以及常见的链表操作方法

目录 单链表 用枚举表达链表 枚举enum Box容器 创建节点 1. 创建并打印 2. match 匹配 3. 节点初始化 4.节点嵌套 追加节点 1. 尾插法 2. 链表追加方法 3. 头插法 4. 改写成单链表方法 遍历链表 1. 递归法 2. 递推法 3. 改写成单链表方法 自定义Display tr…

8. Vmvare中重新分配Linux系统的分区空间大小

1. 说明 一般情况下&#xff0c;在使用Vmvare虚拟机创建配置Linux系统时&#xff0c;默认将系统的内存设置为4GB&#xff0c;硬盘大小设置为40GB&#xff0c;但随着空间利用的越来越多&#xff0c;内存会出现不够使用的情况&#xff0c;此时需要重新分配空间大小&#xff0c;具…

go 查询采购单设备事项[小示例]

一、项目背景 1.1需求&#xff1a; 项目实施过程中存在多次下采购单的事项&#xff0c;如果查询过去采购单中下了哪些设备&#xff0c;数量以及相应信息&#xff0c;如何处理呢? 备注&#xff0c;价格等都是修改了&#xff0c;不是原始内容&#xff0c;只是参考 1.2实现步骤…

transformer代码注解

其中代码均来自李沐老师的动手学pytorch中。 class PositionWiseFFN(nn.Module):ffn_num_inputs 4ffn_num_hiddens 4ffn_num_outputs 8def __init__(self,ffn_num_inputs,ffn_num_hiddens,ffn_num_outputs):super(PositionWiseFFN,self).__init__()self.dense1 nn.Linear(ffn…

3ds MAX绘制简单动画

建立一个长方体和茶壶&#xff1a; 在界面右下角点击时间配置&#xff1a; 这是动画制作的必要步骤 选择【自动】&#xff0c;接下来&#xff0c;我们只要在对应的帧改变窗口中图形的位置&#xff0c;就能自动记录该时刻的模样 这就意味着&#xff0c;我们通过电脑记录某几个…

工业平板电脑优化汽车工厂的生产流程

汽车行业一直是自动化机器人系统的早期应用领域之一。通过使用具有高负载能力和远程作用的大型机械臂&#xff0c;汽车装配工厂可以实现点焊、安装挡风玻璃、安装车轮等工作&#xff0c;而较小的机械手则用于焊接和安装子组件。使用机器人系统不仅提高了生产效率&#xff0c;还…

工业智能化的关键之二:集成监控和分析能力

将监控和分析能力集成到工厂运营的日常中是工业智能化发展的关键步骤。随着科技的进步和数字化技术的广泛应用&#xff0c;工厂正在逐步实现从传统的人工操作到智能化的转变。这种转变不仅提高了工厂的生产效率和产品质量&#xff0c;还极大地提升了工厂的安全性和可靠性。 1.…