您的位置:首页 > 大数据 > 人工智能

关于Logistics回归用于分类的解释

2016-06-17 01:59 369 查看
logistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?

说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。

这条直线是怎么得出的呢?

首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y

我们可以得出y=w0*x0+w1*x1...wn*xn

然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法

根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。



这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面

假设dataMatIn=array([[3,3],[4,4]])

那么dataMatIn的梯度就是dataMatIn.transpose()   => array([[3,4],[3,4]])

然后就完成了。

继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。

然后我们的新的w=w+a*array(x0,x1...xn)*error

一般设置循环多少次然后停止或者当error小于多少值得时候算法停止

最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  人工智能