机器学习—支持向量机理论详细推导(含例题讲解)(二)

2023-11-02

7.最大间隔算法

[算法]

输入:
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } , x 1 ∈ R n , y ∈ { + 1 , − 1 } , i = 1 , 2 , ⋯   , N T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},x_1\in R^n,y\in\{+1,-1\},i=1,2,\cdots,N T={(x1,y1),(x2,y2),,(xN,yN)},x1Rn,y{+1,1},i=1,2,,N

输出:

最大间隔分离超平面和决策函数

(1)构建优化问题: { min ⁡ ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 s . t . 1 − y i ( ω ⋅ x i + b ) ≤ 0 \left\{ \begin{split} &\min_{\omega,b}\frac{1}{2}||\omega||^2\\ &s.t.\quad 1-y_i(\omega\cdot x_i+b)\leq0 \end{split} \right. ω,bmin21∣∣ω2s.t.1yi(ωxi+b)0

注意:与之前 min ⁡ ω , b ∣ ∣ ω ∣ ∣ \min_{\omega,b}||\omega|| minω,b∣∣ω∣∣有区别, min ⁡ ω , b ∣ ∣ ω ∣ ∣ \min_{\omega,b}||\omega|| minω,b∣∣ω∣∣等价于 min ⁡ ω , b ∣ ∣ ω ∣ ∣ 2 \min_{\omega,b}||\omega||^2 minω,b∣∣ω2 1 2 \frac{1}{2} 21是未来求导后消掉2。优化问题所得的解为: ω ∗ , b ∗ \omega^{*},b^{*} ω,b

(2)输出结果

分离超平面: ω ∗ ⋅ x + b ∗ = 0 \omega^{*}\cdot x+b^{*}=0 ωx+b=0

决策函数: f ( x ) = s i g n ( ω ∗ ⋅ x + b ∗ ) f(x)=sign(\omega^{*}\cdot x+b^{*}) f(x)=sign(ωx+b)

我们有一组实例点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0),有下面的分类情况: { ω ∗ ⋅ x 0 + b ∗ > 0 ⇒ y 0 = + 1 ω ∗ ⋅ x 0 + b ∗ < 0 ⇒ y 0 = − 1 \left\{ \begin{split} &\omega^{*}\cdot x_0+b^{*}>0\Rightarrow y_0=+1\\ &\omega^{*}\cdot x_0+b^{*}<0\Rightarrow y_0=-1 \end{split} \right. {ωx0+b>0y0=+1ωx0+b<0y0=1

我们接下来看一个例子:
在这里插入图片描述

已知一个如上图所示的训练数据集,其正例点是 x 1 = ( 3 , 3 ) T , x 2 = ( 4 , 3 ) T x_1=(3,3)^T,x_2=(4,3)^T x1=(3,3)T,x2=(4,3)T,负例点是 x 3 = ( 1 , 1 ) T x_3=(1,1)^T x3=(1,1)T,试求最大间隔分离超平面。

H 1 H_1 H1正例所对应的超平面为: ω ⋅ x + b = 1 \omega\cdot x+b=1 ωx+b=1; H 2 H_2 H2负例对应的超平面为: ω ⋅ x + b = − 1 \omega\cdot x+b=-1 ωx+b=1

H 1 H_1 H1 H 2 H_2 H2之间的距离称为最优间隔,为: 2 ∣ ∣ ω ∣ ∣ \frac{2}{||\omega||} ∣∣ω∣∣2 H 1 H_1 H1 H 2 H_2 H2为间隔边界。

我们设 ω = ( ω 1 , ω 2 ) T \omega=(\omega_1,\omega_2)^T ω=(ω1,ω2)T

(1)优化问题 min ⁡ ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 = 1 2 ω 1 2 + 1 2 ω 2 2 s . t . 1 − y i ( ω ⋅ x i + b ) ≤ 0 , i = 1 , 2 , 3 \begin{split} &\min_{\omega,b}\frac{1}{2}||\omega||^2=\frac{1}{2}\omega_1^2+\frac{1}{2}\omega_2^2\\ &s.t.\quad 1-y_i(\omega\cdot x_i+b)\leq0,i=1,2,3 \end{split} ω,bmin21∣∣ω2=21ω12+21ω22s.t.1yi(ωxi+b)0,i=1,2,3

面对这个问题,我们的约束条件分别为: { 1 − 1 × ( 3 ω 1 + 3 ω 2 + b ) ≤ 0 1 − 1 × ( 4 ω 1 + 3 ω 2 + b ) ≤ 0 1 − ( − 1 ) × ( ω 1 + ω 2 + b ) ≤ 0 \left\{ \begin{split} &1-1\times(3\omega_1+3\omega_2+b)\leq0\\ &1-1\times(4\omega_1+3\omega_2+b)\leq0\\ &1-(-1)\times(\omega_1+\omega_2+b)\leq0 \end{split} \right. 11×(3ω1+3ω2+b)011×(4ω1+3ω2+b)01(1)×(ω1+ω2+b)0

{ 1 − ( 3 ω 1 + 3 ω 2 + b ) = 0 1 + ( ω 1 + ω 2 + b ) = 0 ⇒ ω 1 + ω 2 = 1 \left\{ \begin{split} &1-(3\omega_1+3\omega_2+b)=0\\ &1+(\omega_1+\omega_2+b)=0\\ \end{split} \right. \Rightarrow \omega_1+\omega_2=1 {1(3ω1+3ω2+b)=01+(ω1+ω2+b)=0ω1+ω2=1

我们得到: 1 2 ω 1 2 + 1 2 ω 2 2 = 1 2 ( 1 − ω 1 ) 2 = ω 1 2 − ω + 1 2 \begin{split} \frac{1}{2}\omega_1^2+\frac{1}{2}\omega_2^2&=\frac{1}{2}(1-\omega_1)^2\\ &=\omega_1^2-\omega+\frac{1}{2} \end{split} 21ω12+21ω22=21(1ω1)2=ω12ω+21

ω 1 = 1 2 \omega_1=\frac{1}{2} ω1=21时上式取得最小值,此时 ω 2 = 1 2 \omega_2=\frac{1}{2} ω2=21

我们得到的超平面为: 1 2 x ( 1 ) + 1 2 x ( 2 ) = 2 \frac{1}{2}x^{(1)}+\frac{1}{2}x^{(2)}=2 21x(1)+21x(2)=2

8.线性可分支持向量机—对偶问题

优化问题: min ⁡ ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 s . t . y i ( ω ⋅ x i + b ) − 1 ≥ 0 , i = 1 , 2 , ⋯   , N \begin{split} &\min_{\omega,b}\frac{1}{2}||\omega||^2\\ &s.t.\quad y_i(\omega\cdot x_i+b)-1\geq0,i=1,2,\cdots,N \end{split} ω,bmin21∣∣ω2s.t.yi(ωxi+b)10,i=1,2,,N

上面的问题是包含不等式约束的凸优化问题。

我们可以找到一个广义拉格朗日函数,约束放到拉格朗日函数中,其中, α \alpha α N N N个拉格朗日乘子。
L ( ω , b , α ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + ∑ i = 1 N α i ( 1 − y i ( ω ⋅ x i + b ) ) = 1 2 ∣ ∣ ω ∣ ∣ 2 − ∑ i = 1 N α i y i ( ω ⋅ x i + b ) + ∑ i = 1 N α i \begin{split} L(\omega,b,\alpha)&=\frac{1}{2}||\omega||^2+\sum_{i=1}^{N}\alpha_i(1-y_i(\omega\cdot x_i+b))\\ &=\frac{1}{2}||\omega||^2-\sum_{i=1}^{N}\alpha_iy_i(\omega\cdot x_i+b)+\sum_{i=1}^{N}\alpha_i \end{split} L(ω,b,α)=21∣∣ω2+i=1Nαi(1yi(ωxi+b))=21∣∣ω2i=1Nαiyi(ωxi+b)+i=1Nαi

拆成两部分是为了方便后续对偶问题的计算。

α = ( α 1 , α 2 , ⋯   , α N ) T \alpha=(\alpha_1,\alpha_2,\cdots,\alpha_N)^T α=(α1,α2,,αN)T α i ≥ 0 \alpha_i\geq0 αi0

我们的原始问题为: min ⁡ ω , b    max ⁡ α    L ( ω , b , α ) \min_{\omega,b}\;\max_{\alpha}\;L(\omega,b,\alpha) ω,bminαmaxL(ω,b,α)

对偶问题为: max ⁡ α    min ⁡ ω , b    L ( ω , b , α ) \max_{\alpha}\;\min_{\omega,b}\;L(\omega,b,\alpha) αmaxω,bminL(ω,b,α)

方便起见,我们可以用 θ D ( α ) = min ⁡ ω , b    L ( ω , b , α ) \theta_{D}(\alpha)=\min_{\omega,b}\;L(\omega,b,\alpha) θD(α)=minω,bL(ω,b,α),其中 D D D为对偶的含义。

对偶问题拆成两部分:

第一部分:内部极小化 θ D ( α ) \theta_{D}(\alpha) θD(α): ∇ ω    L = 1 2 × 2 ⋅ ω − ∑ i = 1 N α i y i x i = ω − ∑ i = 1 N α i y i x i = 0 ∇ b    L = − ∑ i = 1 N α i y i = 0 \begin{split} \nabla_{\omega}\;L&=\frac{1}{2}\times 2\cdot \omega-\sum_{i=1}^{N}\alpha_iy_ix_i\\ &=\omega-\sum_{i=1}^{N}\alpha_iy_ix_i=0\\ \nabla_{b}\;L&=-\sum_{i=1}^{N}\alpha_iy_i=0 \end{split} ωLbL=21×2ωi=1Nαiyixi=ωi=1Nαiyixi=0=i=1Nαiyi=0

从上面的梯度计算我们可以得到: { ω = ∑ i = 1 N α i y i x i ∑ i = 1 N α i y i = 0 \left\{ \begin{split} &\omega=\sum_{i=1}^{N}\alpha_iy_ix_i\\ &\sum_{i=1}^{N}\alpha_iy_i=0 \end{split} \right. ω=i=1Nαiyixii=1Nαiyi=0

我们代入广义拉格朗日函数为: θ D ( α ) ⇒ 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i y i ( ∑ j = 1 N α j y j ( x j ⋅ x i ) ) + ∑ i = 1 N α i = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \begin{split} &\theta_{D}(\alpha)\\ \Rightarrow &\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^{N}\alpha_iy_i(\sum_{j=1}^{N}\alpha_jy_j(x_j\cdot x_i))+\sum_{i=1}^{N}\alpha_i\\ =&-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum_{i=1}^{N}\alpha_i \end{split} =θD(α)21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiyi(j=1Nαjyj(xjxi))+i=1Nαi21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi

第二部分:外部极大化问题 { max ⁡ α    θ D ( α ) s . t .    { ∑ i = 1 N α i y i = 0 α i ≥ 0 i = 1 , 2 , ⋯   , N \left\{ \begin{split} &\max_{\alpha}\;\theta_{D}(\alpha)\\ &s.t.\;\left\{ \begin{split} &\sum_{i=1}^{N}\alpha_iy_i=0\\ &\alpha_i\geq0\\ &i=1,2,\cdots,N \end{split} \right. \end{split} \right. αmaxθD(α)s.t. i=1Nαiyi=0αi0i=1,2,,N

但是 α ∗ \alpha^{*} α如何得到 ω ∗ \omega^{*} ω b ∗ b^{*} b

在解决这个问题之前,我们先看一下什么叫原始问题和对偶问题,以及求解需要满足的KKT条件。

在约束最优化问题中,常常利用拉格朗日对偶性将原始问题转换为对偶问题,通过解对偶问题得到原始问题的解。

[原始问题]

f ( x ) , c ( x ) , h ( x ) f(x),c(x),h(x) f(x),c(x),h(x)是定义在 R n R^n Rn上的连续可微函数: min ⁡ x ∈ R n    f ( x ) s . t .    { c i ( x ) ≤ 0 , i = 1 , 2 , ⋯   , k h j ( x ) = 0 , j = 1 , 2 , ⋯   , l \begin{split} &\min_{x\in R^n}\;f(x)\\ &s.t.\;\left\{ \begin{split} &c_i(x)\leq0,i=1,2,\cdots,k\\ &h_j(x)=0,j=1,2,\cdots,l \end{split} \right. \end{split} xRnminf(x)s.t.{ci(x)0,i=1,2,,khj(x)=0,j=1,2,,l

引进拉格朗日函数, α i , β j \alpha_i,\beta_j αi,βj为乘子, α i ≥ 0 \alpha_i\geq0 αi0
L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ i = 1 l β j h j ( x ) L(x,\alpha,\beta)=f(x)+\sum_{i=1}^{k}\alpha_ic_i(x)+\sum_{i=1}^{l}\beta_jh_j(x) L(x,α,β)=f(x)+i=1kαici(x)+i=1lβjhj(x)

假设给定某个 x x x,如果 x x x违反约束条件: c i ( ω ) > 0 , h j ( ω ) ≠ 0 ⇒ θ p ( x ) = max ⁡ α , β : α i ≥ 0 [ f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) ] = + ∞ \begin{split} &c_i(\omega)>0,h_j(\omega)\neq0\\ \Rightarrow &\theta_p(x)=\max_{\alpha,\beta:\alpha_i\geq0}[f(x)+\sum_{i=1}^{k}\alpha_ic_i(x)+\sum_{j=1}^{l}\beta_jh_j(x)]=+\infty \end{split} ci(ω)>0,hj(ω)=0θp(x)=α,β:αi0max[f(x)+i=1kαici(x)+j=1lβjhj(x)]=+

θ p ( x ) = { f ( x )    ,    x ∈ s . t . + ∞    ,    o t h e r w i s e \theta_p(x)=\left\{ \begin{split} &f(x)\;,\;x\in s.t.\\ &+\infty\;,\;otherwise \end{split} \right. θp(x)={f(x),xs.t.+,otherwise

考虑极小问题:
min ⁡ x    θ p ( x ) = min ⁡ x    max ⁡ α , β : α i ≥ 0    L ( x , α , β ) \min_{x}\;\theta_p(x)=\min_{x}\;\max_{\alpha,\beta:\alpha_i\geq0}\;L(x,\alpha,\beta) xminθp(x)=xminα,β:αi0maxL(x,α,β)

与原始最优化问题等价: p ∗ = min ⁡ x    θ p ( x ) p^{*}=\min_{x}\;\theta_{p}(x) p=xminθp(x)

总结如下:

原始问题总结为:
min ⁡ x    θ p ( x ) = min ⁡ x    max ⁡ α , β : α i ≥ 0    L ( x , α , β ) \min_{x}\;\theta_{p}(x)=\min_{x}\;\max_{\alpha,\beta:\alpha_{i}\geq0}\;L(x,\alpha,\beta) xminθp(x)=xminα,β:αi0maxL(x,α,β)

称为广义拉格朗日函数的极小极大问题。

定义原始问题的最优值: p ∗ = min ⁡ x    θ p ( x ) p^{*}=\min_{x}\;\theta_{p}(x) p=xminθp(x)

[对偶问题]

定义: θ D ( α , β ) = min ⁡ x    L ( x , α , β ) \theta_{D}(\alpha,\beta)=\min_{x}\;L(x,\alpha,\beta) θD(α,β)=xminL(x,α,β)

则最大值问题:
max ⁡ α , β : α i ≥ 0 θ D ( α , β ) = max ⁡ α , β : α i ≥ 0    min ⁡ x    L ( x , α , β ) \max_{\alpha,\beta:\alpha_i\geq0}\theta_{D}(\alpha,\beta)=\max_{\alpha,\beta:\alpha_i\geq0}\;\min_{x}\;L(x,\alpha,\beta) α,β:αi0maxθD(α,β)=α,β:αi0maxxminL(x,α,β)

上述称为广义拉格朗日函数的极大极小问题。

表示为约束最优化问题: { max ⁡ α , β    θ D ( α , β ) = max ⁡ α , β    min ⁡ x    L ( x , α , β ) s . t .    α i ≥ 0 , i = 1 , 2 , ⋯   , k \left\{ \begin{split} &\max_{\alpha,\beta}\;\theta_{D}(\alpha,\beta)=\max_{\alpha,\beta}\;\min_{x}\;L(x,\alpha,\beta)\\ &s.t.\;\alpha_i\geq0,i=1,2,\cdots,k \end{split} \right. α,βmaxθD(α,β)=α,βmaxxminL(x,α,β)s.t.αi0,i=1,2,,k

称为原始问题的对偶问题。

对偶问题的最优值:
d ∗ = max ⁡ α , β : α i ≥ 0    θ D ( α , β ) d^{*}=\max_{\alpha,\beta:\alpha_i\geq0}\;\theta_{D}(\alpha,\beta) d=α,β:αi0maxθD(α,β)

[原始问题和对偶问题的关系]

若原始问题和对偶问题都有最优值,则:
d ∗ = max ⁡ α , β : α i ≥ 0 min ⁡ x    L ( x , α , β ) ≤ min ⁡ x    max ⁡ α , β : α i ≥ 0    L ( x , α , β ) = p ∗ d^{*}=\max_{\alpha,\beta:\alpha_i\geq0}\min_{x}\;L(x,\alpha,\beta)\leq\min_{x}\;\max_{\alpha,\beta:\alpha_i\geq0}\;L(x,\alpha,\beta)=p^{*} d=α,β:αi0maxxminL(x,α,β)xminα,β:αi0maxL(x,α,β)=p

推论:

x ∗ x^{*} x,和 α ∗ \alpha^{*} α β ∗ \beta^{*} β分别是原始问题和对偶问题的可行解,并且 d ∗ = p ∗ d^{*}=p^{*} d=p,则 x ∗ x^{*} x,和 α ∗ \alpha^{*} α β ∗ \beta^{*} β分别是原始问题和对偶问
题的最优解。

[KKT条件]

对原始问题和对偶问题,假设函数 f ( x ) f(x) f(x) c i ( x ) c_i(x) ci(x)是凸函数, h j ( x ) h_j(x) hj(x)是仿射函数,并且不等式 c i ( x ) c_i(x) ci(x)是严格可行的,则 x ∗ x^{*} x,和 α ∗ \alpha^{*} α β ∗ \beta^{*} β分别是原始问题和对偶问题的解的充分必要条件是 x ∗ x^{*} x,和 α ∗ \alpha^{*} α β ∗ \beta^{*} β满足KKT条件。
∇ x    L ( x ∗ , α ∗ , β ∗ ) = 0 ∇ α    L ( x ∗ , α ∗ , β ∗ ) = 0 ∇ β    L ( x ∗ , α ∗ , β ∗ ) = 0 α i ∗ c i ( x ∗ ) = 0    ,    i = 1 , 2 , ⋯   , k c i ( x ∗ ) ≤ 0    ,    i = 1 , 2 , ⋯   , k α i ∗ ≥ 0    ,    i = 1 , 2 , ⋯   , k h j ( x ∗ ) = 0    ,    j = 1 , 2 , ⋯   , l \begin{split} &\nabla_{x}\;L(x^{*},\alpha^{*},\beta^{*})=0\\ &\nabla_{\alpha}\;L(x^{*},\alpha^{*},\beta^{*})=0\\ &\nabla_{\beta}\;L(x^{*},\alpha^{*},\beta^{*})=0\\ &\alpha_{i}^{*}c_{i}(x^{*})=0\;,\;i=1,2,\cdots,k\\ &c_{i}(x^{*})\leq0\;,\;i=1,2,\cdots,k\\ &\alpha_{i}^{*}\geq0\;,\;i=1,2,\cdots,k\\ &h_j(x^{*})=0\;,\;j=1,2,\cdots,l \end{split} xL(x,α,β)=0αL(x,α,β)=0βL(x,α,β)=0αici(x)=0,i=1,2,,kci(x)0,i=1,2,,kαi0,i=1,2,,khj(x)=0,j=1,2,,l

我们上式中的 c i ( x ) = 1 − y i ( ω ⋅ x i + b ) c_i(x)=1-y_i(\omega\cdot x_i+b) ci(x)=1yi(ωxi+b),其中 α \alpha α相当于 ω \omega ω
∇ ω    L = ω − ∑ i = 1 N α i y i x i = 0 ⇒ ω ∗ = ∑ i = 1 N α i ∗ y i x i \begin{split} \nabla_{\omega}\;L&=\omega-\sum_{i=1}^{N}\alpha_iy_ix_i=0\\ \Rightarrow \omega^{*}&=\sum_{i=1}^{N}\alpha_i^{*}y_ix_i \end{split} ωLω=ωi=1Nαiyixi=0=i=1Nαiyixi

b ∗ b^{*} b应该如何表示呢?

如果 α ∗ = ( 0 , 0 , ⋯   , 0 ) T ⇒ ω ∗ = 0 \alpha^{*}=(0,0,\cdots,0)^T \Rightarrow \omega^{*}=0 α=(0,0,,0)Tω=0,不符合要求。

所以存在 α j ∗ > 0 \alpha_j^{*}>0 αj>0,使得: α j ∗ ( 1 − y j ( ω ∗ ⋅ x j + b ∗ ) ) = 0 ⇒ 1 − y j ( ω ∗ ⋅ x j + b ∗ ) = 0 ⇒ b ∗ = 1 y j − ω ∗ ⋅ x j = 1 y j − ∑ i = 1 N α i y i ( x i ⋅ x j ) \begin{split} &\alpha_j^{*}(1-y_j(\omega^{*}\cdot x_j+b^{*}))=0\\ \Rightarrow &1-y_j(\omega^{*}\cdot x_j+b^{*})=0\\ \Rightarrow &b^{*}=\frac{1}{y_j}-\omega^{*}\cdot x_j=\frac{1}{y_j}-\sum_{i=1}^{N}\alpha_iy_i(x_i\cdot x_j) \end{split} αj(1yj(ωxj+b))=01yj(ωxj+b)=0b=yj1ωxj=yj1i=1Nαiyi(xixj)

所以我们得到 b ∗ b^{*} b的表达式为:
b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) b^{*}=y_j-\sum_{i=1}^{N}\alpha_i^{*}y_i(x_i\cdot x_j) b=yji=1Nαiyi(xixj)

我们的超平面为: ω ∗ ⋅ x + b ∗ = 0 \omega^{*}\cdot x+b^{*}=0 ωx+b=0

我们的决策函数为: f ( x ) = s i g n ( ω ∗ ⋅ x + b ∗ ) f(x)=sign(\omega^{*}\cdot x+b^{*}) f(x)=sign(ωx+b)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习—支持向量机理论详细推导(含例题讲解)(二) 的相关文章

随机推荐

  • 如何在pycharm使用Anaconda下载的库

    如何在pycharm使用Anaconda下载的库 这篇文章 介绍了如何在pycharm项目 project 里建立Anaconda环境 从而引用anaconda下载的库 site packages 但我个人使用后发现 换了虚拟环境后无法实现
  • 旋转的矩阵-c++

    旋转的矩阵 数据结构 题目描述 给定一个n m的矩阵 请以顺 逆时针交替旋转的方式打印出每个元素 Input Format 第一行n m 0
  • Error getting generated key or setting result to parameter object. Cause: org.apache.ibatis.executor

    报错信息 Error getting generated key or setting result to parameter object Cause org apache ibatis executor ExecutorExceptio
  • 毕业设计课题大全

    Java毕业设计课题大全 https blog csdn net My IT Road article details 90341793 软件工程毕业设计集合 https blog csdn net linzhiqiang0316 arti
  • tutk云平台服务器_哪家云服务器便宜?各家云平台活动详解【持续更新】

    不知不觉 双十一已经近在眼前 作为一年一度的购物狂欢节 无论对于商家还是消费者来说 都是一次畅快购物的饕餮盛宴 对于云平台来说 自然不会错过一年中绝佳的营销机会 各种优惠活动也是纷至沓来 在讨论哪家云服务器便宜之前 我们先来看看该如何选择云
  • 微信登录总结公众号登录小程序登录企业微信登录

    微信公众号 服务号登录 微信内部网页授权 第一步 请求CODE https open weixin qq com connect oauth2 authorize appid APPID redirect uri REDIRECT URI
  • VC6.0打开文件以及向工程中添加文件时程序崩溃自动退出

    换了一台电脑 vc6 0程序中 点击打开文件以及向工程中添加文件时 程序竟然崩溃自动退出了 不知什么原因 安装相同的vc程序 本本竟然出现此缘故 但是这个操作又是自己经常用到的 所以不得不解决 与上一台电脑不同的是 此电脑是win7系统 而
  • 最小二乘拟合平面——拉格朗日乘子法

    目录 一 算法原理 二 代码实现 1 python 2 matlab 三 算法效果 一 算法原理 设拟合出的平面方程为 a x b
  • tinyhttp

    博客园 http www cnblogs com letlifestop Tinyhttpd 是J David Blackstone在1999年写的一个不到 500 行的超轻量型 Http Server 用来学习非常不错 可以帮助我们真正理
  • c++中和c语言不相同的地方

    c 糅合了c语言的语法 并且在c语言的基础上进行了改进 并且具有向下兼容的特性 但是c 改进了什么东西呢 今天就来学习一下吧 目录 命名空间 namespace cout与cin与endl 流插入符与流运算符 using namespace
  • [MySql]JDBC编程

    JDBC 即Java Database Connectivity java数据库连接 是一种用于执行SQL语句的Java API 它是Java中的数据库连接规范 这个API由 java sql javax sql 包中的一些类和接口组成 它
  • Vite unplugin-auto-import插件 自动引入组件

    文章目录 一 参考 二 快速入门 三 开发问题 3 1 解决eslint 报错的问题 3 2 解决 typescritp 报错的问题 unplugin auto import 自定义配置说明 一 参考 unplugin auto impor
  • QT textBrowser 设置每个字符串的颜色和大小

    QT textBrowser 设置每个字符串的颜色和大小 QT中textBrowser每行显示不同颜色 解决 Qt textBrowser 每行字体设置中的 n 缺失问题 原理 字体采用 html语言进行设置 方法 1 需要采用 appen
  • windows10 mvn安装后不是内部命令

    好气啊 maven 命令不识别 扒拉了半天 结果把全路径仍path一份就好使了 先记着吧
  • VS2010中C#调用C函数

    VS2010中C 调用C函数 2013 07 22 16 12 50 转载 分类 C Concept 1 创建C本地DLL文件 1 1 创建Win32Dll项目 1 2 创建DLL 点击完成 1 3 在 头文件 里新建文件 CPPLibra
  • 最小点覆盖问题详解

    那么一如既往 还是个人觉得学习某一个知识点之前先粗俗的了解其是个什么东东 然后再去了解概念比较好 那么下面结合题目来了解 首先最最重要的是理解题意 有k个任务 每个任务task i可以用机器A的x i模式做 也可以由机器B的y i模式做 值
  • 6款非常好用的设计软件盘点

    近年来 随着社会的发现 中国的设计行业也取得了快速的进步 人们对设计的要求越来越高 设计师也越来越多 设计成本也在上升 作为一名设计师 找到合适的设计软件尤为重要 以下是一些我认为有用的设计软件 供您参考 1 figma Figma是一个U
  • Linux网络莫名其妙ping不通外网

    做实验之前 网络设置一切正常 一开始能成功ping通外网 但是过一会儿就出问题 yum也用不了 查了所有的配置都没有任何问题 最后尝试了一下将原来的网段更换 将虚拟机里的虚拟网络编辑器NAT模式的子网IP更换一个网段 原来是158网段 现更
  • 利用Github快速搭建个人博客总结(亲测)

    近一年多时间一直都在用CSDN 讲真这个CSDN有时候资料很多 我也很自豪加入这个大家庭 不过身边有两个同学 一个在github托管了属于自己的博客 另一个在云上面编写了属于自己的博客 后者的理由是 CSDN太low 上面很多都是转发的文章
  • 机器学习—支持向量机理论详细推导(含例题讲解)(二)

    7 最大间隔算法 算法 输入 T x 1