第一次《机器学习》组会
训练集、验证集、测试集的划分
training set、validation set、test set
一般对于这种validation set的设置是因为,要防止过拟合情况,模型用训练集数据训练好之后,通过验证集去看,模型是否过拟合,而一般这样做是因为我们在做以下几点:
- 筛选变量,或者测试正则惩罚项
- 神经网络训练的轮数,一般训练过多会过拟合,而训练过少会欠拟合(训练过多等价于梯度值变的越来越小,这也可以通过改变梯度的norm收敛判定值,来判断训练是否过拟合)
并且有时候还需要注意下面两点:
- test set是绝对不能被污染的,不能通过test set的变化来转而改变模型的参数,test set只是用来测试模型好坏的集合。
- 对于交叉验证法,比如十折,将总体集合分为 training set 和test set,这其中test set也是绝对不能被污染的,如果要判定模型是否过拟合,可以通过将training set中分出一部分来作为validation set.
最后说一点,其实validation set并不一定是必须的,特别是在使用交叉验证法时,将data set分为training set和test set也不是算错,具体问题具体分析。
如何使用嵌套交叉验证方法处理时序数据
时间序列方法因为其前后相关性和时间依赖性,而不能随意打乱数据集顺序进行交叉验证,所以需要用到嵌套交叉验证方法。
某个分布的参数,服从另一个分布,该如何求取参数
还是利用极大似然法,在这里举个例子:
若
X
X
X服从
N
(
0
,
δ
2
)
N(0,\delta^2)
N(0,δ2)分布,
δ
\delta
δ服从
Γ
(
α
,
β
)
\Gamma(\alpha, \beta)
Γ(α,β)分布。
X
X
X的密度函数为
ρ
(
x
)
\rho(x)
ρ(x),
δ
\delta
δ的密度函数为
f
(
δ
,
β
,
α
)
f(\delta,\beta,\alpha)
f(δ,β,α)
f
(
δ
,
β
,
α
)
=
β
Γ
(
α
)
δ
α
−
1
e
−
β
δ
,
δ
>
0
f(\delta,\beta,\alpha) = \frac{\beta}{\Gamma(\alpha)}\delta^{\alpha-1}e^{-\beta\delta},\text{~~~~~}\delta>0
f(δ,β,α)=Γ(α)βδα−1e−βδ, δ>0
L
(
δ
)
=
ρ
(
X
1
)
ρ
(
X
2
)
⋯
ρ
(
X
n
)
L(\delta)=\rho(X_1)\rho(X_2)\cdots\rho(X_n)
L(δ)=ρ(X1)ρ(X2)⋯ρ(Xn)
L ( δ ) L(\delta) L(δ)是样本 { X i } \{X_i\} {Xi}的联合密度函数,针对 δ \delta δ对此函数求取期望:
E [ L ( δ ) ] = ∫ − ∞ + ∞ L ( δ ) f ( δ , β , α )   d δ E[L(\delta)]=\int_{-\infty}^{+\infty}L(\delta) f(\delta,\beta,\alpha)\, d\delta E[L(δ)]=∫−∞+∞L(δ)f(δ,β,α)dδ
真正的参数是 α \alpha α和 β \beta β, δ \delta δ不是参数。
此时我们令 h ( α , β ) = E [ L ( δ ) ] h(\alpha,\beta)=E[L(\delta)] h(α,β)=E[L(δ)],并 m a x h ( α , β ) max\text{~}h(\alpha,\beta) max h(α,β),这样的话就可以求取参数 α \alpha α和 β \beta β的值了。这里对 L ( δ ) L(\delta) L(δ)的积分,我理解的是 δ \delta δ未知,对它求取期望就是对它的所有取值情况进行一个加权平均,从而消去参数 δ . \delta. δ.