SMO算法-核方法支持向量机
我们现在的问题是要优化目标函数,同时求出参数向量 α \alpha α
P = m i n ⏟ α 1 2 ∑ i = 1 , j = 1 m α i α j y i y j K ( x i , x j ) − ∑ i = 1 m α i s . t . ∑ i = 1 m α i y i = 0 0 ≤ α i ≤ C P=\underbrace{ min }_{\alpha} \frac{1}{2}\sum\limits_{i=1,j=1}^{m}\alpha_i\alpha_jy_iy_jK(x_i,x_j) - \sum\limits_{i=1}^{m}\alpha_i\\ s.t. \; \sum\limits_{i=1}^{m}\alpha_iy_i = 0\\ 0 \leq \alpha_i \leq C P=α min21i=1,j=1∑mαiαjyiyjK(xi,xj)−i=1∑mαis.t.i=1∑mαiyi=00≤αi≤C
因为现在的问题是原来的对偶问题化简而来的所以 α \alpha α还应该满足对偶互补条件 α i ( y i ( w T x i + b ) − 1 + ξ i ∗ ) = 0 \alpha_{i}(y_i(w^Tx_i + b) - 1 + \xi_i^{*}) = 0 αi(yi(wTxi+b)−1+ξi∗)=0
根据 α \alpha α的取值范围和对偶互补条件我们可以分析出 α \alpha α的情况:
α i = 0 ⇒ y i ( w ∙ ϕ ( x i ) + b ) ≥ 1 0 < α i < C ⇒ y i ( w ∙ ϕ ( x i ) + b ) = 1 α i = C ⇒ y i ( w ∙ ϕ ( x i ) + b ) ≤ 1 \alpha_{i} = 0 \Rightarrow y_i(w \bullet \phi(x_i) + b) \geq 1\\ 0 <\alpha_{i}< C \Rightarrow y_i(w \bullet \phi(x_i) + b) = 1\\ \alpha_{i}= C \Rightarrow y_i(w \bullet \phi(x_i) + b) \leq 1 αi=0⇒yi(w∙ϕ(xi)+b)≥10<αi<C⇒yi(w∙ϕ(xi)+b)=1αi=C⇒yi(w∙ϕ(xi)+b)≤1
为了方面表示我们做出一些字符替换:
g ( x ) = w ∙ ϕ ( x ) + b = ∑ j = 1 m α j y j K ( x , x j ) + b K i j = ϕ ( x i ) ∙ ϕ ( x j ) E i = g ( x i ) − y i = ∑ j = 1 m α j y j K ( x i , x j ) + b − y i g(x) = w\bullet \phi(x) + b =\sum\limits_{j=1}^{m}\alpha_jy_jK(x, x_j)+ b \\ K_{ij} = \phi(x_i) \bullet \phi(x_j) \\ E_i = g(x_i)-y_i = \sum\limits_{j=1}^{m}\alpha_jy_jK(x_i, x_j)+ b - y_i g(x)=w∙ϕ(x)+b=j=1∑mαjyjK(x,xj)+bKij=ϕ(xi)∙ϕ(xj)Ei=g(xi)−yi=j=1∑mαjyjK(xi,xj)+b−yi
2.3.2.1 思路
我们的目标是求出m个 α i \alpha_i αi的值,如果同时去优化很难去得出结果,所以SMO选择和坐标下降算法类似的思路,选择两个参数先进行优化,将其他参数暂时看为常数,这样就能将问题简化为两变量的优化问题。我们假设除了 α 1 , α 2 \alpha_1,\alpha_2 α1,α2外的都是常数我们可以得到约束条件:
α 1 y 1 + α 2 y 2 + ∑ i = 3 m α i y i = 0 α 1 y 1 + α 2 y 2 = − ∑ i = 3 m α i y i S e t ς = − ∑ i = 3 m α i y i ∴ α 1 y 1 + α 2 y 2 = ς \alpha_1y_1+ \alpha_2y_2+\sum_{i=3}^m \alpha_iy_i =0\\ \alpha_1y_1+ \alpha_2y_2=-\sum_{i=3}^m \alpha_iy_i \\ Set \quad \varsigma=-\sum_{i=3}^m \alpha_iy_i \\ \therefore \alpha_1y_1+ \alpha_2y_2=\varsigma α1y1+α2y2+i=3∑mαiyi=0α1y1+α2y2=−i=3∑mαiyiSetς=−i=3∑mαiyi∴α1y1+α2y2=ς
同时我们从原问题P中将有 α 1 , α 2 \alpha_1,\alpha_2 α1,α2的项提取出来:
P = m i n ⏟ α 1 2 ∑ i = 1 , j = 1 m α i α j y i y j K i j − ∑ i = 1 m α i = m i n ⏟ α 1 2 [ α 1 2 K 11 + α 2 2 K 22 + 2 α 1 α 2 y 1 y 2 K 12 + y 1 α 1 ∑ i = 3 m y i α i K i 1 + y 2 α 2 ∑ i = 3 m y i α i K i 2 ] − α 1 − α 2 − ∑ i = 3 m α i = m i n ⏟ α 1 , α 1 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 − ( α 1 + α 2 ) + y 1 α 1 ∑ i = 3 m y i α i K i 1 + y 2 α 2 ∑ i = 3 m y i α i K i 2 P=\underbrace{ min }_{\alpha} \frac{1}{2}\sum\limits_{i=1,j=1}^{m}\alpha_i\alpha_jy_iy_jK_{ij} - \sum\limits_{i=1}^{m}\alpha_i\\ =\underbrace{ min }_{\alpha} \frac{1}{2}[\alpha_1^2K_{11}+\alpha_2^2K_{22}+2\alpha_1\alpha_2y_1y_2K_{12}+y_1\alpha_1\sum\limits_{i=3}^{m}y_i\alpha_iK_{i1} + y_2\alpha_2\sum\limits_{i=3}^{m}y_i\alpha_iK_{i2}] -\alpha_1-\alpha_2-\sum_{i=3}^m \alpha_i\\ =\;\underbrace{ min }_{\alpha_1, \alpha_1} \frac{1}{2}K_{11}\alpha_1^2 + \frac{1}{2}K_{22}\alpha_2^2 +y_1y_2K_{12}\alpha_1 \alpha_2 -(\alpha_1 + \alpha_2) +y_1\alpha_1\sum\limits_{i=3}^{m}y_i\alpha_iK_{i1} + y_2\alpha_2\sum\limits_{i=3}^{m}y_i\alpha_iK_{i2} P=α min21i=1,j=1∑mαiαjyiyjKij−i=1∑mαi=α min21[α12K11+α22K22+2α1α2y1y2K12+y1α1i=3∑myiαiKi1+y2α2i=3∑myiαiKi2]−α1−α2−i=3∑mαi=α1,α1 min21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1α1i=3∑myiαiKi1+y2α2i=3∑myiαiKi2
接下来我们就是要求解这个二元优化问题:
首先我们要讨论 α 1 , α 2 \alpha_1,\alpha_2 α1,α2的范围, α 1 和 α 2 \alpha_1和\alpha_2 α1和α2是二元线性关系$ \alpha_1y_1+ \alpha_2y_2=\varsigma ,并且 ,并且 ,并且\alpha$的取值范围为 0 ≤ α i ≤ C 0 \leq \alpha_i \leq C 0≤αi≤C,同时y只取{+1和-1},其实我们可以将线性关系分为四种情况去讨论:
I F : y 1 = = y 2 α 1 + α 2 = k k > 0 o r k < 0 I F : y 1 ! = y 2 α 1 − α 2 = k k > 0 o r k < 0 IF :y_1==y_2\\ \alpha_1 +\alpha_2=k \quad k>0 \quad or \quad k <0 \\IF :y_1!=y_2 \\ \alpha_1 -\alpha_2=k \quad k>0 \quad or \quad k <0 IF:y1==y2α1+α2=kk>0ork<0IF:y1!=y2α1−α2=kk>0ork<0
放到坐标系中如图所示:
由于 α 1 , α 2 α_1,α_2 α1,α2的关系被限制在盒子里的一条线段上,所以两变量的优化问题实际上仅仅是一个变量的优化问题,我们可以直接视为是对变量 α 2 \alpha_2 α2的优化。
为了求出 α 2 \alpha_2 α2的值,我们应该先求出 α 2 \alpha_2 α2的定义域,我们假设 α 2 \alpha_2 α2的左边界为L右边界为H。由于 α 1 , α 2 α_1,α_2 α1,α2的取值其实是线上的动点问题,所以我们先研究 α 2 n e w \alpha_2^{new} α2new边界的取值。
对于左图来说L和H的取值范围是:
L = m a x ( 0 , α 2 o l d − α 1 o l d ) H = m i n ( C , C + α 2 o l d − α 1 o l d ) L = max(0, \alpha_2^{old}-\alpha_1^{old}) \;\;\;H = min(C, C+\alpha_2^{old}-\alpha_1^{old}) L=max(0,α2old−α1old)H=min(C,C+α2old−α1old)
推导:
∵ α 1 = α 2 + k 又 ∵ 0 ≤ α 1 ≤ C ∴ 0 ≤ α 2 + k ≤ C ∵ α 2 + k ≥ 0 且 α 2 ≥ 0 ∴ α 2 ≥ m a x { − k , 0 } = m a x { α 2 o l d − α 1 o l d , 0 } ∵ α 2 ≤ C − k 且 α 2 ≤ C ∴ α 2 ≤ m i n { C , C − K } ∴ L = m a x ( 0 , α 2 o l d − α 1 o l d ) H = m i n ( C , C + α 2 o l d − α 1 o l d ) \because \alpha_1 = \alpha_2 +k\\ 又\because 0\leq \alpha_1 \leq C \\\therefore 0\leq \alpha_2 +k \leq C \\ \because \alpha_2 +k \geq 0 且 \alpha_2 \geq 0 \\ \therefore \alpha_2 \geq max\{ -k,0\}=max\{ \alpha_2^{old} - \alpha_1^{old},0\} \\ \because \alpha_2 \leq C-k且 \alpha_2 \leq C \\ \therefore \alpha_2 \leq min\{C,C-K\} \\ \therefore L = max(0, \alpha_2^{old}-\alpha_1^{old}) \;\;\;H = min(C, C+\alpha_2^{old}-\alpha_1^{old}) ∵α1=α2+k又∵0≤α1≤C∴0≤α2+k≤C∵α2+k≥0且α2≥0∴α2≥max{−k,0}=max{α2old−α1old,0}∵α2≤C−k且α2≤C∴α2≤min{C,C−K}∴L=max(0,α2old−α1old)H=min(C,C+α2old−α1old)
对于右图来说,推导同理:
L = m a x ( 0 , α 2 o l d + α 1 o l d − C ) H = m i n ( C , α 2 o l d + α 1 o l d ) L = max(0, \alpha_2^{old}+\alpha_1^{old}-C) \;\;\; H = min(C, \alpha_2^{old}+\alpha_1^{old}) L=max(0,α2old+α1old−C)H=min(C,α2old+α1old)
我们得到最终 α 2 \alpha_2 α2的取值函数:
α 2 n e w = { H α 2 n e w , u n c > H α 2 n e w , u n c L ≤ α 2 n e w , u n c ≤ H L α 2 n e w , u n c < L \alpha_2^{new}= \begin{cases} H& { \alpha_2^{new,unc} > H}\\ \alpha_2^{new,unc}& {L \leq \alpha_2^{new,unc} \leq H}\\ L& {\alpha_2^{new,unc} < L} \end{cases} α2new=⎩ ⎨ ⎧Hα2new,uncLα2new,unc>HL≤α2new,unc≤Hα2new,unc<L
进一步我们优化函数为:
W ( α 1 , α 2 ) = 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 − ( α 1 + α 2 ) + y 1 α 1 v 1 + y 2 α 2 v 2 W(\alpha_1,\alpha_2) = \frac{1}{2}K_{11}\alpha_1^2 + \frac{1}{2}K_{22}\alpha_2^2 +y_1y_2K_{12}\alpha_1 \alpha_2 -(\alpha_1 + \alpha_2) +y_1\alpha_1v_1 + y_2\alpha_2v_2 W(α1,α2)=21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1α1v1+y2α2v2
代入 α 1 = y 1 ( ς − α 2 y 2 ) \alpha_1 = y_1(\varsigma - \alpha_2y_2) α1=y1(ς−α2y2),消去 α 1 \alpha_1 α1
最终我们得到纯 α 2 \alpha_2 α2的函数:
W ( α 2 ) = 1 2 K 11 ( ς − α 2 y 2 ) 2 + 1 2 K 22 α 2 2 + y 2 K 12 ( ς − α 2 y 2 ) α 2 − ( ς − α 2 y 2 ) y 1 − α 2 + ( ς − α 2 y 2 ) v 1 + y 2 α 2 v 2 W(\alpha_2) = \frac{1}{2}K_{11}(\varsigma - \alpha_2y_2)^2 + \frac{1}{2}K_{22}\alpha_2^2 +y_2K_{12}(\varsigma - \alpha_2y_2) \alpha_2 - (\varsigma - \alpha_2y_2)y_1 - \alpha_2 +(\varsigma - \alpha_2y_2)v_1 + y_2\alpha_2v_2 W(α2)=21K11(ς−α2y2)2+21K22α22+y2K12(ς−α2y2)α2−(ς−α2y2)y1−α2+(ς−α2y2)v1+y2α2v2
对 α 2 \alpha_2 α2求导为0得到 α 2 n e w , u n c \alpha_2^{new,unc} α2new,unc:
α 2 n e w , u n c = α 2 o l d + y 2 ( E 1 − E 2 ) K 11 + K 22 − 2 K 12 ) \alpha_2^{new,unc} = \alpha_2^{old} + \frac{y_2(E_1-E_2)}{K_{11} +K_{22}-2K_{12})} α2new,unc=α2old+K11+K22−2K12)y2(E1−E2)
然后将 α 2 n e w , u n c \alpha_2^{new,unc} α2new,unc代入取值函数则可得到最终的 α 2 n e w \alpha_2^{new} α2new,同时根据 α 1 和 α 2 \alpha_1和\alpha_2 α1和α2的线性关系: α 1 y 1 + α 2 y 2 = ς \alpha_1y_1+ \alpha_2y_2=\varsigma α1y1+α2y2=ς可以求出 α 1 \alpha_1 α1
2.3.2.2 如何选择变量
一、第一个变量选择违反KKT条件最严重的点:
KKT条件为:
α i = 0 ⇒ y i g ( x i ) ≥ 1 0 < α i < C ⇒ y i g ( x i ) = 1 α i = C ⇒ y i g ( x i ) ≤ 1 \alpha_{i} = 0 \Rightarrow y_ig(x_i) \geq 1 \\0 < \alpha_{i} < C \Rightarrow y_ig(x_i) =1 \\\alpha_{i}= C \Rightarrow y_ig(x_i) \leq 1 αi=0⇒yig(xi)≥10<αi<C⇒yig(xi)=1αi=C⇒yig(xi)≤1
我们一般会选择违反 0 < α i ∗ < C ⇒ y i g ( x i ) = 1 0 < \alpha_{i}^{*} < C \Rightarrow y_ig(x_i) =1 0<αi∗<C⇒yig(xi)=1这个条件的点,这是因为:对于 α i = 0 \alpha_i =0 αi=0则意味着分类正确,这个点对于超平面的调整无效。对于 α i = C \alpha_{i}= C αi=C的点则代表点可能在错误间隔或者分类错误,对于这种情况其实无论怎么调整参数都无法优化超平面。
对于违反$0 < \alpha_{i} < C 的点,此时意味着 的点,此时意味着 的点,此时意味着\alpha_i >C \quad OR\quad \alpha_i <0$,我们很清楚 0 ≤ α i ≤ C 0 \leq \alpha_{i} \leq C 0≤αi≤C,正常情况下不应该出现这种情况,进而说明KKT条件被违反,优化这些点能够更有效的让超平面向符合KKT条件的方向靠拢。
二、第二个变量选择 ∣ E 1 − E 2 ∣ \vert E_1-E_2\vert ∣E1−E2∣足够大的点:
E i = f ( x i ) − y i E_i =f(x_i)-y_i Ei=f(xi)−yi代表预测值和真实值之间的误差,我们先选择好 α 1 \alpha_1 α1计算出 E 1 E_1 E1,然后再在剩下的点中算出所有的 E i E_i Ei,对比这些 E 1 − E i E_1 -E_i E1−Ei,较大的误差差说明模型在这两个点附近的差异更大,调整 α \alpha α 可以让模型更有效的向正确的分类移动,进而加速收敛速度
E 1 − E i E_1-E_i E1−Ei 较大时,可以使得分类超平面向调整幅度大的方向走。
三、更新 E i E_i Ei和b
∵ y 1 − ∑ i = 1 m α i y i K i 1 − b 1 = 0 ∴ b 1 n e w = y 1 − ∑ i = 3 m α i y i K i 1 − α 1 n e w y 1 K 11 − α 2 n e w y 2 K 21 ∴ E 1 = g ( x 1 ) − y 1 = ∑ i = 3 m α i y i K i 1 + α 1 o l d y 1 K 11 + α 2 o l d y 2 K 21 + b o l d − y 1 联立两式 b 1 n e w = − E 1 − y 1 K 11 ( α 1 n e w − α 1 o l d ) − y 2 K 21 ( α 2 n e w − α 2 o l d ) + b o l d 同理 : b 2 n e w = − E 2 − y 1 K 12 ( α 1 n e w − α 1 o l d ) − y 2 K 22 ( α 2 n e w − α 2 o l d ) + b o l d ∴ b n e w = b 1 n e w + b 2 n e w 2 更新 : E i = ∑ S y j α j K ( x i , x j ) + b n e w − y i \because y_1 - \sum\limits_{i=1}^{m}\alpha_iy_iK_{i1} -b_1 = 0\\ \therefore b_1^{new} = y_1 - \sum\limits_{i=3}^{m}\alpha_iy_iK_{i1} - \alpha_{1}^{new}y_1K_{11} - \alpha_{2}^{new}y_2K_{21}\\ \therefore E_1 = g(x_1) - y_1 = \sum\limits_{i=3}^{m}\alpha_iy_iK_{i1} + \alpha_{1}^{old}y_1K_{11} + \alpha_{2}^{old}y_2K_{21} + b^{old} -y_1 \\ 联立两式\\ b_1^{new} = -E_1 -y_1K_{11}(\alpha_{1}^{new} - \alpha_{1}^{old}) -y_2K_{21}(\alpha_{2}^{new} - \alpha_{2}^{old}) + b^{old}\\ 同理:\\ b_2^{new} = -E_2 -y_1K_{12}(\alpha_{1}^{new} - \alpha_{1}^{old}) -y_2K_{22}(\alpha_{2}^{new} - \alpha_{2}^{old}) + b^{old} \\ \therefore b^{new} = \frac{b_1^{new} + b_2^{new}}{2}\\ 更新:E_i = \sum\limits_{S}y_j\alpha_jK(x_i,x_j) + b^{new} -y_i ∵y1−i=1∑mαiyiKi1−b1=0∴b1new=y1−i=3∑mαiyiKi1−α1newy1K11−α2newy2K21∴E1=g(x1)−y1=i=3∑mαiyiKi1+α1oldy1K11+α2oldy2K21+bold−y1联立两式b1new=−E1−y1K11(α1new−α1old)−y2K21(α2new−α2old)+bold同理:b2new=−E2−y1K12(α1new−α1old)−y2K22(α2new−α2old)+bold∴bnew=2b1new+b2new更新:Ei=S∑yjαjK(xi,xj)+bnew−yi
2.3.2.2 算法
输入是m个样本( $ x_ {1} $ , $ y_ {1} $ ),( $ x_ {2} $ , $ y_ {2} $ ), $ \cdots $ ,( $ x_ {m} $ , $ y_ {m} $ ),其中x为n维特征向量。y为二元输出,值为1,或者-1
输出是近似解 $ \alpha $
-
取初值 $ \alpha ^ {0} $ =0,k=0
-
选出 α 1 和 α 2 \alpha_1和\alpha_2 α1和α2
-
求出 α 2 n e w , u n c \alpha _ {2}^ {new,unc} α2new,unc = α 2 o l d =\alpha _ {2}^ {old} =α2old + y 2 ( E 1 − E 2 ) K 11 + K 22 − 2 K 12 \frac {y_ {2}(E_ {1}-E_ {2})}{K_ {11}+K_ {22}-2K_ {12}} K11+K22−2K12y2(E1−E2)
-
求出 α 2 n e w = { H α 2 n e w , u n c > H α 2 n e w , u n c L ≤ α 2 n e w , u n c ≤ H L α 2 n e w , u n c < L \alpha_2^{new}= \begin{cases} H& { \alpha_2^{new,unc} > H}\\ \alpha_2^{new,unc}& {L \leq \alpha_2^{new,unc} \leq H}\\ L& {\alpha_2^{new,unc} < L} \end{cases} α2new=⎩ ⎨ ⎧Hα2new,uncLα2new,unc>HL≤α2new,unc≤Hα2new,unc<L
-
利用 α 2 n e w \alpha _ {2}^ {new} α2new 和 α 1 n e w \alpha _ {1}^ {new} α1new 的关系求出 α 1 n e w \alpha _ {1}^ {new} α1new
-
计算 b k + 1 b^ {k+1} bk+1 和 E i E_ {i} Ei
-
检查是否满足如下的终止条件KKT:
∑ i = 1 m α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2... m α i = 0 ⇒ y i g ( x i ) ≥ 1 0 < α i < C ⇒ y i g ( x i ) = 1 \sum\limits_{i=1}^{m}\alpha_iy_i = 0\\ 0 \leq \alpha_i \leq C, i =1,2...m\\ \alpha_{i} = 0 \Rightarrow y_ig(x_i) \geq 1 \\ 0 <\alpha_{i}< C \Rightarrow y_ig(x_i) = 1 i=1∑mαiyi=00≤αi≤C,i=1,2...mαi=0⇒yig(xi)≥10<αi<C⇒yig(xi)=1 -
如果满足则结束,返回 α \alpha α ,否则转到步骤2)。
相关文章:
SMO算法-核方法支持向量机
我们现在的问题是要优化目标函数,同时求出参数向量 α \alpha α P m i n ⏟ α 1 2 ∑ i 1 , j 1 m α i α j y i y j K ( x i , x j ) − ∑ i 1 m α i s . t . ∑ i 1 m α i y i 0 0 ≤ α i ≤ C P\underbrace{ min }_{\alpha} \frac{1}{2}\sum\li…...
Java项目实战II基于微信小程序的科创微应用平台(开发文档+数据库+源码)
目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着科技的…...
HTTP代理是什么,有什么用?
在互联网的世界里,数据采集已经成为许多企业和个人获取信息的重要手段。而在这个过程中,HTTP代理则是一个不可或缺的工具。那么,HTTP代理究竟是什么?它在数据采集中又有什么用呢?今天,我们就来深入探讨一下…...
Postman之newman
Postman之newman 1.基础环境node安装1.1.配置环境变量1.2.安装newman和html报告组件 2.newman运行 newman可以理解为,没有命令行的postman,把写好的测试脚本直接在命令行中运行,newman依赖于node环境,因此,需要先安装好…...
数据库查询表结构和数据量以及占用空间
数据库查询表结构和数据量以及占用空间 数据库查询表结构 mysql SELECT COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA_TYPE 字段类型, CHARACTER_MAXIMUM_LENGTH 长度, IS_NULLABLE 是否为空, COLUMN_DEFAULT 默认值, COLUMN_COMMENT 备注 FROM INFORMATION_SC…...
android 性能分析工具(03)Android Studio Profiler及常见性能图表解读
说明:主要解读Android Studio Profiler 和 常见性能图表。 Android Studio的Profiler工具是一套功能强大的性能分析工具集,它可以帮助开发者实时监控和分析应用的性能,包括CPU使用率、内存使用、网络活动和能耗等多个方面。以下是对Android …...
vscode 执行 vue 命令无效/禁止运行
在cmd使用命令可以创建vue项目但是在vscode上面使用命令却不行 一、问题描述 在 cmd 中已确认vue、node、npm命令可以识别运行,但是在 vscode 编辑器中 vue 命令被禁止,详细报错为:vue : 无法加载文件 D:\Software\nodejs\node_global\vue.…...
C++语言系列-STL容器和算法
C语言系列-STL容器 容器类 本文将对C语言中的标准模板库STL容器进行简单介绍,重点在于如何使用。 容器类 STL中的容器包括以下类别: vector: 动态数组,底层基于数组来实现,在容量不足的时候能够自动进行扩容。list: 链表stack: …...
【Web前端】Promise的使用
Promise是异步编程的核心概念之一。代表一个可能尚未完成的操作,并提供了一种机制来处理该操作最终的成功或失败。具体来说,Promise是由异步函数返回的对象,能够指示该操作当前所处的状态。 当Promise被创建时,它会处于“待定”&a…...
TDK推出第二代用于汽车安全应用的6轴IMU
近日,据外媒报道,TDK株式会社推出用于汽车安全应用的第二代6轴 IMU,即为TDK InvenSense SmartAutomotive MEMS传感器系列增加了IAM-20685HP和IAM-20689,为决策算法提供可靠的运动数据,并实时准确地检测车辆动态。这对于…...
免费S3客户端工具大赏
首发地址(欢迎大家访问):S3免费客户端工具大赏 1. S3 GUI GitHub地址:https://github.com/aminalaee/s3gui 简介:S3 GUI 是一款基于 Flutter 构建的免费开源 S3 桌面客户端,支持桌面、移动和网络平台。 特…...
前端访问后端实现跨域
背景:前端在抖音里做了一个插件然后访问我们的后端。显然在抖音访问其他域名肯定会跨域。 解决办法: 1、使用比较简单的jsonp JSONP 优点:JSONP 是通过动态创建 <script> 标签的方式加载外部数据,属于跨域数据请求的一种…...
TCP和UDP通信基础
目录 1. 套接字 (Socket) 2. 基于TCP通信的流程 服务器端 客户端 1. TCP通信API 1.1 创建套接字描述符socket 1.2 绑定IP和端口号bind 1.3 设置监听状态 listen 1.4 接受连接请求 accept 1.5 发送数据 send 1.6 接收数据 recv 2. TCP服务器代码示例 代码解释&…...
微服务中的技术使用与搭配:如何选择合适的工具构建高效的微服务架构
一、微服务架构中的关键技术 微服务架构涉及的技术非常广泛,涵盖了开发、部署、监控、安全等各个方面。以下是微服务架构中常用的一些技术及其作用: 1. 服务注册与发现 微服务架构的一个重要特性是各个服务是独立部署的,因此它们的地址&am…...
找出字符串第一个匹配项的下标
找出字符串第一个匹配项的下标 题目描述: 题解思路: 图上所示,利用字符滑动,如果匹配就字符开始移动;如果不匹配成功,则停止移动,并回到字符串刚开始匹配的字符下标前一个,为下一次…...
面向FWA市场!移远通信高性能5G-A模组RG650V-NA通过北美两大重要运营商认证
近日,全球领先的物联网整体解决方案供应商移远通信宣布,其旗下符合3GPP R17标准的新一代5G-A模组RG650V-NA成功通过了北美两家重要运营商认证。凭借高速度、大容量、低延迟、高可靠等优势,该模组可满足CPE、家庭/企业网关、移动热点、高清视频…...
Matlab实现北方苍鹰优化算法优化随机森林算法模型 (NGO-RF)(附源码)
目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1内容介绍 北方苍鹰优化算法(Northern Goshawk Optimization, NGO)是一种新颖的群智能优化算法,灵感源自北方苍鹰捕食时的策略。该算法通过模拟苍鹰的搜寻、接近和捕捉猎物的行为模式&am…...
搭建环境 配置编译运行 mpi-test-suite
1,编译安装 ucx 下载源码: $ git clone https://github.com/openucx/ucx.git $ git checkout v1.17.0 运行auto工具: $ ./autogen.sh $ ./autogen.sh 指所以运行两次是因为有时候第一次会失败,原因未查。 配置 ucx $ m…...
夜神模拟器启动报错:虚拟机启动失败 请进行修复 关闭hyper-v
不是关闭hyper-v的问题。 点那个没用。 解决办法: 我电脑win11(win10 win11都一样 )去安全中心-设备安全性 把内存完整性关了。 这还不够。 在右上角找系统信息 我发现VT显示没开 于是我去BIOS中开启VT 这个VT怎么开很简单。就是你F2 F1…...
投资策略规划最优决策分析
目录 一、投资策略规划问题详细 二、存在最优投资策略:每年都将所有钱投入到单一投资产品中 (一)状态转移方程 (二)初始条件与最优策略 (三)证明最优策略总是将所有钱投入到单一投资产品中…...
一篇保姆式虚拟机安装ubantu教程
前言: 本文将介绍在VMware安装ubantu,会的人可以试试上一篇介绍centos/ubantu安装docker环境,不同环境安装docker。一篇保姆式centos/unbantu安装docker 官网下载iso:Ubuntu 18.04.6 LTS (Bionic Beaver) 本次使用的版本是: 一&…...
缓冲区的奥秘:解析数据交错的魔法
目录 一、理解缓存区的好处 (一)直观性的理解 (二)缓存区的好处 二、经典案例分析体会 (一)文件读写流(File I/O Buffering) BufferedOutputStream 和 BufferedWriter 可以加快…...
CentOS 7.9 搭建本地Yum源
yum(Yellow Dog Updater,Modified)是一个在Fedora、Centos、RedHat中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件…...
【Python】爬虫实战:高效爬取电影网站信息指南(涵盖了诸多学习内容)
本期目录 1 爬取思路 2 爬虫过程 2.1 网址 2.2 查看网页代码 3 爬取数据 3.1 导入包 3.2 爬取代码 01 爬取思路 \*- 第一步,获取页面内容\*- 第二步:解析并获取单个项目链接 \*- 第三步:获取子页面内容 \*- 第四步:解析…...
MATLAB和C++及Python流式细胞术
🌵MATLAB 片段 流式细胞术(Flow Cytometry)是一种用于分析细胞或其他颗粒悬浮在流动介质中的方法。MATLAB 可以用来处理和分析流式细胞术的数据,例如用于数据预处理、可视化和分析。以下是一些常见的 MATLAB 处理流式细胞术数据的…...
Vue3 pinia使用
Pinia 是一个现代的状态管理库,专为 Vue 3 设计。它提供了一种简单、直观的方式来管理应用中的全局状态 (就是不同组件都希望去共享的一些变量,函数等)。Pinia 的设计灵感来自于 Vuex(Vue 2 的状态管理库),但进行了许多改进&#…...
tdengine学习笔记-建库和建表
目录 建库和建表 创建超级表 创建表 自动建表 创建普通表 多列模型 VS 单列模型 数据类型映射 示例程序汇总 在车联网领域的应用 1. 数据模型概述 2. 表结构设计 2.1 静态数据表 2.2 动态数据表 4. 查询数据 4.1 查询单个车辆的数据 4.2 查询多个…...
Django数据迁移出错,解决raise NodeNotFoundError问题
错误出现在: raise NodeNotFoundError(self.error_message, self.key, originself.origin) django.db.migrations.exceptions.NodeNotFoundError: Migration myApp.0003_alter_jobinfo_practise dependencies reference nonexistent parent node (myApp, 0002_renam…...
景联文科技:以全面数据处理服务推动AI创新与产业智能化转型
数据标注公司在人工智能领域扮演着重要角色,通过提供高质量的数据标注服务,帮助企业和组织训练和优化机器学习模型。从需求分析到数据交付,每一个步骤都需要严格把控,确保数据的质量和安全性。 景联文科技是一家专业的数据采集与标…...
MySQL学习/复习7表的内外连接
一、内连接...
建网站做cpa/搭建一个网站
所用语言与工具代码行工作量(人时)第一次实验java Eclipse170 1/2第二次实验java Eclipse1651/1第三次实验java Eclipse481/1转载于:https://www.cnblogs.com/mxdmxdmxd78/p/5282232.html...
wordpress做api接口/seo优化系统
文章目录1、by_id定位2、by_name定位3、by_class_name定位4、by_xpath定位5、by_accessibility_id定位6、by_android_uiautomator定位在APP的原生页码中进行元素定位。 如果页面是Web(移动端里的浏览器)、混合(APP与WEBVIEW)里含…...
浙江嘉兴最新事件/优化快速排序
本文为了日后方便查阅,对知识点进行整理,只作为笔记使用。 惯性测量单元 (IMU) ADI公司的iSensor MEMS 惯性测量单元 (IMU) 传感器以多轴方式组合精密陀螺仪、加速度计、磁力计和压力传感器。 惯性测量单元传感器即便是在极为复杂的应用和动态环境下&am…...
有空间与域名 怎么做网站/快速网站推广优化
一、加载 加载一个Class需要完成以下3件事: 通过Class的全限定名获取Class的二进制字节流将Class的二进制内容加载到虚拟机的方法区在内存中生成一个java.lang.Class对象表示这个Class 获取Class的二进制字节流这个步骤有多种方式: 从zip中读取&…...
网站建设定制公司/今日小说排行榜百度搜索榜
http://www.blogjava.net/javagrass/archive/2011/07/05/353680.htmlMina:Mina(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 Mina 版…...
网站建设服务器维护内容/百度seo优化关键词
修改器介绍修改器介绍修改器和获取器相反,修改器的主要作用是对模型设置的数据对象值进行处理。修改器方法的命名规范为:setFieldNameAttr修改器的使用场景和读取器类似:1.时间日期字段的转换写入;2.集合或枚举类型的写入…...