线性分类器——梯度下降法

前言

接着前面一篇,线性分类器——点集样本分类,我们继续往下说说。

之前我们从简单的开始,先给出一条直线,然后依次给出一些点,每给一个点,就按照规则对点进行分类,现在我们往前进一步,给定一群数据点,用直线把他们分开!

实施步骤:

1、一样的,首先来看看效果图:先用鼠标左右键给出数据集
线性分类器——梯度下降法
点击左侧学习按钮,自动用直线将其分开。这里采用梯度下降法,效果如图:
线性分类器——梯度下降法
这就是我们要实现的效果,由于初始值用的是随机生成的数据,所以同样的数据集,每次执行的结果会不一样。

2、界面的设计和实现就不多说,看之前的博文,我们这里讲讲干货,什么是梯度下降法:
参考一下博文:
[机器学习] ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)
直观理解 梯度(gradient)
这两篇讲的挺好了,自己可以借鉴帮助理解。下面这个也有涉猎,自己看需求吧
LM算法——列文伯格-马夸尔特算法(最速下降法,牛顿法,高斯牛顿法)(完美解释负梯度方向)
看看我这里的,
线性分类器——梯度下降法
这里做了基本讲解,再来看看几何解释:
线性分类器——梯度下降法

这个过程的理解,要深刻理解,请自行动手编程,理解其中的含义。

3、看看其中涉及到的推导
线性分类器——梯度下降法
详细的可以对对照我后面附带的程序一块研究。