• 总结《精通数据科学》机器学习思想,常见误区,二元分类问题


    1. 看待机器学习问题的两个角度

    2.假设检验的思路

    3.模型陷阱与模型幻觉

    4.二元分类的原理

    5.ROC与AUC曲线 

    1. 看待机器学习问题的两个角度

    在看待一个数据问题时,我们需要从两个角度去看待问题,一是从机器学习角度去看待问题,另一个就是从概率的角度看待问题,这样我觉得可以解释很多初学者在学习机器学习是会感到混乱的地方。

    从机器学习的角度来看,主要有以下步骤:

      1.确定场景类型。也就是说判断我们的输入输出。通常输入便是我们的实例,输出是我们的label。

      2. 定义损失函数。也就是我们说的目标函数[1],我们看待一个模型,我们一定要有一个评价指标,这个评价指标便是我们的损失函数,我们可以通过损失函数让我们的模型认识到什么是正确的,什么是错误的。

      3.提取特征。这也是非常重要的一步,我们知道,如果我们的数据量非常多,维数爆炸,便会带来计算量过大,扰动太多,编程难度过大,最终模型性能不佳等问题,因此,进行数据预处理--提取特征便是解决这一问题的关键。通过提取特征,可以做到优化数据结构,减小数据量,提高模型性能。

      4. 确定模型的形式,同时估计参数。要求我们先预估这个问题的大致模型,利用损失函数最小化确定我们的模型的各个参数。

      5. 评估模型效果,我们生成模型后我们需要通过测试集来判断我们的模型的效果,才能检验我们的模型是否为一个好的模型。

    从统计学的角度看待问题,则和机器学习的角度不同。

      1. 假设条件概率。如一个线性回归问题,$y=ax_i+b+sigma$ 我们知道 $a, b $是模型的参数,$sigma$ 是噪声项,我们知道$x$ 是一个确定的量,那么$y$就和 $sigma$是一个随机变量,它服从期望为$ax+b$,方差为$sigma$的正态分布。

      2. 我们在假设其为正态分布后,我们便要估计参数,通常我们使用的极大似然估计法。

      3. 推导参数分布。我们在估计出参数后,这些参数其实也是随机变量,因此我们需要关心这些随机变量的概率分布,即计算随机变量的均值和方差也是非常重要的,这样可以让我们明白我们得到的参数是否合理,如果方差过大,说明我们得到的参数可能不太准确,只适合当前数据集,不具有泛化能力。

      4. 假设检验和区间估计。这一步就是我们大家熟知的P值,置信区间,是否接受原假设的问题。这一步非常重要,因为这可以帮助我们更好的理解数据的参数含义。例如在线性模型中,参数b是否存在,或者模型中的b是由搭建不准确而导致的错误结论。

    从以上两种思路我们可以看出,最重要的参数估计无论是哪种思想,要么从损失函数最小化,要么从概率最大化来(其实这也是贝叶斯的思想,先验与后验的哲学思想)。                                   

    2. 假设检验的思路

     这里的统计方法即假设检验法,所谓假设检验法,例如一个模型$y=ax_i+b+sigma$ 对其拟合,我们可以使用检验法,假设 $b =0$ 在显著性水平为0.05的情况下,我们可以得到他的P值与置信区间。

       如果P值小于0.05那么就是显著显著则要拒绝原假设,不显著则接受假设。换一个说法,如果P值为0.328 说明原假设有32.8%的可能性是真的。也就是说,P值大于0.05,说明不显著,那么接受假设,即假设是真的,即$b=0$!!!

       从置信区间考虑的化,如果置信区间包含0(这个可以数学证明),那么说明不显著,如果不包含,则显著,显著要拒绝原假设,不显著要接受原假设。

      总结起来,就是 如果结果显著,那么拒绝假设,否则接受假设。如何判断显著不显著呢,通过

      1. P值是否大于0.05 如果P值大于0.05 那么不显著,否则显著。

      2.置信区间是否包含0; 如果包含0,那么就是不显著,不包含0,则显著。

    3. 模型陷阱与模型幻觉

        我们搭建模型通常有两个目的:1. 使用模型对位置数据预测。2. 利用模型分析数据,判断模型的内在联系。通常来说我们需要模型准确率高,可靠性高,那么我们就需要增加训练次数和训练量,同时增加训练样本的维数,但这样做会导致两个问题,一是过拟合,二是模型幻觉。

       模型幻觉就是指我们在建立模型时,为了追求模型的可靠性,不恰当的加入了某些变量,例如,我们在线性回归工厂生产量时,我们考虑天气的影响,最终我们得到的模型中天气具有某一个值,但这是我们就能说,天气好的时候工厂产量高,天气不好的时候工厂产量就低的结论?显然是不行的,也是不符合逻辑的,这是我们的模型就是一个不好的模型,陷入了模型幻觉中。而我们想解决模型幻觉,最重要的方法有两种

      1. 假设检验

        我们可以通过假设检验来检验我们的参数的置信区间,便可以将不相关的变量排除模型。

      2.惩罚项

        我们可以通过加入惩罚项,即正则化的方法来控制模型。

      这两种方法各有利弊,假设检验方法具有严谨的数学推导,但是缺点也非常明显,需要大量的手工干预,而正则化则是全自动,缺点就是超参数的选择是一个困难的事情。

    4. 二元分类的原理

      通常我们知道,我们经常使用sigmod函数,那我们为什么要使用这个函数呢,下面就进行推导。

     通常决断我们可以分为正效应和负效应,二者的同时作用才会决定我们做出什么样的决断。

    $y_{i}^{*}=f(X_i),widetilde{y_i}=g(X_i)$

    $y_i= left{egin{matrix} 1,y_{i}^{*}>widetilde{y_i} \ 0,y_{i}^{*}leq widetilde{y_i} end{matrix} ight.$

     我们再做一个假设,正效应和负效应都是线性的,那么我们可以得到

    $\y_i^*=X_i varphi +Theta _i $
    $\ widetilde{y_i}=X_iomega + au_i$

    我们知道,$Theta _i, au_i$是相互独立的随机变量,我们令 $z_i=y_i^*-widetilde(y_i)$,$gamma=varphi - omega$,以及$varepsilon =Theta_i - au_i$

    于是我们得到:

    $z_{i}=X_igamma+varepsilon$

    $left{egin{matrix} 1,X_igamma+varepsilon>0\ 0,elseend{matrix} ight.$

    所以可以得到

    $P(y_i = 1)=P(z_i>0)=P(varepsilon_i>-X_igamma)$

    $P(y_i = 1)=P(z_i>0)=1 - P(varepsilon_ileq -X_igamma)=1-F_{epsilon}(-X_igamma)$

    从这里我们可以惊喜的发现对于一个二分类问题,居然变成了一个连续的对一个密度函数求积分的问题!$F_{epsilon}$是随机变量$epsilon =Theta_i - au_i$的分布函数!

    在这里,我们称$y_i^*,widetilde(y_i)$为隐含变量,这一类模型称为隐含变量模型。数学上这种积分我们称为 probit回归(实际上这是一个积分,通常用于解决分类问题)。而这个函数我们比较复杂,我们一般使用sigmod函数!如下所示

    $S_x=frac{1}{1+e^{-x}}$

    这个函数是密度函数:$f(x)=frac{e^{-x}}{(1+e^{-x})^2}$的积分。

    那么通过这些公式,我们就可以得到

    $P(y_i=1)=frac{1}{1+e^{-X_ieta}}$

    $P(Y)=frac{1}{1+e^{-Xeta}}$

    第一个式子是每个人做某件事的概率,第二个式子是将所有人的购买概率写成一个表达式,其中$X_i=(x_{1,i},x_{2,i},x_{3,i}cdots x_{k,i})$表示客户i的特征$eta$为模型的参数。

    接下来的事情就会变得非常有意思:

    我们如果将$X_ieta$解出来,我们会发现神奇的事情

    $X_ieta=ln(frac{P(y_i=1)}{1-P(y_i)=1})$

    在概率上我们称为发生比,这是一个经常用到的参数,它表示时间发生与不发生的比率,更进一步讲,这是说明我们的假设是时间发生与不发生的比率的对数是一个线性模型!

    5. ROC与AUC曲线

      查准率Precision:$frac{TP}{TP+FP}$ 就是所有我预测为真的中,哪些是正确的。

      查全率Recall:$frac{TP}{TP+FN}$就是真实的标签中,有哪些我预测准确了。

      概率上讲:

    $Precision=P(y_i=1|widehat{y_i}=1)$

    $Recall=P(widehat{y_i}=1|y_i=1)$

      从查全率来上说,分子分母都是变化的,因此我们定义真阳性率和伪阳性率

    $TPR=frac{TP}{TP+FN}$

    $FPR=frac{FP}{FP+TN}$

      那么我们就可以画出ROC曲线,横轴为FPR,纵轴为TPR,也就是说,离左上角越近,就会有更好的准确率。而AUC曲线就是ROC曲线的面积。

      也就是说,AUC越大,模型预测效果越好。我们接下来会更深入的了解AUC曲线。

      如果有四个数据,一组为1,另一组为0,那么我们通过某个逻辑回归模型对其预测结果的值Wie$P1,P2,P3,P4$,其中$P1=0.8,P2=0.4,P3=0.5,P4=0.1$,那么如果我们将阈值从0-1过渡,那么我们就可以画出ROC曲线,从公式我们可以知道,ROC曲线的两个指标他们是成正相关的,所以我们画出曲线后计算面积,得到的是预测模型正确的概率!!因此,AUC不依赖模型阈值,完全取决于模型本身,因此他可以更为准确的描述我们的模型,尤其是当数据是一种不均衡数据时,准确度这个评价指标就会丧失作用,这是我们就要使用AUC来判定模型的好坏。当然这一指标也可以扩展到多维场景。

     

           

  • 相关阅读:
    详解Linux 安装 JDK、Tomcat 和 MySQL(图文并茂)
    详解Linux 安装 JDK、Tomcat 和 MySQL(图文并茂)
    常见的面试C#技术题目
    Struts2中的ModelDriven机制及其运用
    Struts2 中的数据传输的几种方式
    Struts2 中的数据传输的几种方式
    form表单中method的get和post区别
    form表单中method的get和post区别
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/tjpeng/p/10504199.html
Copyright © 2020-2023  润新知