zoukankan      html  css  js  c++  java
  • covariate shift

    BN解决方差漂移理论

    训练集的数据分布和预测集的数据分布不一致,这样的情况下如果我们在训练集上训练出一个分类器,肯定在预测集上不会取得比较好的效果。这种训练集和预测集样本分布不一致的问题就叫做“covariate shift”现象

    训练集和测试集的数据分布不一致,因此训练出来的模型是没有泛化能力的

    解决方法

    reweight:其实就是重新给训练集中的数据赋予一个新的权重即Reweight操作

    比方说对于样本(x_i),它在训练集中 的分布是 (qleft(x_{i} ight),) 在预测集中的真实分布是 (pleft(x_{i} ight),) 那么它的新权重就是 (frac{pleft(x_{i} ight)}{qleft(x_{i} ight)}) 。那么现在的问题就变成了如何确定样本 (x_{i}) 在训练集和预测集 中的真实分布。其实用的方法特别的巧妙,同样用的是机器学习的方法:Logistic Rgression,就是随机的从训练集和测试集随机的抽取 样本,根据他们的来源不同,把来自训练集的样本标注为1,把来自预测集的样本标注为-1。把这份数据分成新的训练集和测试集,
    说明这些数据的分布不一致,反之亦然。具体的计算公式如下: (pleft(z=1 mid x_{i} ight)=frac{pleft(x_{i} ight)}{pleft(x_{i} ight)+qleft(x_{i} ight)} / / mathrm{z}=1) 表示该样本来自于之前的预测集分布 (p,) z=-1表示该样本来自于之前的训练集分布 (q_{ullet}) 当训练好了 Logistic Regression分类器之后, (pleft(z=1 mid x_{i} ight)=frac{1}{1+e^{-fleft(x_{i} ight)}},) 然后就很容易推出对于样本 (x_{i}) 来说, 它reweight的权值是 (frac{pleft(z=1 mid x_{i} ight)}{pleft(z=-1 mid x_{i} ight)}=) (e^{fleft(x_{i} ight)},) 其中的 (fleft(x_{i} ight)) 就是我们训练出来的分类器。

    具体的还是要读下BN的原文~

    MCC(Matthews correlation coefficient)

    作为判断“covariate shift”现象出现的标准

    这个指标本质上是用一个训练集数据和预测集数据之间的相关系数,取值在[-1,1]之间,如果是1就是强烈的正相关,0就是没有相关性,-1就是强烈的负相关。它的具体计算和confusion matrix概念相关

    • TP(True Positive):真实为1,预测为1
    • FN(False Negative):真实为1,预测为0
    • FP(False Positive):真实为0,预测为1
    • TN(True Negative):真实为0, 预测为0

    (M c c=frac{T P * T N-F P * F N}{sqrt{(T P+F P)(T P+F N)(T N+F P)(T N+F N)}})
    (PS:衡量二分类效果的几个指标, ACC (准确率),Rec (召回率) , F值, AUC, MCC, 它们各自对应了自己的应用场景)** 对于Logistic Regression分类器,计算其Mcc值, 一般认为如果该值大于0.2,说明预测集和测试集相关度高,也就是说明分类器容易把 在训练集上学习到的经验应用在预测集上, 也就是说明出现了covariate shift的现象; 如果小于0.2,就没有出现covariate shift现象。**

    参考博客guoyuhaoaaa

  • 相关阅读:
    自定义字体(特殊字体)在网页中的应用
    面向对象中的接口和多态
    抽象类和抽象方法
    python简单的函数定义和用法实例
    python简单的函数定义和用法实例
    Python变量和字符串详解
    Python变量和字符串详解
    大数据产业发展 三大模式可毕其功于一役
    大数据产业发展 三大模式可毕其功于一役
    python实现基于两张图片生成圆角图标效果的方法
  • 原文地址:https://www.cnblogs.com/gaowenxingxing/p/13280612.html
Copyright © 2011-2022 走看看