Logistic 回归的步骤可以划为以下几步:
1. 准备数据:标准化数据,如图片可以reshape成(n_w*n_h*3,1),不同维度的数据进行归一化等等;
2. 做好服务模型准备,例如权重的初试化,包括随机初始化(np.random.rand)或零值初始化(np.zeros)等方法,还有sigmoid函数;
def sigmoid(z):
"""
Compute the sigmoid of z
Arguments:
z -- A scalar or numpy array of any size.
Return:
s -- sigmoid(z)
"""
### START CODE HERE ### (≈ 1 line of code)
s = 1/(1+np.exp(-z))
### END CODE HERE ###
return s
def initialize_with_zeros(dim):
"""
This function creates a vector of zeros of shape (dim, 1) for w and initializes b to 0.
Argument:
dim -- size of the w vector we want (or number of parameters in this case)
Returns:
w -- initialized vector of shape (dim, 1)
b -- initialized scalar (corresponds to the bias)
"""
### START CODE HERE ### (≈ 1 line of code)
w = np.zeros((dim,1),dtype=np.float64)
# w = np.random.randn((dim,1))
b = 0
### END CODE HERE ###
assert(w.shape == (dim, 1))
assert(isinstance(b, float) or isinstance(b, int))
return w, b
3. 模型计算:
a.利用损失函数前向计算损失
b.后向计算得到参数更新梯度,通过字典保存
def propagate(w, b, X, Y):
"""
Implement the cost function and its gradient for