重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
需要有特定的题才能求的哦。
创新互联建站长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为阳谷企业提供专业的成都做网站、网站设计、外贸营销网站建设,阳谷网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
拓展:
模型方差
模型的方差是模型在拟合不同的训练数据时性能的变化大小。它反映特定数据对模型的影响。
“方差指的是,用不同训练数据进行模型评估时,模型表现的变化程度。”
——《统计学习及其在R中的应用》2014年版,第34页
一个高方差的模型在训练数据集发生细小变化时预测结果会发生很大变化。相反,对于低方差的模型,训练数据发生或大或小的改变时,预测结果的变化都很小。
低方差:训练数据集的变化对于模型来说影响很小。
高方差:训练数据集的变化对于模型来说影响很大。
方差一定是正值。
不可约误差
整体而言,模型的误差包含可约误差和不可约误差。
模型误差 = 可约误差 + 不可约误差
可约误差是我们可以去优化的成分。在模型通过学习训练集后这一数值会下降,我们会努力让这一数值尽可能地接近于零。
不可约误差是我们无法从模型中剔除的误差,在任何模型中都不可能被去除。
这一误差源于不可控因素,例如观测中的统计噪声。
“……通常会称之为“不可约噪声”,且不能在建模过程中剔除。”
——《预测模型应用》2013年版,第97页
同样的,尽管我们能够把可约误差压缩到接近于零或者非常小的值,甚至有时能够等于零,但不可约误差依然会存在。这决定了模型性能的下限。
“有一点是我们是需要牢牢记住的,那就是不可约误差始终会作为我们对目标Y预测精确率的下限值,这个边界在实践中永远是未知的。”
——《统计学习及其在R中的应用》2014年版,第19页
这提醒我们任何模型都不是完美的。
偏差-方差的权衡
对于模型的表现来说,偏差和方差是有关联的。
理想情况下,我们希望一个模型能有低偏差和低方差,但是在实际操作中这是非常具有挑战性的。实际上这是机器学习建模的目标。
降低偏差很容易使方差升高。相反,降低方差也会使得偏差升高。
“这被称之为一种‘权衡’,因为一般的方法很容易得到极低的偏差和很高的方差……或很低的方差和很高的偏差……”
——《统计学习及其在R中的应用》2014年版,第36页
这种关系一般被称为“偏差与方差的权衡”。这是一个关于思考如何选择模型和调整模型的概念框架。
我们可以基于偏差和方差来选择模型。简单的模型,例如线性回归和逻辑回归,通常具有高偏差和低方差。而复杂的模型,例如随机森林,通常具有低偏差和高方差。
我们通常会基于模型的偏差和方差所造成的影响来调整模型。对于K-近邻算法来说,超参数k控制着模型的偏差-方差权衡。k取值较小,例如k=1,会得到低偏差高方差的结果。反之k取值较大,如k=21,导致高偏差和低方差。
高偏差和高方差都不一定是坏的,但他们有可能会导致不良的结果。
我们时常要对一组不同的模型和模型参数进行测试,从而在给定的数据集中得到最好的结果。一个高偏差的模型有可能会是过于保守的,出现欠拟合。相反的,一个高方差的模型可能会出现过拟合。
我们有可能会选择提高偏差或方差,来减少模型的整体误差。
#计算e的值(精度为10**-6)
sum,tmp = 1,1
for i in range(1,20):
tmp*=i
sum += 1/tmp
print("e的近似值(精度为10**-6)为%.6f"%sum)
对于气象绘图来讲,第一步是对数据的处理,通过各类公式,或者统计方法将原始数据处理为目标数据。
按照气象统计课程的内容,我给出了一些常用到的统计方法的对应函数:
在计算气候态,区域平均时均要使用到求均值函数,对应NCL中的dim_average函数,在python中通常使用np.mean()函数
numpy.mean(a, axis, dtype)
假设a为[time,lat,lon]的数据,那么
需要特别注意的是,气象数据中常有缺测,在NCL中,使用求均值函数会自动略过,而在python中,当任意一数与缺测(np.nan)计算的结果均为np.nan,比如求[1,2,3,4,np.nan]的平均值,结果为np.nan
因此,当数据存在缺测数据时,通常使用np.nanmean()函数,用法同上,此时[1,2,3,4,np.nan]的平均值为(1+2+3+4)/4 = 2.5
同样的,求某数组最大最小值时也有np.nanmax(), np.nanmin()函数来补充np.max(), np.min()的不足。
其他很多np的计算函数也可以通过在前边加‘nan’来使用。
另外,
也可以直接将a中缺失值全部填充为0。
np.std(a, axis, dtype)
用法同np.mean()
在NCL中有直接求数据标准化的函数dim_standardize()
其实也就是一行的事,根据需要指定维度即可。
皮尔逊相关系数:
相关可以说是气象科研中最常用的方法之一了,numpy函数中的np.corrcoef(x, y)就可以实现相关计算。但是在这里我推荐scipy.stats中的函数来计算相关系数:
这个函数缺点和有点都很明显,优点是可以直接返回相关系数R及其P值,这避免了我们进一步计算置信度。而缺点则是该函数只支持两个一维数组的计算,也就是说当我们需要计算一个场和一个序列的相关时,我们需要循环来实现。
其中a[time,lat,lon],b[time]
(NCL中为regcoef()函数)
同样推荐Scipy库中的stats.linregress(x,y)函数:
slop: 回归斜率
intercept:回归截距
r_value: 相关系数
p_value: P值
std_err: 估计标准误差
直接可以输出P值,同样省去了做置信度检验的过程,遗憾的是仍需同相关系数一样循环计算。
代码如下所示:import numpy as npfrom matplotlib import pyplot as pltfrom scipy.interpolate import interp1dx=np.linspace(0,10*np.pi,num=20)y=np.sin(x)f1=interp1d(x,y,kind='linear')#线性插值f2=interp1d(x,y,kind='cubic')#三次样条插值x_pred=np.linspace(0,10*np.pi,num=1000)y1=f1(x_pred)y2=f2(x_pred)plt.figure()plt.plot(x_pred,y1,'r',label='linear')plt.plot(x,f1(x),'b--','origin')plt.legend()plt.show()plt.figure()plt.plot(x_pred,y2,'b--',label='cubic')plt.legend()plt.show()
因变量是你自己确定的,一般主成分得分是作为自变量的,叫主成分回归分析