当前位置: 首页 > news >正文

数学建模中常用的数据处理方法

常用的数据处理方法

本文参考 B站西电数模协会的讲解视频 ,只作笔记提纲,想要详细学习具体内容请观看 up 的学习视频。国赛的 C 题一般数据量比较大。

这里介绍以下两种方法:
数据预处理方法
数据分析方法

数据预处理方法

1. 数据清洗

为了提高数据质量和适用所做数据分析的软件

 (1) 缺失值
  • 删除法:例如调查人口信息,发现“身高”这一项缺失 40%,直接删除该项指标
  • 替换法:适用于数据基数较大,对个体精度要求不高(例如人口的数量、年龄、经济产业情况等统计数据)
    • 人口的身高、年龄等数据可以用均值补缺
    • 人口的性别、文化程度、事件调查的满意度可以用出现次数最多的值(众数)补缺
  • 插值法:适用于对个体精度有要求
    • 常用插值法:分段线性插值、牛顿插值、拉格朗日多项式插值、Hermite插值、三次样条插值和克里金插值
    • 牛顿插值
      • 根据固定公式,构造近似函数,补上缺失值,适用性强
      • 会出现龙格现象,即区间边缘处有不稳定振荡,不适合对导数有要求的题目
      • 适用赛题:只追求函数值精确而不关心变化的数据。例如:热力学温度、地形测量、定位等
    • 三次样条插值
      • 用分段光滑的曲线去插值,函数曲线连续可导
      • 适用赛题:函数值精确度要求高,有突变的数据。例如:零件加工,水库水流量,机器人轨迹等
 (2) 异常值
  • 查找异常数据:
    • 正态分布 3 σ 3\sigma 3σ 原则
      • 适用题目:总体符合正态分布,例如人口身高、测量误差、生产加工质量、考试成绩等
      • 不适用题目:总体符合其他分布,例如固定时间内到公交站、地铁站人数符合泊松分布等
    • 箱型图法
      • 流程:箱型图法
      • 普遍适用
  • 删去异常值,当作缺失值处理

2. 数据变换

数据变换就是转化成适当的形式,以满足软件或分析理论的需要

(1) 简单函数变换
  • 将不具有正态分布的数据变成有正态分布的数据,常用的方法有开方、取对数、Box-Cox变换等
  • 利用对数或差分运算将非平稳序列转化成平稳序列
(2) 数据的规范化

        规范化就是剔除掉变量量纲上的影响,比如直接比较身高和体重的差异,单位的不同和取值范围的不同让这件事不能直接比较

  • 最小 – 最大规范化
    • 对数据进行线性变换,将其范围变成 [0,1]
    • 规范公式:(原始值-最小值)/(最大值-最小值)
    • 不适用情形:原始数据存在小部分很大或很小的数据时,会造成大部分数据规范化后接近于 0/1,区分度不大
  • 零 – 均值规范化
    • 处理后的数据均值等于 0,标准差为 1
    • 规范公式:(原始值-平均值)/标准差
    • 注意:得到的是给定数据距离其均值多少个标准差,结果
      没有实际意义,仅用于比较
  • 小数定标规范化
    • 移动属性值的小数位数,将属性值映射到 [-1,1]
    • 规范公式:原始值/10^k
    • 注意: k k k 取决于数据属性中数值的最大绝对值

数据分析方法

        通过采用合理的数据处理方法,将实际问题化繁为简,将定性分析变为定量分析,获得科学可靠的结论

1. 回归分析

        在统计学中,回归分析是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法

  • 根据自变量个数,有一元回归和多元回归
  • 根据因变量与自变量的关系,有线性回归和非线性回归

2. 插值与拟合

3. 数据降维

(1) 主成分分析
  • 将多个有一定相关性的指标进行线性组合,以最少的维度解释原数据中尽可能多的信息为目标进行以降维
(2) 因子分析
  • 将原始变量分解为两部分:一部分是公共因子的线性组合,浓缩了原始变量中的绝大部分信息。另一部分是与公共因子无关的特殊因予,反映了公共因子线性组合与原始变量间的差距。
(3) 二者区别:

示例:现有 10 位同学的语文、数学、英语、物理、化学、政治、历史、地理、生物的成绩数据。
主成分分析:文科和理科
因子分析:计算能力、阅读能力、逻辑能力、记忆能力

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • c++:内存管理
  • Linux下使用arping检测IP地址是否冲突
  • 智慧园区管理系统建设方案(Word完整原件)
  • 双栈实现一个队列
  • 新手小白的pytorch学习第一弹-------张量
  • 生成日志系统和监控
  • 算法·高精度
  • C++的介绍与认识
  • 用JavaScript将 NCR(Numeric Character Reference)标记转换为对应字符的方法
  • 对称加密和非对称加密解析
  • 关于力扣150题目——逆波兰表达式求值Java实现的三种解法
  • 如何写好品牌宣传稿提升品牌曝光?看这篇文章就够了
  • Java虚拟机(JVM):深入理解与性能调优
  • 如何在应用运行时定期监控内存使用情况
  • “LNMP环境搭建实战指南:从零开始配置CentOS 7下的Nginx、MySQL与PHP“
  • [译]Python中的类属性与实例属性的区别
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • github指令
  • java第三方包学习之lombok
  • Map集合、散列表、红黑树介绍
  • ubuntu 下nginx安装 并支持https协议
  • 安卓应用性能调试和优化经验分享
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 突破自己的技术思维
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • #QT(串口助手-界面)
  • #WEB前端(HTML属性)
  • %check_box% in rails :coditions={:has_many , :through}
  • (13)DroneCAN 适配器节点(一)
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (翻译)terry crowley: 写给程序员
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • (原创)可支持最大高度的NestedScrollView
  • (源码分析)springsecurity认证授权
  • (转)jdk与jre的区别
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • @RequestBody与@ModelAttribute
  • @SuppressWarnings注解
  • @Value获取值和@ConfigurationProperties获取值用法及比较(springboot)
  • [ Linux ] Linux信号概述 信号的产生
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [AI StoryDiffusion] 创造神奇故事,AI漫画大乱斗!
  • [AIGC] HashMap的扩容与缩容:动态调整容量以提高性能
  • [Android] Android ActivityManager
  • [android] 看博客学习hashCode()和equals()
  • [Bugku] web-CTF靶场系列系列详解⑥!!!
  • [c#基础]值类型和引用类型的Equals,==的区别