微信公众号:数学建模与人工智能

GitHub - QInzhengk/Math-Model-and-Machine-Learning

第3章 探索规律

3.1 相关分析

相关关系是一种与函数关系相区别的非确定性关系,而相关分析就是研究事物或现象之间是否存在这种非确定性关系的统计方法。相关分析按处理问题的不同,通常可分为自相关分析、偏相关分析、简单相关分析、互相关分析以及典型相关分析。其中自相关分析、偏相关分析适用于分析变量自身的规律;简单相关分析通常可分析任意两个等长数列间的相的相关性;而互相关分析则允许在一定的间隔下讲行简单相关分析:典型相关分析适用于分析两组变量的相关性。

3.1.1自相关分析

在Python中,可使用statsmodels.graphics.tasplots模块下的plot_acf函数来分析时间序列的自相关性。

表 plot_acf函数定义及参数说明

函数定义
plot_acf(x,ax=None,lags=None,alpha=0.5,use_vlines=Ture,unbiased=True,fft=False,title='Autocorrelation',zero=True,vlines_kwargs=None,**kwargs)
参数说明
lags 可选项,表示延迟期数(横坐标),一般需要提供一个整数值或一个数值,当提供一个整数值时,它会按np.arange(lags)进行转换,默认情况下,它是np.arange(len(corr))
alpha 可选项,标量值,当设定该值时,对应函数会返回对应的置信区间,比如当设置 alpha=0.05时,将返回95%的置信区间。若将该值设定为None,则函数不该回置信区间
use_vlines 可选项,逻辑值。若为True,则绘制垂直线和标记。若为False,则只会绘制标记。默认为marker是'o',可以通过设置"marker"参数来修改
unbiased 逻辑值,如果是True,则自协方差的分母是n-k,否则为n
fft 逻辑值,如果是 True,则使用FFT来计算ACF
title 自相关图的标题,默认为Autocorrelation
zero 逻辑值,是否包含0-lag的自相关,默认为 True
vlines_kwargs 可选项,字典对象,包含传递给vlines的关键参数
**kwargs 可选项,直接传递给 Matplotlib中的 plot和 axhline函数的可选参数
ax 可选项,Matplotlib AxesSubplot 实例,当提供时,则直接基于ax来绘图,而不需要重新创建一个新画布来绘图
x 时间序列值组成的数组对象

3.1.2偏相关分析

在Python中,可使用statsmodels.graphics.tasplots模块下的plot_pacf函数来分析时间序列的偏相关性。

表 plot_pacf函数定义及参数说明

函数定义
plot_pacf(x,ax=None,lags=None,alpha=0.05,method='ywunbiased',use_vlines=True,title='Partial Autocorrelation',zero=True,vlines_kwargs=None,**kwargs)
参数说明
x 时间序列值组成的数组对象
ax 可选项,Matplotlib AxesSubplot 实例,当提供时,则直接基于ax来绘图,而不需要重新创建一个新画布来绘图
lags 可选项,表示延迟期数(横坐标),一般需要提供一个整数值或一个数值,当提供一个整数值时,它会按np.arange(lags)进行转换;默认情况下,它是np.arange(len(corr))
alpha 可选项,标量值,当设定该值时,对应函数会返回对应的置信区间,比如当设置alpha=0.05时,将返回95%的置信区间。若将该值设定为None,则函数不返回置信区间
method 可取的值包括'ywunbiased','ywmle'和'ols',可按如下方法来选择使用。-yw or ywunbiased:默认项,在acovf的分母中进行偏差纠正的yule walker-ywm or ywmle:没有偏差纠正的yule walker-ols:基于时间序列延迟和常数项构建的回归-ld or ldunbiased:进行偏差纠正的Levinson-Durbin递归-ldb or Idbiased:没有偏差纠正的Levinson-Durbin递归
use_lines 可选项,逻辑值。若为True,则绘制垂直线和标记。若为False,则只会绘制标记。默认为marker是'o',可以通过设置"marker"参数来修改
title 自相关图的标题,默认为 Partial Autocorrelation
zero 逻辑值,是否包含0-lag 的自相关,默认为 True
vlines_kwargs 可选项,字典对象,包含传递给vlines的关键参数
**kwargs 可选项,直接传递给Matplotlib中的plot和 axhline函数的可选参数

3.1.3简单相关分析

常见的相关分析的方法主要有散点图和相关图

1.散点图

散点图就是在数据点在直角坐标系上的分布图,通常分为散点图矩阵和三维散点图。其中散点图矩阵是变量两两组合,由数据点分布图构成的矩阵,而三维散点图就是从所有变量中选择3个变量进行绘制,进一步在三维空间里观察数据的形态。

  1. 散点图矩阵

Pandas.plotting模块下的scatter_matrix函数,使用该函数可快速绘制散点图。

import warnings
warnings.filterwarnings("ignore")
import pandas as pd
import matplotlib.pyplot as plt
iris = pd.read_csv('http://image.cador.cn/data/iris.csv')
# 参数说明
#     figsize=(10,10) 设置画布大小为10x10
#     alpha=1,设置透明度,此处设置为不透明
#     hist_kwds={"bins":20} 设置对角线上直方图参数
#     可通过设置diagonal参数为kde将对角图像设置为密度图
pd.plotting.scatter_matrix(iris,figsize=(10,10),alpha=1,hist_kwds={"bins":20})
plt.show()

#对角线上为单变量的直方图

此外,我们还可以使用Seaborn库中的pairplot函数来绘制散点图矩阵。

import seaborn as sns
sns.pairplot(iris,hue="Species")
plt.show()

#通过hue参数指定了分组的变量,这里使用鸢尾花的种类进行分组。对角线上的图形表示各个变量在不同鸢尾花类型下的分布情况;其他图形分别用不同颜色为数据点着色。根据该图可以更进一步地知道不同类型鸢尾花各变量的相关分析,以及线性、非线性的变化规律。

  1. 三维散点图

常用于绘制散点图的方法是使用mpl_toolkits库,该库中的mplot3d模块可以帮助我们绘制三维图形,主要使用的是Axes3D类。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
dims = {'x':'Sepal.Length','y':'Petal.Length','z':'Petal.Width'}
types = iris.Species.value_counts().index.tolist()
# 绘制散点图
fig = plt.figure()
ax = Axes3D(fig)
for iris_type in types:tmp_data = iris[iris.Species==iris_type]x,y,z = tmp_data[dims['x']], tmp_data[dims['x']], tmp_data[dims['z']]ax.scatter(x, y, z, label=iris_type)
# 绘制图例
ax.legend(loc='upper left')
# 添加坐标轴(顺序是Z, Y, X)
ax.set_zlabel(dims['z'])
ax.set_ylabel(dims['y'])
ax.set_xlabel(dims['x'])
plt.show()

2.相关图

所谓相关图是基于变量间的相关系数大小,通过可视化方式反应不同变量组合间相关关系的差异的图形,可以把相关图分为相关矩阵图。相关层次图。

  1. 相关矩阵图

在python中绘制相关矩阵图可以使用Seaborn库的heatmap方法,用pandas.corr函数来获取相关系数矩阵。

  1. 相关层次图

相关层次图是通过计算变量间的距离来判断各变量是否属于同一类的方法,体现的是变量之间的相关性。此外,通过将相关系数转化为距离度量进行系统聚类,旨在分析各变量的相关关系及组合影响情况。

import pandas as pd
import numpy as np
mtcars = pd.read_csv("http://image.cador.cn/data/mtcars.csv")
mtcars.drop(columns="_",inplace=True)
# 计算第四种相异性度量
d=np.sqrt(1-mtcars.corr()*mtcars.corr())
from scipy.spatial.distance import pdist,squareform
from scipy.cluster.hierarchy import linkage
from scipy.cluster.hierarchy import dendrogram
row_clusters = linkage(pdist(d,metric='euclidean'),method='ward')
row_dendr = dendrogram(row_clusters,labels = d.index)
plt.tight_layout()
plt.ylabel('Euclidean distance')
plt.plot([0,2000],[1.5,1.5],c='gray',linestyle='--')
plt.show()

变量drat、am、gear相关性较强,cyl、disp、mpg、wt相关性较强,hp、vs、qsec、carb相关性较强。

第4章 特征工程

4.1特征变换

特征变换通常是指对原始的某个特征通过一定规则或映射得到新特征的方法,主要方法包括概念分层、标准化、离散化、函数变换以及深入表达。

4.1.1概念分层

在数据分析的过程中,对于类别过多的分类变量通常使用概念分层的方法变换得到类别较少的变量,比如可以将年龄变量,其值为“1岁”“12岁”“38岁”等,变换成更高概念层次的值,如“儿童”“青年”“中年”等,其中每个值对应多个年龄,经过这样的处理,类别减少到几类,既避免了程序陷入过拟合,又能提高算法的效率。因此,概念分层是缩减离散变量取值数量的方法。由于取值概念层级更高,这必然会损失一些细节信息,极端情况是取到概念分层的顶层,也就是信息损失最大的取值,在这种情况下,对所有的样本,该变量的值都是一样的,因此就失去概念分层的意义了。(通常取值为2-5类,在数据分析实践中,通过配置维表或相关数据结构,再进行关联操作可以实现概念分层)

4.1.2标准化

在数据分析过程中,通常使用的变量量纲不一致,在确定权重、系数、距离时,也会有所影响,因此要进行数据标准化。标准化对数据进行无量纲处理,使不同量纲的数据可以在同一个数量级上进行横向比较,减少因为数据级的差异带来的误差。常见用于标准化的方法,可以简单地分成线性标准化和非线性标准化两类。

#该函数用于获取数据x的各种标准化值
# x:用于标准化的实数数组
# is_positive:是否是正向指标
def std_proc(x,is_positive=True):x = np.array(x)v_max, v_min, v_std, v_mean = np.max(x), np.min(x), np.std(x), np.mean(x)# 1. 线性标准化#---极差标准化if v_max > v_min:yExt = (x - v_min if is_positive else v_max - x)/(v_max - v_min)else:print("最大值与最小值相等,不能进行极差标准化!")yExt = None#---z-score标准化if v_std == 0:print("由于标准差为0,不能进行z-score标准化")yZsc=NULLelse:yZsc=(x-v_mean)/v_std#---小数定标标准化yPot = x/(10**len(str(np.max(np.abs(x)))))# 2. 非线性标准化#---对数标准化y = np.log((x-v_min if is_positive else v_max - x)+1)yLog = y/np.max(y)#---倒数标准化yInv=np.min(np.abs(x[x!=0]))/xreturn {"yExt":yExt,"yZsc":yZsc,"yPot":yPot,"yLog":yLog,"yInv":yInv}

4.1.3离散化

离散化通常是对实数而言的,它是将无限的连续值映射到有限分类值中的方法,并且这些分类规定了与无限连续值相同的取值空间。比如我们可以将收入金额的取值范围设为 2000~100000,离散化成“低等收入"“中等收入”“高等收入”等分类值,一般对于这种类型的离散化,得到的是有序分类变量。通过离散化处理,可以简化数据,有助于提高算法的执行效率和模型的可解释性。常见用于离散化处理的方法主要包括分箱法、嫡离散法、规则离散法等。

  1. 分箱法

分箱法是一种将连续数值按照一定规则存放到不同箱中的数据处理方法,箱的宽度表示箱中数值的取值区间,箱的深度表示箱中数值的数量。通常按箱的等宽、等深的差异将分箱法分成两类, 一类是等宽分箱,另一类是等比分箱。

数值分箱后,各分箱分别用什么值来表示:除了可以根据取值的范围来定义分类,还可以考虑将其进行平滑处理,通常有以下三种方法:使用箱内各值的平均值、使用箱内各位的中位数、使用箱内的最大值或最小值。

  1. 熵离散法

熵离散法是基于信息熵的一种数据离散方法,通常用在分类问题的预测场景中对数值属性或特征进行离散化处理,这是一种有指导的离散化方法,并且通常进行二元离散化。

  1. 规则离散化

所谓规则离散法就是不单纯依赖于数据和算法,而主要靠业务经验设定的规定来离散化数据的方法。比如对于收入数据,一般可分为低收入、中等收入、高收入3类,但是在特定场景下,也可以按收入的稳定性分为稳定收入、不稳定收入两类。也就是通过业务规则,甚至在特征中引入非线性变化,对于某些场景的建模可能会有所裨益。

4.1.4函数变换

函数变换指的是使用函数映射将变量或特征变换成另外一个特征的方法。通过函数变换会改变数据的分布,因此常用于对数据分布比较敏感的模型中。常见的函数变换方法主要包括幂函数变换和对数变换。

4.2特征组合

特征组合是指将两个或多个原始特征通过一定规则或映射得到新特征的方法。常见的特征组合方法包括基于特定领域知识的方法、二元组合和高阶多项式。其中基于特定领域知识的方法是以特定领域知识为基础,在一定的业务经验指导下实现的,属于由人工完成的方法,二元组合、高阶多项式通常是使用数据分析方法进行组合发现的,试图在有限范围内发现区分度更强的特征。

4.2.1基于经验

针对确定的预测主题,很有必要使用相关的领域知识来构建特征。比如使用最近一周的负荷数据对未来的负荷水平做预测。根据领域知识,可以根据最近一周的负荷数据(7个变量)衍生出近一周负荷平均增量、近一周负荷波动程度、近一周负荷平均增长率等特征。特定的领域知识在具体的 预测项目中扮演着重要的角色,根据参与构造组合特征的变量的量纲差异,将特定的领域知识分成两类:同质性组合、异质性组合。

(1)同质性组合

对于量纲相同的同质性变量,在进行组合时,通常构建平均值、变异程度、比率、增长率、平均增长率、最大最小增长率等特征,而这些特征在不同行业和领域中代表不同的业务含义,比如在医疗领域,用门诊确认病例数除以门诊总病例数可得到确诊率,而这个确诊率就是比率。又比如在电商领域,用离开网站人数除以访问的总人数,则可得到跳出率。这些指标都是通过同质性变量行生而来的。

(2)异质性组合

与同质性组合不同,异质性组合主要考虑量纲不同的变量。在进行组合时,通常构建单位性或平均性指标。比如在医疗领域,可以用确诊病人确诊总天数除以确诊病人总人数,得到平均确诊天数的特征:又比如在电商领域,可以用客户网站浏览时间除以网站交易量,得到每交易平均浏览时间等。

对于特定的预测问题,结合相关的领域知识,进行组合特征衍生,有助于发现区分度更强的特征,但是需要人工完成。如果找的特征比较准确,可以较好地提升预测模型的精度。

4.3特征评价

在建立预测模型之前,我们已经按照特征构建的方法得到了数据集,然而这样的数据集可能存在大量的特征,特征之间可能存在相关性,还有可能存在冗余的特征。为了提升建模效率,获取区分度更好的特征,需要进行特征选择。特征评价技术用于特征选择的过程中,它基于对现有数据的特征进行评价,进一步选取用 于建模的最优特征子集。特征评价的常用方法通常可分为3类:特征初选、影响评价、模型法。

4.3.1特征初选

所谓特征初选,就是可以通过直接观察数据的分布来判断是否保留该特征的方法。针对离散特征,可以统计该特征所有类型的所占比例,如果有一种的占比太大,比如占了90%及以上,那么这个特征就可以考虑去掉,不参与建模,因为这样的特征对建模没有任何意义,对于绝大部分的样本,这个特征都取一样的值,区分力度不够。针对连续变量,有两种方法可以考虑:一种方法是将连续特征离散化,再按针对离散特征的方法来排除;另外一种方法是计算该连续特征的标准差,如果标准差太小,则可以将该特征剔除。

4.3.2影响评价

除了基于单个变量的特征初选,我们还可以使用影响评价的方法来选择特征。影响评价是很常用的方法,对每个特征依次进行评价,然后把不满足要求的排除,以达到特征选择的目的。常用的算法包括Pearson相关系数、距离相关系数、单因素方差分析、信息增益卡方检验、Gini系数。

  1. Pearson相关系数

Pearson相关系数是一种衡量特征与响应变量之间关系的方法,它反映的是两个变量间的线性相关性。Pearson相关系数适用于两变量均为服从正态分布的连续变量,并且变量成对,用于表示两变量的线性关系。

import pandas as pd
from scipy import stats
iris = pd.read_csv("http://image.cador.cn/data/iris.csv")
stats.pearsonr(iris['Sepal.Length'], iris['Petal.Length'])
#(0.8717537758865832, 1.0386674194497525e-47)

打印的第一个值为Pearson相关系数r,第二个值为假设检验的P值,远小于0.01,即此时应该拒绝原假设,说明花萼长度与花瓣长度相关性很强。

注:Pearson相关系数只对线性关系敏感,如果两变量是非线性关系,即使它们之间存在一一对应的关系,也会导致计算的结果趋近于0.

import matplotlib.pyplot as plt
import matplotlib
import numpy as np
matplotlib.rcParams['font.family'] = 'Arial Unicode MS'
x=np.linspace(-1,1,50)
y=x**2
plt.plot(x,y,'o')
plt.xlabel('$x$')
plt.ylabel('$y$')
plt.show()
stats.pearsonr(x, y)
#(-1.5265566588595902e-16, 0.999999999999995)

  1. 距离相关系数

主要衡量非线性相关的程度。

# 使用scipy库中spatial.distanc模块的correlation函数,针对Pearson相关系数分析非线性的情况再做一次验证

from scipy.spatial.distance import correlation as dcor
dcor(x,y)
#1.0000000000000002

在使用Pearson相关系数时,相关度接近于0,而使用距离相关函数,其相关度达到了1.0,即完全正相关。所有针对非线性的相关问题,使用距离相关系数时比较合适的选择,但是对线性相关的问题,Pearson相关系数还是很强大的。

  1. 单因素方差分析

单因素方差分析就是讨论一个因素对观测变量的影响。使用statsmodels库中的stats.anova模块里面的anova_lm函数来实现单因素方差分析。

#用iris数据集中的Species作为因素,Sepal.Width作为观测值。

import pandas as pd
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
iris = pd.read_csv("http://image.cador.cn/data/iris.csv")
iris.columns = ['_'.join(x.split('.')) for x in iris.columns]
anova_lm(ols('Sepal_Width~C(Species)', iris).fit())

df sum_sq mean_sq F PR(>F)
C(Species) 2.0 11.344933 5.672467 49.16004 4.492017e-17
Residual 147.0 16.962000 0.115388 NaN NaN

F检验的P值为4.492017e-17,接近于0,明显小于0.01,说明Species对Sepal.Width的影响显著。

4.3.3模型法

将要评价的所有特征加入模型中进行训练和测试,通过分析这些特征对模型的贡献程度来识别特征的重要性,这种思路就是模型法用于评价特征重要性的出发点。有两大类经常使用的方法:增益法和置换法。其中增益法主要通过收集决策树建模过程中特征的Gini增益来评估特征的重要程度,而置换法主要通过比较特征在置换前后,其所建模型在OOB数据集的精度下降程度来评估特征的重要性。

第5章 参数优化

常用的参数优化方法主要包括交叉验证、网格搜索、遗传算法、粒子群优化、模拟退火

5.1交叉验证

交叉验证的基本思想是将数据集分割成N份,依次使用其中1份作为测试集,其他N-1份整合到一起作为训练集,将训练好的模型用于测试集中,以得到模型好坏的判断或估计值,可以得到N个这样的值。交叉验证通常用于估计模型的误差,这里将N个对应的误差求平均作为对模型误差的估计。也可以根据这N个值,选出拟合效果最好的模型,对应模型的参数也被认为是最优或接近最优的,因此交叉验证可以用来辅助确定参数。

5.2网格搜索

网格搜素的基本原理是将各参数变量值的区间划分为一系列的小区间,并按顺序计算出对应各 参数变量值组合所确定的目标值(通常是误差),并逐一择优,以得到该区间内最小目标值及其对应 的最佳参数值。该方法可保证所得的搜索解是全局最优或接近最优的,可避免产生重大的误差。

第6章 线性回归及其优化

6.1多元线性回归

6.1.1多重共线性

在多元线性回归的过程中,当自变量彼此相关时,回归模型可能并不稳定。估计的效果会由于模型中的其他自变量而改变数值,甚至符号。这一问题,通常称为多重共线性问题。

6.2Ridge回归

在进行多元线性回归时,有时会因为变量间存在共线性,而导致最小二乘回归得到的系数不稳定,方差较大。根本原因是系数矩阵与它的转置矩阵相乘得到的矩阵不能求逆。这个问题可以通过Ridge回归得到解决。Ridge回归也被称为岭回归,是一种专用于共线性数据分析的有偏估计回归方法。Ridge回归对最小二乘法进行了改良,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价来获得回归系数更为符合实际情况、更为可靠的回归方法,对病态数据的拟合效果要强于最小二乘法。

6.3Lasso回归

最小二乘估计虽有很多好的性质,但仍存在一些不足,特别是在进行大量预测时,为了预测准确,我们希望使某些回归系数减小到0,不仅可以减小预测方差,还可以减少变量。但是最小二乘法做不到这点。Lasso回归可以将某些回归系数置为0,可基于此特性进行特征选择。

6.4分位数回归

分位数回归是用解释变量X估计响应变量y的条件分位数的基本方法,它利用解释变量的多个分位数(例如四分位、十分位、百分位等)来得到响应变量的条件分布的相应的分位数方程。分位数回归相对于最小二乘回归应用的条件更为宽松,挖掘的信息更丰富,它不仅可以度量回归变量在分布中心的影响,而且还可以捕捉整个条件分布的特征。特别当误差为非正态分布时,分位数回归估计量比最小二乘估计量更有效。

分位数回归是使加权残差绝对值之和达到最小的参数估计方法,其优点主要体现在如下几个方面

1)分位数回归对模型中的随机误差项的分布不做任何假定。由于该分布可以是任何一个概率分布,这就使得整个模型具有很强的稳健性。

(2)分位数回归是对所有的分位数进行回归,因此对数据中的异常点不敏感。

(3)分位数回归对于因变量具有单调不变性。

(4)分位数回归估计出来的参数具有大样本理论下的渐进优良性。

6.5稳健回归

在回归分析中,通常使用普通最小二乘法来确定回归系数,而普通最小二乘法估计参数时一般需求数据满足一些性质,如正态性等。然而,现实中的数据常常不能满足这些性质,这便使得基于普通最小二乘法的回归模型难以达到满意的预测精度。此外,数据中的异常点,引起数据分布的偏离,特别对线性回归的拟合形成杠杆效应,最终使预测结果与真实值偏离较远。稳健回归就可以解决这些问题。

第7章 复杂回归分析

对于简单的回归问题,比如满足自变量独立、数据服从正态分布、线性或简单非线性关系的情况,通常采用多元线性回归及其优化方法即可有效处理。然而,现实世界中遇到的多数问题并不都满足以上条件,甚至出现高维度、小样本、非线性等复杂的回归问题,这就需要建立针对复杂回归问题的分析体系(GBDT回归方法、神经网络、支持向量回归以及高斯过程回归等,评价指标残差平方和)。

第8章 时间序列分析

时间序列就是按照时间顺序取得的一系列观测值。很多数据都是以时间序列的形式出现的,比如股票市场的每日波动、科学实验、工厂装船货物数量的月度序列、公路事故数量的周度序列,以及某化工生产过程按小时观测的产量等。时间序列典型的本质特征就是相邻观测值的依赖性。作为一门概率统计学科,时间序列分析的应用性较强,在金融经济、气象天文、信号处理、机械据动等众多领域有着广泛的应用。使用时间序列方法进行预测就是通过编制和分析时间序列,根据时间序列所反映出来的发展过程、方向和趋势,进行类推或延伸,借以预测下一段时间或以后若干年内可能达到的水平。

8.1门限自回归模型

TRA模型适用于周期性波动、非线性影响等情况。

8.2向量自回归模型

在时间序列预测实践中,通常使用的不止一个指标,比如电力行业的负荷预测,除了基本的电力负荷数据,还可以加入气温、湿度、节假日等因素。因此,针对一个指标的时间序列预测方法在这种情况下发挥空间有限。向量自回归模型,是目前处理多个相关时序指标分析与预测最容易操作的模型之一。

由于只有平稳的时间序列才能够直接建立VAR模型,因此在建立VAR模型之前,首先要对变量进行平稳性检验。通常可利用序列的自相关分析图来判断时间序列的平稳性,如果序列的自相关系数随着滞后阶数的增加很快趋于0,即落入随机区间,则序列是平稳的,反之序列则是不平稳的。另外,也可以对序列进行ADF检验来判断平稳性。对于不平稳的序列,需要进行差分运算,直到差分后的序列平稳,才能建立VAR模型。

8.3卡尔曼滤波

8.4循环神经网络(RNN)

8.7长短期记忆网络

循环神经网络由于存在梯度消失和梯度爆炸的问题,使得其难以训练,这就会限制该算法的普及应用。针对循环神经网络在实际应用中的问题,长短期记忆网络(LongShortTermMemory Network,LSTM)被提出,它能够让信息长期保存,成功地解决了循环神经网络的缺陷问题,而成为当前最为流行的RNN,特别是在语音识别、图片描述、NLP(自然语言处理)等任务中广泛应用。

Python预测 数据分析与算法 学习笔记

Python预测 数据分析与算法 学习笔记(特征工程、时间序列)相关推荐

  1. 推荐系统学习笔记——特征工程

    特征工程 一. 概述 二. 特征工程构建原则 三. 常用的特征有哪些 四. 常用的特征的处理方法 五. 特征选择 六. 总结 推荐系统学习笔记系列链接: 推荐系统学习笔记--特征工程 推荐系统学习笔记 ...

  2. 利用python进行数据分析第二版学习笔记

    行话: 数据规整(Munge/Munging/Wrangling) 指的是将非结构化和(或)散乱数据处理为结构化或整洁形式的整个过程.这几个词已经悄悄成为当今数据黑客们的行话了.Munge这个词跟Lu ...

  3. Python最优化算法学习笔记(Gurobi)

    微信公众号:数学建模与人工智能 github地址:https://github.com/QInzhengk/Math-Model-and-Machine-Learning Python最优化算法学习笔 ...

  4. 机器学习篇01:在线学习的支持向量机算法学习笔记

    在线学习的支持向量机算法学习笔记 oisvm算法实现说明 oisvm算法实现说明 % 本程序是用于实现基于在线学习的调制信号识别的程序 % % % 第一步:调制信号的生成 % 首先是7个信号:2ASK ...

  5. 机器学习knn算法学习笔记使用sklearn库 ,莺尾花实例

    ** 机器学习knn算法学习笔记使用sklearn库 ,莺尾花实例. 具体knn算法是怎样的我这里就不再详细论述.在这里我注意总结我使用knn算法进行一个分类的分析 ** 分析过程 1.前期准备 引入 ...

  6. 两个字符串的最长公共子序列长度_算法学习笔记(58): 最长公共子序列

    (为什么都更了这么多篇笔记了,这时候才讲这么基础的内容呢?因为我本来以为LCS这种简单的DP不用讲的,结果CF不久前考了LCS的变式,然后我发现由于自己对LCS一点都不熟,居然写不出来 ,于是决定还是 ...

  7. LMS与RLS算法学习笔记

    LMS与RLS算法学习笔记 一. 研究目的 1.1最陡下降法理论 1.2$LMS$算法 1.3$RLS$算法 1.4研究目标 二.代码解析 三.结果 实现代码点击 这里下载 一. 研究目的 1.1最陡 ...

  8. 基于MVS的三维重建算法学习笔记(一)— MVS三维重建概述与OpenMVS开源框架配置

    基于MVS的三维重建算法学习笔记(一)- MVS三维重建概述与OpenMVS开源框架配置 声明 1. MVS(Multi-view stereo)概述 稀疏重建与稠密重建的区别 稀疏重建--SFM(S ...

  9. 局部线性嵌入LLE算法--学习笔记

    流形学习是一大类基于流形的框架,形象说明流形降维: ISOMAP(更多细节可参考:isomap降维算法--学习笔记_Wsyoneself的博客-CSDN博客): LLE: 和传统的PCA,LDA等关注 ...

最新文章

  1. 面向未来的数据中心需要防止立法蠕变
  2. PPT学习资源(总)
  3. java文件递归_java递归处理文件夹和文件
  4. 一个菜鸟程序员的游戏开发心得
  5. 关于Myeclipse2017 MemoryAnalyzer的安装
  6. php接收文件,如何通过php 发送与接收流文件
  7. ubuntu man手册完善
  8. Codeforces 1077F2 Pictures with Kittens (hard version)(DP+单调队列优化)
  9. mysql gridview_DateGridView控件与mysql交互
  10. java类加载器说法正确的_Java中的类加载器
  11. Excel图表美化—表格美化
  12. simpson积分公式
  13. matlab ga函数详解,matlab遗传算法ga函数
  14. keep-alive 理解 如何实现?缓存是什么?
  15. 2021“载歌在谷”线上春晚震撼来袭!
  16. avi格式视频转换高清mp4的方法
  17. python爬去网页数据并对比excel中数据是否一致_python入门之对比两份excel表格数据...
  18. Lua Math函数
  19. 百度地图添加带有图案的多边形区域
  20. Python基础数据结构之大循环(for list,set,dict,tuple)

热门文章

  1. “跑”进百亿俱乐部的特步,能追上安踏吗?
  2. 自我介绍php一句话,个性自我介绍 一句话介绍自己经典语句
  3. 一句话成为心上人“特别的存在”
  4. ICDE-2020 论文简析:依赖感知空间众包中的任务分配 - Task Allocation in Dependency-aware Spatial Crowdsourcing
  5. [编程题]毕业旅行问题
  6. CSDN的文章转为MD并全打包一键下载
  7. 惊了!如何通过阿里 EasyExcel 7 行代码, 优雅地实现 Excel 文件导出功能?
  8. 那些严格考勤打卡的公司
  9. MediaSuite.NET Crack,编码器对象反序列化
  10. 加拿大访问学者生活学习小贴士