码迷,mamicode.com
首页 > 其他好文 > 详细

03_特征清洗

时间:2020-02-18 14:39:25      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:频繁   带来   案例   block   obs   数据集   随机   信用卡   dep   

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.Rare Values:

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

 

罕见值的问题:

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

 

如何处理罕见值:

技术图片

 

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

 

4.高基数

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

 

高基数的问题:

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

 

如何处理高基数:

  • 对具有业务理解的标签进行分组
  • 将罕见的标签归入一个类别
  • 使用决策树对标签进行分组:所有这些方法都试图对一些标签进行分组并减少基数,目的是将标签合并成更多同质的组,将罕见的标签归类为一个类别。

 

03_特征清洗

标签:频繁   带来   案例   block   obs   数据集   随机   信用卡   dep   

原文地址:https://www.cnblogs.com/ziwh666/p/12325910.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!