从零开始构建逻辑回归模型
逻辑回归模型是针对线性可分问题的一种易于实现而且性能优异的分类模型。我们将分别使用Numpy和TensorFlow实现逻辑回归模型训练和预测过程。 从零构建 首先,我们通过Numpy构建一个逻辑回归模型。 我们定义shape如下: \(X\) :(n,m) \(Y\) :(1,m) \(w\) :(n,1) \(b\) :(1) 其中 \(n\) 代表特征维数, \(m\) 代表样本个数。 对于逻辑回归二分类模型,其损失函数如下: \[ J(\theta)=-\frac{1}{m}\sum_{i=1}^N{[y_i\log{h_\theta(x_i)}+(1-y_i)\log{(1-h_\theta(x_i))}]} \] 对 \(\theta\) 求导得 \(\theta\) 的更新方式是: \[ \theta_j:= \theta_j-\alpha \frac{1}{m}\sum_{i=1}^m (h_\theta(x_i)-y_i)x_i^j \] 所以,在代码中, \(\theta\) 的更新方式为: dw = np.dot(X,(A-Y).T)/m 各个函数作用如下: sigmoid(x):激活函数实现 initialization(dim):零值初始化w以及b propagate(w,b,X,Y):前向传播得到梯度以及代价函数值 optimize(w,b,X,Y