在之前,我们讨论了机器学习中的线性回归模型,但是在机器学习中,除了这种根据输入值给出预测结果的问题,我们还会遇到给定两组甚至是多组已经分好类的数据,让我们找出一个关系来划分他们,这就是分类问题。
举个例子,有肿瘤是否为良性和肿瘤的大小这两类数据,我们可以做出一幅散点图,同时我们希望能在这幅散点图中找到一种方法,来根据肿瘤的大小判断肿瘤是否为良性。
我们先从最简单的情况入手,如下图
给定的两种数据分别用红色的叉和黄色的圈表示,对于上图中的线性可分的两组数据,显然我们可以用如上图中蓝色的直线对两类数据进行划分。
现在给定两组线性可分的数据对于计算机,我们就希望找到一条能够尽可能区分两组数据的直线,为了作出区分,我们将分别赋予两组数据-1和1的特征记作 y y y,由此,我们假设赋予的这个特征跟输入的变量有如下关系
h ω , b ( x ) = s i g n ( ω x + b ) h_{\omega,b}(x)=sign(\omega x+b) hω,b(x)=sign(ωx+b)上式中的 ω \omega ω和 x x x都是向量
那么我们如何衡量这条直线的好坏呢?一个显然的评判条件就是误分类点的个数,即找到一个点,发现它满足
y ( i ) h ω , b ( x ( i ) ) ≤ 0 y^{(i)}h_{\omega,b}(x^{(i)})\leq0 y(i)hω,b(x(i))≤0这是一个很好的评判标准,但是由于误分类点的个数关于 ω \omega ω和 b b b的函数是一个不连续且在连续处导数为0的函数,不便于优化以找到一个更优的 ω \omega ω和 b b b,所以我们就用了误分类点到当前直线的距离之和来作为这条直线的代价函数
J ( ω , b ) = − 1 ∣ ∣ ω ∣ ∣ ∑ i = 1 m y ( i ) ( ω x ( i ) + b ) J(\omega,b)=\frac{-1}{\mid\mid\omega\mid\mid}\sum_{i=1}^my^{(i)}(\omega x^{(i)}+b) J(ω,b)=∣∣ω∣∣−1i=1∑my(i)(ωx(i)+b) m m m为误分类点的个数,但是式中的 ∣ ∣ ω ∣ ∣ \mid\mid\omega\mid\mid ∣∣ω∣∣的存在会导致计算的复杂化,为了简单,我们取
J ( ω , b ) = − ∑ i = 1 m y ( i ) ( ω x ( i ) + b ) J(\omega,b)=-\sum_{i=1}^my^{(i)}(\omega x^{(i)}+b) J(ω,b)=−i=1∑