app开发工具中文版,怎样优化网站关键词,电子商务行业发展现状,甘肃省兰州市建设厅网站http://ihoge.cn/2018/LR.html
逻辑回归模型
逻辑回归也被称为对数几率回归#xff0c;算法名虽然叫做逻辑回归#xff0c;但是该算法是分类算法#xff0c;个人认为这是因为逻辑回归用了和回归类似的方法来解决了分类问题。
逻辑回归模型是一种分类模型#xff0c;用条…http://ihoge.cn/2018/LR.html
逻辑回归模型
逻辑回归也被称为对数几率回归算法名虽然叫做逻辑回归但是该算法是分类算法个人认为这是因为逻辑回归用了和回归类似的方法来解决了分类问题。
逻辑回归模型是一种分类模型用条件概率分布的形式表示 P(Y|X)P(Y|X)P(Y|X)这里随机变量 X 取值为 n 维实数向量例如x(x(1),x(2),...,x(n))x(x(1),x(2),...,x(n))x=(x^{(1)},x^{(2)},...,x^{(n)})Y 取值为 0 或 1。即
P(Y1|x)exp(w⋅xb)1exp(w⋅xb)P(Y1|x)exp(w⋅xb)1exp(w⋅xb)
P\left( Y=1 \right|x)=\frac{\exp \left( w\cdot x+b \right)}{1+\exp \left( w\cdot x+b \right)}P(Y0|0)11exp(w⋅xb)P(Y0|0)11exp(w⋅xb)
P\left( Y=0 \right|0)=\frac{1}{1+\exp \left( w\cdot x+b \right)}或 ϕ(x)11e−wTx−bϕ(x)11e−wTx−b
\phi \left( x \right)=\frac{1}{1+e^{-w ^{T}x-b}}假设有一个二分类问题输出为y∈{0,1}y∈{0,1}y\in \left\{ 0,1 \right\}二线性回归模型zwTxbzwTxbz=w^Tx+b是个实数值我们希望有一个理想的阶跃函数来帮我什么实现z值到0/1值的转化于是找到了Sigmoid函数来代替
g(z)11e−zg(z)11e−z
g\left( z \right)=\frac{1}{1+e^{-z}} 有了 Sigmoid 函数之后由于其值取值范围在[0,1]。就可以将其视为类 1 的后验概率估计 p(y1|X)p(y1|X)p(y=1|X)。说白了就是如果有了一个测试点 x那么就可以用Sigmoid函数算出来的结果当作该点 x 属于类别 1 的概率大小。
于是非常自然地我们把 Sigmoid 函数计算得到的值大于等于0.5的归为类别1小于0.5的归为类别0
逻辑函数的损失函数
接下来要做的就是根据给定的训练集把参数 w 给求出来了。要找参数 w首先就得把代价函数Cost Function给定义出来也就是目标函数。
我们第一个想到的自然是模仿线性回归的做法利用误差平方和来当代价函数:
J(θ)12m∑i0m(ϕ(xi)−yi)2J(θ)12m∑i0m(ϕ(xi)−yi)2
J\left( \theta \right)\; =\; \frac{1}{2m}\sum_{i=0}^{m}{\left( \phi \left( x^{i} \right)-y^{i} \right)^{2}} 这时将预测函数g(z(i))11e−x(i)g(z(i))11e−x(i)g\left( z^{\left( i \right)} \right)=\frac{1}{1+e^{-x^{\left( i \right)}}}代入损失函数的话会发现这是一个非凸函数这意味着代价函数有着许多的局部最小值这不利于我们求解那么我们不妨来换一个思路解决这个问题。前面我们提到了 ϕ(z) 可以视为类1的后验估计所以我们有 其中 p(y1|x;w)p(y1|x;w)p(y=1|x;w) 表示给定 w那么 x 点 y1 的概率大小。于是上面两式可以写成一般形式
注以上的过程说明最大似然估计与误差平方和等价这就是为什么逻辑回归的损失函数可以用最大似然函数进行估计的原因。
接下来我们就要用极大似然估计来根据给定的训练集估计出参数 w 为了简化运算我们对上面这个等式的两边都取一个对数 我们现在要求的是使得 l(w) 最大的 w。没错我们的代价函数出现了我们在 l(w) 前面加个负号不就变成就最小了吗不就变成我们代价函数了吗 为了更好地理解这个代价函数我们不妨拿一个例子的来看看 也就是说 下面是函数图 从图中不难看出如果样本的值是1的话估计值 ϕ(z) 越接近1付出的代价就越小反之越大同理如果样本的值是0的话估计值 ϕ(z) 越接近0付出的代价就越小反之越大。
逻辑回归的模型求解
在开始梯度下降之前要这里插一句Sigmoid function 有一个很好的性质就是
ϕ′(z)ϕ(z)(1−ϕ(z))ϕ′(z)ϕ(z)(1−ϕ(z))
\phi '\left( z \right)=\phi \left( z \right)\left( 1-\phi \left( z \right) \right) 这个后续会用到。还有我们要明确一点梯度的负方向就是代价函数下降最快的方向这里来解释下。借助泰勒公式展开有 其中f′(x) 和 δ 为向量那么这两者的内积就等于 当 θπ 时也就是 δ 在 f′(x) 的负方向上时取得最小值也就是下降的最快的方向了。 于是有 即 其中wjwjw_j 表示第 j 个特征的权重η 为学习率用来控制步长。 重点来了: 所以在使用梯度下降法更新权重时只要根据下式即可 此式与线性回归时更新权重用的式子极为相似也许这也是逻辑回归要在后面加上回归两个字的原因吧。当然在样本量极大的时候每次更新权重会非常耗费时间这时可以采用随机梯度下降法这时每次迭代时需要将样本重新打乱然后用下式不断更新权重 也就是去掉了求和而是针对每个样本点都进行更新。