Foundations of Machine Learning 2nd——第四章Model Selection(二)
Foundations of Machine Learning 2nd——第四章Model Selection(二)
- 交叉验证 Cross Validation(CV)
- 交叉验证的步骤
- 交叉验证有效性的保证(guarantee)
- 定理 4.3
- 定理4.4 CV(Cross-validation) VS SRM
- n折交叉验证
- n折交叉验证的步骤
- 留一交叉验证leave-one-out cross-validation
- n折交叉验证用来评估模型性能
- 基于正则化的算法
- 用来替代0-1函数的凸上界损失函数
- 定理 4.5
- 定理4.6
- 定理4.7
- 第四章 Over
交叉验证 Cross Validation(CV)
上节内容请看这里~
交叉验证是另一种用来确定映射集的方法(更具体的可以理解成确定模型超参的方法),在本节我们会介绍交叉验证的具体内容,他的有效性,以及交叉验证和SRM(上一节提到的)两种方法的对比。
交叉验证的步骤
和上一节的一样,(Hk)k≥1(H_k)_{k\geq1}(Hk)k≥1是一个可数的映射集序列,他们的复杂度是逐渐上升的。设SSS是一个独立同分布的大小为mmm的有标签数据集。首先将SSS分成大小为(1−α)m(1-\alpha)m(1−α)m的S1S_1S1和αm\alpha mαm的S2S_2S2两个子集,这里的α\alphaα是一个非常小的数,因此S1S_1S1的基数是比S2S_2S2大的多的。然后S1S_1S1作为训练集,S2S_2S2作为验证集。对于k∈Nk\in\Bbb{N}k∈N,hS1,kERMh_{S_1,k}^{ERM}hS1,kERM表示使用映射集HkH_kHk(我们可以理解为固定超参的,含有很多待学习参数的模型)在S1S_1S1上学习到的映射,hSCVh_S^{CV}hSCV表示交叉验证返回的映射,它其实是:在验证集S2S_2S2上表现最好的hS1,kERMh_{S_1,k}^{ERM}hS1,kERM:
hsCV=arg minh∈{hS1,kERM:k≥1}R^S2(h)h_s^{CV}=\argmin_{h\in\{h_{S_1,k}^{ERM}:k\geq1\}}\hat{R}_{S_2}(h)hsCV=h∈{hS1,kERM:k≥1}argminR^S2(h)
通常在实践中,我们就是根据验证集的性能来调整模型的超参,来找到最优(通常是局部最优)的超参值。
交叉验证有效性的保证(guarantee)
定理 4.3
对于任意α>0\alpha>0α>0,和任意m≥1m\geq1m≥1,下面的不等式都是成立的:
P[supk≥1∣R(hS1,kERM)−R^S2(hS1,kERM)∣>ϵ+logkαm]≤4e−2αmϵ2\Bbb{P}[\sup_{k\geq1}|R(h_{S_1,k}^{ERM})-\hat{R}_{S_2}(h_{S_1,k}^{ERM})|>\epsilon+\sqrt{\frac{\log k}{\alpha m}}]\leq4e^{-2\alpha m\epsilon^2}P[k≥1sup∣R(hS1,kERM)−R^S2(hS1,kERM)∣>ϵ+αmlogk]≤4e−2αmϵ2
(具体证明略,详细推导请看原著)
也就是说,hS1,kSRMh_{S_1,k}^{SRM}hS1,kSRM的generalization error和他在S2S_2S2上的经验损失距离大概率是很近的,而且mmm值越大,距离越近的概率就越大,也就是说我们可以用hS1,kSRMh_{S_1,k}^{SRM}hS1,kSRM在S2S_2S2上的经验损失来近似他的generalization error,这说明了交叉验证的有效性
定理4.4 CV(Cross-validation) VS SRM
对于任意的δ>0\delta>0δ>0,至少1−δ1-\delta1−δ的概率下式成立:
R(hSCV)−R(hS1SRM)≤2logmax(k(hSCV),k(hS1SRM))αm+2log4δ2αmR(h_S^{CV})-R(h_{S_1}^{SRM})\leq2\sqrt{\frac{\log\max(k(h_S^{CV}),k(h_{S_1}^{SRM}))}{\alpha m}}+2\sqrt{\frac{\log\frac{4}{\delta}}{2\alpha m}}R(hSCV)−R(hS1SRM)≤2αmlogmax(k(hSCV),k(hS1SRM))+22αmlogδ4
这个定理说明对于样本集大小为mmm的CV的结果映射的generalization error和大小为(1−α)m(1-\alpha)m(1−α)m的S1S_1S1上的SRM结果映射十分接近。且我们前面说过α\alphaα十分小,因此也可以认为这个定理保证了CV的结果和SRM的结果是十分类似的。不过有时候可能运气比较倒霉,分出来的(1−α)m(1-\alpha)m(1−α)m个样本用SRM学习到的映射跟在SSS上学习到的差距很大,这时候这个定理就没用了,所以为了避免这个情况,稍后会将到n折交叉验证(n-fold cross validation),来解决这一个问题。
n折交叉验证
在实际实验中,可能存在训练集/验证集/测试集划分不当(数据分布差距特别大)使得模型效果不好的情况,尤其是在我们能够得到的有标签数据集数量非常少的时候,出现这种问题的概率更高。所以,n折交叉验证就是用来解决这个问题滴。
n折交叉验证的步骤
令θ\thetaθ表示算法的超参们。 对于一组固定的θ\thetaθ,首先我们先随机将大小为mmm的样本集SSS分成nnn个子集,第iii个子集表示为((xi1,yi,1),...,,,(ximi,yimi))((x_{i1},y_{i,1}),...,,,(x_{im_i},y_{im_i}))((xi1,yi,1),...,,,(ximi,yimi)),mim_imi表示第iii个子集的大小。对任意的i∈[n]i\in[n]i∈[n],算法会在除了第iii个子集的所有其他子集构成的集合上训练学习,将学习出来的映射hih_ihi在第iii个子集上验证。下图比较形象的表示了n折交叉验证的过程:
超参θ\thetaθ的性能是根据hih_ihi们的平均损失来衡量的,称为“交叉验证损失”,用R^CV(θ)\hat{R}_{CV}(\theta)R^CV(θ)
R^CV(θ)=1n∑i=1n1mi∑j=1miL(hi(xij),yij)\hat{R}_{CV}(\theta) = \frac{1}{n}\sum_{i=1}^{n}\frac{1}{m_i}\sum_{j=1}^{m_i}L(h_i(x_{ij}),y_{ij})R^CV(θ)=n1i=1∑nmi1j=1∑miL(hi(xij),yij)
通常我们会平均分配nnn个子集,也就是每个子集的大小都是(1−1/n)m(1-1/n)m(1−1/n)m,那么这个n怎么选择?又是一个要trade-off的问题。
当n过大的时候,说明每个验证集的size都比较小,也就是训练集和原始SSS更相似,这时候交叉验证损失的偏差(bias)就会比较小(毕竟训练集更多),但是因为每个验证集的数量就很小,因此验证集之间的分布差距可能很大,所以交叉验证的方差(variance)会比较大。
当nnn比较小的时候,分出来的训练集的size比mmm小太多了,所以导致bias比较大,variance比较小。
通常nnn经常是5或者10。在模型选择应用交叉验证的完整步骤是,对于所有的有标签数据,先将其分成训练集和测试集,然后在大小为mmm的训练集上做n折交叉验证:先固定一组超参θ0\theta_0θ0,计算R^CV(θ0)\hat{R}_{CV}(\theta_0)R^CV(θ0),下次更新θ1\theta_1θ1再次计算R^CV(θ1)\hat{R}_{CV}(\theta_1)R^CV(θ1),找到最小的R^CV\hat{R}_{CV}R^CV对应的θ\thetaθ作为固定的超参,然后在整体训练集上训练。测试集是用来验证学习到的模型的性能的。
留一交叉验证leave-one-out cross-validation
当n=mn=mn=m时,称为留一交叉验证,因为这时的验证集大小为1,第五章会说到,留一损失是一个算法的平均损失的无偏估计,可以用来导出对一些算法的简单的guarantee。不过通常计算留一损失十分costly,因为要做m次训练。
n折交叉验证用来评估模型性能
除了用来模型选择,n折交叉验证也可以用来评估模型性能。这时,我们已经确定了超参θ\thetaθ的选择,需要做的是模型性能的评估,如果只划分出训练集和测试集,还是有可能出现数据集划分不合理导致结果评估不可靠的情况。n折交叉验证能够比较好的解决这个问题,步骤大概如下:
所有有标签数据被随机分成nnn折,也是做n次训练,不过剩下的子集是作为测试集存在的,这样可以得到所有样本上的n折交叉验证损失(或是其他评价指标的均值),以此评估模型性能。同时我们也可以得到损失的标准差,当标准差过大的时候说明我们模型在这个数据集上无法表现出稳定的性能,可能数据集不合适或者数量有待扩充。
基于正则化的算法
由SRM算法启发,基于正则化的算法也逐渐发展起来。他通常用来解决对于一个非常复杂的映射集HHH,且这个映射集是无数个嵌套映射集HγH_{\gamma}Hγ的联合:∪γ>0Hγ\cup_{\gamma>0}H_\gamma∪γ>0Hγ。比如,HHH可能是一个高维空间的所有线性映射的集合,Hγ={x→w⋅Φ(x):∣∣w∣∣<γ}H_\gamma=\{x\rightarrow w\cdot\Phi(x):||w||<\gamma\}Hγ={x→w⋅Φ(x):∣∣w∣∣<γ},Φ(x)\Phi(x)Φ(x)是将x映射到高维空间的函数。
对于有标签数据集SSS,当处理的是无数个嵌套映射集的集合HHH的时候,SRM的优化问题可以扩展如下:
arg minγ>0,h∈HγR^S(h)+Rm(Hγ)+logγm\argmin_{\gamma>0,h\in H_\gamma}\hat{R}_S(h)+R_m(H_\gamma)+\sqrt{\frac{\log\gamma}{m}}γ>0,h∈HγargminR^S(h)+Rm(Hγ)+mlogγ
后面的惩罚项也可以用其他的关于γ,m\gamma,mγ,m的函数pen(γ,m)pen(\gamma,m)pen(γ,m)替代。其实,通常存在一个映射R:H→RR:H\rightarrow\RR:H→R,使得对于任意γ>0\gamma>0γ>0,被约束的优化arg minγ>0,h∈HγR^S(h)+pen(γ,m)\argmin\limits_{\gamma>0,h\in H_\gamma}\hat{R}_S(h)+pen(\gamma,m)γ>0,h∈HγargminR^S(h)+pen(γ,m)可以转换成无约束的优化项:
arg minh∈HR^S(h)+γR(h)\argmin_{h\in H}\hat{R}_S(h)+\gamma R(h)h∈HargminR^S(h)+γR(h)
这个R(h)R(h)R(h)就是我们常说的正则化项,γ>0\gamma>0γ>0是一个超参数,通常称为正则化参数,可以用交叉验证来学习。大部分情况,R(h)R(h)R(h)是一个正比于∣∣h∣∣||h||∣∣h∣∣的公式。
当γ\gammaγ越大,对于复杂映射的惩罚力度就会越大。当γ\gammaγ很小,接近于0的时候,正则化项不起作用,该算法退化为ERM。
当正则化项是∣∣h∣∣p,p≥1||h||_p,p\geq1∣∣h∣∣p,p≥1,这是一个关于hhh的凸函数。如果损失函数选的是0-1损失(R^S=1m∑i=1m1f(xi)≠yi\hat{R}_S=\frac{1}{m}\sum_{i=1}^m\Bbb{1}_{f(x_i)\neq y_i}R^S=m1∑i=1m1f(xi)=yi),该目标函数的第一项就不是一个凸函数,这就使得问题变的很复杂,所以通常实践中,我们会选择0-1函数的凸上界作为损失函数,这样整个目标函数就是一个凸函数,学习起来比SRM简单多了。
用来替代0-1函数的凸上界损失函数
我们前面提到的解决模型选择的方法:ERM,SRM等都是基于ERM的,我们也说过,ERM的求解是NP-hard,因为0-1函数不是一个凸函数。所以通常我们会选择0-1函数的凸上界函数来作为损失函数,简化优化问题。这一章介绍的是对于这样的替代函数在损失方面的有效性保证。
首先明确一下各种符号:
我们考虑的是实值函数h:X→Rh:\mathcal{X}\rightarrow\Rh:X→R,hhh的符号函数可以作为二分类器fh:X→{−1,+1}f_h:\mathcal{X}\rightarrow\{-1,+1\}fh:X→{−1,+1}:
fh(x)={+1,ifh(x)≥0−1,ifh(x)<0f_h(x) = \left\{ \begin{aligned} +1, \quad &if\quad h(x)\geq0\\ -1, \quad& if\quad h(x)<0\\ \end{aligned} \right.fh(x)={+1,−1,ifh(x)≥0ifh(x)<0
hhh在(x,y)∈X×+1,−1(x,y)\in \mathcal{X}\times{+1,-1}(x,y)∈X×+1,−1上的损失是基于fhf_hfh的二分类损失定义的:
1fh(x)≠y=1yfh(x)<0+1h(x)=0∧y=−1≤1yfh(x)≤01_{f_h(x)\neq y}=1_{yf_h(x)<0}+1_{h(x)=0\land y=-1}\leq1_{yf_h(x)\leq0}1fh(x)=y=1yfh(x)<0+1h(x)=0∧y=−1≤1yfh(x)≤0
R(h)R(h)R(h)表示hhh的期望损失:R(h)=E(x,y)∼D[1fh(x)≠y]R(h)=\Bbb{E}_{(x,y)\sim D}[1_{f_h(x)\neq y}]R(h)=E(x,y)∼D[1fh(x)=y]
η(x)=P[y=+1∣x]\eta(x)=\Bbb{P}[y=+1|x]η(x)=P[y=+1∣x]
DXD_\mathcal{X}DX表示X\mathcal{X}X的边缘分布。
对于任意hhh:
R(h)=E(x,y)∼DX[η(x)1h(x)<0+(1−η(x))1h(x)>0+(1−η(x))1h(x)=0]=E(x,y)∼DX[η(x)1h(x)<0+(1−η(x))1h(x)≥0]\begin{aligned} R(h) & =\Bbb{E}_{(x,y)\sim D_\mathcal{X}}[\eta(x)1_{h(x)<0}+(1-\eta(x))1_{h(x)>0}+(1-\eta(x))1_{h(x)=0}]\\ & = \Bbb{E}_{(x,y)\sim D_\mathcal{X}}[\eta(x)1_{h(x)<0}+(1-\eta(x))1_{h(x)\geq0}]\\ \end{aligned}R(h)=E(x,y)∼DX[η(x)1h(x)<0+(1−η(x))1h(x)>0+(1−η(x))1h(x)=0]=E(x,y)∼DX[η(x)1h(x)<0+(1−η(x))1h(x)≥0]
由此可以看出,贝叶斯分类器h∗h^*h∗可以定义为:预测η(x)≥12\eta(x)\geq\frac{1}{2}η(x)≥21的xxx的标签为111的函数:
h∗=η(x)−12h^*=\eta(x)-\frac{1}{2}h∗=η(x)−21
R∗=R(h∗)R^*=R(h^*)R∗=R(h∗)是贝叶斯分类器h∗h^*h∗的generalization error
定理 4.5
hhh的excess error可以如下表示:
R(h)−R∗=2Ex∼DX[∣h∗(x)∣1h(x)h∗(x)≤0]R(h)-R^*=2\Bbb{E}_{x\sim D_\mathcal{X}}[|h^*(x)|1_{h(x)h^*(x)\leq0}]R(h)−R∗=2Ex∼DX[∣h∗(x)∣1h(x)h∗(x)≤0]
证明略
令Φ:R→R\Phi:\R\rightarrow\RΦ:R→R是一个凸的不减函数,且对于任意u∈R,1u≤0≤Φ(−u)u\in\R,1_{u\leq0}\leq\Phi(-u)u∈R,1u≤0≤Φ(−u)。hhh在(x,y)(x,y)(x,y)上的基于Φ\PhiΦ的损失函数可以定义为Φ(−yh(x))\Phi(-yh(x))Φ(−yh(x)),它的期望损失:
LΦ(h)=E(x,y)∼D[Φ(−yh(x))]=Ex∼DX[η(x)Φ(−h(x))+(1−η(x))Φ(h(x))]\begin{aligned} \mathcal{L}_{\Phi}(h)&=\Bbb{E}_{(x,y)\sim D}[\Phi(-yh(x))]\\ &=\Bbb{E}_{x\sim D_\mathcal{X}}[\eta(x)\Phi(-h(x))+(1-\eta(x))\Phi(h(x))] \end{aligned}LΦ(h)=E(x,y)∼D[Φ(−yh(x))]=Ex∼DX[η(x)Φ(−h(x))+(1−η(x))Φ(h(x))]
因为对于任意u∈R,1u≤0≤Φ(−u)u\in\R,1_{u\leq0}\leq\Phi(-u)u∈R,1u≤0≤Φ(−u),R(h)≤LΦ(h)R(h)\leq\mathcal{L}_\Phi(h)R(h)≤LΦ(h)。
对于任意x∈Xx\in\mathcal{X}x∈X,设u→LΦ(x,u)u\rightarrow L_\Phi(x,u)u→LΦ(x,u)如下:
LΦ(x,u)=η(x)Φ(−u)+(1−η(x))Φ(u)L_{\Phi}(x,u)=\eta(x)\Phi(-u)+(1-\eta(x))\Phi(u)LΦ(x,u)=η(x)Φ(−u)+(1−η(x))Φ(u)
这样LΦ(h)=Ex∼DX[LΦ(x,h(x))]\mathcal{L}_\Phi(h)=\Bbb{E}_{x\sim D_{\mathcal{X}}}[L_\Phi(x,h(x))]LΦ(h)=Ex∼DX[LΦ(x,h(x))]。因为Φ(x)\Phi(x)Φ(x)是凸函数,LΦ(x,u)L_\Phi(x,u)LΦ(x,u)是凸函数的线性组合,所以也是凸函数。
设hΦ∗:X→[−∞,+∞]h^*_{\Phi}:\mathcal{X}\rightarrow[-\infty,+\infty]hΦ∗:X→[−∞,+∞]为损失函数LΦL_\PhiLΦ的贝叶斯解,也就是说,对于任意xxx,hΦ∗(x)h_\Phi^*(x)hΦ∗(x)是下列凸优化问题的解:
hΦ∗(x)=arg minu∈[−∞,+∞]LΦ(x,u)=arg minu∈[−∞,+∞]η(x)Φ(−u)+(1−η(x))Φ(u)\begin{aligned} h^*_\Phi(x)&=\argmin_{u\in[-\infty,+\infty]}L_\Phi(x,u)\\ &=\argmin_{u\in[-\infty,+\infty]}\eta(x)\Phi(-u)+(1-\eta(x))\Phi(u) \end{aligned}hΦ∗(x)=u∈[−∞,+∞]argminLΦ(x,u)=u∈[−∞,+∞]argminη(x)Φ(−u)+(1−η(x))Φ(u)
hΦ∗(x)h^*_\Phi(x)hΦ∗(x)的损失LΦ∗=E(x,y)∼D[Φ(−yhΦ∗(x))]\mathcal{L}_\Phi^*=\Bbb{E}_{(x,y)\sim D}[\Phi(-yh^*_\Phi(x))]LΦ∗=E(x,y)∼D[Φ(−yhΦ∗(x))]
定理4.6
令Φ\PhiΦ表示一个凸的非减函数,并且在0出可导,导数Φ′(0)>0\Phi'(0)>0Φ′(0)>0。那么,当且仅当h∗(x)>0h^*(x)>0h∗(x)>0时hΦ∗(x)>0h^*_\Phi(x)>0hΦ∗(x)>0,当且仅当h∗(x)=0h^*(x)=0h∗(x)=0时hΦ∗(x)=0h^*_\Phi(x)=0hΦ∗(x)=0。也就是说,LΦ∗=R∗\mathcal{L}^*_\Phi=R^*LΦ∗=R∗
说明LΦ\mathcal{L}_\PhiLΦ和RRR的优化目标(贝叶斯解)是一致的。
证明略
定理4.7
令Φ\PhiΦ是一个凸的,且非减函数,假设存在s≥1s\geq1s≥1和c>0c>0c>0使得下式对于所有的x∈Xx\in\mathcal{X}x∈X成立:
∣h∗(x)∣s=∣η(x)−12∣s≤cs[LΦ(x,0)−LΦ(x,hΦ∗(x))]|h^*(x)|^s=|\eta(x)-\frac{1}{2}|^s\leq c^s[L_{\Phi}(x,0)-L_\Phi(x,h^*_\Phi(x))]∣h∗(x)∣s=∣η(x)−21∣s≤cs[LΦ(x,0)−LΦ(x,hΦ∗(x))]
那么,对于任意映射hhh,excess error都可以被下式限制(bounded):
R(h)−R∗≤2c[LΦ(h)−LΦ∗]1sR(h)-R^*\leq2c[\mathcal{L}_\Phi(h)-\mathcal{L}_\Phi^*]^{\frac{1}{s}}R(h)−R∗≤2c[LΦ(h)−LΦ∗]s1
该定理说明优化hhh的关于Φ\PhiΦ的excess error等价于优化hhh,说明了用凸上界函数代替0-1函数的有效性
能够满足定理4.7的前提假设的常用凸函数有以下几个:
- 铰链损失(Hinge loss):Φ(u)=max(0,1+u),s=1,c=1/2\Phi(u)=\max(0,1+u), s=1,c=1/2Φ(u)=max(0,1+u),s=1,c=1/2
- 指数损失(exponential loss):Φ(u)=exp(u),s=2,c=12\Phi(u)=\exp(u),s=2,c=\frac{1}{\sqrt{2}}Φ(u)=exp(u),s=2,c=21
- 逻辑斯蒂损失(Logistic loss):Φ(u)=log2(1+cu),s=2,c=12\Phi(u)=\log_2(1+c^u),s=2,c=\frac{1}{\sqrt{2}}Φ(u)=log2(1+cu),s=2,c=21
第四章 Over
有不对的地方欢迎指正交流~
Foundations of Machine Learning 2nd——第四章Model Selection(二)相关推荐
- Foundations of Machine Learning 2nd——第三章(二)growth fuction和 VC-Dimension
Foundations of Machine Learning 2nd--第三章(二)growth fuction和 VC-Dimension 前言 Growth function 引理1 Massa ...
- Foundations of Machine Learning 2nd——第五章SVMs(一)
Foundations of Machine Learning 2nd--第五章(一) 本章内容 线性分类 可分情况 定义5.1 Geometric margin(几何边距) 优化目标 支持向量 Su ...
- Foundations of Machine Learning 2nd——第三章(一)拉德马赫复杂度
Foundations of Machine Learning 2nd--第三章(一)拉德马赫复杂度和VC维度 回顾第二章 拉德马赫复杂度 定义1 经验拉德马赫复杂度(Empirical Radema ...
- Foundations of Machine Learning 2nd——第二章 PAC学习框架
Foundations of Machine Learning 2nd--第二章 PAC学习框架 前言 定义介绍 Generalization error Empirical error 定理1 PA ...
- Foundations of Machine Learning 2nd——第二章 PAC学习框架 后记
Foundations of Machine Learning 2nd--第二章 PAC学习框架后记 前言 Generalities 一般性 可确定性 VS 随机场景 定义1 Agnostic PAC ...
- Foundations of Machine Learning 2nd——第一章 机器学习预备知识
Foundations of Machine Learning 2nd--第一章 机器学习预备知识 前言 1.1 什么是机器学习(Machine learning) 1.2 什么样的问题可以用机器学习 ...
- Foundations of Machine Learning: Rademacher complexity and VC-Dimension(2)
Foundations of Machine Learning: Rademacher complexity and VC-Dimension(2) Foundations of Machine Le ...
- 基于IDSS和Machine Learning的零售金融大数据分析(二)
基于IDSS和Machine Learning的零售金融大数据分析(二) 接上一篇简要分析了Fintech的发展对银行业的影响,金融大数据诞生背后原因,本篇将继续讨论下面话题: 1. 金融 ...
- ML:MLOps系列讲解之《基于ML的软件的三个层次之02 Model: Machine Learning Pipelines——2.6 ML Model serialization forma》解读
ML:MLOps系列讲解之<基于ML的软件的三个层次之02 Model: Machine Learning Pipelines--2.6 ML Model serialization forma ...
最新文章
- HDU2675(二分算法)
- windows 安装 spark 及 pycharm 调试 TopN 实例
- Python+OpenCV学习(17)---摄像机标定
- labview实现字符串转16进制
- ACM POJ 2723 Get Luffy Out(2-SAT入门)
- Windows Server 2008 R2中的Hyper-V
- 第三十六期:人工智能统计调查:86%的消费者更喜欢人工客服
- OSI、TCP/IP or Five-layer(Protocols Use) Model
- 机器学习中的alpha学习率参数
- 国际区块链专利统计:蚂蚁、平安、腾讯分列申请数前三名
- 30岁女子跟程序员相亲,结果见面后秒拒:秃顶工资再多也不要
- gradle 替换java类_Gradle字符串替换
- Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级
- idea 断点调试 以及 tomcat 无法访问
- n型半导体和p型半导体的区别_NPN型三极管和PNP型三极管有什么区别?
- c#精彩编程200例百度云_每天宅家创客5分钟|智龙6号星球车:01唤醒星球车——温州中小学趣味信息技术云课程...
- 什么时候都要记得:生活愈是往下,嘴角愈要上扬
- EINT、DINT、ERTM、DRTM和EALLOW、EDIS、ESTOP0解析
- oracle如何按时间索引降序,Oracle 降序索引
- [转载]关于字体的一些常识