1.概念与机理
(1)逻辑回归模型判别式
逻辑回归的模型判别式为:ℎ𝑤(𝑥)=𝑔(𝑤0𝑥0+𝑤1𝑥1+⋯+𝑤𝑑𝑥𝑑)=𝑔(∑𝐷𝑖=0𝑤𝑑𝑥𝑑)=𝑔(𝑥∗𝑤)hw(x)=g(w0x0+w1x1+⋯+wdxd)=g(∑i=0Dwdxd)=g(x∗w)
其中:
- 𝑥0,𝑥1,…,𝑥𝑑x0,x1,…,xd为特征,𝐷D为特征的总数
- 𝑤0,𝑤1,…,𝑤𝑑w0,w1,…,wd为权重参数
- ℎ𝑤(𝑥)hw(x)代表判别式,用于根据传入的特征预测输出结果
- 𝑥0x0称为偏置项(intercept term/bias term),一般设置为1即可
- 𝑔g称为sigmoid激活函数,其定义为:𝑔(𝑧)=11+𝑒−𝑧g(z)=11+e−z,该函数图像如下:
-
- 可以看到,当𝑧=0z=0时,𝑔(𝑧)g(z)的值为0.5。一般情况下,低于0.5的𝑔(𝑧)g(z)可以认为预测为false,高于0.5的预测为true
- 𝑔g的结果可视为该样本属于某个分类的概率
- 激活函数相当于起了这样的作用:将一个连续的数值量,基于设定的阈值转变成离散的分类结果
- 逻辑回归是典型的二分类模型
(2)模型训练原理
- 根据给定的带有𝑁N个样本的训练集,每个样本包括特征𝑥(𝑖)x(i)和分类标签𝑦(𝑖)y(i)。其中,(𝑖)=1,2,…,𝐷(i)=1,2,…,D,𝑥(𝑖)x(i)表示第𝑖i个样本的特征,𝑦(𝑖)y(i)表示第𝑖i个样本的分类(典型情况下是2个分类,标签值为1和0)
- 将每个样本的特征分别代入ℎ𝑤(𝑥)hw(x),计算出预测其属于某一个分类的概率值:𝑦(𝑖)𝑝𝑟𝑒𝑑=ℎ𝑤(𝑥(𝑖))ypred(i)=hw(x(i))
- 计算单个样本的预测结果(概率)与实际分类结果的误差:𝛿(𝑖)=−𝑦(𝑖)𝑙𝑜𝑔(ℎ𝑤(𝑥(𝑖)))−(1−𝑦(𝑖))𝑙𝑜𝑔(1−ℎ𝑤(𝑥(𝑖)))δ(i)=−y(i)log(hw(x(i)))−(1−y(i))log(1−hw(x(i)))
- 该误差又称为二元交叉熵(Binary Crossentropy)
- 所有训练样本的交叉熵取平均值,作为损失函数(Loss Function):𝐽(𝑤)=1𝑚∑𝑚𝑖=1[−𝑦(𝑖)𝑙𝑜𝑔(ℎ𝑤(𝑥(𝑖)))−(1−𝑦(𝑖))𝑙𝑜𝑔(1−ℎ𝑤(𝑥(𝑖)))]J(w)=1m∑i=1m[−y(i)log(hw(x(i)))−(1−y(i))log(1−hw(x(i)))]
- 通过数值计算方法(例如梯度下降算法)来求解𝑤w,使得损失值最小。而此时求出的𝑤w即为最优的权重参数
- 一旦最优权重参数𝑤w确定,既可以代入到ℎ𝑤hw中,对新的特征进行预测(其属于某个分类的概率)
(3)决策边界线
决策边界线上所有的点,其预测出来的𝑦y值(ℎ𝑤(𝑥)hw(x))正好为0.5,即:
11+𝑒−𝑧=0.5=>𝑧=𝑥∗𝑤=011+e−z=0.5=>z=x∗w=0
当𝐷=2D=2(即包含2个特征)时有:𝑤0+𝑤1𝑥1+𝑤2𝑥2=0w0+w1x1+w2x2=0 ,该边界线是一条直线
(4)评价模型的性能指标
- 二分类的样本预测结果和实际结果标记 查看下列预测和实际结果统计表:
-
- Actual Class表示数据集中实际的结果;Predicted Class则表示通过Hypothesis预测的结果
- True:表示实际结果与预测结果一致(预测正确);False:表示实际结果和预测结果不一致(预测错误)
- Positive:表示预测结果为1;Negative表示预测结果为0
- 上述各中情况将分别简写为:TP, FP, TN, FN。即,针对一条测试数据:
- TP:模型预测结果为P(Positive, 1),而且预测正确(该测试数据实际结果也为Positive/1)
- FP:模型预测结果为P(Positive, 1),但是预测错误(该测试数据实际结果应为Negtive/0)
- TN:模型预测结果为N(Negtive, 0),而且预测正确(该测试数据实际结果也为Negtive/0)
- FN:模型预测结果为N(Negtive, 0),但是预测错误(该测试数据实际结果应为Postive/1)\
-
指标计算
- 正确率:𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦=#𝑇𝑃+#𝑇𝑁#𝑇𝑃+#𝐹𝑃+#𝑇𝑁+#𝐹𝑁Accuracy=#TP+#TN#TP+#FP+#TN+#FN
- #TP表示所有样本中,TP样本的数量。其它类似
- 体现了:预测正确的样本数占总样本数的比重
- 精度:𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛=#𝑇𝑃#𝑇𝑃+#𝐹𝑃Precision=#TP#TP+#FP
- 体现了:对于所有预测为1的样本中,实际真正为1的样本所占的比例。它反映“误报”程度:精度越高,误报越小
- 查全率:𝑅𝑒𝑐𝑎𝑙𝑙=#𝑇𝑃#𝑇𝑃+#𝐹𝑁Recall=#TP#TP+#FN
- 体现了:对于所有实际为1的样本中,预测也为1的样本所占的比例。它反映“漏报”程度:查全率越高,漏报越少
- 𝐹1𝑆𝑐𝑜𝑟𝑒=2𝑃𝑅𝑃+𝑅F1Score=2PRP+R
- 其中,P为Precision, R为Recall
- 在针对Validation Data进行对比时,应选择F1 Score最大的那个判别式来作为最优解
- 正确率:𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦=#𝑇𝑃+#𝑇𝑁#𝑇𝑃+#𝐹𝑃+#𝑇𝑁+#𝐹𝑁Accuracy=#TP+#TN#TP+#FP+#TN+#FN
-
在Precision和Recall中取平衡
假设某Logistic Regression算法,其判别式输出:0≤ℎ𝑤(𝑥)≤10≤hw(x)≤1。设计某个阈值𝐾K,使得当ℎ𝑤(𝑥)≥𝐾hw(x)≥K时,预测𝑦=1y=1;当ℎ𝜃(𝑥)<𝐾hθ(x)<K时,预测𝑦=0y=0- 通常,我们设计K为0.5。也就是说,当可能性超过0.5时就做出Positive的预测结果
- 如果设置K=0.7,意味着预测更加保守,只有高可信度才会被预测为1。 因此误报可能性降低,Precision提升;漏报可能性增加,Recall降低。
- 如果设置K=0.3,意味着预测趋于大胆,低可信度也会被预测为1。因此误报可能性增加,Precision降低;漏报可能性减少,Recall上升。
- 大致可以得出结论:Precisioin和Recall是有矛盾的,它们很难同时都达到最高。因此需要取折中(F1 Score)