前段时间作为小白第一次参加了美国大学生数学建模 ,感触良多,最主要的就是技术层面的不过关
和对知识点的生疏
,正赶上这次的数学建模校内选拔赛,要好好准备一下
基本过程为先将原始数据矩阵统一指标类型(一般正向化处理)得到正向化的矩阵,再对正向化的矩阵进行标准化处理以消除各指标量纲的影响,并找到有限方案中的最优方案和最劣方案,然后分别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法对数据分布及样本含量没有严格限制,数据计算简单易行。
TSP旅行商贪心算法C++实现
动态规划三种背包专讲代码实现
状压DP从杭电代码开始基础篇
1.P类问题:存在多项式时间算法的问题。
2.NP类问题:能在多项式时间内验证得出一个正确解的问题。(NP:Nondeterministic polynominal,非确定性多项式) 比如TPS[1]
P类问题是NP问题的子集,因为存在多项式时间解法的问题,总能在多项式时间内验证他。
3.NPC类问题(Nondeterminism Polynomial complete):存在这样一个NP问题,所有的NP问题都可以约化成它。换句话说,只要解决了这个问题,那么所有的NP问题都解决了。其定义要满足2个条件:
惩罚因子的作用是把受限优化问题转化为非受限优化问题。(类似于拉格朗日函数)
加上罚函数,仅仅是为了惩罚那些不满足约束条件的个体,以此来解决约束优化问题
损失函数是分类(或回归)过程中计算分类结果错误(损失)的函数。为了检验分类结果,只要使总损失函数最小即可。
只要曾加了更多的变量,无论增加的变量是否和输出变量存在关系,则R-squared 要么保持不变,要么增加。
So, 需要adjusted R-squared ,它会对那些增加的且不会改善模型效果的变量增加一个惩罚向。
结论,如果单变量线性回归,则使用 R-squared评估,多变量,则使用adjusted R-squared。
研究两组变量(每组变量中都可能有多个指标)之间相关关系的一种多元统计方法。它能够揭示出两组变量之间的内在联系。(与量纲无关)
系数矩阵都是针对样本来说的
UV是重要程度,相关系数是典型荷载分析的
特征值开根号是相关系数
两个变量之间的相关性大小(先做线性检验,然后做正太分布说明可不可以做假设检验)
两者区别
主成分分析是一种降维算法,它能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,其能反映出原始数据的大部分信息。一般来说,当研究的问题涉及到多变量且变量之间存在很强的相关性时,我们可考虑使用主成分分析的方法来对数据进行简化。
主成分分析是把原来多个变量划为少数几个综合指标的一种统计分析方法。
比如要列式子,主成分y=ax1+bx1,是给出选指标的系数的方法,这里的y是未知的
多重共线性可以用主成分分析解决
因子分析是把每个自变量分解为几个方面,主成分分析是把多个自变量综合成另外一个变量
因子分析可以通过矩阵变换来得到不同形式的矩阵,故比主成分分析更容易解释
在数据量小的时候,采用标准化回归和主成分分析会有很大的偏差,采用灰色关联分析,提取主要和次要因素
回归分析的任务就是,
通过研究自变量X和因变量Y的相关关系,尝试去解释Y的形成机制,进而达到通过X去预测Y的目的。
常见的回归分析有五类:线性回归、0‐1回归、定序回归、计数回归和生存回归,其划分的依据是因变量Y的类型。
1)回归分为解释型回归和预测型回归。
预测型回归一般才会更看重 ? 。
解释型回归更多的关注模型整体显著性以及自变量的统计显著性和经济意义显著
性即可。
2)可以对模型进行调整,例如对数据取对数或者平方后再进行回归。
3)数据中可能有存在异常值或者数据的分布极度不均匀。
第一、识别重要变量;(逐步回归法)
第二、判断相关性的方向;
第三、要估计权重(回归系数)
(1)经济学家研究经济增长的决定因素,那么Y可以选取GDP增长率(连续
数值型变量)。
(2)P2P公司要研究借款人是否能按时还款,那么Y可以设计成一个二值变
量,Y=0时代表可以还款,Y=1时代表不能还款(0‐1型变量)。
(3)消费者调查得到的数据(1表示非常不喜欢,2表示有点不喜欢,3表示
一般般,4表示有点喜欢,5表示非常喜欢)(定序变量)。
(4)管理学中RFM模型:F代表一定时间内,客户到访的次数,次数其实就
是一个非负的整数。(计数变量)
(5)研究产品寿命、企业寿命甚至是人的寿命(这种数据往往不能精确的
观测,例如现在要研究吸烟对于寿命的影响,如果选取的样本中老王60岁,
现在还活的非常好,我们不可能等到他去世了再做研究,那怎么办呢?直接
记他的年龄为60+,那这种数据就是截断的数据)(生存变量)
做出残差与拟合图的散点图,根据分散程度大致看是否分散,方差大
如果扰动项存在异方差:(可以用state进行怀特检验检验异方差)
(1)OLS估计出来的回归系数是无偏、一致的。
(2)假设检验无法使用(构造的统计量失效了)。
(3)OLS估计量不再是最优线性无偏估计量(BLUE)。
怎么解决异方差:
(1)使用OLS + 稳健的标准误//如果稳健标准误检验未通过,则考虑多重共线性的问题
(2)广义最小二乘估计法GLS
若某一解释变量可以由其他解释变量线性表出,即存在严格多重共线性,但是state会自动解决
共线性是指自变量之间存在较大的相关性,导致|X’X| ~= 0,从而(X’X)(-1)对角线上的元素较大,随机干扰项的协方差矩阵d2*(X’X)(-1)对角线上的元素也较大,导致一系列的不良后果。主要包括:
知道模型有多重共线性,进一步的,我们希望能够将引起多重共线性的变量找出来,以进一步地对模型进行调整。具体的方法有判定系数检验法和逐步回归法
判定系数检验法:使模型中每个解释变量分别以其余解释变量为解释变量进行回归计算,即 X{i} ~ x{1} + x{2}+…x{i-1} + x{i+1}+…+x{k}。如果发现该模型的判定系数R2较大,则说明该解释变量x{i}能够用其它解释变量表征出来。至于如何判定R2是否足够大,我们可以做F检验。
F{i} =[R{i}^2 /(k-1)] / [(1 - R{i}^2)/(n-k) ] ~ F(k-1, n-k)
逐步回归法:第一步,先做Y与各Xi分别一元线性回归,找出R^2最大的那个Xi,以该一元线性回归为基础;第二步,逐个引入解释变量,观察拟合优度(修正后的拟合优度)的变化,(也可以使用AIC准侧),如果拟合优度变化显著,则说明该变量是一个独立解释变量,如果拟合优度变化不显著,说明该解释变量可以用其它变量的线性组合替代,也就是说它与其它变量之间存在共线性关系。
VIF检验(见课件)
异方差多重共线性内生性
岭回归和lasso回归
只有在影响到所关心变量的显著性的时候,增大样本容量,小心剔除变量,因为可能会引起内生性的影响
内生性扰动项μ与自变量无关称为外生性,有关系称为内生性,内生性会导致回归系数估计不准确:不满足无偏性和一致性(自变量增多后很难保证自变量都无关,只能弱化影响,提出核心变量和控制变量)
在之前的回归分析中,我们都默认了扰动项是球型扰动项。
球型扰动项:满足“同方差”和“无自相关”两个条件。
为了避免完全多重共线性的影响,引入虚拟变量(定性变量)的个数一般是分类数减1
• 作时间序列图;
• 判断时间序列包含的变动成分;
• 时间序列分解(有周期性且包含长期趋势、季节变动或循环变动);
• 建立时间序列分析模型;
简单指数平滑:主要用过去来推断未来的预测方程,且只能预测一期,不含趋势以及季节
线性趋势:①水平平滑②趋势平滑③预测方程。线性不含季节
阻尼趋势:解决线性趋势对于长期过大的预测,方程类似线性,线性减弱不含季节
简单季节性:含季节不含趋势
温特加法:线性和稳定季节
温特乘法:线性和不稳定季节
自回归过程AR和移动平均过程MA结合起来,共同模拟产生既有时间序列样本数据的那个随机过程的模型。
• 预测未来的指标数值。
(1)处理数据的缺失值问题、生成时间变量并画出时间序列图;
(2)数据是否为季度数据或者月份数据(至少有两个完整的周期,即两年),如
果是的话则要观察图形中是否存在季节性波动。
(3)根据时间序列图大致判断数据是否为平稳序列(数据围绕着均值上下波动,
无趋势和季节性)
(4)打开Spss,分析‐‐时间序列预测—创建传统模型(高版本的Spss可能才有这个
功能哦,我用的是24版本,安装包可以在第5讲的课件压缩包里面下载),看看
Spss专家建模器得出的最优的模型类型。
(5)如果最后的结果是ARIMA(p,0,q)模型,那么我们就可以画出时间序列的样本
ACF和PACF图形进行分析;如果得到的是ARIMA(p,1,q)模型,我们可以先对数据进行
1阶差分后再用ACF和PACF图形分析;如果得到的结果与季节性相关,那么我们可以
考虑使用时间序列分解
保留残差的ACF和PACF图形可以帮助我们判断残差是否为白噪声,即该时间序列是否能被模型识别完全。
科普级别的机器学习的分类算法
该方法思想比较简单:给定训练集样例,设法将样例投影到一维的直线上,使得同类样例的投影点尽可能接近和密集,异类投影点尽可能远离。过拟合的时候选用逻辑回归
根据已有函数预测位置点的大小
几种预测模型概论以及优缺点
利用已有数据进行累加,创造GM(1,1)模型
1.数据的检验与处理
2.建立GM(1,1)模型
3.检验预测值
(1)残差检验:计算相对残差
(2)级比偏差值检验:计算
灰色预测的具体方程
神经网络的模型评判标准
k-means++
算法选择初始聚类中心的基本原则是:初始的聚类中心之间的相互距离要尽可能的远。
K-means聚类的算法流程:
一、指定需要划分的簇[cù]的个数K值(类的个数);
二、随机地选择K个数据对象作为初始的聚类中心
(不一定要是我们的样本点);
三、计算其余的各个数据对象到这K个初始聚类中心
的距离,把数据对象划归到距离它最近的那个中心所
处在的簇类中;
四、调整新类并且重新计算出新类的中心;
五、循环步骤三和四,看中心是否收敛(不变),如
果收敛或达到迭代次数则停止循环;
系统(层次)聚类的算法流程:
一、将每个对象看作一类,计算两两之间的最小距离;
二、将距离最小的两个类合并成一个新类;
三、重新计算新类与所有类之间的距离;
四、重复二三两步,直到所有类最后合并成一类;
肘部法则确定聚类个数
原假设:H_0=...
P>0.5,在95%的置信水平下不能拒绝原假设
P<0.5,......拒绝原假设
上面介绍的各种检验法都是在总体分布形式为正态分布的前提下进行讨论的。
但在实际问题中,有时不能知道总体服从什么类型的分布,这时就需要根据样本 来检验关于分布的假设。课本上介绍的卡方拟合检验法,它可以用来检验总体是否具有某一个指定的分布或属于某一个分布族。卡方分布、检验、Python实现
①线性规划:目标函数和约束都是决策变量的线性表达式
②非线性规划:目标函数或者约束是决策变量的非线性表达式
③整数规划:要求变量取整数,下分线性与非线性,其中线性可以直接matlab求解,非线性无特定算法,主要用蒙特卡洛和智能算法
④01规划:整数规划中的特例,只能取01
排队论中的常见分布:泊松分布、指数分布与爱尔朗分布
顾客到达为泊松分布,两顾客到达的时间间隔以及服务时间为负指数分布
求解线性方程组高斯消去的时候,用放缩法更快收敛到真值(每行最大值取1)高斯赛德尔迭代法是一种更常用的方法收敛到真值
初值常微分方程求解初值的个数不少于阶数,求解用二阶龙格库塔法改进欧拉法
边界常微分方程求解用有限差分法
要计算非加权图中的最短路径,可使用广度优先搜索,要计算加权图中的最短路径,可使用迪杰斯特拉算法
Sigmoid函数即是在形态上呈“S”形的函数,是一种在生物领域常见的函数,同时其在逻辑回归、神经网络中也有相当广泛的应用