知识点关键点总结,准备阶段最常使用的文档。(应该是本知识库最有用的文档hhh,用于构建思路and文档导航)
- 前缀Z_ 为正课视频的简称,如Z1为正课视频第1课
- 前缀G_ 为更新视频的简称,如G1为更新视频第1课
注意点
方案比较:画柱状图 条形图 (直观显示)
注意灵敏度分析(G12 9最后一个视频)
软件操作
Deskpins 窗口保持最前端
使用红色大头针,将窗口保持最前。
使用场景:matlab的plot窗口,每次在主窗口重新运行绘制就好被主窗口覆盖。使用Deskpins软件钉住画图小窗,保证小窗最前,方便观察画图效果。
Jupyter Notebook 使用Pycharm
便于一次导入变量 多次使用(节约导入变量时间)
非常非常重要(个人经验)。针对数据处理题,输入导入加载时间非常长,使用Jupyter Notebook分段执行程序,导入一次数据,之后单独执行数据处理程序,节约时间。
新建 使用
直接新建 - 无需配置token
在 Pycharm 中安装及使用 Jupyter (图文详解) - 知乎
【Python】Jupyter在PyCharm中的使用_Lily的博客-CSDN博客
Pycharm安装并配置jupyter notebook - 简书
重启jupyter
pycharm清除jupyter环境变量_u010443407的专栏-CSDN博客
清除所有输出
Pycharm学习笔记 清理jupyter notebook的outputs - 程序员大本营
Matlab
导出大图 渲染 - 分辨率(Z4)
PPT 例子
生成随机数(Z4)
PPT 随机数
得到对称矩阵另一半
D = D+D’; % 这个操作可以得到对称矩阵的另一半
数据归一化 反归一化操作
bp神经网络及matlab实现 - phlsheji - 博客园Matlab中的数据预处理-归一化(mapminmax)与标准化(mapstd)_hqh45的专栏-CSDN博客_mapminmax
程序计时
tic
代码块
toc
数据保存到excel
xlswrite(‘dd285.xlsx’, mean_last285)
Matlab输出数据到excel文件中方法(1)-百度经验
数组追加数据
如何在Matlab中的数组变量末尾追加新的值_高亮分享的博客-CSDN博客_matlab数组添加到数组末尾
符号计算(G14)
实时脚本 自动补全(G13 最后一个视频)
三维绘图(G13 无单独文档)
视角切换(如X-Y试图(俯视图)等):点击三维旋转 - 右键 - 转至xxx视图
保存图片:文件 - 导出设置 - 渲染 - 分辨率 - 600 - 导出为tif格式
遮挡透明度:alpha(0.8)
多张图:subplot(m,n,index)
保证数据正常:可以在数据加上+1e-12
色彩效果 shading,分以下三种:
% shading faceted是默认的模式
% shading flat 在faceted的基础上去掉图上的网格线
% shading interp 在flat的基础上进行色彩的插值处理,使色彩平滑过渡code2 - 设置色彩模式
mesh 网格图
code1
参考代码:例题2
和谐状态:X每行相同 Y每列相同 meshgrid函数生成X Y
meshc函数:mesh + xy平面上绘制曲面的等高线
meshz函数:mesh + xy平面上绘制曲面的底座
surf函数 曲面图
code2
surfc函数:surf + xy平面上绘制曲面的等高线
surfl函数:加上了灯光效果,看起来自然点
contour函数 等高线图
code3
修改格式 指定层级 指定高度
contourf函数:contour + 颜色填充
contour3函数:contour + 3维等高线图,等高线不再投影到x-y平面
符号函数的三维图形绘制
code4
plot3函数 (类似于plot函数,实际上可以认为画的是三维空间下的折线图)
fplot3函数 (老版本Matlab用的是ezplot3函数)
fmesh 三维网格图 (老版本Matlab用的是ezmesh函数)
fsurf 三维曲面图 (老版本Matlab用的是ezsurf函数)
fcontour 绘制等高线 (老版本Matlab用的是ezcontour函数)
绘制隐函数的图形
code5
fimplicit3 函数
EXCEL使用
跳到/ 选到 数据块边界
跳转到边界 Ctrl + 方向键
选中到边界 Ctrl + Shift + 方向键
(下 右 两次操作 选中全部数据)选中所有数据 ~~`Ctrl + Shift + 空格~~`
处理一列全部数据(Z7 视频3)
(拖动右下角实心十字)
双击右下角实心十字
锁定单元格 多列拖动计算 (G5)
F4快捷键 多种格式($A$1 A$1 $A1)
删除一列中不连续的空白单元格 条件选择单元格
excel怎么批量删除一列中不连续的空白单元格?_百度知道
CTRL+G 打开定位对话框
选择 - 右键删除
多列乘权重之和
Excel中很少人会用的sumproduct函数,解决工作中很多难题!
=SUMPRODUCT($Z$1:$AG$1*Z8:AG8)
权重 一行数据
隔行插入空行 两行错开 插入合并
2015D 画图
Excel如何隔行隔列插入空行-百度经验
单元格插入 活动单元格下移
CTRL+G 打开定位对话框
选择空之 - 右键删除 - 左移 OK
画图(G1)
以下为模型总结,用于整理思路。拿到建模任务,查表快速形成思路。
————数据预处理模型————
降维 选择主要变量:
- 特征多 样本少:使用【相关性】提出不相关样本,等样本小于特征后机器学习or回归or(降维)
- 样本少:灰色关联分析(随时间/对象变化的关联性) 样本多:回归
- 代表性考量:灰色关联分析 相关性分析(扣除弱相关 再偏相关) 样本小于特征后机器学习or回归or(降维)
- 独立性考量:皮尔逊/斯皮尔曼相关系数 聚类 (独立性检验)
- PCA 因子分析会改变变量 无法选择出独立性 代表性特征
普通方法: 灰色关联分析 相关性分析
回归确定重要性:线性回归->非线性回归(变化大的变量去In()为新变量) 回归系数表示相关性大小(PCA回归)
其他选择变量: 遗传算法(见优化模型) 随机森林(见机器学习方法)
均值、方差分析、协方差分析等统计方法
主要用于数据的截取或特征选择等
spss中描述性分析(SPSS EXCEL)
插值与拟合(Z3 Z4)Matlab
主要用于对数据的补全处理
- 其中样本点较少时(泛指样本点小于30个)采用插值方法,主要有拉格朗日插值算法、牛顿插值、双线性内插和双三次插值
- 样本点较多时(大于30个)则采用拟合函数
插值(Z3)
一次插值 分段三次埃尔米特插值 | 三次样条插值(Z3)
推荐三次样条插值
均可使用 or 都使用求平均
n维数据的插值 暂无有效实例(Z3)
拟合(Z4)Matlab
拟合得到的是一条曲线
需要评价拟合的好坏
- 拟合优度R2:只能在拟合函数是线性函数时作为参数 R2 = SSR/SST,R2越接近1,说明拟合越好
总体平方和SST:SST = SSE+SSR
回归平方和SSE:当拟合函数是线性函数或其他函数时可以只看SSE
残差平方和SSR
最小二乘法代码(Z4)
曲线拟合工具箱 cftool(Z4)
扩展资料 - 详细word文档
主成分分析(Z14)Matlab SPSS Python
适用场景:问题涉及到多变量且变量之间存在很强的相关性时,可以考虑使用主成分分析的方法来对数据进行简化。
主要用于多维数据的降维处理,减少数据冗余等
能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,能反映出原始数据的大部分信息。
降维
主成分分析用于聚类 - 可视化
主成分回归
因子分析模型(G2)SPSS
因子分析法通过研究变量间的相关系数矩阵,把这些变量间错综复杂的关系归结成少数几个综合隐私,这种方法比主成分分析更容易解释。
因子分析用于聚类 - 可视化
符号计算(G14)
(可以计算近似解。。。。。。)
————评价问题————
- 问题
确定评价指标、形成评价体系
- 思路
主成分分析不能评价 只能降维(G5)
层次分析法 AHP(Z1)Matlab
未知指标数据
适用场景:表叫适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题,常用于计算指标的权重(和模糊综合评价共同使用)
将于决策总是有关的元素分解成目标、准则、方案等层次,通过两两比较的形式来进行综合评价,擅长于求权重
(LG 指标缩减 直接评价)
注意事项
在使用判断矩阵求权重之前,必须对其进行一致性检验。
一定要放层次结构图(视频1 54:46 用亿图图示/VISIO | PPT smartart)
TOPSIS 优劣解距离法 熵权法修正(Z2 FY G9)(推荐)Matlab
基于已知指标数据
适用场景:无具体的评价指标,大体系的综合评价,要有理想化指标数据,如环境质量评价、医疗质量综合评价等
根据有限个评价对象与理想化目标的接近程度进行排序的方法,是在现有的对象中进行相对优劣的评价,是多目标决策分析中一种常用的有效方法
能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。
熵权法:是一种客观地赋权方法,利用数据本身来决定权重。指标的变异程度(波动程度)越小,所反映的信息量就越小,所占的权重也应该越小。
可以使用熵权法确定权重
注意事项
可以使用熵权法 较为客观
条形图可视化(G9)
灰色关联分析(G5)Matlab
基于已知指标数据
适用场景:当样本个数比较大的时候用标准化回归,当样本数比较小时,才用灰色关联分析。
可以进行系统分析和综合评价
根据曲线几何形状的相似程度判断关联程度。
模糊综合评价(G11)无需代码
基于已知指标数据
适用场景:无具体的评价标准,通过统计问卷等形式进行的评价问题
把定性评价转化为定量评价,即用模糊数学对受到多种因素制约的事物或对象做出一个总体的评价
模糊评价问题是要(把论域中的对象对应评语集中⼀个指定的评语)或者(将⽅案作为评语集并选择⼀个最优的⽅案)。
————优化模型————
三要素:
- 决策变量
通过变量的改变,获得更好的结果
可以理解为控制变量,或者是一些决定性的参数 - 目标函数
所求:评价是都想着好的方向发展,用来评测的标准 - 约束
限定了决策变量的具体的设置范围一个定义域的限定
非线性规划使用蒙特卡罗方法 0-1规划使用蒙特卡洛 遗传算法
图论(Z8 G6)
最短路径(Z8 G6)
- 迪杰斯特拉(Dijkstra)算法(Z8)
- Bellman‐Ford(贝尔曼‐福特)算法(Z8)
- Floyd(弗洛伊德)算法(G6)
- 实现:Matlab 代码 软件(Z8)
- Matlab内置函数不指定算法
- 最短路径; 任意两点的距离矩阵; 给定范围内所有的点
- Floyd(弗洛伊德)算法(G6)
- 老哥 Dijkstra Floyd两种代码
- 老哥 图论软件
蒙特卡洛模型(G10)Matlab
是一种随机模拟方法,是使用随机数来解决很多计算问题的方法。由大数定律可知,当样本容量足够大时,事件发生的频率可以近似为其发生的概率。是计算机仿真的前期模型。
蒙特卡洛法更多的是一种想法,利用非常多次的随机数来模仿时间的发生,从而近似得到想要的结果,具体的算法根据不同的问题而决定。
思路(个人归纳)
- 类似枚举法 多次模拟
1 引例 布丰投针实验
3 三⻔问题
5 有约束的⾮线性规划问题
用于寻找初始值
6 书店买书问题 (0-1规划)
8 旅⾏商问题TSP
- 寻找递推关系 多次/极短间隔模拟
4 模拟排队问题
7 导弹追踪问题
规划模型(G12)Matlab
线性规划问题的求解 2
linprog函数(Matlab单纯形法求解)
参考代码code2.m
matlab中默认求最小值,且不等式约束都是小于等于
遇到大于or小于号:x>0 转化为 x>=0.00001
多个解的情况:仅会返回一个
不存在解:会提示
整数规划 0-1规划 6
intlinprog函数
intcon指定整数变量; 0-1规划将lb=0 ub=1即可
背包问题 指派问题(其他方法:老哥。。。) 钢管切割问题(枚举法列出方案)
非线性规划 4 使用蒙特卡罗方法 0-1规划使用遗传算法
fmincon函数
可以使用[随机选取] [推荐:蒙特卡罗方法]选取初始值 参考code4
蒙特卡罗方法:随机初始化x,根据(非线性)等式约束构造其他x
选址问题 飞行管理问题(未看)
最大最小化模型 8
fminimax函数
在最不利的条件下,寻求最有利的策略,如急救中心选址等
多目标规划模型(灵敏度分析 Latex符号写法) 9
若一个规划问题中有多个目标,对多目标函数进行加权组合,使问题变为单目标规划,然后利用之前学的知识进行求解。注意:
- 要先将多个目标函数统一为最大化或最小化问题后才可以进行加权组合
- 如果量纲不同,需要对其进行标准化后再进行加权(标准化的方法:用目标函数除以某一个常量,该常量是这个目标函数的某个值)
- 对多目标函数进行加权求和时,权重需要由该问题领域的专家给定,无特殊说明,可令权重相同
- 要对结果进行敏感性分析,通过逐一改变相关变量数值的方法来解释关键指标受这些因素变动影响大小的规律
粒子群算法(G16 G17)Matlab(Python)
这个算法是基于模拟鸟群捕食的行为提出的。它的核心思想是利用群体中的个体对信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得问题的可行解。
基本用法
求解方程组
多元函数拟合
拟合微分方程
模拟退火 遗传算法 Matlab(Python)
模拟退火 2019D 自定义实现整数规划 0-1规划
遗传算法 2019D 选取片段 每一段为一个决策变量 是否选中为0或1 实则为非线性整数规划 -> 决策变量直接构成染色体 使用ga()求解 目标函数 约束条件参考非线性(G12)
————预测模型————
预测的题目的一些小套路
(1) 看到数据后先画时间序列图并简单的分析下趋势(例如:我们上一讲学过的时间序列分解);
(2) 将数据分为训练组和试验组,尝试使用不同的模型对训练组进行建模,并利用试验组的数据判断哪种模型的预测效果最好(比如我们可以使用SSE这个指标来挑选模型,常见的模型有指数平滑、ARIMA、灰色预测、神经网络等)。
(3) 选择上一步骤中得到的预测误差最小的那个模型,并利用全部数据来重新建模,并对未来的数据进行预测。
(4) 画出预测后的数据和原来数据的时序图,看看预测的未来趋势是否合理。
预测两要:
- 一要结合背景;
- 二要合理假设。
预测两不要:
- 不要硬套模型;
- 不要不做解释。
微分方程模型(G15)
无法直接找到原始数据之间的关系,但可以找到原始数据变化速度之间的关系,通过公式推导转化为原始数据之间的关系。
常用模型:传染病模型、人口模型(Malthus模型和Logistic模型)
适用场景:疾病的传播预测、人口数量或城市发展水平预测等
相关性分析(Z5)Matlab SPSS
皮尔逊相关系数
斯皮尔曼相关系数
多元线性回归(Z7)SPSS (Matlab)
SPSS操作
Matlab验证 预测
时间序列模型(Z11)
预测两要:
- 一要结合背景;
- 二要合理假设。
预测两不要:
- 不要硬套模型;
- 不要不做解释。
基本概念
时间序列分解
几种模型
指数平滑模型
AR(p)模型
平稳序列
MA(q)模型
ARMA(p,q)模型
ACF自相关系数
PACF偏自相关函数
ARIMA(p,d,q)模型
SARIMA模型
步骤
注意事项:考虑各种前提条件
灰色预测(Z12)Matlab
使用背景:数据量较少,数据发展呈指数,数据分布位置。通过少量的不完全的信息,建立数学模型并作出预测
适用场景:小样本情况下的发展预测问题
(1)数据是以年份度量的非负数据(如果是月份或者季度数据一定要用我们上一讲学过的时间序列模型);
(2)数据能经过准指数规律的检验(除了前两期外,后面至少90%的期数的光滑比要低于0.5);
(3)数据的期数较短且和其他数据之间的关联性不强(小于等于10,也不能太短了,比如只有3期数据),要是数据期数较长,一般用传统的时间序列模型比较合适。
注意事项:级比检验
级比检验方法:
清风 / 老哥 两种
神经网络预测(Z12)Matlab Python
用非线性关系来预测问题
适合多指标预测
常用方法:利用前i年的数据预测第i+1年的数据
注意事项:考虑过拟合现象
Matlab操作
机器学习算法 Python
modelsstr = [‘LinearRegression’, # 普通最小二乘法 (线性回归)
‘MLPRegressor’, # 多层感知器(MLP) (神经网络) # 训练异常 可能本身有问题
‘DecisionTree’, # 决策树
‘SVR’, # 支持向量机
‘GBDT’, # 梯度提升决策树
‘lightGBM’, # 轻型梯度提升机
‘RandomForest’ # 随机森林
_]
————分类模型————
分类模型(Z9)
逻辑回归
SPSS操作 二分类 多分类
Fisher线性判别分类
SPSS操作 二分类 多分类
————聚类模型————
主要用于分析诊断数据异常值并进行剔除
适用于空间分布的大样本/小样本异常值监测
分类是已知类别的,聚类未知。
- 聚类后,我们可以更加准确的在每个类中单独使用统计模型进行估计、分析或预测;
- 也可以探究不同类之间的相关性和主要差异。
K-means K-means++聚类(Z10)SPSS Python
适用场景:与地理位置有关的分类情形,如地物类别划分、村落划分、语言分布位置划分等
K-means++:聚类初始的聚类中心之间的相互距离要尽可能的远
SPSS操作 统一量纲
系统(层次)聚类(Z10)SPSS
适用场景:行政区域的划分或分级处理等,如根据城市经济指标划分城市发展等级、根据各类综合指标进行文明城市建设评选等
也叫系统聚类法,是根据个体检距离将个体向上两两聚类,再将聚合的小群体两两聚合一直到聚为一个整体。计算所有个体之间的距离,最相近距离的个体合体,不断合体。
SPSS操作 树状图 聚合系数折线图(用于确定聚类K值) 画出分类结果示意图
DBSCAN算法(密度的聚类方法)(Z10)Matlab
能在具有噪声的空间数据库中发现任意形状的簇,可将密度足够大的相邻区域连接,能有效处理异常数据。
————图像处理————
奇异值分解SVD和图形处理(Z13)
Matlab进行奇异值分解
图片压缩的函数
将视频分离为图片
批量处理文件夹内的所有图片
(数据降维)
未知分类
无
思维导图
思维导图参考自网络资源,感谢~