精华内容
下载资源
问答
  • 描述性分析流程的整理前言一、变量说明表二、统计量描述位置的度量变异程度的度量三、统计图描述如何改变文本的样式插入链接与图片设定内容居中、居左、居右KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLow...

    导读
    楼主本人统计学专业在读,这几年也完成了不少数据分析的报告,故而想整理一点写数据类报告的tips。本文先整理了对一份数据进行描述性分析的流程。包括变量说明和利用平均数、方差、偏度峰度等基本统计量进行解读的思路。

    一、数据报告

    一般来说一份数据报告要包含研究目的、描述性分析、特征工程、建模分析、模型检验、模型对比的过程,最后需要加上最重要的结论和建议。其中数据处理的第一步就是描述性分析。

    研究目的
    描述性分析
    特征工程
    建立模型与解读
    模型检验和效果对比
    结论和建议

    有人说不知道描述性分析该描述什么,好像没什么可写。我的理解是,对读者而言,描述性分析其实就是在最开始给读者呈现对数据的初步观察,让其产生对数据的初印象,而建立模型的过程等于深挖这份数据集的特点;对个人而言,我们可以通过描述性分析发现特征的特点,从而对特征进行一些变换和处理,接下来再根据发现的数据特点以及研究目标去选用合适的模型。描述性分析的过程不该太长,以免喧宾夺主,应该指出重点的发现,并且尽量简单直白。接下来将对描述性分析的流程进行梳理,代码部分利用R语言实现

    描述性分析
    变量说明
    单变量统计量描述
    单变量统计图表
    多变量描述

    二、变量说明表

    数据集包含哪些内容?拿到一份数据首先要解决的就是这个问题。通常我们见到的csv格式的数据,都是以数据框形式存在,每一列都是代表一项特征,所以不妨先拿出头几行数据进行观察。这次用的例子是来自狗熊会(公众号:CluBear)的数据集,是二手市场上在售的1289条的汽车的10项指标数据,数据是前几年的,自变量包括汽车描述,排量,性能,级别,车门,车座,马力,发动机和前制动类型等10个变量,那么我们关心的变量是什么呢?这就是数据报告的目的性,本次设定因变量为汽车的价格,探究汽车价格的关键影响指标。下面可以先展示一下数据集的前几行。

    描述 价格 排量 性能 级别 车门 车座 马力 发动机 前制动类型
    奥迪Q3 2017款 30 TFSI 时尚型 20.6 1.4 自动 紧凑型 5 5 88 L4 通风盘式
    川汽野马F10 2011款 1.5L 手动 2.1 1.5 手动 小型 5 5 88 L4 盘式
    丰田汉兰达 2015款 2.0T 四驱豪华版 7座 27.8 2 自动 中型 5 7 220 L4 通风盘式
    奥迪Q5 2013款 40 TFSI 进取型 27.88 2 自动 中型 5 5 211 L4 通风盘式

    这样一份关于市场上汽车特征的数据集,对于不了解汽车的人来说,每个数值代表的含义就不够明确,比如价格20万元是高还是低呢?级别又代表什么含义?紧凑型比小型大还是小?前制动类型没听说过,什么意思等等。所以为了解释数据,我们需要对这些变量(或特征)进行一个说明。

    变量说明表一般包含变量名、变量说明和取值范围这几个关键因素,变量名称很多时候数据集会以英文命名,所以就需要一个简要说明,对于数值型变量,可以介绍单位;对于类别变量,列出类别数。那么取值范围里面就可以把类别大致写一下,比如级别为大型的汽车就没有出现在前面展示的数据里,所以有必要在取值范围中出现。整理好后就可以看出前制动类型不止有通风盘式还有盘式,级别不仅有紧凑型还有大型。

    下面视情况可以再添加一些备注,备注可以对比较难以理解的变量进行解释,比如级别指的含义其实就是空间大小,或者是展示简单统计信息,如各类型样本的占比等。

    变量类型 变量名 详细说明 取值范围 备注
    因变量 在售价格 单位:万元 1.3~280.0
    自变量 描述 汽车品牌与年份及关键字 文字信息
    排量 单位:升 1.3~6.2
    性能 定性变量,2个水平 手动,自动 手动约占28%,自动72%
    级别 定性变量,5个水平 小型,紧凑型,中型,中大型,大型 左边按照从小到大排序
    车门 整数变量 2,3,4,5 存在部分数据偏差
    车座 整数变量 4,5,7,8
    马力 连续变量 85~575
    发动机 定性变量,7个水平 L3,L4,V5,L6,V8,H4,L5 代表不同的气缸排列方式
    前制动类型 定性变量,2个水平 盘式,通风盘式 制动方式,通风盘式造价较高

    三、统计量描述

    还是以汽车价格数据为例,目前我们的因变量是价格,所以首选价格分析。对单变量进行统计量描述的时候可以用常见的统计量来做初步观察,统计量的主要意义在于整合数据,并且呈现出数据告诉我们的关键信息。

    位置的度量

    1. 平均数

    平均数即为样本观测值的总和平均。xi为我们的观察值,n为样本量,则有
    xˉ=i=1nxin \bar x=\frac{\sum_{i=1}^n x_i}{n}
    如汽车价格的平均数为17.3万元

    2. 中位数和分位数

    中位数是对数据中心位置的度量。将所有数据按照升序排列,位于中间的数值。
    (a)观测数为奇数时,中位数是位于中间的那个数值;
    (b)观测数为偶数时,中位数是位于中间两个数的平均值。
    百分位数(percentile): 第p百分位数满足条件的一-个数值,至少有p%的观测值小于或等于该值,且至少有(100 - p)%的观测值大于或等于该值。常用到的四分位数即:第25,50,75百分位数。
    如汽车价格的中位数为11.4万元

    R中求平均值、中位数、分位数的函数为mean(x),median(x),和quantiel(x,p)

    3. 两者的对比

    在描述统计的过程中,没有任何一个数字是孤零零地呈现的。我们需要对数字进行一个对比和解释,比如说分组取平均值,这对于类别变量就较为有效

    tapply函数常用对于因子型进行分组计算,按照index分组,对x进行fun的计算, tapply(X, INDEX, FUN )

    #按照级别对价格求均值
    tapply(suv_data$价格,suv_data$级别,mean)
    
        -      大型    紧凑型      小型    中大型      中型 
           NA 102.50000  10.84507   6.47700  52.46496  20.53357 
    

    从上面的分组价格可以看出不同大小的汽车平均价格相差很大,这就给我们提供了一个信息,即这个特征是个区分度高的“好”特征,在建模过程应该持续关注。

    中位数和平均数其实都是耳熟能详的统计量,但是主要的区别在于平均数是一个受异常值影响大的统计量,而中位数则比较稳健。比如说一个公司有1个人是100万元,剩下99个人都是1000元,中位数是1000,但是平均工资就会超过1万元。显然这个平均值没有意义,因为它没有做到呈现关键信息的作用。这时候中位数和众数其实都是相对好的统计量。

    4. 最大值和最小值

    有时候视情况还可以补充一些最大值和最小值之类的数据,就像老师重点关注优生和差生一样,因为他们在集体里具有一定的代表性,某种意义上代表了老师教学成果的上下限。下面简单呈现一些对汽车数据的部分统计结果。

    summary用于一键计算所有特征的统计量,对数值型计刚才提到的所有统计量,类别变量统计频数,还有很多这类统计函数,下次再整理一下

    summary(suv_data)
         价格             排量         性能         级别     车门          车座            马力      
     Min.   :  1.30   Min.   :1.300   手动:359   -     :  4   -:   4   Min.   :4.000   Min.   : 85.0  
     1st Qu.:  7.60   1st Qu.:1.600   自动:930   大型  :  4   2:   8   1st Qu.:5.000   1st Qu.:144.0  
     Median : 11.50   Median :2.000              紧凑型:669   3:   1   Median :5.000   Median :163.0  
     Mean   : 17.52   Mean   :2.099              小型  :160   4:   5   Mean   :5.219   Mean   :180.2  
     3rd Qu.: 20.00   3rd Qu.:2.400              中大型:133   5:1271   3rd Qu.:5.000   3rd Qu.:201.0  
     Max.   :280.00   Max.   :6.200              中型  :319            Max.   :8.000   Max.   :575.0  
                                                                       NA's   :4       NA's   :4      
              
    

    结果给出最大值和最小值之后,可i以重新去数据集里定位它的具体信息。比如汽车数据的价格最高值来自奔驰G级AMG 2016款 AMG G63 Edition 463,为280万元,但是!同样我们需要思考数字的含义,280万是多高呢?很高?还是只是比一般的高一点呢?

    这时我们可以想到中位数和平均数,上面的问题就有了答案,中位数为11.5万元,均值则为17.5万元,说明280万确实是比一般的车贵太多了!这样正常吗?像这样的高价汽车有多少呢?如果我们假设一百万算高价,那么高于100万元的SUV汽车在数据集里总共也只12款,占总体的不到1%,所以说市场上的百万级汽车的数量还是较少,这些汽车价格并非异常,市面上是存在这样的需求的。

    变异程度的度量

    接下来有一些统计量可以描述数据的变化

    1. 方差和标准差

    方差:变异程度的度量,每条数据和平均值的差的平方和,公式如下
    s2=i=1n(xixˉ)2n s^2=\frac{\sum_{i=1}^n (x_i-\bar x)^2}{n}
    而标准差ss即为上式开根号

    2. 极差和四分位数间距

    极差(range): 最大值减去最小值。优点,容易计算;缺点,比平均数还容易受异常值影响。
    range=x(n)x(1) range=x_{(n)} -x_{(1)}

    四分位数间距(inter quartile range):
    IQR=Q3Q1 IQR=Q3-Q1

    即第3四分位数-第1四分位数。所以IQR就是中间的50%的数据的极差。这个统计量不常见到,但是提供了一种度量变异的新想法,可以尝试与极差进行比较

    3.变异系数

    融合了平均数和标准差,值越大说明变异程度越强。σ\sigma为标准差,μ\mu为平均值,则样本的变异系数为
    coef of variance=sxˉ×100% coef\ of\ variance=\frac{s}{\bar x}\times100\%

    分布形状的度量

    数据的分布形态主要指数据分布是否对称,偏斜程度如何,分布陡峭程度等。所以大多时候需要结合统计图来观察。

    1. 偏度

    偏度(Skewness) :描述变量取值分布形态对称性的统计量。其计算公式为:

    βs=m3m232=1ni=1n(xixˉ)3(1ni=1n(xixˉ)2)32 \beta_s=\frac{m_3}{m_2^{\frac{3}{2}}}=\frac{\frac{1}{n}\sum_{i=1}^n (x_i-\bar x)^3}{(\frac{1}{n}\sum_{i=1}^n (x_i-\bar x)^2)^\frac{3}{2}}

    当分布为对称分布时,正负总偏差相等,偏度值等于0;当分布为不对称分布时,偏度值大于0或小于0。偏度绝对值越大,表示数据分布形态的偏斜程度越大。

    • 偏度大于0表示正偏差值大,称为正偏或右偏,这时
      一般来说,中位数<平均数
    • 偏度值小于0表示负偏差值大,称为负偏或左偏,这时
      一般来说,平均数<中位数
      下面会结合图形解释一下原因

    2. 峰度

    峰度(Kurtosis) :描述变量 取值分布形态陡峭程度的统计量。样本峰度计算公式为:

    βk=m4m22=1ni=1n(xixˉ)4(1ni=1n(xixˉ)2)2 \beta_k=\frac{m_4}{m_2^2}=\frac{\frac{1}{n}\sum_{i=1}^n (x_i-\bar x)^4}{(\frac{1}{n}\sum_{i=1}^n (x_i-\bar x)^2)^2}

    • 峰度值等于3,表示数据分布与标准正态分布的陡峭程度相同时,正态分布的峰度即为3
    • 峰度大于3,表示数据的分布比标准正态分布平缓,为平峰分布
    • 峰度小于3,表示数据的分布比标准正态分布更陡峭,为尖峰分布

    timeDate包里有kurtosis和skewness,psych包里的describe也可以计算

    library(timeDate)
    kurtosis(suv_data$价格)
    [1] 43.57262
    attr(,"method")
    [1] "excess"
    
    skewness(suv_data$价格)
    [1] 4.727704
    attr(,"method")
    [1] "moment"
    

    从上面可以看到偏度值是47,远大于0,故而明显右偏,而峰度值则略大于3,即为比正态分布稍微平缓一点。

    3. 示例

    在这里我们结合价格的频数直方图可以更清晰一点。这张图上可以看出右偏指的其实就是峰值靠左边,尾巴在右边。大部分的价格整体集中在0-20万元分段,但是有一小部分汽车价格特别高,这时候这些高价车就会让所有车的平均价格被拉高了,和刚才提到的工资例子一样,这也很明显地服从二八分布的法则。
    在这里插入图片描述
    简单说下二八法则,价格类的数据常常服从一种经济定律,80/20法则,也叫帕累托法则,这是20世纪初意大利统计学家、经济学家维尔弗雷多·帕累托提出的,他指出:在任何特定群体中,重要的因子通常只占少数,而不重要的因子则占多数,因此只要能控制具有重要性的少数因子即能控制全局。这个原理经过多年的演化,已变成当今管理学界所熟知的二八法则——即80%的公司利润来自20%的重要客户,其余20%的利润则来自80%的普通客户。

    这类法则在解释价格分布时有很重要的作用,在研究价格数据这类经济金融相关的数据时,我们可以补充这些相关知识来充实解读,数字永远只是数字,背后的含义才是需要深挖的事情。总的来说,价格的中位数为11.4万元,而均值则为17.3万元,平均值高于中位数,呈现右偏分布。价格明显地服从二八分布,即80%的价格分布在23.5万内,在最大价格的20%以内,故而是少数高价的SUV汽车样本拉高了样本的平均价格。以上就是对于价格单变量的描述分析。关于统计图和多变量之间的描述分析下次继续整理。

    展开全文
  • 系统中某一因素变量的时间序列数据没有确定的变化形式,也不能用时间的确定函数描述,但可以用概率统计方法寻求比较合适的随机模型近似反映其变化规律。(自变量不直接含有时间变量,但隐含时间因素)1. 自回归AR(p)...

    系统中某一因素变量的时间序列数据没有确定的变化形式,也不能用时间的确定函数描述,但可以用概率统计方法寻求比较合适的随机模型近似反映其变化规律。(自变量不直接含有时间变量,但隐含时间因素)

    1. 自回归AR(p)模型

    (R:模型的名称 P:模型的参数)(自己影响自己,但可能存在误差,误差即没有考虑到的因素)

    (1)模型形式

    (εt越小越好,但不能为0:ε为0表示只受以前Y的历史的影响不受其他因素影响)
    yt=φ1yt-1+φ2yt-2+……+φpyt-p+εt
    式中假设:yt的变化主要与时间序列的历史数据有关,与其它因素无关;
    εt不同时刻互不相关,εt与yt历史序列不相关。
    式中符号:p模型的阶次,滞后的时间周期,通过实验和参数确定;
    yt当前预测值,与自身过去观测值yt-1、…、yt-p是同一序列不同时刻的随机变量,相互间有线性关系,也反映时间滞后关系;
    yt-1、yt-2、……、yt-p同一平稳序列过去p个时期的观测值;
    φ1、φ2、……、φp自回归系数,通过计算得出的权数,表达yt依赖于过去的程度,且这种依赖关系恒定不变;
    εt随机干扰误差项,是0均值、常方差σ2、独立的白噪声序列,通过估计指定的模型获得。

    (2)识别条件

    当k>p时,有φk=0或φk服从渐近正态分布N(0,1/n)且(|φk|>2/n1/2)的个数≤4.5%,即平稳时间序列的偏相关系数φk为p步截尾,自相关系数rk逐步衰减而不截尾,则序列是AR(p)模型。
    实际中,一般AR过程的ACF函数呈单边递减或阻尼振荡,所以用PACF函数判别(从p阶开始的所有偏自相关系数均为0)。

    (3)平稳条件

    一阶:|φ1|<1。二阶:φ1+φ2<1、φ1-φ2<1、|φ2|<1。φ越大,自回归过程的波动影响越持久。

    (4)模型意义

    仅通过时间序列变量的自身历史观测值来反映有关因素对预测目标的影响和作用,不受模型变量相互独立的假设条件约束,所构成的模型可以消除普通回归预测方法中由于自变量选择、多重共线性等造成的困难。

    2.移动平均MA(q)模型

    (1)模型形式

    yt=εt-θ1εt-1-θ2εt-2-……-θpεt-p

    (2)模型含义

    用过去各个时期的随机干扰或预测误差的线性组合来表达当前预测值。
    AR(p)的假设条件不满足时可以考虑用此形式。
    总满足平稳条件,因其中参数θ取值对时间序列的影响没有AR模型中参数p的影响强烈,即这里较大的随机变化不会改变时间序列的方向。

    (3)识别条件

    当k>q时,有自相关系数rk=0或自相关系数rk服从N(0,1/n(1+2∑r2i)1/2)且(|rk|>2/n1/2(1+2∑r2i)1/2)的个数≤4.5%,即平稳时间序列的自相关系数rk为q步截尾,偏相关系数φk逐步衰减而不截尾,则序列是MA(q)模型。
    实际中,一般MA过程的PACF函数呈单边递减或阻尼振荡,所以用ACF函数判别(从q阶开始的所有自相关系数均为0)。

    (4)可逆条件

    一阶:|θ1|<1。二阶:|θ2|<1、θ1+θ2<1。
    当满足可逆条件时,MA(q)模型可以转换为AR(p)模型

    3.自回归移动平均ARMA(p,q)模型

    (1) 模型形式

    yt=φ1yt-1+φ2yt-2+……+φpyt-p+εt-θ1εt-1-θ2εt-2-……-θpεt-p
    

    式中符号: p和q是模型的自回归阶数和移动平均阶数;
    φ和θ是不为零的待定系数;εt独立的误差项;
    yt是平稳、正态、零均值的时间序列。

    (2) 模型含义

    使用两个多项式的比率近似一个较长的AR多项式,即其中p+q个数比AR(p)模型中阶数p小。前二种模型分别是该种模型的特例。
    一个ARMA过程可能是AR与MA过程、几个AR过程、AR与ARMA过程的迭加,也可能是测度误差较大的AR过程。

    (3) 识别条件

    平稳时间序列的偏相关系数φk和自相关系数rk均不截尾,但较快收敛到0,则该时间序列可能是ARMA(p,q)模型。实际问题中,多数要用此模型。因此建模解模的主要工作是求解p、q和φ、θ的值,检验εt和yt的值。

    (4) 模型阶数

    AIC准则:最小信息准则,同时给出ARMA模型阶数和参数的最佳估计,适用于样本数据较少的问题。目的是判断预测目标的发展过程与哪一随机过程最为接近。因为只有当样本量足够大时,样本的自相关函数才非常接近母体的自相关函数。具体运用时,在规定范围内使模型阶数从低到高,分别计算AIC值,最后确定使其值最小的阶数是模型的合适阶数。
    模型参数最大似然估计时AIC=(n-d)logσ2+2(p+q+2)
    模型参数最小二乘估计时AIC=nlogσ2+(p+q+1)logn
    式中:n为样本数,σ2为拟合残差平方和,d、p、q为参数。
    其中:p、q范围上线是n较小时取n的比例,n较大时取logn的倍数。
    实际应用中p、q一般不超过2。

    4.自回归综合移动平均ARIMA(p,d,q)模型

    (1)模型识别

    平稳时间序列的偏相关系数φk和自相关系数rk均不截尾,且缓慢衰减收敛,则该时间序列可能是ARIMA(p,d,q)模型。

    (2)模型含义

    模型形式类似ARMA(p,q)模型,但数据必须经过特殊处理。特别当线性时间序列非平稳时,不能直接利用ARMA(p,q)模型,但可以利用有限阶差分使非平稳时间序列平稳化,实际应用中d一般不超过2。
    若时间序列存在周期性波动,则可按时间周期进行差分,目的是将随机误差有长久影响的时间序列变成仅有暂时影响的时间序列。
    即差分处理后新序列符合ARMA(p,q)模型,原序列符合ARIMA(p,d,q)模型。

    展开全文
  • 统计分析:模型评估和模型选择

    千次阅读 2016-01-22 10:22:01
    机器学习算法 原理、实现与实战——模型评估与模型选择原文地址:...假设学习到的模型是Y=f^(X)Y = \hat{f}(X),训练误差是模型Y=f^(X)Y = \hat{f}(X)关于训练数据集的平均损失:

    机器学习算法 原理、实现与实战——模型评估与模型选择

    原文地址:http://www.cnblogs.com/ronny/p/4062792.html

    1. 训练误差与测试误差

    机器学习的目的是使学习到的模型不仅对已知数据而且对未知数据都能有很好的预测能力。
    假设学习到的模型是Y=f^(X),训练误差是模型Y=f^(X)关于训练数据集的平均损失:

    Remp(f^)=1Ni=1NL(yi,f^(xi))

    其中N是训练样本容量。
    测试误差是模型Y=f^(X)关于测试数据集的平均损失:
    etest(f^)=1Ni=1NL(yi,f^(xi))

    其中N是测试样本容量。
    当损失函数是0-1损失时,测试误差就变成了常见的测试数据集上的误差率(预测错误的个数除以测试数据的总个数)。
    训练误差的大小,对判定给定问题是不是一个容易学习的问题是有意义的,但本质上不重要。测试误差反映了学习方法对未知数据集的预测能力,是学习中的重要概念。显然,给定两种学习方法,测试误差小的方法具有更好的预测能力,是更有效的方法。通常将学习方法对未知数据的预测能力称为泛化能力(generalization ability)。

    2. 过拟合与模型选择

    我们知道假设空间理论上有无限个模型,它们有着不同的复杂度(一般表现为参数个数的多少),我们希望选择或学习一个合适的模型。
    如果一味提高对训练数据的预测能力,所选的模型的复杂度则往往会比真实模型更高。这种现象称为过拟合。过拟合是指学习时选择的模型所包含的参数过多,以致于出现这一模型对已知数据预测很好,但对未知数据预测很差的现象。
    下面,以多项式函数拟合问题为例,说明过拟合与模型选择,这是一个回归问题。
    现在给定一个训练数据集:

    T={(x1,y1),(x2,y2),,(xn,yn)}

    其中,xiR是输入x的观测值,yiR是相应的输出y的观测值。多项式函数拟合的任务是假设给定数据由M次多项式函数生成,选择最有可能产生这些数据的M次多项式函数,即在M次多项式函数中选择一个对已知数据以及未知数据都有很多预测能力的函数。
    我们用y=sin(x)生成10个数据点,并适当的在y值上加了一些误差,下面我们分别用0~9次多项式对数据进行拟合。

    m=1
    m=3
    m=9
    上图给出了M=1,M=3,M=9时多项式拟合的情况。当M=1时多项式曲线是一条直线,数据拟合效果很差。相反,如果M=9,多项式曲线通过每个数据点,训练误差为0。从对给定的训练数据拟合的角度来说,效果是最好的。但是因为训练数据本身存在噪声,这种拟合曲线对未知数据的预测能力往往并不是最好的,这时过拟合现象就会发生。

    import numpy as np
    import matplotlib.pyplot as plt
    import random
    x = np.linspace(0,1,10)
    y = np.sin(2*np.pi*x)
    for i in range(0,10):
            y[i] = y[i] + random.uniform(-0.4,0.4)
    p = np.polyfit(x,y,9)
    t = np.linspace(0,1.0,100)
    plt.plot(x,y,'o')
    plt.plot(t,np.sin(np.pi*2*t),label='$y=sin(x)$');
    plt.plot(t,np.polyval(p,t),label='$y = \sum_{i=0}^Mw_ix_i,M=9,x_0=0$');
    plt.legend()
    plt.show()

    3. 正则化与交叉验证

    3.1 正则化

    前面文章在介绍机器学习策略的时候,已经提到过结构风险最小化的概念。结构风险最小化正是为了解决过拟合问题来提出来的策略,它在经验风险上加一个正则化项。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如,正则化项可以是模型参数的向量的范数。
    正则化项可以取不同的形式。例如,回归问题中,损失函数是平方损失,正则化项可以是参数向量的L2范数:

    L(w)=1Ni=1N(f(xi;w)yi)2+λ2||w||2

    这里,||w||表示参数向量wL2范数。
    正则化项也可以是参数向量的L1范数:
    L(w)=1Ni=1N(f(xi;w)yi)2+λ||w||1

    这里,||w||1表示参数向量wL1范数。
    正则化符合奥卡姆剃刀(Occam’s razor)原理。奥卡姆剃刀应用在模型选择时想法是:在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。从贝叶斯估计的角度来看,正则化项对应于模型的先验概率。可以假设复杂模型有较小的先验概率,简单的模型有较大的先验概率。

    3.2 交叉验证

    如果给定的样本数据充足,进行模型选择的一种简单方法是随机地将数据集切分成三部分,分别为训练集、验证集和测试集。训练集用来训练模型,验证集用于模型的选择,而测试集用于最终对学习方法的评估。在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型。
    但是在许多实际应用中数据是不充分的。为了选择好的模型,可以采用交叉验证方法。交叉验证的基本想法是重复地使用数据;把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择。

    1. 简单交叉验证

    首先随机地将已给数据分为两部分,一部分作为训练集,另一部分作为测试集;然后用训练集在各种条件下训练模型,从而得到不同的模型;在测试集上评价各个模型的测试误差,选出测试误差最小的模型。

    2. S折交叉验证

    这种方法应用最多。首先随机地将已给的数据切分为S个互不相交的大小相同的子集;然后利用其中的S-1个子集的数据训练模型,然后用余下的子集测试模型;将这一过程对可能的S种选择重复进行;最后选出S次评测中平均测试误差最小的模型。

    3. 留一交叉验证

    S折交叉验证的特征情形是S=N,称为留一交叉验证,往往在数据缺乏的情况下使用。这里,N是给定数据集的容量。

    4. 泛化能力

    学习方法的泛化能力是指由该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质。现实中采用最多的办法是通过测试数据集的误差来评价学习方法的泛化能力。但是因为数据是有限的,并不能代表全体未知样本,所以很有可能按照这样评价到得的结果是不可靠的。
    下面我们从理论上对学习方法的泛化能力进行分析。
    首先给出泛化误差的定义。如果学习到的模型是f^,那么用这个模型对未知数据预测的误差即为泛化误差(generalization error)

    Rexp(f^)=EP[L(Y,f^(X))]=X×YL(y,f^(x))P(x,y)dxdy

    泛化误差反映了学习方法的泛化能力,如果一种方法学习的模型比另一种方法学习的模型具有更小的泛化误差,那么这种方法就更有效。事实上,泛化误差就是所学习到的模型的期望风险。
    展开全文
  • 统计语言模型:自然语言从它产生开始,逐渐演变成一种上下文相关的信息表达和传递方式。因此让计算机处理自然语言,一个基本问题就是为自然语言这种上下文相关的特性建立数学模型,这个数学模型就是在自然语言处理...

     

    统计语言模型:自然语言从它产生开始,逐渐演变成一种上下文相关的信息表达和传递方式。因此让计算机处理自然语言,一个基本问题就是为自然语言这种上下文相关的特性建立数学模型,这个数学模型就是在自然语言处理中常说的统计语言模型(Statistical Language Model)。它是今天所有自然语言处理的基础,并且广泛应用于机器翻译、语音识别、印刷体或手写体识别、拼写纠错、汉字输入和文献查询。

    目录

    1.用数学的方法描述语言规律

    2. 高阶语言模型

    3.模型的训练、零概率问题和平滑方法


    1.用数学的方法描述语言规律

    统计语言模型产生的初衷是为了解决语音识别问题。在语音识别中,计算机需要知道一个文字序列是否能构成一个大家理解并且有意义的句子,然后显示或打印给使用者。

    比如:

    这句话就很通顺,意义也很明白。

    如果改变一些词的顺序,或者替换掉一些词,将这句话变成:

    意思就含混了,虽然多少还能猜到一点。

    但如果再换成:

    基本上读者就不知所云了。

    第一个句子合乎语法,词义清晰。第二个句子虽不合乎语法,但是词义还算清晰。而第三个句子则连词义都不清晰了。上世纪 70 年代以前,科学家们也是这样想的,他们试图判断这个文字序列是否合乎文法、含义是否正确等。但是语言的结构千变万化,要通过制定规则来覆盖所有的文法根本是不可能的。而弗里德里克·贾里尼克(Frederick Jelinek)换了一个角度,用一个简单的统计模型就很漂亮地搞定了这个问题。

    • 贾里尼克想法

    贾里尼克的出发点很简单:一个句子是否合理,就看它的可能性大小如何。上面的例子中,第一个句子出现的概率大致是10^{-20},第二个句子出现的概率是 10^{-25},第三个句子出现的概率是 10^{-70}。因此第一个句子出现的可能性最大,是第二个句子的 10万倍,是第三个句子的一百亿亿亿亿亿亿倍。

    用更普遍而严格的描述是:

    假定 S 是一个有意义的句子,由一连串特定顺序排列的词 ?1,?2,⋯,??组成,n为句子的长度。那么 S 在文本中出现的可能性就是 S 的概率 P(S)。于是可以把 P(S) 展开表示为:

    利用条件概率公式,S 这个序列出现的概率等于每一个词出现的条件概率相乘,于是:

    P(w_{1},w_{2},...,w_{n})=P(w_{1})P(w_{2}|w_{1})P(w_{3}|w_{1},w_{2})...P(w_{n}|w_{1},w_{2},...,w_{n-1})

    其中P(w_{1})表示句子第一个词为w_{1}的概率;P(w_{2}|w_{1})是在已知第一个词的前提下,第二个词出现的概率,以此类推。不难看出,词w_{n}的出现概率取决于他前面的所有词。

    从计算上来看,第一个词的条件概率 ?(?1) 很容易算,第二个词的条件概率 ?(?2∣?1)也还不太麻烦,但是从第三个词的条件概率 ?(?3∣?1,?2)开始就非常难算了,因为它涉及到三个变量 ?1,?2,?3而每个变量的可能性/可能取值都是语言字典的大小。到了最后一个词 ??,条件概率 ?(??∣?1,?2,⋯,??−1) 的可能性太多,根本无法估算。

     

    • 二元模型与N元模型

    从 19 世纪到 20 世纪初,俄国有个数学家叫马尔可夫(Andrey Markov),他提出了一种偷懒但还颇为有效的方法:假设任意一个词语 w_{i}出现的概率只同它前面的词 w_{i-1}有关。于是问题就变得很简单了,这种假设在数学上称为马尔可夫假设。

    现在,句子S出现的概率就变得简单了:

    上面的公式对应的统计语言模型是二元模型(Bigram Model)。当然,也可以假设一个词由前面的 N−1 个词决定,对应的模型稍微复杂些,被称为 N 元模型。

    接下来的问题就是如何估计条件概率 P(w_{i}|w_{i-1})。根据它的定义:

    P(w_{i}|w_{i-1}) = P(w_{i-1},w_{i})/P(w_{i-1})

    而估计联合概率P(w_{i-1},w_{i})和边缘概率P(w_{i-1})很简单。根据大数定理,只要统计量足够,相对频率就等于概率,因而只需在语料库(corpus)的文本中统计一下w_{i-1}w_{i}这两个词前后相邻出现的次数N(w_{i-1},w_{i}),以及w_{i-1}出现了多少次N(w_{i-1}),然后把这两个数分别处以语料库大小N,即可得到这些词或2元组的概率:

    于是:

    P(w_{i}|w_{i-1}) = P(w_{i-1},w_{i})/P(w_{i-1})=(N(w_{i-1},w_{i})/N)/(N(w_{i-1})/N) = N(w_{i-1},w_{i})/N(w_{i-1})

    更一般的,对于n-gram:

    P(w_{i}|w_{i-n+1},...,w_{i-1}) = N(w_{i-n+1},...,w_{i-1},w_{i})/N(w_{i-n+1},...,w_{i-1})

    这似乎有点难以置信,用这么简单的数学模型就能解决复杂的语音识别、机器翻译等问题,而用很复杂的文法规则和人工智能却做不到。其实很多语言学家都曾质疑过这种方法的有效性,但事实证明,统计语言模型比任何已知的借助某种规则的解决方法更有效。

     

    2. 高阶语言模型

    在基于一阶马尔可夫假设的二元模型(bi-gram/2-gram)中,句子中每个词只和前面一个词有关,这似乎过于简化了,或者说近似地过头了。比如说在句子“美丽的花朵”中,“花朵”其实是和“美丽”有关,也就是说是与前面的第二个词有关。因此,更普遍的假设是某个词和前面的若干个词有关。

    正如之前介绍的那样,N 元模型(n-gram)假设每个词w_{i} 和前面的 N−1 个词有关,与更前面的词无关(不是与前面所有的词相关),这样词 w_{i} 的概率只取决于前面的 N−1 个词 w_{i-N+1},...,w_{i-1}。因此:

    这种假设被称为 N−1 阶马尔可夫假设,对应的语言模型称为 N 元模型(N-Gram Model)。N=2时就是之前介绍的二元模型,而 N=1 的一元模型实际上是一个上下文无关模型,即假定当前词的出现概率与前面的词无关。在实际中应用最多的就是 N=3 的三元模型(trigram/3-gram),更高阶的模型就很少使用了。

    • 为什么N取值那么小?

    我们之前在上一篇博客中曾经探讨过这个问题:

    1.首先,N 元模型的大小(空间复杂度)几乎是 N 的指数函数,即 O(|V|^{N}),这里 |V|是一种语言词典的词汇量,一般在几万到几十万个。其次,使用 N 元模型的速度(时间复杂度)也几乎是一个指数函数,即 O(|V|^{N-1})。因此,N 不能很大。

    2.当 N 从 1 到 2,再从 2 到 3 时,模型的效果上升显著。而当模型从 3 到 4 时,效果的提升就不是很显著了,而资源的耗费却增加地非常快。所以,除非是为了做到极致不惜资源,很少有人会使用四元以上的模型。

    还有一个问题,三元、四元或更高阶的模型也并不能覆盖所有的语言现象。在自然语言处理中,上下文之间的相关性可能跨度非常大,甚至可以从一个段落跨到另一个段落。因此,即便再怎么提高模型的阶数,对这种情况也无可奈何,这就是马尔可夫模型的局限性,这时就需要采用其他一些长程的依赖性(Long Distance Dependency)来解决这个问题了,如之后学习的神经语言模型LSTM/GRU等可以很好的解决这个问题。

     

    3.模型的训练、零概率问题和平滑方法

    语言模型中所有的条件概率称为模型的参数,通过对语料的统计,得到这些参数的过程(计算这些条件概率)称为模型的训练。前面提到的二元模型训练方法似乎非常简单,只需计算一下w_{i-1},w_{i}前后相邻出现的次数 N(w_{i-1},w_{i})和 w_{i-1}单独出现的次数 N(w_{i-1})的比值即可。而w_{i-1},w_{i}的取值可能是词典中的任意一个单词,即考虑所有可能的组合,基于语料库计算频数、频率及条件概率,对于N元模型也是同理,这样做的话,w_{i-1},w_{i}的很多组合可能没有意义,在语料库中没有出现过,即N(w_{i-1},w_{i})=0。那么是否意味着条件概率P(w_{i}|w_{i-1})=0?反之,如果N(w_{i-1},w_{i})N(w_{i-1})都在语料库中只出现一次,那么能否得到P(w_{i}|w_{i-1})=1,这样非常绝对的结论?

    注意词典和语料库不是一个概念,词典基于语料库构建,对语料库分词,去重,调整顺序来构建词典。n-gram模型,可以理解为考虑词典中的所有可能组合,然后基于语料库进行统计,计算条件概率,存储起来,应用时直接查询计算即可。这样考虑所有可能组合,很多组合会没有意义,在语料库中也不会出现,就会存在0概率/数据稀疏的问题,此时需要使用平滑方法,对没有见过的gram赋于一个非0的概率值。

    还会面临统计可靠性或统计量不足的问题。在数理统计中,我们之所以敢用对采样数据进行观察的结果来预测概率,是因为有大数定理(Law of Large Number)在背后做支持,它的要求是有足够的观察值。但是在估计语言模型的概率时,很多人恰恰忘了这个道理,因此训练出来的语言模型“不管用”,然后回过头来怀疑这个方法是否有效。那么如何正确地训练一个语言模型呢?

    一个直接的办法就是增加数据量,但是即使如此,仍会遇到零概率或者统计量不足的问题。假定要训练一个汉语的语言模型,汉语的词汇量大致是 20 万这个数量级,训练一个三元模型就有 200,000^3 = 8*10^{15}个不同参数。假设抓取 100 亿个有意义的中文网页,每个网页平均 1000 词,全部用作训练也依然只有 10^{13}。因此,如果用直接的比值计算概率,大部分条件概率依然是零,这种模型我们称之为“不平滑”。

    训练统计语言模型的艺术就在于解决好统计样本不足时的概率估计问题。

    关于平滑技术的详细介绍,可以阅读这篇博客自然语言处理中N-Gram模型的Smoothing算法

    当然,如果对这些平滑算法不是很懂也不必太担心,平滑技术在统计自然语言处理时代,用得比较多;现代的神经网络对语言模型建模的方式,由于本身结构的原因,自动解决了这个问题,我们之后还会学习。

     

    展开全文
  • 不同平均数的比较;图片来源:维基百科 大概是最常见的数据分析任务 你有一组数字。你希望用更少的数字概括它们,最好是只用一个数字。因此,你将这组数字加起来,然后除以数字的数目。哇,你得到了“平均数”,没...
  • 在机器学习领域,对于大多数常见问题,通常会有多个模型可供选择。...这个性能由不同的统计量来度量,包括准确率( accuracy )、精确率( precision )、召回率( recall )等等。选择我们会根据某个特定的应用场景...
  • 不同平均数的比较;图片来源:维基百科 大概是最常见的数据分析任务 你有一组数字。你希望用更少的数字概括它们,最好是只用一个数字。因此,你将这组数字加起来,然后除以数字的数目。哇,你得到了“平均数”,没...
  • 数理统计之数据预测:浅谈ARIMA模型

    千次阅读 2019-06-28 10:21:49
    ARIMA模型 ARIMA模型最重要的地方在于时序数据的平稳性。平稳性是要求经由样本...而弱平稳指的是数据的期望与向关系(即依赖性)不发生改变。在实际应用的过程中,严平稳过于理想化与理论化,绝大多数的情况应...
  • 概率统计分布模型

    千次阅读 2016-07-05 18:23:16
    概率统计分布模型1.离散概率分布 !)泊松分布 描述是单位时间(面积)内随机事件发生的次数。 【满足条件】 a.平稳性:任意时间区间内,事件发生k次的概率只依赖于区间长度 b.独立性:在不重叠的时间段内,事件...
  • 建立统计回归模型的基本步骤Linear Regression and Regression Trees 线性回归和回归树 by Satoru Hayasaka and Rosaria Silipo, KNIME 由 悟早坂 和 罗萨丽娅Silipo, 尼米 When we talk about Machine Learning ...
  • 统计学习方法——K近邻模型

    万次阅读 多人点赞 2017-03-09 22:28:13
    0. 写在前面在这一讲的讨论班中,我们将要讨论一下K近邻模型。可能有人会说,K近邻模型有什么好写的,那分明就是一个最简单的机器学习模型,哦,不,连机器学习也算不上的算法吧。但是这里,我想提醒的是,我们要...
  • 【数理统计】调和平均

    千次阅读 2018-09-13 17:23:49
    https://www.cnblogs.com/xiaobajiu/p/7867162.html
  • 统计5年 沪深300及中证1000每年的平均、中位 成长性指标: 营业收入增长率 沪深300统计 年份 平均营业收入增长率 平均净利润增长率 2010 36.50% 36.39% 2011 23.27% 13.55% 2012 8.45% 2.25% 2013 ...
  • 七大统计模型

    千次阅读 2018-12-05 16:50:48
    在研究变量之间的相互影响关系模型时候,用到这类方法,具体地说:其可以定量地描述某一现象和某些因素之间的函数关系,将各变量的已知值带入回归方程可以求出因变量的估计值,从而可以进行预测等相关研究。...
  • 本文简单介绍了ARMA模型,包括其模型公式,统计特征,预测与分析…… ARMA简单来讲就是AR模型和MA模型的混合。 ARMA模型的提出是为了客服在表达数据时,经常出现高阶AR模型或MA模型,高阶模型由于其参数过多,复杂度...
  •   在这一部分中,我们讨论的语言模型主要是统计语言模型,除此之外,我们在今后的文章中还会对神经网络语言模型进行介绍。   所谓语言模型,就是利用数学的方法描述语言规律。而统计语言模型,就是用句子S出现的...
  • EWMA 移动平均模型

    万次阅读 2011-10-31 17:13:51
    Exponentially Weighted Moving Average(EWMA)指数加权移动平均是一种常用的序列数据处理方式,如下: 在时间 t, 根据实际的观测值(或量测值)我们可以求取 EWMA(t)如下: EWMA(t ) = λY(t)+ ( 1-λ) EWMA...
  • ASM是对图像中的shape进行建模的可变模型(deformable model),得到的形状模型既可以用来分析新的形状(拟合模型到新形状,见第4节),也可以用于生成形状(在给定图像中搜索形状,见第5节)。首先需要给出shape的...
  • 3DMM(人脸3D形变统计模型)

    千次阅读 2020-05-07 12:11:20
    3DMM(人脸3D形变统计模型) 1 3DMM方法介绍 3DMM是一种较为基础的三维人脸统计模型,最早被提出是用于解决从二维人脸图像恢复三维形状的问题。在3DMM方法发展的二十年来,各位学者对其进行了数据扩展和深入研究,又...
  • 数据挖掘中所需的概率论与数理统计知识

    万次阅读 多人点赞 2012-12-17 19:24:47
    数据挖掘中所需的概率论与数理统计知识  (关键词:微积分、概率分布、期望、方差、协方差、数理统计简史、大数定律、中心极限定理、正态分布)   导言:本文从微积分相关概念,梳理到概率论与数理统计中的...
  • 数理统计和概率论的区别

    万次阅读 多人点赞 2018-08-28 10:39:42
    数理统计是归纳,从观察值推出背后的数学模型(变量之间的关系),因为在真实世界里,我们只能通过观测值来预估数学模型,所以数理统计又是后验的。 概率论是演绎,从先验知识推出结论,在已知变量的概率分布下来...
  • R中的几种统计分布及常用模型

    千次阅读 2018-05-04 10:26:49
    简单介绍一下R中的几种统计分布及常用模型 转载自:https://www.cnblogs.com/nxld/p/6060360.html 统计学上分布有很多,在R中基本都有描述。因能力有限,我们就挑选几个常用的、比较重要的简单介绍一下每种分布的...
  • 受控自回归滑动平均模型,亦称带外部输入的自回归滑动平均模型,是应用非常广泛的线性系统模型,本文介绍该模型的一种系统辨识方法:最大似然法。
  • 不可不知的七大统计模型

    万次阅读 多人点赞 2018-12-03 16:18:07
    在研究变量之间的相互影响关系模型时候,用到这类方法,具体地说:其可以定量地描述某一现象和某些因素之间的函数关系,将各变量的已知值带入回归方程可以求出因变量的估计值,从而可以进行预测等相关研究。...
  • 转载请注明出处:... 具体代码如下: ... ...import java.io.Serializable;... * 实现指数移动平均值计算 * 实现中使用了流式风格的builder API * @author liuya
  • EWMA 指数加权移动平均 模型

    万次阅读 2015-03-11 09:50:20
    Moving Average(EWMA)指数加权移动平均是一种常用的序列数据处理方式,如下: 在时间 t, 根据实际的观测值(或量测值)我们可以求取 EWMA(t)如下: EWMA(t ) = λY(t)+ ( 1-λ) EWMA(t-1) for t = 1, 2, ...
  • R中的几种统计分布及常用模型 (整理)

    万次阅读 多人点赞 2017-09-17 13:58:29
    搜集自Little_Rookie博客园,以下部分格式和内容有所修正和补充,欢迎转载~ 李阳 15应用统计学 内蒙古...统计分布每一种分布有四个函数:d――density(密度函数),p――分布函数,q――分位数函数,r――随机数函数
  • 在建立时间序列模型之前,必须先对时间序列数据进行必要的预处理,以便剔除那些不符合统计规律的异常样本,并对这些样本数据的基本统计特性进行检验,以确保建立时间序列模型的可靠性和置信度,并满足一定的精度要求。...
  • 利用统计方法建立模型有严格的条件限制,所得到的模型只能是某种程度上的近似。 此外,统计建模方法仅局限于一些特定的函数关系,而实际问题中的自变量与因变量有着更复杂的关系,有时相同的自变量与因变量.
  • 在这一部分中,我们将简要介绍NLP领域的基本模型——语言模型,我们还将对自然语言处理的基础——语料库的概念进行介绍。这些都是在学习自然语言处理之前所必备的知识。此外,我们默认大家有一定的信息论和概率论...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 84,829
精华内容 33,931
关键字:

统计平均数模型