Logistic回归
前边已经写到了,线性回归以及解决线性回归过拟合用到的岭回归、lasso回归和弹性网络,今天继续学习logistic回归。什么是logistic回归呢?请带着问题往下看。
线性回归和logistic回归,都带着“回归”,那么到底什么区别呢?有联系吗?
Logistic回归和线性回归最大的区别在于,Y的数据类型。线性回归分析的因变量Y属于定量数据,而logistic回归分析的因变量属于分类数据。
logistic回归是处理二分类问题的,所以输出的标记y={0,1},是一种概率,即结果代表两种结果成功或者失败,愿意和不愿意的概率。
说说,Logistic为啥子用 sigmoid函数,因为结果是(0,1)之间的一种概率值,sigmoid函数具备了这个属性,定义域可以是(-无穷,正无穷)而值域在(0,1)之间。
之前的线性回归模型是这样的:
写成向量如下:
()
这样我们将线性回归的模型套在sigmoid函数上变成了logistic回归线性模型:
将上面的式子变形,得到了下面的等式:
观察上式可以得出:若将y视为样本x作为正例的可能性,则1-y就是返利的可能性。二者的比值便称为“几率”,反映了x作为正样本的相对可能性,这也是logistic回归称为对数几率回归的原因。logistic回归分类模型的预测函数实在用线性回归模型的预测值的结果去逼近真实标记的对数几率,对着也便实现了将线性回归的预测值和分类任务的真实标记联系在一起。
Logistic回归求解
上面我们得到了,logistic回归的预测函数:
这里我们将式子中的y视为类后验概率估计p(y=1|x),则上式可以重写为:
求解上面的式子得到:
把上面两个式子合并后,用随机梯度求解(把w换成了seta)得到如下结果:
至此我们已经得出了w的迭代公式,按说是可以在引入数据的情况下进行w的计算,进而进行分类!但是数据基本都是以矩阵和向量的形式引入的,所以我们需要对上面w的迭代时进行向量化,以方便实例应用中的使用。
seta 迭代公式向量化
首先对于引入的数据集x来说,均是以矩阵的形式引入的,如下:
其中m数据的个数,n是数据的维度,也就是数据特征的数量!
再者便是标签y也是以向量的形式引入的:
参数seta向量化为:
定义:M=setaT* x,得到如下:
定义上面的sigmoid函数:
所以定义估计的误差损失为:
至此:我们得到步骤二中参数迭代时向量化的式子为:
参考:
https://zhuanlan.zhihu.com/p/44583106