线性回归与逻辑回归
2015-09-07 19:33
246 查看
线性回归 Linear Regression
Cost FunctionJ(θ)=12m∑i=1m(hθ(x(i))−y(i))
J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}\left ( h_\theta(x^{(i)})-y^{(i)} \right )
Hypothesis
hθ(x)=θTx
h_\theta(x)=\theta^Tx
梯度下降求解
为了最小化J(θ)J(\theta)
∂J(θ)∂θj=1m∑i=1m(hθ(x(i))−y(i))x(i)j
\frac{\partial J(\theta)}{\partial \theta_j}=\frac{1}{m}\sum_{i=1}^{m}\left( h_\theta(x^{(i)})-y^{(i)} \right)x_j^{(i)}
每一次迭代更新
θj:=θj−α1m∑i=1m(hθ(x(i))−y(i))x(i)j
\theta_j:=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^{m}\left( h_\theta(x^{(i)})-y^{(i)} \right)x_j^{(i)}
正规方程求解
最小二乘法
θ=(XTX)−1XTy⃗
\theta=\left(X^TX\right)^{-1}X^T\vec{y}
逻辑回归 Logistic Regression
Hypothesishθ(x)=g(θTx)
h_\theta(x)=g(\theta^Tx)
这里的gg是sigmoidsigmoid函数
g(z)=11+e−z
g(z)=\frac{1}{1+e^{-z}}
Cost Function
Cost(hθ(x(i)),y(i))={−log(hθ(x))−log(1−hθ(x)) if y=1 if y=0
Cost\left(h_\theta(x^{(i)}),y^{(i)}\right)
=\begin{cases}
-log\left(h_\theta(x)\right) & \text{ if } y=1 \\
-log\left(1-h_\theta(x)\right) & \text{ if } y=0
\end{cases}
J(θ)=1m∑i=1mCost(hθ(x(i)),y(i))=1m∑i=1m−y(i)log(hθ(x(i)))−(1−y(i))log(1−hθ(x(i)))
\begin{align*}
J(\theta)&=\frac{1}{m}\sum_{i=1}^{m}Cost\left(h_\theta(x^{(i)}),y^{(i)}\right) \\
&= \frac{1}{m}\sum_{i=1}^{m}-y^{(i)}log\left(h_\theta(x^{(i)})\right)-(1-y^{(i)})log\left(1-h_\theta(x^{(i)})\right)
\end{align*}
梯度下降求解
∂J(θ)∂θj=1m∑i=1m(hθ(x(i))−y(i))x(i)j
\frac{\partial J(\theta)}{\partial \theta_j}=\frac{1}{m}\sum_{i=1}^{m}\left( h_\theta(x^{(i)})-y^{(i)} \right)x_j^{(i)}
这个公式与线性回归的公式类似,区别是二者的hθ(x)h_\theta(x)不同
正则化
过拟合 模型过于复杂,波动大欠拟合 模型过于简单,不能很好的你和数据
当特征过多时,容易发生过拟合。这时候可以减少不必要的特征,也可以用正则化来降低特征的影响的数量级。
在J(θ)J(\theta)中引入惩罚项λ∑nj=1θ2j\lambda\sum_{j=1}^{n}\theta_j^2,又称为L2L2正则化项。
由于参数θ\theta越小,模型越简单,因此在正则化里,通过惩罚项缩小了所有的参数。
注意在实际中,正则化不包括常数项θ0\theta_0。
λ\lambda称为正则化参数,当λ\lambda过大时,不能很好的拟合训练集;当λ\lambda过小时,不能很好的缩小参数。
蒸发箱
对于L2L2正则化的线性回归,CostFunctionCost Function定义为
J(θ)=12m∑i=1m(hθ(x(i))−y(i))+λ2m∑j=1nθ2j
J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}\left ( h_\theta(x^{(i)})-y^{(i)} \right )+\frac{\lambda}{2m}\sum_{j=1}^{n}\theta_j^2
梯度下降求解
求偏导
∂J(θ)∂θ0∂J(θ)∂θj=1m∑i=1m(hθ(x(i))−y(i))x(i)j=(1m∑i=1m(hθ(x(i))−y(i))x(i)j)+λmθj for j=0 for j≥1
\begin{align*}
\frac{\partial J(\theta)}{\partial \theta_0} &=\frac{1}{m}\sum_{i=1}^{m}\left( h_\theta(x^{(i)})-y^{(i)} \right)x_j^{(i)}& \text{ for } j=0\\
\frac{\partial J(\theta)}{\partial \theta_j} &= \left(\frac{1}{m}\sum_{i=1}^{m}\left( h_\theta(x^{(i)})-y^{(i)} \right)x_j^{(i)}\right)+\frac{\lambda}{m}\theta_j& \text{ for } j\geq 1
\end{align*}
每一次迭代
θ0θj:=θ0−α1m∑i=1m(hθ(x(i))−y(i))x(i)j:=θj−α1m∑i=1m(hθ(x(i))−y(i))x(i)j−λmθj
\begin{align*}
\theta_0&:=\theta_0-\alpha\frac{1}{m}\sum_{i=1}^{m}\left( h_\theta(x^{(i)})-y^{(i)} \right)x_j^{(i)} \\
\theta_j&:=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^{m}\left( h_\theta(x^{(i)})-y^{(i)} \right)x_j^{(i)} - \frac{\lambda}{m}\theta_j
\end{align*}
正规方程求解
θ=⎛⎝⎜⎜⎜⎜⎜⎜⎜XTX+λ⎡⎣⎢⎢⎢⎢⎢⎢⎢011⋱1⎤⎦⎥⎥⎥⎥⎥⎥⎥⎞⎠⎟⎟⎟⎟⎟⎟⎟−1XTy
\theta=\left(X^TX+\lambda\begin{bmatrix}
0 & & & & \\
& 1 & & & \\
& & 1 & & \\
& & & \ddots & \\
& & & &1
\end{bmatrix} \right )^{-1}X^Ty
如果忽略θ0\theta_0的话,公式可以看作
θ=(XTX+λI)−1XTy
\theta=(X^TX+\lambda I)^{-1}X^Ty
正则化项
L2L2正则化的线性回归又称为岭回归
除此之外还有
正则化项为λ∑nj=1∣∣θj∣∣\lambda\sum_{j=1}^{n}\left | \theta_j\right |的L1L1正则化
L1L1正则化的线性回归又称为Lasso回归
L1L1正则化有稀疏性,会趋向于产生少量的特征,而其他的特征都是0。L2L2正则化会选择更多的特征,这些特征都会接近于0。因此Lasso回归可以用来选择特征。
逻辑回归的正则化与线性回归类似。
线性回归与逻辑回归
线性回归以高斯分布为误差分析模型,而逻辑回归是伯努利分布。线性回归采用的是平方损失函数,而逻辑回归采用的是对数损失函数。
相关文章推荐
- 如何实现一个malloc
- 宣告主权 我为自己代言!!!!!!!!
- Android全部权限
- 【NOI2015】品酒大会
- 冲突域、广播域(区别、知识要点)
- [RxJS] map vs flatMap
- 1117 鸡蛋队列【模拟队列】
- N皇后问题的一般解法--回溯法
- 第七周第一天
- PopupWindow的使用
- opencv日常学习之approxPolyDP函数和boundingRect函数说明
- poj3280 Cheapest Palindrome
- 禁止Html5在手机上屏幕页面缩放
- Nginx的基本配置
- Chrome 常用命令
- redis常用命令
- build.gradle 各种错误解决总结
- 构建根文件系统
- 解决Android Studio启动速度慢的问题。避免每次启动Android Studio都要fetching Android sdk compoment information。
- tmux简单使用指南