kkn是kirk
k近邻(knn)分类算法是理论上比较成熟的方法,也是最简单的机器学习算法之一。
该方法的思想是:在特征空间中。如果一个样本附近的k个最近样本大部分属于某个类别,那么这个样本也属于这个类别。
迭代过程的收敛速度是指迭代误差的下降速度。迭代法的收敛速度一般用收敛阶来描述。
定义2:对于收敛的迭代法xk1φ(xk),(k1,2,)x_{k1}varphi(x_k),(k1,2,cdots)xk1φ(xk),(k1,2,)如果有一个常数p≥1,c0pgeq1,
limk→∞ek1ekpclim_{k
1}}{e^p_k}climk→∞ekpek1c区
如果成立(其中e·k·∣x·k·x·∣e_k|x_k-x*|ek·∣xkx·∣),则称迭代法收敛于p阶(次)。特别的,当p1p1p1时叫线性收敛,当p2p2p2时叫平方收敛。
例2:讨论一般迭代法xk1φ(xk),(k1,2,)x_{k1}varphi(x_k),(k1,2,cdots)xk1φ(xk),(k1,2,)的收敛速度。
解法:设xφ(x)x*varphi(x*)xφ(x),所以xk1xφ(xk)x_{k1}-x*varphi(x_k)-varphi(x*)xk1xφ(xk。根据中值定理,有
xk1xφ(xk)φ(x)φ′(ξ)(xkx)x_{k1}-x^*varphi(x_k)-varphi(x^*)varphi(xi)(x_k-x^*)xk1xφ(xk)φ(x)φ′(ξ)(xkx)
ξxiξ是xkx_kxk和xxx*x之间的一个点。
因为ek1x1x,ek1xxe_{k1}x_{x1}-x*,e_kx_k-x*ek1xx,ekxkx,当xkx_kxk在根x*x附近时,有ek1φ′(x)eke_。
可以看出,当φ(x)≠0varφ(x*)时
当eq0φ(x)0时,一般迭代法xk1φ(xk),(k1,2,)x_{k1}varphi(x_k),(k1,2,cdots)xk1φ(xk),(k1,2,)具有线性收敛性。
定理3:对于迭代过程xk1φ(xk)x_{k1}varphi(x_k)xk1φ(xk),若迭代函数φ(x)varphi(x)φ(x)在根xx*x附近有连续的二阶导数,且∣φ′(x
(1)当φ′(x)≠0时varφ(x*)
当eq0φ′(x)0时,迭代过程是线性收敛的;
(2)当φ′(x)0varphi(x*)0φ′(x)0,且φ′(x)≠0varphi(x*)
当方程0φ′′(x)0时,迭代过程是平方收敛的。
一般迭代法的收敛速度也可以是p阶收敛。设φ(x)varphi(x)φ(x)在xφ(x)xvarphi(x)xφ(x)的根附近有p阶连续导数,φ′(x)φ′(x)φ(p1)(x)0,φ(p)。
方程0φ′(x)φ′′(x)φ(p1)(x)0,φ(p)(x)0,则迭代过程xk1φ(xk)x_{k1}varphi(x_k)xk1φ(xk)是p阶收敛的。
用迭代法求解方程的根时,可以先判断迭代函数的收敛速度,再详细计算。
2.加速收敛过程
一次收费在收敛的迭代过程中,只要迭代次数足够多,计算结果可以达到任意指定的精度。但如果收敛过程太慢,计算工作量太大,在实际计算过程中往往要考虑加速收敛过程的问题。