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

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.mzph.cn/news/13978.shtml

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

相关文章

回归预测 | MATLAB实现PSO-GPR粒子群优化高斯过程回归多输入单输出回归预测

回归预测 | MATLAB实现PSO-GPR粒子群优化高斯过程回归多输入单输出回归预测 目录 回归预测 | MATLAB实现PSO-GPR粒子群优化高斯过程回归多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab基于PSO-GPR基于粒子群算法优化高斯过程回归的数据回归预…

建设银行秋招指南,备考技巧和考试内容详解

建设银行秋招简介 银行作为非常吃香的岗位&#xff0c;每年都有不少同学通过投递简历&#xff0c;进入笔试&#xff0c;再到面试成功&#xff0c;成功到银行就职&#xff0c;也有相当一部分同学因为信息差&#xff0c;符合条件却没有报名。无法进入银行工作。 建设银行的秋招…

QT【day4】

chat_QT服务器端&#xff1a; //.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTcpServer> //服务器类 #include<QTcpSocket> //客户端类 #include<QMessageBox> //对话框类 #include<QList> //链表容器 #inc…

Java面试准备篇:全面了解面试流程与常见问题

文章目录 1.1 Java面试概述1.2 面试流程和注意事项1.3 自我介绍及项目介绍1.4 常见面试问题 在现代职场中&#xff0c;面试是求职过程中至关重要的一环&#xff0c;特别是对于Java开发者而言。为了帮助广大Java开发者更好地应对面试&#xff0c;本文将提供一份全面的Java面试准…

【如何训练一个中英翻译模型】LSTM机器翻译模型部署之ncnn(python)(五)

系列文章 【如何训练一个中英翻译模型】LSTM机器翻译seq2seq字符编码&#xff08;一&#xff09; 【如何训练一个中英翻译模型】LSTM机器翻译模型训练与保存&#xff08;二&#xff09; 【如何训练一个中英翻译模型】LSTM机器翻译模型部署&#xff08;三&#xff09; 【如何训练…

flask的配置项

flask的配置项 为了使 Flask 应用程序正常运行&#xff0c;有多种配置选项需要考虑。下面是一些基本的 Flask 配置选项&#xff1a; DEBUG: 这个配置项决定 Flask 是否应该在调试模式下运行。如果这个值被设为 True&#xff0c;Flask 将会提供更详细的错误信息&#xff0c;并…

go 查询采购单设备事项V3

一、版本说明 本版本在整合上两次的功能基础上&#xff0c;引进ini配置文件的读取事项&#xff0c;快速读取本地配置文件&#xff0c;完成读取设置 第一版&#xff1a;实现了严格匹配模式的查找 https://blog.csdn.net/wtt234/article/details/131979385 第二版&#xff1a;实…

作为程序员,你很有必要了解一下IVX

一、IVX是什么 iVX 是一个“零代码”的可视化编程平台&#xff0c;拥有方便的在线集成开发环境&#xff0c;不需要下载开发环境&#xff0c;打开浏览器即可随时随地进行项目编辑。iVX 还拥有“一站式”的云资源&#xff0c;通过这一套一站式服务&#xff0c;iVX 可以实现一站式…

详解STM32的GPIO八种输入输出模式,GPIO各种输入输出的区别、初始化的步骤详解,看这文章就行了(超详细)

在STM32微控制器中&#xff0c;常见的输入输出(GPIO)模式有八种&#xff0c;分别是推挽输出、开漏输出、复用推挽输出、复用开漏输出、浮空输入、上拉输入、下拉输入和模拟输入。下面我将为你解释每种模式的特点和区别&#xff0c;并提供相应的示例代码。 文章目录 介绍区别初…

MySql002——关系型数据库基础知识

前言&#xff1a;因为本专栏学习的是MySQL&#xff0c;而MySQL是关系型数据库&#xff0c;所以这篇文章就来介绍一些关系型数据库基础知识&#xff0c;至于其他知识小伙伴们可以自行学习&#xff0c;同时不足之处也欢迎批评指正&#xff0c;谢谢~ 一、MySQL关系型数据库(RDBMS)…

从实践彻底掌握MySQL的主从复制

目录 一、本次所用结构如图---一主多从级联&#xff1a; 二、IP。 三、配置M1&#xff1a; 四、从库M1S1&#xff1a; 五、从库M2配置&#xff1a; 六、 从库M2S1&#xff1a; 一、本次所用结构如图--- 一主多从级联&#xff1a; 二、IP。这里M1S1和M1S2一样的&#xff0…

图技术在 LLM 下的应用:知识图谱驱动的大语言模型 Llama Index

LLM 如火如荼地发展了大半年&#xff0c;各类大模型和相关框架也逐步成型&#xff0c;可被大家应用到业务实际中。在这个过程中&#xff0c;我们可能会遇到一类问题是&#xff1a;现有的哪些数据&#xff0c;如何更好地与 LLM 对接上。像是大家都在用的知识图谱&#xff0c;现在…

查看maven发布时间的方法

查看maven发布时间的方法如下【 打开maven官网 选中Release Notes 即可查看对应版本的发布时间 】

【计算机网络】第 4 课 - 物理层

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、物理层的基本概念 2、物理层协议的主要任务 3、物理层任务 4、总结 1、物理层的基本概念 在计算机网络中&#xff0c;用来…

基于多场景的考虑虑热网网损的太阳能消纳能力评估研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

windows切换php版本以及composer

前提 安装php8.2 安装Php7.4 下载 nts是非线程安全的&#xff0c;这里选择线程安全的&#xff0c;选择64位 解压缩 修改系统环境变量 修改为php-7的 cmd中输入php -v查看 找到composer存放路径C:\ProgramData\ComposerSetup\bin 将三个文件复制到php目录下 重启电脑…

2023年深圳杯数学建模赛题浅析

由于今明两日由于一些不可避免的事情&#xff0c;这里仅仅先给大家简单写一个赛题浅析&#xff0c;详细过程步骤思路以及讲解视频预计后天发布 A题 影响城市居民身体健康的因素分析 A题以慢性病为命题背景&#xff0c;给出数据以及题目初步来看来看为一个数据处理数据分析的综…

oracle12c静默安装

目录 前言 安装配置步骤 关闭防火墙,禁止防火墙开机自启 关闭selinux yum安装必要安装包 内网环境下载依赖包的方式 创建用户和组 创建oinstall和dba组 创建oracle用户 设置oracle密码 查看创建结果 修改内核参数 使配置生效 修改用户及文件限制 改文件限制 修改用…

PHP使用Redis实战实录1:宝塔环境搭建、6379端口配置、Redis服务启动失败解决方案

宝塔环境搭建、6379端口配置、Redis服务启动失败解决方案 前言一、Redis安装部署1.安装Redis2.php安装Redis扩展3.启动Redis 二、避坑指南1.6379端口配置2.Redis服务启动&#xff08;1&#xff09;Redis服务启动失败&#xff08;2&#xff09;Redis启动日志排查&#xff08;3&a…

《向量数据库指南》:向量数据库Pinecone如何集成LangChain (一)

目录 LangChain中的检索增强 建立知识库 欢迎使用Pinecone和LangChain的集成指南。本文档涵盖了将高性能向量数据库Pinecone与基于大型语言模型(LLMs)构建应用程序的框架LangChain集成的步骤。 Pinecone使开发人员能够基于向量相似性搜索构建可扩展的实时推荐和搜索系统…