几个关键词:逻辑回归、极大似然估计、激活函数
参考书籍:西瓜书P54,《统计学习方法》P77
回归和分类的区别
回归是一种连续变量的预测,比如函数拟合,股票线等,人的年龄。分类的特征却不是连续变化的,比如西瓜的颜色是不能连续量化的线性回归
- 举个例子,如果我们现在有两个未知数x1,x2,即特征值;一个输出变量y,即分类结果;我们需要求解一个方程
w1x1+w2x2+b = y
,来拟合这种曲线来预测之后的曲线。一般而言我们是直接去方程组的,但是,这里数据量很大,而且我们的方程是用来预测的,不可能直接求出精确的值,这样会过拟合。 - 因而,我们考虑一种近似求解,通过训练来改变w的值,来拟合直线。这里我们可以把这个函数考虑为一个感知机。误差为
error = y - (w1x1+w2x2+b)
,对其对其进行w求导得出梯度值,通过w = w + grad(error,w)
来更新权值 - 但是对于二分类而言,x1、x2与y的关系并不是直接就能通过这种直线进行拟合的,所以需要使用激活函数来将之间变为曲线拟合,这和感知机中激活函数的原理是一样的,另外含有支持向量机中的核函数。
- 所以我们设
z = w1x1+w2x2+b
,h(z) = 1/(1+exp(-z)
;将输出结果归一化到0~1之间,同时拟合曲线。
- 以下三种情况,分别是梯度下降和随机梯度,以及学习率变化的随机梯度
- 梯度导数推导:https://my.oschina.net/tantexian/blog/1359191,这里使用的是对数损失函数
代码:logRegres.py
1 | import math,random |
测试代码:logTest.py
1 | # 出现一些微小的错误,没事迷茫,应该是几个函数库的不同所引起的,比如random函数,math、numpy中的都有, |