zoukankan      html  css  js  c++  java
  • 03_特征清洗

    1.缺失值

    当数据缺失时出现的问题:

    • 当有缺失值时有些算法没法work
    • 即使是处理缺失数据的算法,如果不进行处理,模型也会导致不准确的结论

    缺失机制:

    • Missing Completely as Random:如果所有观测值丢失的概率相同,则变量完全随机丢失(MCAR)。当数据是MCAR时,那些丢失的数据点是数据的一个随机子集。没有任何额外的操作使得某些数据比其他数据更容易丢失。(当观测值是完全随机的时,忽略这些缺失也不会对结果有什么影响)
    • Missing at Random:当观测值丢失的概率取决于数据集中的其他一些变量,而不取决于变量本身时。例如,如果男性比女性更愿意透露自己的体重,那么体重就是MAR。对于那些决定不透露自己体重的男性和女性来说,体重信息将会随机缺失,但由于男性更倾向于披露体重信息,女性的缺失值将比男性更多。在上述情况下,如果我们决定继续处理缺失值的变量,我们可能会受益于包括性别来控制缺失值的权重偏差。
    • Missing Not At Random - Depends on Unobserved Predictors:缺失性依赖于没有记录的信息,这些信息也可以预测缺失的值。例如,如果一种特定的治疗方法引起不适,患者更有可能退出研究(而“不适”是没有测量的)。在这种情况下,如果我们去掉那些遗漏的案例,数据样本就会有偏差。
    • Missing Not At Random - Depends on Missing Value Itself:缺失取决于(可能缺失的)变量本身。例如,收入高的人不太可能透露他们收入。

    如何假设一个缺失的机制:

    • bussiness understanding:在许多情况下,我们可以通过探究该变量背后的业务逻辑来假定该机制。
    • statcstical test:将数据集分为有/无缺失的数据集,并进行t检验,看看是否存在显著差异。如果有,我们可以假设失踪不是随机完成的。
    • 但是我们应该记住,我们几乎不能100%确定数据是MCAR、MAR或MNAR,因为未观察到的预测因子(隐藏的变量)是未观察到的。

    如何处理Missing Data:

    在实际环境中,当很难确定缺失的机制或几乎没有时间深入研究每个缺失的变量时,最流行的方法是采用:

    2.Outliers

    离群值是一种观测值,它与其他观测值相差甚远,以至于使人怀疑它是由另一种机制引起的。根据上下文,异常值要么值得特别注意,要么应该完全忽略。例如,信用卡上不寻常的交易通常是欺诈活动的标志,而高度的一个人的1600厘米很可能是由于测量误差,应该被过滤掉或用其他值代替

    根据上下文,异常值要么值得特别注意,要么应该完全忽略。以收入预测为例:如果观察到不寻常的收入峰值,那么最好对它们多加关注,并找出造成这种峰值的原因。同样,信用卡上不寻常的交易通常是欺诈活动的标志,而这正是信用卡发行商想要预防的。因此,在这样的情况下,寻找和研究进一步的异常值是很有用的。但是,如果异常值是由于机械误差、测量误差或其他任何不能泛化的原因造成的,那么最好在将数据提供给建模算法之前过滤掉这些异常值 

    离群值的问题:

    • 使算法没法很好的工作,有些算法对异常值非常敏感,任何依赖均值/方差的算法都对异常值非常敏感,而产生泛化能力差的模型
    • 往数据中加入了噪声
    • 降低了样本的代表性

    离群点检测:

    应该根据上下文如何定义和对这些异常值做出反应。你的反应的意义应该由潜在的上下文决定,而不是数字本身

     离群点检测最基本的形式是一维数据的极值分析。这种方法的关键是确定变量底层分布的统计尾数,然后找到尾数末尾的值。在典型的情况下,该变量的分布是高斯分布,因此离群值位于平均值±3乘以该变量的标准差之外。如果不是正态分布的变量,一般的方法是计算分位数,然后interquantile范围(差),如下:差= 75分位数- 25分位数局外人会坐在外面以下上下边界:上限= 75分位数+ (IQR * 1.5)下边界= 25分位数- (IQR * 1.5)或极端情况下:上限= 75分位数+ (IQR * 3)下边界= 25分位数- (IQR * 3)

    离群点处理:

    3.Rare Values:

    很少出现的值,在某些情况下,罕见值(如离群值)可能包含有价值的数据集信息,因此需要特别注意。例如,交易中罕见的值可能表示欺诈。而其他情况下,罕见值或许应该去除或者用其他值代替。

    罕见值的问题:

    • 分类问题中罕见值容易导致过拟合,比如基于树的方法的时候
    • 大量的非频繁标签增加了噪声,信息量少,导致过拟合
    • 罕见值或许只出现在training set或testing set,导致某个数据集过拟合

    如何处理罕见值:

    • 当变量中有一个占主导地位的类别(超过90%)时:观察该变量与目标之间的关系,然后要么放弃该变量,要么保持该变量不变。在这种情况下,变量通常对预测没有帮助,因为它是准常量(稍后我们将在特征选择部分看到这一点)。
    • 当只有少量类别时:保持原样。因为只有很少的类别不太可能带来这么多的噪音。
    • 当基数较大时:尝试上面的两个方法。但它并不能保证比原始变量得到更好的结果。

    4.高基数

    如果一个特征是用来表示类别/定性的(categorical),而且这个特征的可能值非常多,通常用0-n的离散整数来表示,那么它就是高基数类别特征

    高基数的问题:

    • 标签太多的变量往往比标签很少的变量占优势,特别是在基于树的算法中。
    • 一个变量内的大量标签可能会在几乎没有信息的情况下引入噪声,从而使机器学习模型容易过度拟合。
    • 有些标签可能只出现在训练数据集中,而没有出现在测试集中,从而导致算法对训练集过拟合。
    • 相反,新的标签可能出现在测试集中,而训练集中没有出现,因此算法无法对新的实例进行计算

    如何处理高基数:

    • 对具有业务理解的标签进行分组
    • 将罕见的标签归入一个类别
    • 使用决策树对标签进行分组:所有这些方法都试图对一些标签进行分组并减少基数,目的是将标签合并成更多同质的组,将罕见的标签归类为一个类别。
  • 相关阅读:
    mybatis入门截图三
    centos 6.X 关闭selinux
    安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(二)
    安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(一)
    Linux定时任务Crontab命令详解
    CentOS 更换yum源为aliyun yum源
    CentOS7 FTP服务搭建(虚拟用户访问FTP服务)
    CentOS 7 安装Oracle 11gR2
    印度项目质量管理经验
    项目管理系列之质量管理
  • 原文地址:https://www.cnblogs.com/ziwh666/p/12325910.html
Copyright © 2011-2022 走看看