从负一开始推导SVM

0 解析几何知识, 点到平面的距离

参考材料

image.png

如图, 假设一个平面 N: Ax+By+Cz+D = 0, 平面外一点 P(x_P, y_P, z_P), P 在平面上的投影为P', 求点P到平面的距离即求\overline{PP'}

我们可以知道平面N的法向量为\vec N = (A, B, C), 则这个法向量对应的单位向量

\vec n = \frac{\vec N}{|\vec N|} = \frac{\vec N}{\sqrt{A^2+B^2+C^2}} \ \ \ \ \ \ (0.1)

假设平面上任意一点 Q(x_Q, y_Q, z_Q), 则Q满足

Ax_Q + Bx_Q + Cx_Q + D = 0 \ \ \ \ \ \ (0.2)

P 到点Q 构成的向量 \vec{PQ} = (x_P - x_Q, y_P- y_Q, z_P-z_Q)

所以\overline{PP'}即为\vec{PQ}在法向量\vec N方向上的投影, 即与单位法向量\vec n的点乘的结果.(这里取了个绝对值, 因为距离只能为正, 避免了向量方向问题的干扰)

\overline{PP'} = |\vec{PQ} \cdot \vec n|=|\frac{(x_P - x_Q, y_P- y_Q, z_P-z_Q) \cdot \vec N}{\sqrt{A^2+B^2+C^2}}|

\overline{PP'} =\frac{|(x_P - x_Q, y_P- y_Q, z_P-z_Q) \cdot (A,B,C)|}{\sqrt{A^2+B^2+C^2}}

\overline{PP'} =\frac{|A(x_P - x_Q)+B( y_P- y_Q)+C( z_P-z_Q)|}{\sqrt{A^2+B^2+C^2}} \ \ \ \ \ \ (0.3)

其中与Q点相关的变量x_Q, y_Q, z_Q都可以用式(0.2)替换

所以合并式(0.2), (0.3)可得:

\overline{PP'} =\frac{|Ax_P +By_P+Cz_P +D|}{\sqrt{A^2+B^2+C^2}} \ \ \ \ \ \ (0.4)

如果用矩阵来表示, 则我们取

\omega = \begin{bmatrix}A \\B \\C \end{bmatrix}, x_P = \begin{bmatrix}x_P \\y_P \\z_P \end{bmatrix}, b = D

则式(0.4)可以写为

\overline{PP'} =\frac{|\omega^Tx_P +b|}{||\omega||}

||\omega||即为L2范式(L2 norm), 就是平方和之后开根号

1 SVM基本问题描述和解决思路

基本问题:

假设有两个类别的数据, (x_i, y_i)

其中y_i = \begin{cases} +1 \\-1 \end{cases}

我们试图找到一个分隔平面(超平面) \omega^Tx+b = 0 (这里就是Ax+By+Cz+D = 0的一个变体)

使得

  1. 离 分隔平面\omega最近的点 到 分隔平面\omega 的距离最大
  2. 所有点都能被正确分类

目标1: 距离最大

根据之前的预备知识, 我们知道任意一点P到平面的距离为(李航的书说是"几何距离")

r = \frac{|\omega^Tx_P+b|}{||\omega||}

我们要求分隔平面两边的点都满足条件2: 距离分隔平面的距离最大

所以我们的求解目标是

\max \min \frac{2}{||\omega||}|\omega^Tx_P+b|

目标2: 正确分类

同时我们希望能满足条件1, 即所有点能被正确分类

y_i(\omega^T x+b) > 0

因为

  1. 如果是正确分类的话, 所有类别为+1 的点都会在平面的上方, 类别为-1 的点都会在平面的下方.
  2. 在平面上方的点满足 (\omega^T x+b) > 0, 在平面下方的点满足(\omega^T x+b) < 0
  3. 所以如果能正确分类就有: y_i(\omega^T x+b) > 0

SVM的求解问题的数学表达

\max_{w,b} \min_i \frac{2}{||\omega||}|\omega^Tx_i+b| \\ s.t.\ y_i(\omega^T x+b) > 0 \ \ \ \ \ \ \ (1.1)

翻译一下:

  1. 找到距离平面最近的一个点, 其距离: \min_i \frac{1}{||\omega||}|\omega^Tx_i+b|
  2. 把这个距离乘以2, 就是间隔了: \min_i \frac{2}{||\omega||}|\omega^Tx_i+b|
  3. 把分隔平面挪动翻转一下, 看看是不是能扩大这个间隔: \max_{w,b} \min_i \frac{2}{||\omega||}|\omega^Tx_i+b|

求解目标: \omega, b

2 如何简化这个问题: 转换为凸二次规划问题

通过把原问题构建成凸二次规划问题来进行求解, 因为凸二次规划可解

凸二次规划问题:

  1. 目标函数是凸二次函数: \min_u \frac{1}{2}u^TQu + t^Tu (关于u的二次函数)
  2. 约束是线性约束: s.t\ c_i^Tu \geq d_i, i = 1, 2,3,...,m

现在我们的目标就是, 把原问题凑成凸二次规划问题

目标函数的变换

原问题的目标函数为:

\max_{w,b} \min_i \frac{2}{||\omega||}|\omega^Tx_i+b|

变换思路

  1. 因为求解目标是 \omega, b, 所以\min_i这一项(即变量i)要想办法忽略掉
  2. 目标函数为一个二次函数, 原函数里面其实隐含了一个二次函数: \frac{1}{||\omega||} = \frac{1}{\sqrt{\omega^T\omega}}
  3. 所以|\omega^Tx_i + b|这一项有点没有用, 我们需要想办法忽略它

工具:

  1. 我们发现一个事实, 如果把\omega, b等比例放大/缩小, 式(1.1)描述的问题不变:
    证明
    假设一个系数r>0, 使得\omega, b放大为r\omega, rb,
    则式(1.1)变为:
    \max_{w,b} \min_i \frac{2}{||r\omega||}|r\omega^Tx_i+rb| \\ s.t.\ y_i(r\omega^T x+rb) > 0
    其中目标函数\max_{w,b} \min_i \frac{2}{||r\omega||}|r\omega^Tx_i+rb| = \max_{w,b} \min_i \frac{2}{||\omega||}|\omega^Tx_i+b| (分母分子同乘一个r, 抵消了)
    约束目标y_i(r\omega^T x+rb) > 0 \Leftrightarrow y_i(\omega^T x+b) > 0(不等式两边同除一个正数, 不等式仍然成立)

  2. 这个|\omega^Tx_i+b|就是PQ和平面法向量\omega点乘的结果,这个结果要除以法向量的模长才是几何间隔(我们的问题要求几何间隔满足一定条件)。所以如果我们只是变换法向量的长度的话,因为无论如何都会除以法向量长度,所以对于原问题并没有任何影响(式(1.1)描述的问题不变)。

变换过程

目标函数的变换

  1. 我们假设所有的\omega,b都乘上一个系数r,我们证明了乘上这个系数与否不影响问题的描述
  2. 于是我们总能找到一个r^*,使得\min_i |r^*\omega^Tx_i+r^*b|=1, 这样的话原问题的目标函数可以写为\max_{\omega, b}\frac{2}{||r^*\omega||}
  3. 我之前一直迷惑于这个r^*怎么处理的,后来想起来系数和问题的求解无关,因为这是个凸二次函数嘛,想想抛物线的形状,无论系数怎么改变抛物线最低点的值都会出现在固定的位置(系数和开口大小相关),所以可以直接忽略系数: 求解\max_{\omega, b}\frac{2}{||r^*\omega||}等价于求解 \max_{\omega, b}\frac{1}{||\omega||}
  4. \max_{\omega, b}\frac{1}{||\omega||} \Leftrightarrow \min_{\omega, b}||\omega|| \Leftrightarrow \min_{\omega, b} \omega^T\omega \Leftrightarrow \min_{\omega, b} \frac{1}{2}\omega^T\omega
  5. 到这一步, 我们的目标函数变化过程为: \max_{w,b} \min_i \frac{2}{||\omega||}|\omega^Tx_i+b| = \max_{w,b} \min_i \frac{2}{||r\omega||}|r\omega^Tx_i+rb| = \max_{w,b} \min_i \frac{2}{||r^*\omega||}|r^*\omega^Tx_i+r^*b|
    = \max_{\omega, b}\frac{2}{||r^*\omega||} = \max_{\omega, b}\frac{1}{||\omega||} \Leftrightarrow \min_{\omega, b} \frac{1}{2}\omega^T\omega

约束条件的变换

  1. 接下来看约束条件的变化, 原问题的约束条件为: y_i(\omega^T x+b) > 0, 由于之前对于\omega, b的变换引入了一个新的约束条件: \min_i |r^*\omega^Tx_i+r^*b|=1
  2. \min_i |r^*\omega^Tx_i+r^*b|=1 , 我们可以视为\min_i |\omega'^Tx_i+b'|=1, (\omega' = r^*\omega, b' = r^*b), 在这里, r^*的作用是对\omega, b施加限制, 所以我们可以换个思路, 直接对\omega, b施加限制: \min_i |\omega^Tx_i+b|=1, 等价于|\omega^Tx_i+b| \geq 1
  3. 所以新的约束条件为: y_i(\omega^T x+b) > 0|\omega^Tx_i+b| \geq 1, 因为y_i(\omega^T x+b) > 0的原因, 所以 |\omega^Tx_i+b| = y_i(\omega^T x+b)(分类正确的条件下, 这两个式子都能保证>0(分类正确意味着点不能再分隔平面上, 所以绝对值也不可能等于0)), 所以这两个约束条件可以合并为一个: y_i(\omega^T x+b) \geq 1

变换过程的公式推导

原问题为:

\max_{w,b} \min_i \frac{2}{||\omega||}|\omega^Tx_i+b| \\ s.t.\ y_i(\omega^T x+b) > 0

找到个系数r^*使得 \min_i |r^*\omega^Tx_i+r^*b|=1,(注意现在r^*也是目标函数之一了)

\max_{w,b} \min_i \frac{2}{||r^*\omega||}|r^*\omega^Tx_i+r^*b|, \\ r* \\ \ \\s.t \ \min_i |r^*\omega^Tx_i+r^*b|=1\\ s.t.\ y_i(\omega^T x+b) > 0

化简目标函数, 凑二次函数:

\max_{\omega, b}\frac{2}{||r^*\omega||} = \max_{\omega, b}\frac{1}{||\omega||} \Leftrightarrow \min_{\omega, b} \frac{1}{2}\omega^T\omega

于是现在的问题为:

\min_{\omega, b} \frac{1}{2}\omega^T\omega, \\ r* \\ \ \\s.t \ \min_i |r^*\omega^Tx_i+r^*b|=1\\ s.t.\ y_i(\omega^T x+b) > 0

转换约束条件, 把关于r^*的约束条件转变成只与\omega, b相关(目标函数中的r^*也没了)

\min_{\omega, b} \frac{1}{2}\omega^T\omega,\\s.t \ \min_i |\omega^Tx_i+b|=1\\ s.t.\ y_i(\omega^T x+b) > 0

继续转换, 并合并两个约束条件

\min_{\omega, b} \frac{1}{2}\omega^T\omega\\ s.t.\ y_i(\omega^T x+b) \geq 1

(这段变换其实是我整个SVM里面一开始最不能理解的地方, 我找到的教材都只是说了一句: 因为缩放并不影响原问题, 所以我们就能得出\min_i |\omega^Tx_i+b|=1, 之类的解释(包括<统计学习方法>也是类似的跳跃式证明). 我数学太渣真的无法自己就这样接受这么跳跃的证明, 于是想了好久才想出了一个可以自己接受的证明方法. 不确保一定正确, 希望有人能指出错误)

3 通过构造一个新函数, 合成目标函数和约束: 拉格朗日函数

在利用二次凸优化构建了一个新的等价问题之后, 如何解? 现在的思路是把目标函数和约束合成为一个式子, 通过求新式子的最值, 便是原问题的最值

这个方法称为: 拉格朗日函数

拉格朗日函数求解的条件

  1. 如果一个带约束优化问题有诸如一下的形式:
    \min_u f(u) \\ s. t.\ g_i(u) \leq 0, \\ s.t.\ h_i(u) = 0 \\ i=1,2,3,....

  2. 并且f(u)连续可微

则可以将原问题转换为一下新问题

\min_u \max_{\alpha, \beta} L(u, \alpha, \beta ) = f(u) + \sum_{i=1}^m \alpha_ig_i(u) + \sum_{j=1}^n\beta_jh_j(u)\\ s.t \ \alpha_i \geq 0

能进行这样转换的原因

为了能证明新得到的拉格朗日函数是原问题的变形(即拉格朗日函数能变回原问题), 我们最好把\min_u \max_{\alpha, \beta} L(u, \alpha, \beta ) = f(u) + \sum_{i=1}^m \alpha_ig_i(u) + \sum_{j=1}^n\beta_jh_j(u) 和 原问题中的约束条件g_i(u) \leq 0, h_i(u) = 0放在一起看,

并且时刻记住: 因为求的是\min_u \max_{\alpha, \beta} L(u, \alpha, \beta ), 所以L(u, \alpha, \beta )\alpha, \beta有最大值, 对u有最小值

于是我们有如下的假设:

  1. 如果g_i(u)不满足条件, 即g_i(u) > 0: \max_{\alpha, \beta} L(u, \alpha, \beta ) 中的 \alpha_ig_i(u)这一项, 最大值为+\infty, 导致\max_{\alpha, \beta} L(u, \alpha, \beta ) = +\infty, 无解.
  2. 如果 g_i(u)满足条件, 即g_i(u) \leq 0: \max_{\alpha, \beta} L(u, \alpha, \beta ) 中的 \alpha_ig_i(u)这一项, 因为\alpha_i \geq 0, 所以最大值为0(正数\alpha_i乘以负数g_i(u)结果仍为负数), 有可能有解
  3. 如果h_j(u)不满足条件, 即h_j(u) \neq 0: \max_{\alpha, \beta} L(u, \alpha, \beta ) 中的 \beta_jh_j(u)这一项, 因为\beta_j并没有约束条件约束, 所以可以取任意值, 即\max_{\beta} \beta_jh_j(u) = +\infty, 导致\max_{\alpha, \beta} L(u, \alpha, \beta ) = +\infty, 无解.
  4. 如果h_j(u)满足条件, 即h_j(u) = 0: 则\beta_jh_j(u) =0, \max_{\alpha, \beta} L(u, \alpha, \beta )可能有解

我们可以组合假设2和假设4, 即:

如果 g_i(u)满足g_i(u) \leq 0, 且h_j(u)满足h_j(u) = 0, 则\max_{\alpha, \beta} L(u, \alpha, \beta ) = f(u)+0+0=f(u)

所以此时 \min_u \max_{\alpha, \beta} L(u, \alpha, \beta ) =\min_u f(u), 朗格朗日函数变换回原问题

把凸二次函数问题转换成拉格朗日函数

  1. u替换为\omega, b 所以有: \min_u f(u) \Rightarrow \min_{\omega,b} f(\omega, b)
  2. \min_{\omega,b} f(\omega, b)替换为\min_{\omega, b} \frac{1}{2}\omega^T\omega
  3. g_i(u) \leq 0替换为1-y_i(\omega^T x+b) \leq 0: 把原约束的左边移到了右边而已
  4. 因为原凸二次函数问题中没有类似h_j(u) = 0的约束, 所以直接忽略\beta_jh_j(u)这一项
  5. 原凸二次函数问题变为:
    \min_{\omega, b} \max_{\alpha} L(\omega, b, \alpha) = \min_{\omega, b} \max_{\alpha} \frac{1}{2}\omega^T\omega+\sum_{i=1}^m \alpha_i(1-y_i(\omega^T x+b) )

4 通过对偶问题解拉格朗日函数

为什么要转成对偶问题:

求解拉格朗日函数的极值的, 由于求极值的运算是从内向外的. 每次运算需要先算\max_{\alpha}, 而这个\alpha_i作为新引入的变量, 只能通过计算所有值来找到最值.

而每次求得一个新的\alpha_i, 我们就要求一次\omega, b的最值, 所以这样非常耗时麻烦

但是如果能先求\omega, b, 每次找到一个新的\alpha_i后就不用再计算了.

对偶问题的转换

只要原问题满足KKT+Slater条件, 我们便可以交换求最大值和最小值的顺序:

\min_{\omega, b} \max_{\alpha} L(\omega, b, \alpha) \overset{满足KKT+Slater条件}{\Longrightarrow} \max_{\alpha} \min_{\omega, b} L(\omega, b, \alpha)

KKT条件

  1. 主问题可行: g_i(u) \leq 0, h_i(u)=0
  2. 对偶问题可行: \alpha_i \geq 0
  3. 互补松弛: \alpha_ig_i(u) = 0
  4. (统计学习方法上面的条件)最优解处对\omega,b偏导是0: \nabla_{\omega, b} L(\omega^*, b^*, \alpha^*)=0

Slater条件

当主问题为凸优化问题, 即 f(u)g_i(u) 为凸函数, h_j(u) 为仿射函数, 且可行域中至少有一点使不等式约束严格成立时, 对偶问题等价于原问题.

对偶问题的证明

原问题为\min_{\omega, b} \max_{\alpha} L(\omega, b, \alpha), 对偶问题为\max_{\alpha} \min_{\omega, b} L(\omega, b, \alpha), <统计学习方法>写的证明终于理解了, 这里我做一下注释(也把符号统一为我这里使用的符号):

先假设\theta_D(\omega,b) = \min_{\omega,b} L(\omega, b, \alpha),(D=dual problem对偶问题)

\theta_P(\alpha) = \max_{\alpha} L(\omega, b, \alpha), (P=prime problem原问题)

所以可知对任意 \omega, b, \alpha都有 \theta_D(\omega,b) = \min_{\omega,b} L(\omega, b, \alpha) \leq L(\omega, b, \alpha) \leq \max_{\alpha} L(\omega, b, \alpha)= \theta_P(\alpha)

因为\min_{\omega,b} L(\omega, b, \alpha) 是对L(\omega, b, \alpha)求最小值, \max_{\alpha} L(\omega, b, \alpha)是对L(\omega, b, \alpha)求最大值, 所以最小值一定小于大于最大值

即对任意 \omega, b, \alpha都有 \theta_D(\omega,b) \leq \theta_P(\alpha)

这里的"任意"很重要, 下一步的证明的基础就是这个"任意"

因为原问题和对偶问题都有最优解, 所以:\max_{\alpha;\alpha \geq 0} \theta_D(\omega, b) \leq \min_{\omega, b} \theta_P(\alpha)

因为我们有: 对任意 \omega, b, \alpha都有 \theta_D(\omega,b) \leq \theta_P(\alpha), 所以就算取\theta_D(\omega,b)的最大值和\theta_P(\alpha) 的最小值, 仍然要满足 \theta_D(\omega,b) \leq \theta_P(\alpha), 所以\max_{\alpha;\alpha \geq 0} \theta_D(\omega, b) \leq \min_{\omega, b} \theta_P(\alpha)成立

相当于:\max_{\alpha} \min_{\omega, b} L(\omega, b, \alpha) \leq \min_{\omega, b} \max_{\alpha} L(\omega, b, \alpha)

求解SVM, 得到最简单的计算式

因为我们之前将原问题简化又简化了, 所以求解就变得很简单.

只要对\omega, b分别求偏导, 然后找到偏导等于0的时候, 这时候的极值就是最优解

\frac{\partial L }{\partial \omega} = 0 \Rightarrow \omega = \sum^{m}_{i=1}\alpha_iy_ix_i

\frac{\partial L }{\partial b} = 0 \Rightarrow b= \sum^{m}_{i=1}\alpha_iy_i = 0

然后带入拉格朗日函数的对偶形式里面:

\max_{\alpha} \min_{\omega, b} \frac{1}{2}\omega^T\omega+\sum_{i=1}^m \alpha_i(1-y_i(\omega^T x+b) ), \\ s.t.\ a_i \geq 0

就有

\min_{\alpha} \frac{1}{2}\sum_{i=1}^m\sum_{j=1}^{m} \alpha_i\alpha_jy_iy_jx_i^Tx_j - \sum_{i=1}^{m}\alpha_i, \\ s.t.\ \sum_{i=1}^{m}a_iy_i = 0, \alpha_i \geq 0

SVM的最朴素算法(线性可分支持向量机算法)

<统计学习方法>

P106 算法7.2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容

  • 本章涉及到的知识点清单:1、决策面方程2、函数间隔和几何间隔3、不等式约束条件4、SVM最优化模型的数学描述(凸二...
    PrivateEye_zzy阅读 13,231评论 3 10
  • 参考Jerrylead和july-支持向量机通俗导论 一、由逻辑回归,引申出SVM(线性可分的SVM) 1.1 逻...
    小碧小琳阅读 1,438评论 0 2
  • 【概述】 SVM训练分类器的方法是寻找到超平面,使正负样本在超平面的两侧(分类正确性即“分得开”),且样本到超平面...
    sealaes阅读 11,066评论 0 7
  • SVM(Support Vector Machine,支持向量机)是最经典的分类算法,本文主要整理(为了应付考试)...
    Xuang123阅读 3,933评论 1 1
  • 疏星淡月人行早, 晓风拂面晨光好。 车骑觉生寒, 鬓毛日日残。 流光何处去? 问遍天涯路。 烟水黯销魂。 浮生若梦尘。
    阿满_d6bf阅读 284评论 1 8