吴恩达机器学习-3-逻辑回归与正则化问题
Posted 尤尔小屋的猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了吴恩达机器学习-3-逻辑回归与正则化问题相关的知识,希望对你有一定的参考价值。
公众号:尤而小屋
作者:Peter
编辑:Peter
吴恩达机器学习-3-逻辑回归与正则化问题
第三周主要讲解的内容包含:
- 逻辑回归
- 代价函数
- 线性回归和逻辑回归的比较
- 正则化问题
逻辑回归
分类问题
假设预测的变量y
是离散的值,需要使用逻辑回归Logistic Regression,LR
的算法,实际上它是一种分类算法
二元分类问题
将因变量dependent variable
可能属于的两个类分别称为负向类negative class
和正向类positive class
,因变量y的取值只能在0
和1
之间,其中0表示负类,1表示正类
假说表示Hypothesis Representation
分类器的输出值在0
和1
之间,因此,希望找出一个满足某个性质的假设函数,这个性质是它的预测值要在0和1之间
引入一个新的模型:逻辑回归
,该模型的输出变量范围始终在0和1之间。 逻辑回归模型的假设是:
h
(
θ
)
=
g
(
θ
T
X
)
h(\\theta) = g(\\theta^TX)
h(θ)=g(θTX) 其中X
代表的是特征向量g
的逻辑函数,常用的S
型函数(上图的右边,sigmoid function
)公式为
g
(
z
)
=
1
1
+
e
−
z
g(z)= \\frac{1}{1+e^{-z}}
g(z)=1+e−z1 Python代码实现sigmod
激活函数:
import numpy as np
def sigmod(z):
return 1 / (1 + np.exp(-z))
h θ ( x ) = g ( z ) = 1 1 + e − θ T X h_\\theta(x)=g(z)= \\frac{1}{1+e^{{-\\theta^T}X}} hθ(x)=g(z)=1+e−θTX1
h θ ( x ) h_{\\theta}(x) hθ(x)作用是对于给定的输入变量,根据选择的参数计算输出变量=1的可能性,即: h θ ( x ) = P ( y = 1 ∣ x ; θ ) h_{\\theta}(x)=P(y=1|x;\\theta) hθ(x)=P(y=1∣x;θ)
例如:对于给定的x,通过已经确定的参数计算得出 h θ ( x ) = 0.7 h_{\\theta}(x)=0.7 hθ(x)=0.7,则表示有70%的几率y属于正类
决策边界decision boundary
解释逻辑回归
- 在逻辑回归中 h ≥ 0.5 h \\geq 0.5 h≥0.5预测 y = 1 y=1 y=1;反之y=0
- 在激活函数 g ( z ) g(z) g(z)中:
当 z ≥ 0 z \\geq 0 z≥0则 g ( z ) ≥ 0.5 g(z) \\geq 0.5 g(z)≥0.5
当 z < 0 z < 0 z<0则 g ( z ) < 0.5 g(z) < 0.5 g(z)<0.5
又因为 z = θ T x z={\\theta^{T}}x z=θTx,那么当 θ T x ≥ 0 {\\theta^T}x \\geq 0 θTx≥0的时候,则有 y = 1 y=1 y=1;反之 y = 0 y=0 y=0
又因为 z = θ T x z={\\theta^{T}}x z=θTx ,即: θ T x > = 0 {\\theta^{T}}x>=0 θTx>=0 时,预测 y = 1 y=1 y=1 ;反之: θ T x < 0 {\\theta^{T}}x<0 θTx<0 时,预测 y = 0 y=0 y=0
实例demo
在下图的中实例中,参数
θ
\\theta
θ满足[-3,1,1]
,当
−
3
+
x
1
+
x
2
≥
0
-3+x_1+x_2 \\geq0
−3+x1+x2≥0,即
x
1
+
x
2
≥
3
x_1+x_2\\geq3
x1+x2≥3时,模型预测y=1;说明此时:直线
x
1
+
x
2
=
3
x_1+x_2=3
x1+x2=3就是决策边界
复杂的模型边界问题
代价函数Cost Function
如何拟合LR模型的参数 θ \\theta θ
1. 线性模型中代价函数是模型误差的平方和 :
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\\theta)=\\frac{1}{2m}\\sum^m_{i=1}(h_{\\theta}(x^{(i)})-y^{(i)})^2 J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2
如果直接使用线性模型中的代价函数,即误差平方和,得到的代价函数是个**“非凸函数”**,但是实际上我们期望看的是凸函数(右边)
-
重新定义逻辑回归的代价函数
h θ ( x ) = g ( θ T X ) = 1 1 + e − θ T X h_\\theta(x)=g(\\theta^TX)= \\frac{1}{1+e^{-\\theta^TX}} hθ(x)=g(θTX)=1+e−θTX1
J ( θ ) = 1 m ∑ i = 1 m C o s t ( h θ ( x ( i ) ) , y ( i ) ) J(\\theta)=\\frac{1}{m}\\sum^m_{i=1}Cost(h_\\theta(x^{(i)}),y^{(i)}) J(θ)=m1i=1∑mCost(hθ(x(i)),y(i))
C o s t ( h θ ( x ) , y ) = { − log ( h θ ( x ) ) , y=1 − log ( 1 − h θ ( x ) ) , y=0 Cost(h_\\theta(x), y) = \\begin{cases} -\\log(h_\\theta(x)), & \\text{y=1} \\ -\\log(1-h_\\theta(x)), & \\text{y=0} \\ \\end{cases} Cost(hθ(x),y)=以上是关于吴恩达机器学习-3-逻辑回归与正则化问题的主要内容,如果未能解决你的问题,请参考以下文章