第一章
-
-
-
- 1.统计学习方法概论
-
- 1.1概念
- 1.2.统计学习三要素
-
- 1.3.正则化与交叉验证
- 1.4.泛化误差上界
- 1.5.生成模型/判别模型
- 1.6.分类问题
- 1.7.一个极大似然估计和贝叶斯估计的实例
一切为了数据挖掘的准备
1.统计学习方法概论
1.1概念
- 机器学习的分类
- 监督学习:从给定的训练数据集中学习出一个函数。训练集要求包括输入和输出,特征和目标。常见的监督学习有回归分析和统计分类(连续/离散)
- 无监督学习:训练集没有人为标注的结果。常见的有聚类。
- 半监督学习:介于监督学习和无监督学习之间
- 增强学习:通过观察学习做成动作。每个动作都会对环境有所影响。学习对象根据观察到的周围环境的反馈来做出判断。
- 假设空间:假设要学的模型属于某个函数的集合,模型可以将输入空间映射到输出空间,这个集合称为假设空间。需要从假设空间选取一个最优的模型,使其在给定的评价准则下对已知数据有最优的预测。
- 统计学习三要素:模型(模型的假设空间)、策略(评价模型)、算法(模型的学习算法)
- 输入/输出空间:在监督学习中,将输入与输出所有可能取值的集合分别称为输入空间、输出空间。
- 特征空间:每个具体的输入是一个实例,通常由特征向量表示。所有特征向量存在的空间为特征空间。
- 数学表达:
- 输入变量X,输出变量Y。
- 输入变量X所取的值x,输出变量的取值y。 x = ( x ( 1 ) , x ( 2 ) , ⋯   , x ( i ) , ⋯   , x ( n ) ) T x=(x^{(1)},x^{(2)},\cdots,x^{(i)},\cdots,x^{(n)})^T x=(x(1),x(2),⋯,x(i),⋯,x(n))T, x ( i ) x^{(i)} x(i)为第i个特征。
- x i x_i xi是第i个输入。
- 训练集表示为: T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) T={(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)} T=(x1,y1),(x2,y2),⋯,(xN,yN)
- 预测问题:
- 回归问题:输入输出都连续
- 分类问题:输出有限离散变量
- 标注问题:输入输出都是变量序列,
- 监督学习的模型可以是概率模型或非概率模型,由条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)或决策函数 Y = f ( X ) Y=f(X) Y=f(X)表示
- 泛化能力:学习方法对未知数据的预测能力称为泛化能力
- 过拟合:学习时的模型包含参数过多,对已知数据预测的很好,对未知数据预测差
1.2.统计学习三要素
模型
监督学习中,模型就是要学习的条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数。
- 决策函数的集合: F = { f ∣ Y = f ( X ) } F=\{f|Y=f(X)\} F={f∣Y=f(X)},此时F通常是一个参数向量决定的函数族 F = { f ∣ Y = f θ ( X ) } F=\{f|Y=f_\theta(X)\} F={f∣Y=fθ(X)}
- 条件概率的集合: F = { P ∣ P θ ( Y ∣ X ) } F=\{P|P_\theta(Y|X)\} F={P∣Pθ(Y∣X)},此时F通常是一个参数向量决定的概率分布族
策略
策略是指按照什么样的准则学习或选择最优的模型。
- 损失函数:度量预测错误的程度,是f(X)(预测值) 和 Y(实际值)的非负实值函数,L( Y , f(X))。损失函数越小,模型越好。
- 0-1损失函数
L ( Y , f ( X ) ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( X ) L(Y,f(X))=\begin{cases} 1, & Y \neq f(X) \\ 0, & Y=f(X) \end{cases} L(Y,f(X))={1,0,Y̸=f(X)Y=f(X)
- 平方损失函数
L ( Y , f ( X ) ) = ( Y − f ( X ) ) 2 L(Y,f(X)) = ( Y-f(X))^2 L(Y,f(X))=(Y−f(X))2
- 绝对损失函数
L ( Y , f ( X ) ) = ∣ Y − f ( X ) ∣ L( Y , f(X)) = | Y-f(X) | L(Y,f(X))=∣Y−f(X)∣
- 对数损失函数
L ( Y , P ( Y ∣ X ) ) = − l o g P ( Y ∣ X ) L( Y , P(Y|X) ) = -logP(Y|X) L(Y,P(Y∣X))=−logP(Y∣X)
- 风险函数/期望损失:损失函数的期望 R e x p ( f ) = E [ L ( Y , f ( X ) ) ] = ∫ L ( Y , f ( X ) ) P ( Y ∣ X ) d x d y R_{exp}(f) = E[L(Y, f(X))]= \int L( Y , f(X) ) P(Y|X)dxdy Rexp(f)=E[L(Y,f(X))]=∫L(Y,f(X))P(Y∣X)dxdy,是模型关于联合分布的平均损失
- 经验风险/经验损失: R e m p = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) R_{emp} =\frac{1}{N}\sum_{i=1}^N L( y_i,f(x_i) ) Remp=N1∑i=1NL(yi,f(xi)),是训练数据集的平均损失,当N趋于无穷时,经验风险趋于期望风险.
当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化等价于极大似然估计
- 结构风险:为了防止过拟合,在经验风险上加上表示模型复杂度的正则化项或惩罚项。 R = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) R =\frac{1}{N}\sum_{i=1}^N L( y_i,f(x_i) ) + \lambda J(f) R=N1∑i=1NL(yi,f(xi))+λJ(f)。
- J ( f ) J(f) J(f):表示模型复杂度的正则化项或惩罚项
- λ \lambda λ:权衡经验风险和复杂度
- 经验风险最小化: m i n 1 N ∑ i = 1 N L ( y i , f ( x i ) ) min\frac{1}{N}\sum_{i=1}^N L( y_i,f(x_i) ) minN1∑i=1NL(yi,f(xi))
- 结构风险最小化: m i n 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) min\frac{1}{N}\sum_{i=1}^N L( y_i,f(x_i) ) + \lambda J(f) minN1∑i=1NL(yi,f(xi))+λJ(f)
算法
指学习模型的具体计算方法。当根据学习策略,选择最有模型后,要考虑如何求解最优化问题。
1.3.正则化与交叉验证
-
正则化:在经验风险上加上一个正则化项或惩罚项。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值越大。目的是选择经验风险(损失函数)和模型复杂度同时较小的模型。
- 正则化项是参数向量的 L 2 L_2 L2范数: L ( w ) = 1 N ∑ i = 1 N ( f ( x i ; w ) − y i ) 2 + λ 2 ∣ ∣ w ∣ ∣ 2 L(w) = \frac{1}{N}\sum_{i=1}^N(f(x_i;w)-y_i)^2+ \frac{\lambda}{2}||w||^2 L(w)=N1∑i=1N(f(xi;w)−yi)2+2λ∣∣w∣∣2
- 正则化项是参数向量的 L 1 L_1 L1范数: L ( w ) = 1 N ∑ i = 1 N ( f ( x i ; w ) − y i ) 2 + λ ∣ ∣ w ∣ ∣ L(w) = \frac{1}{N}\sum_{i=1}^N(f(x_i;w)-y_i)^2+\lambda||w|| L(w)=N1∑i=1N(f(xi;w)−yi)2+λ∣∣w∣∣
-
交叉验证:把原始数据切分为train data和test data.训练数据再切分几组,其中一份为验证集,其他几份做训练数据;再抽取另一份做验证集,剩下的做训练数据;在训练集上训练不同的模型,在抽取的验证集上验证模型,比较这些验证结果,选取效果好模型。
1.4.泛化误差上界
- 泛化误差:如果学到的模型是 f ^ \hat{f} f^,那么用这个模型对未知数预测的误差为泛化误差。 R e x p ( y ^ ) = E p [ L ( Y , f ^ ( X ) ) ] = ∫ L ( Y , f ^ ( X ) ) P ( x , y ) d x d y R_{exp}(\hat{y}) = E_p[L(Y,\hat{f}(X))] = \int L(Y,\hat{f}(X))P(x,y)dxdy Rexp(y^)=Ep[L(Y,f^(X))]=∫L(Y,f^(X))P(x,y)dxdy.泛化误差反映了泛化能力,也是学习到模型的期望风险。
- 泛化误差上界:泛化误差概率的上界。
T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) T={(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)} T=(x1,y1),(x2,y2),⋯,(xN,yN),假设空间是函数的有限集合 F = { f 1 , f 2 , ⋯   , f d , } F=\{f_1,f_2,\cdots,f_d,\} F={f1,f2,⋯,fd,}d是函数的个数,假设f是从F中选取的函数,损失函数是0-1损失,有关f的期望风险和经验风险是:
R ( f ) = E [ L ( Y , f ( X ) ) ] R(f) = E[L(Y,f(X))] R(f)=E[L(Y,f(X))]
R ^ ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) \hat{R}(f) = \frac{1}{N}\sum_{i=1}^N L(y_i,f(x_i)) R^(f)=N1i=1∑NL(yi,f(xi))
对于函数f,至少以概率 1 − δ 1-\delta 1−δ,以下不等式成立
R ( f ) ⩽ R ^ ( f ) + ϵ ( d , N , δ ) R(f) \leqslant \hat{R}(f) +\epsilon(d,N,\delta) R(f)⩽R^(f)+ϵ(d,N,δ)
ϵ ( d , N , δ ) = 1 2 N ( l o g d + l o g 1 δ ) \epsilon(d,N,\delta)=\sqrt{\frac{1}{2N}(logd + log\frac{1}{\delta})} ϵ(d,N,δ)=2N1(logd+logδ1)
第一项是训练误差,训练误差越小,泛化误差越小;训练集N越大,泛化误差越小;假设空间包含的函数越多,d越大,值越大。
- 证明:
设有随机变量 X 1 , X 2 , ⋯   , X n X_1,X_2,\cdots,X_n X1,X2,⋯,Xn, S n = ∑ X i S_n = \sum X_i Sn=∑Xi, X i ∈ [ a i , b i ] X_i \in [a_i,b_i] Xi∈[ai,bi],对任意t>0,一下不等式成立
P ( S n − E S n ⩾ t ) ⩽ e x p ( − 2 t 2 ∑ ( b i − a i ) 2 ) P(S_n-ES_n \geqslant t)\leqslant exp(\frac{-2t^2}{\sum(b_i-a_i)^2}) P(Sn−ESn⩾t)⩽exp(∑(bi−ai)2−2t2)
对于任意函数 f ∈ F f \in F f∈F,如果损失函数,取值范围[0,1],由于 R ^ ( f ) = 1 N ∑ L i \hat{R}(f)=\frac{1}{N}\sum L_i R^(f)=N1∑Li,以下不等式成立
P ( R ( f ) − R ^ ( f ) ⩾ ϵ ) ⩽ e x p ( − 2 ( N ϵ ) 2 ∑ ( 1 − 0 ) 2 ) = e x p ( − 2 N ϵ 2 ) P(R(f)-\hat{R}(f) \geqslant \epsilon)\leqslant exp(\frac{-2(N\epsilon)^2}{\sum(1-0)^2})=exp(-2N\epsilon^2) P(R(f)−R^(f)⩾ϵ)⩽exp(∑(1−0)2−2(Nϵ)2)=exp(−2Nϵ2)
对于有限集合 F = { f 1 , f 2 , ⋯   , f d , } F=\{f_1,f_2,\cdots,f_d,\} F={f1,f2,⋯,fd,},想要计算所有函数 R ( f ) − R ^ ( f ) ⩽ ϵ R(f)-\hat{R}(f) \leqslant \epsilon R(f)−R^(f)⩽ϵ的概率,可以计算对立事件:存在某个函数f满足 R ( f ) − R ^ ( f ) ⩾ ϵ R(f)-\hat{R}(f) \geqslant \epsilon R(f)−R^(f)⩾ϵ条件的概率(即函数f1满足该条件或函数f2满足该条件… ,当事件AB独立时 P ( A ⋃ B ) = P ( A ) + P ( B ) P(A\bigcup B)=P(A)+P(B) P(A⋃B)=P(A)+P(B)):
P ( ∃ f ∈ F : P ( R ( f ) − R ^ ( f ) ⩾ ϵ ) P(\exists f \in F:P(R(f)-\hat{R}(f) \geqslant \epsilon) P(∃f∈F:P(R(f)−R^(f)⩾ϵ)
= P ( ( R ( f 1 ) − R ^ ( f 1 ) ⩾ ϵ ) ⋃ ( R ( f 2 ) − R ^ ( f 2 ) ⩾ ϵ ) ⋃ ⋯ ⋃ ( R ( f N ) − R ^ ( f N ) ⩾ ϵ ) ) =P((R(f_1)-\hat{R}(f_1) \geqslant \epsilon) \bigcup (R(f_2)-\hat{R}(f_2) \geqslant \epsilon) \bigcup \cdots \bigcup (R(f_N)-\hat{R}(f_N) \geqslant \epsilon)) =P((R(f1)−R^(f1)⩾ϵ)⋃(R(f2)−R^(f2)⩾ϵ)⋃⋯⋃(R(fN)−R^(fN)⩾ϵ))
= P ( R ( f 1 ) − R ^ ( f 1 ) ⩾ ϵ ) + P ( R ( f 2 ) − R ^ ( f 2 ) ⩾ ϵ ) + ⋯ + P ( R ( f N ) − R ^ ( f N ) ⩾ ϵ ) =P(R(f_1)-\hat{R}(f_1) \geqslant \epsilon) + P(R(f_2)-\hat{R}(f_2) \geqslant \epsilon) + \cdots + P(R(f_N)-\hat{R}(f_N) \geqslant \epsilon) =P(R(f1)−R^(f1)⩾ϵ)+P(R(f2)−R^(f2)⩾ϵ)+⋯+P(R(fN)−R^(fN)⩾ϵ)
= d P ( R ( f i ) − R ^ ( f i ) ⩾ ϵ ) ⩽ d e x p ( − 2 N ϵ 2 ) =dP(R(f_i)-\hat{R}(f_i) \geqslant \epsilon)\leqslant dexp(-2N\epsilon^2) =dP(R(fi)−R^(fi)⩾ϵ)⩽dexp(−2Nϵ2)
P ( ∀ f ∈ F : P ( R ( f ) − R ^ ( f ) ⩽ ϵ ) ⩾ d e x p ( − 2 N ϵ 2 ) P(\forall f \in F:P(R(f)-\hat{R}(f) \leqslant \epsilon)\geqslant dexp(-2N\epsilon^2) P(∀f∈F:P(R(f)−R^(f)⩽ϵ)⩾dexp(−2Nϵ2)
令 δ = d e x p ( − 2 N ϵ 2 ) \delta=dexp(-2N\epsilon^2) δ=dexp(−2Nϵ2),则 ϵ = 1 2 N ( l o g d + l o g 1 δ ) , R ( f ) ⩽ R ^ ( f ) + ϵ \epsilon=\sqrt{\frac{1}{2N}(logd + log\frac{1}{\delta})},R(f) \leqslant \hat{R}(f) + \epsilon ϵ=2N1(logd+logδ1) ,R(f)⩽R^(f)+ϵ
1.5.生成模型/判别模型
- 监督学习的方法:生成方法,判别方法
- 生成方法:由数据学习联合概率分布,求出条件概率分布作为预测模型: P ( Y ∣ X ) = P ( Y , X ) P ( X ) P(Y|X) = \frac{P(Y , X)}{P(X)} P(Y∣X)=P(X)P(Y,X).
- 模型表示了给定输入X产生输出Y的生成关系
- 收敛速度快,存在隐变量
- 典型的生成模型:朴素贝叶斯、隐马尔科夫模型
- 判别方法:由数据直接学习决策函数f(X)或条件概率分布P(Y|X)做预测的模型。
- 典型的判别模型:k临近法,感知机、决策树、逻辑斯谛回归模型、最大熵模型、支持向量机、提升方法和条件随机场)
1.6.分类问题
- 正类:关注的类; 负类:其他类
- tp:正类预测为正类
- fn:正类预测为负类
- fp:负类预测为正类
- tn:负类预测为负类
- 精确率: P = t p t p + f p P = \frac{tp}{tp + fp} P=tp+fptp,预测结果为正类的准确率
- 召回率: R = t p t p + f n R = \frac{tp}{tp + fn} R=tp+fntp,实际为正类的实例中预测的准确率
1.7.一个极大似然估计和贝叶斯估计的实例
假设数据 x 1 , x 2 , ⋯   , x n x_1,x_2,\cdots,x_n x1,x2,⋯,xn来自正态分布 N ( μ , σ 2 ) N(\mu,\sigma^2) N(μ,σ2), σ \sigma σ已知
-
根据样本计算 μ \mu μ的极大似然估计。
f ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 f(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}} f(x)=2π σ1e−2σ2(x−μ)2
L = ∏ i = 1 n 1 2 π σ e − ( x i − μ ) 2 2 σ 2 = ( 2 π σ 2 ) − n 2 e − 1 2 σ 2 ∑ i = 1 n ( x i − μ ) 2 L=\prod_{i=1}^n\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x_i-\mu)^2}{2\sigma^2}}=(2\pi\sigma^2)^{-\frac{n}{2}}e^{-\frac{1}{2\sigma^2}\sum_{i=1}^n(x_i-\mu)^2} L=i=1∏n2π σ1e−2σ2(xi−μ)2=(2πσ2)−2ne−2σ21∑i=1n(xi−μ)2
∂ L ∂ μ = ( 2 π σ 2 ) − n 2 e − 1 2 σ 2 ∑ i = 1 n ( x i − μ ) 2 1 σ 2 ∑ i = 1 n ( x i − μ ) = 0 \frac{\partial L}{\partial \mu}=(2\pi\sigma^2)^{-\frac{n}{2}}e^{-\frac{1}{2\sigma^2}\sum_{i=1}^n(x_i-\mu)^2}\frac{1}{\sigma^2}\sum_{i=1}^n(x_i-\mu)=0 ∂μ∂L=(2πσ2)−2ne−2σ21∑i=1n(xi−μ)2σ21i=1∑n(xi−μ)=0
μ ^ = 1 n ∑ x i \hat{\mu}=\frac{1}{n}\sum x_i μ^=n1∑xi
-
假设 μ \mu μ的先验分布是正态分布 N ( μ , t 2 ) N(\mu,t^2) N(μ,t2),根据样本计算 μ \mu μ的贝叶斯估计
π ( μ ) = 1 2 π t e − μ 2 2 t 2 \pi(\mu)=\frac{1}{\sqrt{2\pi}t}e^{-\frac{\mu^2}{2t^2}} π(μ)=2π t1e−2t2μ2
P ( μ ∣ x 1 , x 2 , ⋯   , x n ) = P ( μ , x 1 , x 2 , ⋯   , x n ) P ( x 1 , x 2 , ⋯   , x n ) = P ( μ ) P ( x 1 ∣ μ ) P ( x 2 ∣ μ ) ⋯ P ( x n ∣ μ ) ∫ P ( μ , x 1 , x 2 , ⋯   , x n ) d μ P(\mu|x_1,x_2,\cdots,x_n)=\frac{P(\mu,x_1,x_2,\cdots,x_n)}{P(x_1,x_2,\cdots,x_n)} = \frac{P(\mu)P(x_1|\mu)P(x_2|\mu)\cdots P(x_n|\mu)}{\int P(\mu,x_1,x_2,\cdots,x_n)d\mu} P(μ∣x1,x2,⋯,xn)=P(x1,x2,⋯,xn)P(μ,x1,x2,⋯,xn)=∫P(μ,x1,x2,⋯,xn)dμP(μ)P(x1∣μ)P(x2∣μ)⋯P(xn∣μ)
∝ e − μ 2 2 t 2 ∏ i = 1 n e − ( x i − μ ) 2 2 σ 2 = e − 1 2 σ 2 ∑ i = 1 n ( x i − μ ) 2 − μ 2 2 t 2 \varpropto e^{-\frac{\mu^2}{2t^2}}\prod_{i=1}^ne^{-\frac{(x_i-\mu)^2}{2\sigma^2}}=e^{-\frac{1}{2\sigma^2}\sum_{i=1}^n (x_i-\mu)^2 -\frac{\mu^2}{2t^2}} ∝e−2t2μ2i=1∏ne−2σ2(xi−μ)2=e−2σ21∑i=1n(xi−μ)2−2t2μ2
L = e − 1 2 σ 2 ∑ i = 1 n ( x i − μ ) 2 − μ 2 2 t 2 L = e^{-\frac{1}{2\sigma^2}\sum_{i=1}^n (x_i-\mu)^2 -\frac{\mu^2}{2t^2}} L=e−2σ21∑i=1n(xi−μ)2−2t2μ2
∂ L ∂ μ = L ( 1 σ 2 ∑ i = 1 n ( x i − μ ) − μ t 2 ) = 0 \frac{\partial L}{\partial \mu}=L(\frac{1}{\sigma^2}\sum_{i=1}^n (x_i-\mu)-\frac{\mu}{t^2})=0 ∂μ∂L=L(σ21i=1∑n(xi−μ)−t2μ)=0
μ ^ = t 2 n t 2 + σ 2 ∑ x i \hat{\mu}=\frac{t^2}{nt^2+\sigma^2}\sum x_i μ^=nt2+σ2t2∑xi