机器学习-笔记7

第七周呢主要是对SVM的介绍ide

ng首先从之前讲过的logistic regression入手函数

将logistic regression的两个log(h(x))和log(1-h(x))改变成以下图的两个cost函数spa

 

这样对于y=0,SVM将试图把调整到<=-1视频

堆土y=1呢,SVM将试图把调整到>=1blog

最后整理获得的SVM的假设是:教程

除了cost处和logistic regression有一点差距以外,还有一个参数C,至关于logistic regression里面的1/λ,做用相差不大get

接下来说了margin的概念和为何有人称SVM称为large margin algorithm it

其实一句话来讲就是分类后全部点到分类的超平面的距离之和最短io

放在二维坐标里来讲就是用一条直线分类后,两部分重最靠近该boundary的点之间的距离最长class

接下来是核函数的说明

andrew ng讲得十分巧妙,至少比我在网上找的一个SVM教程讲的清楚多了

仍是在平面来讲, 

要肯定这个boundary,可能须要一个很复杂的polynomial,通常是很难肯定到底须要多少次方的polynomial,而另外一个很好的技术就是肯定一些不共线的点(landmark),每一个点视为一个参数,这样也能够表示平面上的全部点,并且假设中的多项式只有选取的点的个数那么多。

为了肯定其余点到这个点的距离用来衡量参数好坏,须要有一个函数来给出一个点和另外一个点的距离,这就是核函数

视频给了一个比较经常使用的核函数,高斯核函数:

 

这个核函数的图像大概是以下(最高处是选择的l点),函数值(0,1],并且较好地区分了点的距离,除此以外还有其余许多核函数,应视具体状况选择使用

 

如何选取点呢,那就是选择全部的example,简单而粗暴

注意核函数中有一个参数 σ,随着 σ的增大,函数图像会愈来愈尖细

对于large  σ:higher bias,lower variance

      small  σ:lower bias,larger variance

事实上这周的课程除了将了一下SVM的原理以外,并无要求实现一个SVM

而是告诉咱们去使用一些软件包,比较好的有libliner和libsvm,练习中也是使用的libsvm,若是有时间能够去看看libsvm的源代码