文章目录
Logistic回归
分类概念
分类要找一个 functionfunction 函数,输入对象 xx 特征, 输出是该对象属于 nn 个类别中是属于哪一个。
概率和分类的关系
下面的 Class1 和 Class2 分别表示两个盒子
问题: 从两个盒子中抽一个球,抽到的是盒子1中蓝色球的概率是多少?
上述问题相当于从两个类别中抽一个 x , 抽到的是类别 1 中 x 的概率是多少。可以同等转换为:随机给出一个 x,那么它最终是属于哪一个类别?
注意:在李宏毅老师的机器学习中,我们一开始假设的 p ( c 1 ) = 2 3 , p ( c 2 ) = 1 3 p(c1) = \dfrac{2}{3},p(c2) = \dfrac{1}{3} p(c1)=32,p(c2)=31,不要被盒子中球的数量所影响, p ( x ∣ c 1 ) p(x|c1) p(x∣c1)以及 p ( x ∣ c 2 ) p(x|c2) p(x∣c2)同样也是假设的
当我们知道了红色框的值的时候,当给出一个x的时候,便可以计算出他属于哪一个类型,即可以计算出 p ( c 1 ∣ x ) p(c1|x) p(c1∣x)和 p ( c 2 ∣ x ) p(c2|x) p(c2∣x) ,两个概率中哪一个大,就说明 x 属于哪一个类别。从训练集中估测红色方框中的值,这一套想法叫做生成模型。因为有了这个模型,就可以生成一个 x,可以计算某个 x 出现的概率,知道了 x 的分布,就可以自己产生 x。生成模型在数据集特别少,以及数据集噪音严重的情况下可以起到增加训练集的作用。
后验概率
上述图片中的 P(C1|x) 称为后验概率,从上述的推导我们可以知道 Sigmoid Function如何产生的。在上面的式子中,我们使用 高斯分布 进行模型假设,在下面我们将依据高斯模型中的 μ \mu μ以及 ∑ \sum ∑ 来求解 z 的具体表示,在这里我们直接给出 z的最终形式(对推导过程感兴趣的可以去看李宏毅老师的视频,视频中有详细的推导过程):
依据上述的公式,我们最后可以得知如下公式:
p ( c 1 ∣ x ) = σ ( w ∗ x + b ) p(c1|x) = \sigma\left(w * x + b\right) p(c1∣x)=σ(w∗x+b)
上述的式子也可以看出,当共用协方差矩阵 ∑ \sum ∑ 的时候为什么分界线是线性的了。
Step1 逻辑回归的函数集
将函数可视化:
上述函数集的分类问题叫做 Logistic Regression(逻辑回归),将逻辑回归与线性回归先进行简单的对比:
Step2 定义损失函数
由前面的推导我们可以得知 P(c1|x) 是 x 属于 c1 类别的概率,那么当我们有了一个训练集之后(上图所示),我们知道了对应的 x 属于 哪一个类别,当给定了一组 w 和 b 之后,我们便可以利用 P(c1|x) 来得出由公式计算出的每一个 x 属于 c1 的概率,以及 x 属于 c2 的概率(1-P(c1|x)即为c2的概率),最后我们将公式计算出来的概率进行 相乘,也就是图中的 L(w,b)。我们最终希望 L(w,b) 越大越好,因为越大说明公式计算出的类别分类越正确。
对于使得 L(w,b) 最大的 w 和 b ,记做 w* 和 b*,即:
将训练集数字化,并对原本的 L(w,b) 做一步转化,使其更容易计算:
在上述的步骤中,我们做了这样的转化操作: