yukyinbaby 2019-06-27
(1.1);
逻辑斯蒂回归就是想办法将线性回归模型用于分类(《机器学习》中称为对数几率回归)。线性回归模型产生的预测值可能是所有实值,不利于分类;为了用于二分类任务,希望将预测值z转换为0/1值;阶跃函数:
(1.2);
可以将z转换为0/1值,但是阶跃函数在x=0处不连续,所以用逻辑斯谛函数(logisitic function,即Sigmoid函数)
(1.3);
近似代替阶跃函数,将线性模型的预测值转换为接近0或1的值(Sigmoid函数的输出值在z=0处变化很陡,可以认为大部分值都是接近0或1)。
对公式(1.3)取对数,有
(2.1);
将y视为样本x作为正例的可能性,1-y为反例。将y视为后验概率估计,则二项逻辑斯蒂回归模型如下:
;
令:
;
由伯努利分布的概率公式:
(2.6);
得似然函数和对数似然函数:
(2.7);
(2.8);
其实只有这一节是我想写的
《机器学习实战》第五章程序清单5-1下面代码的由来:
weights = weights + alpha * dataMatrix.transpose()* error
书中使用的是梯度上升法
(3.1)
,仅对该行代码做推导,对式(2.8)求关于w的偏导数,得:
(3.2)
所以,
是代码中列向量error的元素,xi属于代码中矩阵dataMatrix。
《机器学习》周志华
《统计学习方法》李航
《机器学习实战》
theta = np.zeros #theta = array,构造全为零的行向量。grad[0,j] = np.sum/len #∑term / m. return value > threshol