统计学习分类:
1.基本分类:
- 监督学习
- 无监督学习
- 强化学习
2.按模型分类:
- 概论模型与非概率模型
- 线性模型与非线性模型
3.按算法分类:
- 在线学习
- 批量学习
4.按技巧分类:
- 贝叶斯学习
- 核方法
统计学习三要素:
1.模型:
- 监督学习过程中,模型就是所有学习的条件概率分布和决策函数
2.策略:
- 一种评价呢指标
- 损失函数
- 风险函数 or 期望损失
- 经验风险最小化 or 结构风险最小化
3.算法:
- 学习模型的具体计算方法
模型评估与模型选择:
1.训练误差与测试误差:
- 在训练集上的平均损失,训练误差
- 在测试集上的平均损失,测试误差
2.过拟合与模型选择:
- 选择复杂度适当的模型,以达到测试误差最小的模型
正则化与交叉验证:
1.正则化:
- 经验风险+正则化项( L 1 , L 2 L_1,L_2 L1,L2)
2.交叉验证:
- 交叉验证
- 简单交叉验证7:3
- S折交叉验证
- 留一交叉验证
泛化能力:
1.泛化误差:
- 对未知数据的拟合
2.泛化误差上界:
-
R
(
f
)
≤
R
^
(
f
)
+
ε
(
d
,
N
,
δ
)
R(f)\le \hat{R}(f)+\varepsilon(d,N,\delta)
R(f)≤R^(f)+ε(d,N,δ)
ε ( d , N , δ ) = 1 2 N ( l o g d + l o g 1 d ) \varepsilon(d,N,\delta)=\sqrt{\frac{1}{2N}(logd+log\frac{1}{d})} ε(d,N,δ)=2N1(logd+logd1)
对于二分类问题,当假设空间是有限个函数集合 Ψ = { f 1 , f 2 . . . f d } \Psi=\{f_1,f_2...f_d\} Ψ={f1,f2...fd}时,对任意一个函数 f ∈ Ψ f \in \Psi f∈Ψ,则至少以概率
1 − δ , 0 < δ < 1 , 成 立 1-\delta,0<\delta<1,成立 1−δ,0<δ<1,成立 - Hoeffding不等式:
- 设
X
1
,
X
2
.
.
.
.
.
X
N
是
独
立
随
机
变
量
,
且
X
i
∈
[
a
i
,
b
i
]
X_1,X_2.....X_N 是独立随机变量,且X_i \in [a_i,b_i]
X1,X2.....XN是独立随机变量,且Xi∈[ai,bi]
i = 1 , 2..... , N , X ‾ 是 X 1 , X 2 . . . . . X N 的 经 验 均 值 , 既 X ‾ = 1 N ∑ i = 1 N X i i=1,2.....,N,\overline{X}是X_1,X_2.....X_N的经验均值,既\overline{X}=\Large\frac{1}{N}\normalsize\sum\limits^N_{i=1}X_i i=1,2.....,N,X是X1,X2.....XN的经验均值,既X=N1i=1∑NXi
P ( ∣ X ‾ − E ( X ‾ ) ∣ ≥ t ) ≤ 2 e x p ( − 2 N 2 t 2 ∑ i = 1 N ( b i − a i ) 2 ) P(|\overline{X}-E(\overline{X})|\ge t) \le 2exp(- \frac{2N^2t^2}{\sum\limits^N_{i=1}(b_i-a_i)^2}) P(∣X−E(X)∣≥t)≤2exp(−i=1∑N(bi−ai)22N2t2)
P ( X ‾ − E ( X ‾ ) ≥ t ) ≤ e x p ( − 2 N 2 t 2 ∑ i = 1 N ( b i − a i ) 2 ) P(\overline{X}-E(\overline{X})\ge t) \le exp(- \frac{2N^2t^2}{\sum\limits^N_{i=1}(b_i-a_i)^2}) P(X−E(X)≥t)≤exp(−i=1∑N(bi−ai)22N2t2)
P ( E ( X ‾ ) − X ‾ ≥ t ) ≤ e x p ( − 2 N 2 t 2 ∑ i = 1 N ( b i − a i ) 2 ) P(E(\overline{X})- \overline{X} \ge t) \le exp(- \frac{2N^2t^2}{\sum\limits^N_{i=1}(b_i-a_i)^2}) P(E(X)−X≥t)≤exp(−i=1∑N(bi−ai)22N2t2)
- 设
X
1
,
X
2
.
.
.
.
.
X
N
是
独
立
随
机
变
量
,
且
X
i
∈
[
a
i
,
b
i
]
X_1,X_2.....X_N 是独立随机变量,且X_i \in [a_i,b_i]
X1,X2.....XN是独立随机变量,且Xi∈[ai,bi]
- 证明:取
X
i
=
L
(
Y
,
f
(
X
)
)
,
且
X
i
∈
[
0
,
1
]
,
取
ε
>
0
则
以
下
不
等
式
成
立
:
X_i=L(Y,f(X)),且X_i \in[0,1],取\varepsilon>0则以下不等式成立:
Xi=L(Y,f(X)),且Xi∈[0,1],取ε>0则以下不等式成立:
P ( R ( f ) − R ^ ( f ) ≥ ε ) ≤ e x p ( − 2 N ε 2 ) P(R(f)- \hat{R}(f) \ge \varepsilon) \le exp(- 2N{\varepsilon}^2) P(R(f)−R^(f)≥ε)≤exp(−2Nε2)
由 于 Ψ = { f 1 , f 2 . . . f d } 是 一 个 有 限 集 合 , 故 由于\Psi=\{f_1,f_2...f_d\}是一个有限集合,故 由于Ψ={f1,f2...fd}是一个有限集合,故
P ( ∃ f ∈ Ψ : R ( f ) − R ^ ( f ) ≥ ε ) ≤ e x p ( − 2 N ε 2 ) = P ( ⋃ f ∈ Ψ { R ( f ) − R ^ ( f ) ≥ ε } ) P(\exists f \in \Psi:R(f)- \hat{R}(f) \ge \varepsilon) \le exp(- 2N{\varepsilon}^2)=P(\bigcup_{f \in \Psi}\{R(f)-\hat{R}(f)\ge \varepsilon\}) P(∃f∈Ψ:R(f)−R^(f)≥ε)≤exp(−2Nε2)=P(⋃f∈Ψ{R(f)−R^(f)≥ε})
≤ ∑ f ∈ Ψ P ( R ( f ) − R ^ ( f ) ≥ ε ) ≤ d ∗ e x p ( − 2 N ε 2 ) \le\sum\limits_{f \in \Psi}P(R(f)-\hat{R}(f)\ge\varepsilon)\le{d*exp(-2N\varepsilon^2)} ≤f∈Ψ∑P(R(f)−R^(f)≥ε)≤d∗exp(−2Nε2)
取 δ = d ∗ e x p ( − 2 N ε 2 ) , 则 P ( R ( f ) < R ^ ( f ) + ε ) ≥ 1 − δ 取\delta={d*exp(-2N\varepsilon^2)},则P(R(f)<\hat{R}(f)+\varepsilon)\ge1-\delta 取δ=d∗exp(−2Nε2),则P(R(f)<R^(f)+ε)≥1−δ
R ( f ) ≤ R ^ ( f ) + ε ( d , N , δ ) R(f)\le \hat{R}(f)+\varepsilon(d,N,\delta) R(f)≤R^(f)+ε(d,N,δ)
生成模型与判别模型:
- 生成模型:生成联合分布的
- 判别模型:直接生成决策函数或条件概率的
监督学习应用:
-
分类问题
- 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
- 2 F 1 = 1 p + 1 R \frac{2}{F1}=\frac{1}{p}+\frac{1}{R} F12=p1+R1
-
标注问题:
- 序列等问题
-
回归问题
- 输出变量和输入变量之间的关系
import numpy as np
from scipy.optimize import leastsq
import matplotlib.pyplot as plt
def real_f(x):
return np.cos(2*np.pi*x)
def poly_f(p,x):
f=np.poly1d(p)
return f(x)
def residuals_f(p,x,y):
ret=poly_f(p,x)-y
return ret
x=np.linspace(0,1,10)
x_points=np.linspace(0,1,1000)
y_=real_f(x)
y=[np.random.normal(0,0.1)+y1 for y1 in y_]
def fitting(M=0):
p_init=np.random.rand(M+1)
ret=leastsq(residuals_f,p_init,args=(x,y))
print(ret[0])
plt.plot(x_points,real_f(x_points),label="real")
plt.plot(x_points,poly_f(ret[0],x_points),label="fitting")
plt.plot(x,y,"bo",label='noise')
plt.legend()
plt.show()
fitting(M=6)
#简单拟合图像