二分类

逻辑回归是一个用于二分类(binary classification)的算法。
接下来我们说明一些在余下课程中,需要用到的一些符号。
image.pngimage.png
我们会定义一个矩阵用大写𝑋的表示,它由输 入向量𝑥 (1) 、𝑥 (2) 等组成,如下图放在矩阵的列中,所以现在我们把𝑥 (1) 作为第一列放在矩阵 中,𝑥 (2)作为第二列,𝑥 (𝑚)放到第𝑚列,然后我们就得到了训练集矩阵𝑋
image.png ——》image.png——》image.png
𝑋是一个规模为n𝑥乘以𝑚的矩阵,𝑦^表示预测值接近真实值的概率,输出𝑦^是给定训练样本 𝑥 条件下 𝑦 等于 1 的概率。
image.png

逻辑回归

我们用𝑤来表示逻辑回归的参数,这也是一个n𝑥维向量(因为𝑤实际上是特征权重,维度与特征向量相同),参数里面还有𝑏,这是一个实数(表示偏差)。所以给出输入𝑥以及参数𝑤和𝑏之后,我们怎样产生输出预测值𝑦^,一件你可以尝试却不可行的事是让𝑦^=𝑤 𝑥+𝑏。𝑦^应该在0-1之间,否则𝑦^可能为很大的证书,或是负数,所以通过添加sigmoid 函数来解决该问题,公式也由线性转变为非线性函数。
Sigmoid函数由下列公式定义:
image.png
其对x的导数可以用自身表示:
image.png
Sigmoid函数的图形如S曲线
image.png
由于这个函数的特性,可以使得这个函数很好的完成 这项工作,就是让机器学习参数𝑤以及𝑏这样才使得𝑦^成为对𝑦 = 1这一情况的概率的一个很好的估计。
Q:sigmoid 优点

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. def sigmoid(x):
  4. return 1.0/(1+np.exp(-x))
  5. sigmoid_inputs = np.arange(-10,10,0.1)
  6. sigmoid_outputs = sigmoid(sigmoid_inputs)
  7. print("Sigmoid Function Input :: {}".format(sigmoid_inputs))
  8. print("Sigmoid Function Output :: {}".format(sigmoid_outputs))
  9. plt.plot(sigmoid_inputs,sigmoid_outputs)
  10. plt.xlabel("Sigmoid Inputs")
  11. plt.ylabel("Sigmoid Outputs")
  12. plt.show()