数据分析中缺失值的处理

缺失值简介

造成数据缺失的原因
  • 有些信息暂时无法获取。例如小越现在在看哪个小姐姐
  • 有些信息是被遗漏的。可能是因为输入时认为不重要、忘记填写了或对数据理解错误而遗漏,也可能是由于数据采集设备的故障、存储介质的故障、传输媒体的故障、一些人为因素等原因而丢失了
  • 有些对象的某个或某些属性是不可用的。例如小朱女朋友的身高
  • 有些信息(被认为)是不重要的。例如你等下下课吃什么和美国没进18年世界杯没有关系
  • 获取这些信息的代价太大。例如你早晨淀粉摄入量的值
  • 系统实时性能要求较高,即要求得到这些信息前迅速做出判断或决策
数据缺失机制
  • 完全随机缺失(missing completely at random,MCAR):指的是数据的缺失是完全随机的,不依赖于任何不完全变量或完全变量,不影响样本的无偏性。如家庭地址缺失
  • 随机缺失(missing at random,MAR):指的是数据的缺失不是完全随机的,即该类数据的缺失依赖于其他完全变量。例如财务数据缺失情况与企业的大小有关
  • 非随机缺失(missing not at random,MNAR):指的是数据的缺失与不完全变量自身的取值有关。如高收入人群的不原意提供家庭收入
缺失值处理的必要性

数据缺失在许多研究领域都是一个复杂的问题,对数据挖掘来说,缺失值的存在,造成了以下影响:
1.系统丢失了大量的有用信息
2.系统中所表现出的不确定性更加显著,系统中蕴涵的确定性成分更难把握
3.包含空值的数据会使挖掘过程陷入混乱,导致不可靠的输出

数据挖掘算法本身更致力于避免数据过分拟合所建的模型,这一特性使得它难以通过自身的算法去很好地处理不完整数据。因此,缺失值需要通过专门的方法进行推导、填充等,以减少数据挖掘算法与实际应用之间的差距。

对缺失值做基本分析

一、SPSS篇

缺失模式分析
  • 数据模式
  • 缺失模式
  • 制表模式
缺失情况的统计描述
  • 单变量统计
  • 指示变量统计量


    0.png

二、R篇

识别缺失值
  • is.na( )
  • !complete.cases( )
  • VIM包
探索缺失值模式

1.列表显示缺失值 mice包 md.pattern( )

> data(sleep, package="VIM")
> library(mice)
> md.pattern(sleep)
   BodyWgt BrainWgt Pred Exp Danger Sleep Span Gest Dream NonD   
42       1        1    1   1      1     1    1    1     1    1  0
 2       1        1    1   1      1     1    0    1     1    1  1
 3       1        1    1   1      1     1    1    0     1    1  1
 9       1        1    1   1      1     1    1    1     0    0  2
 2       1        1    1   1      1     0    1    1     1    0  2
 1       1        1    1   1      1     1    0    0     1    1  2
 2       1        1    1   1      1     0    1    1     0    0  3
 1       1        1    1   1      1     1    0    1     0    0  3
         0        0    0   0      0     4    4    4    12   14 38

2.图形探究缺失值 VIM包

> data(sleep, package="VIM")
> library("VIM")
> aggr(sleep, prop=FALSE, numbers=TRUE)   #prop:是否应该使用缺失/估算值和组合的比例,而不是总量;numbers:不同组合的比例或频率是否应该用数字表示

> matrixplot(sleep)

Click in a column to sort by the corresponding variable.
To regain use of the VIM GUI and the R console, click outside the plot region.
> marginplot(sleep[,c("Gest","Dream")], pch=c(20), 
+            col=c("darkgray", "red", "blue"))
aggr.png
matrixplot.png
marginplot.png

3.用相关性探索缺失值

> x <- as.data.frame(abs(is.na(sleep)))   #影子矩阵x
> head(x)
  BodyWgt BrainWgt NonD Dream Sleep Span Gest Pred Exp Danger
1       0        0    1     1     0    0    0    0   0      0
2       0        0    0     0     0    0    0    0   0      0
3       0        0    1     1     0    0    0    0   0      0
4       0        0    1     1     0    1    0    0   0      0
5       0        0    0     0     0    0    0    0   0      0
6       0        0    0     0     0    0    0    0   0      0
> head(sleep)
   BodyWgt BrainWgt NonD Dream Sleep Span Gest Pred Exp Danger
1 6654.000   5712.0   NA    NA   3.3 38.6  645    3   5      3
2    1.000      6.6  6.3   2.0   8.3  4.5   42    3   1      3
3    3.385     44.5   NA    NA  12.5 14.0   60    1   1      1
4    0.920      5.7   NA    NA  16.5   NA   25    5   2      3
5 2547.000   4603.0  2.1   1.8   3.9 69.0  624    3   5      4
6   10.550    179.5  9.1   0.7   9.8 27.0  180    4   4      4
> y <- x[which(apply(x,2,sum)>0)]
> head(y)
  NonD Dream Sleep Span Gest
1    1     1     0    0    0
2    0     0     0    0    0
3    1     1     0    0    0
4    1     1     0    1    0
5    0     0     0    0    0
6    0     0     0    0    0
> cor(y)
             NonD       Dream       Sleep        Span        Gest
NonD   1.00000000  0.90711474  0.48626454  0.01519577 -0.14182716
Dream  0.90711474  1.00000000  0.20370138  0.03752394 -0.12865350
Sleep  0.48626454  0.20370138  1.00000000 -0.06896552 -0.06896552
Span   0.01519577  0.03752394 -0.06896552  1.00000000  0.19827586
Gest  -0.14182716 -0.12865350 -0.06896552  0.19827586  1.00000000
> cor(sleep, y, use="pairwise.complete.obs")
                NonD       Dream        Sleep        Span        Gest
BodyWgt   0.22682614  0.22259108  0.001684992 -0.05831706 -0.05396818
BrainWgt  0.17945923  0.16321105  0.007859438 -0.07921370 -0.07332961
NonD              NA          NA           NA -0.04314514 -0.04553485
Dream    -0.18895206          NA -0.188952059  0.11699247  0.22774685
Sleep    -0.08023157 -0.08023157           NA  0.09638044  0.03976464
Span      0.08336361  0.05981377  0.005238852          NA -0.06527277
Gest      0.20239201  0.05140232  0.159701523 -0.17495305          NA
Pred      0.04758438 -0.06834378  0.202462711  0.02313860 -0.20101655
Exp       0.24546836  0.12740768  0.260772984 -0.19291879 -0.19291879
Danger    0.06528387 -0.06724755  0.208883617 -0.06666498 -0.20443928
Warning message:
In cor(sleep, y, use = "pairwise.complete.obs") : 标准差为零

处理缺失值的方法

删除缺失值
  • 行删除 use="complete.obs"
  • 成对删除 use="pairwise.complete.obs"
数据补齐

1.人工填写
由于最了解数据的还是用户自己,因此这个方法产生数据偏离最小,可能是填充效果最好的一种。然而一般来说,该方法很费时,当数据规模很大、空值很多的时候,该方法是不可行的。

2.特殊值填充
将空值作为一种特殊的属性值来处理,它不同于其他的任何属性值。如所有的空值都用“unknown”填充。这样将形成另一个有趣的概念,可能导致严重的数据偏离,一般不推荐使用。

3.平均值填充
将信息表中的属性分为数值属性和非数值属性来分别进行处理。如果空值是数值型的,就根据该属性在其他所有对象的取值的平均值来填充该缺失的属性值;如果空值是非数值型的,就根据统计学中的众数原理,用该属性在其他所有对象的取值次数最多的值(即出现频率最高的值)来补齐该缺失的属性值。另外有一种与其相似的方法叫条件平均值填充法(Conditional Mean Completer)。在该方法中,缺失属性值的补齐同样是靠该属性在其他对象中的取值求平均得到,但不同的是用于求平均的值并不是从信息表所有对象中取,而是从与该对象具有相同决策属性值的对象中取得。这两种数据的补齐方法,其基本的出发点都是一样的,以最大概率可能的取值来补充缺失的属性值,只是在具体方法上有一点不同。与其他方法相比,它是用现存数据的多数信息来推测缺失值。

4.热卡填充
对于一个包含空值的对象,热卡填充法在完整数据中找到一个与它最相似的对象,然后用这个相似对象的值来进行填充。不同的问题可能会选用不同的标准来对相似进行判定。该方法概念上很简单,且利用了数据间的关系来进行空值估计。这个方法的缺点在于难以定义相似标准,主观因素较多。

5.K最近距离邻法
先根据欧式距离或相关分析来确定距离具有缺失数据样本最近的K个样本,将这K个值加权平均来估计该样本的缺失数据。
同均值插补的方法都属于单值插补,不同的是,它用层次聚类模型预测缺失变量的类型,再以该类型的均值插补。假设X=(X1,X2…Xp)为信息完全的变量,Y为存在缺失值的变量,那么首先对X或其子集行聚类,然后按缺失个案所属类来插补不同类的均值。如果在以后统计分析中还需以引入的解释变量和Y做分析,那么这种插补方法将在模型中引入自相关,给分析造成障碍。

6.使用所有可能的值填充
用空缺属性值的所有可能的属性取值来填充,能够得到较好的补齐效果。但是,当数据量很大或者遗漏的属性值较多时,其计算的代价很大,可能的测试方案很多。

7.组合完整化方法
用空缺属性值的所有可能的属性取值来试,并从最终属性的约简结果中选择最好的一个作为填补的属性值。这是以约简为目的的数据补齐方法,能够得到好的约简结果;但是,当数据量很大或者遗漏的属性值较多时,其计算的代价很大。

8.回归
基于完整的数据集,建立回归方程(模型)。对于包含空值的对象,将已知属性值代入方程来估计未知属性值,以此估计值来进行填充,当变量不是线性相关或预测变量高度相关时会导致有偏差的估计(SPSS菜单里有这种方法)

9.期望值最大化方法
EM算法是一种在不完全数据情况下计算极大似然估计或者后验分布的迭代算法。在每一迭代循环过程中交替执行两个步骤:E步(Excepctaion step,期望步),在给定完全数据和前一次迭代所得到的参数估计的情况下计算完全数据对应的对数似然函数的条件期望;M步(Maximzation step,极大化步),用极大化对数似然函数以确定参数的值,并用于下步的迭代。算法在E步和M步之间不断迭代直至收敛,即两次迭代之间的参数变化小于一个预先给定的阈值时结束。该方法可能会陷入局部极值,收敛速度也不是很快,并且计算很复杂。(SPSS菜单里有这种方法)

10.1多重插补原理
多值插补的思想来源于贝叶斯估计,认为待插补的值是随机的,它的值来自于已观测到的值。具体实践上通常是估计出待插补的值,然后再加上不同的噪声,形成多组可选插补值。根据某种选择依据,选取最合适的插补值。

1.png

10.2多重填补在SPSS中的实现
10.2.1缺失模式分析
分析>多重归因>分析模式


分析模式.png

10.2.2缺失值的多重填充
分析>多重归因>归因缺失数据值

归因缺失数据值.png
输出结果.png
得到的新数据集.png

10.2.3采用填充后的数据建模


对新数据集进行分析.png

10.3多重填补在R中的实现(基于mice包)


2.png
>library(mice)
>imp<-mice(data,m)   #imp是一个包含m个插补数据集的列表对象,同时还含有完成插补过程的信息
>fit<-with(imp,analysis)   #analysis是一个表达式对象,用来设定应用于m个插补数据集的统计分析方法
>pooled<-pool(fit)   #fit是一个包含m个单独统计分析结果的列表对象
>summary(pooled)   #pooled是一个包含这m个统计分析平均结果的列表对象

实例:

> options(digits=3)
> library(mice)
> data(sleep, package="VIM")
> imp <- mice(sleep, seed=1234)

 iter imp variable
  1   1  NonD  Dream  Sleep  Span  Gest
  1   2  NonD  Dream  Sleep  Span  Gest
  1   3  NonD  Dream  Sleep  Span  Gest
  1   4  NonD  Dream  Sleep  Span  Gest
  1   5  NonD  Dream  Sleep  Span  Gest
  2   1  NonD  Dream  Sleep  Span  Gest
  2   2  NonD  Dream  Sleep  Span  Gest
  2   3  NonD  Dream  Sleep  Span  Gest
  2   4  NonD  Dream  Sleep  Span  Gest
  2   5  NonD  Dream  Sleep  Span  Gest
  3   1  NonD  Dream  Sleep  Span  Gest
  3   2  NonD  Dream  Sleep  Span  Gest
  3   3  NonD  Dream  Sleep  Span  Gest
  3   4  NonD  Dream  Sleep  Span  Gest
  3   5  NonD  Dream  Sleep  Span  Gest
  4   1  NonD  Dream  Sleep  Span  Gest
  4   2  NonD  Dream  Sleep  Span  Gest
  4   3  NonD  Dream  Sleep  Span  Gest
  4   4  NonD  Dream  Sleep  Span  Gest
  4   5  NonD  Dream  Sleep  Span  Gest
  5   1  NonD  Dream  Sleep  Span  Gest
  5   2  NonD  Dream  Sleep  Span  Gest
  5   3  NonD  Dream  Sleep  Span  Gest
  5   4  NonD  Dream  Sleep  Span  Gest
  5   5  NonD  Dream  Sleep  Span  Gest
> imp
Multiply imputed data set
Call:
mice(data = sleep, seed = 1234)
Number of multiple imputations:  5
Missing cells per column:
 BodyWgt BrainWgt     NonD    Dream    Sleep     Span     Gest     Pred      Exp   Danger 
       0        0       14       12        4        4        4        0        0        0 
Imputation methods:
 BodyWgt BrainWgt     NonD    Dream    Sleep     Span     Gest     Pred      Exp   Danger 
      ""       ""    "pmm"    "pmm"    "pmm"    "pmm"    "pmm"       ""       ""       "" 
VisitSequence:
 NonD Dream Sleep  Span  Gest 
    3     4     5     6     7 
PredictorMatrix:
         BodyWgt BrainWgt NonD Dream Sleep Span Gest Pred Exp Danger
BodyWgt        0        0    0     0     0    0    0    0   0      0
BrainWgt       0        0    0     0     0    0    0    0   0      0
NonD           1        1    0     1     1    1    1    1   1      1
Dream          1        1    1     0     1    1    1    1   1      1
Sleep          1        1    1     1     0    1    1    1   1      1
Span           1        1    1     1     1    0    1    1   1      1
Gest           1        1    1     1     1    1    0    1   1      1
Pred           0        0    0     0     0    0    0    0   0      0
Exp            0        0    0     0     0    0    0    0   0      0
Danger         0        0    0     0     0    0    0    0   0      0
Random generator seed value:  1234 
> fit <- with(imp, lm(Dream ~ Span + Gest))
> pooled <- pool(fit)
> pooled
Call: pool(object = fit)

Pooled coefficients:
(Intercept)        Span        Gest 
    2.54620    -0.00455    -0.00392 

Fraction of information about the coefficients missing due to nonresponse: 
(Intercept)        Span        Gest 
     0.0871      0.0886      0.0544 
> summary(pooled)
                 est      se      t   df Pr(>|t|)    lo 95     hi 95 nmis    fmi lambda
(Intercept)  2.54620 0.25469  9.997 52.1 1.02e-13  2.03516  3.057242   NA 0.0871 0.0527
Span        -0.00455 0.01204 -0.378 51.9 7.07e-01 -0.02871  0.019610    4 0.0886 0.0542
Gest        -0.00392 0.00147 -2.666 55.6 1.00e-02 -0.00686 -0.000973    4 0.0544 0.0210
> imp$imp
$BodyWgt
NULL

$BrainWgt
NULL

$NonD
      1    2    3    4    5
1   3.3  3.2  2.1  3.2  3.2
3   9.7 10.4 11.0 10.8 11.0
4  13.2 13.2 13.2 15.2 12.8
14  3.2  3.2  3.3  3.2  2.1
21 11.9 11.0 11.0  6.3 12.0
24 10.4 10.6  8.2 11.0  6.3
26 10.9  9.5 11.0 10.0 11.0
30  9.7 10.0  7.4  8.3  8.4
31 10.4  3.3  3.3  3.3 10.0
41  4.7  8.6  7.7  2.1 10.0
47 12.0 11.0 11.0 10.4  9.1
53  3.3  2.1  2.1  3.2  2.1
55 11.0 10.0  8.4  8.4  8.4
62 12.0 11.0 17.9 11.0  4.9

$Dream
     1   2   3   4   5
1  1.0 0.5 0.5 0.5 0.3
3  2.6 2.1 1.5 1.8 1.3
4  3.4 3.1 3.4 1.2 3.4
14 0.3 0.5 0.5 0.3 1.2
24 1.8 1.3 3.6 0.9 5.6
26 2.3 3.1 2.0 2.6 2.1
30 1.2 0.3 3.4 2.6 2.3
31 3.4 0.5 0.6 1.0 0.5
47 0.5 1.5 1.5 2.2 3.4
53 0.3 0.5 0.5 0.5 0.6
55 0.5 0.9 2.6 2.7 2.4
62 1.0 2.1 0.5 3.9 3.6

$Sleep
      1    2    3    4    5
21 12.5 10.7 10.8  6.2 12.5
31 13.8  3.9  3.8  3.9 10.6
41  6.2  9.6  8.4  2.9 10.9
62 12.8 12.8 19.4 14.4  8.6

$Span
      1    2    3    4    5
4   4.7  7.0  2.0 28.0  4.5
13  7.0 13.0 18.0  4.5 13.7
35 14.0  7.0 12.7 13.7 24.0
36  2.6  4.7  4.5  5.0  4.5

$Gest
     1  2   3   4   5
13  52 19  46  60 120
19 252 28  28 151 150
20  12 28  21  28  12
56 120 60 100  42  25

$Pred
NULL

$Exp
NULL

$Danger
NULL

> imp$imp$Dream
     1   2   3   4   5
1  1.0 0.5 0.5 0.5 0.3
3  2.6 2.1 1.5 1.8 1.3
4  3.4 3.1 3.4 1.2 3.4
14 0.3 0.5 0.5 0.3 1.2
24 1.8 1.3 3.6 0.9 5.6
26 2.3 3.1 2.0 2.6 2.1
30 1.2 0.3 3.4 2.6 2.3
31 3.4 0.5 0.6 1.0 0.5
47 0.5 1.5 1.5 2.2 3.4
53 0.3 0.5 0.5 0.5 0.6
55 0.5 0.9 2.6 2.7 2.4
62 1.0 2.1 0.5 3.9 3.6
> data3<- complete(imp,action = 3)
> data3
    BodyWgt BrainWgt NonD Dream Sleep  Span  Gest Pred Exp Danger
1  6654.000  5712.00  2.1   0.5   3.3  38.6 645.0    3   5      3
2     1.000     6.60  6.3   2.0   8.3   4.5  42.0    3   1      3
3     3.385    44.50 11.0   1.5  12.5  14.0  60.0    1   1      1
4     0.920     5.70 13.2   3.4  16.5   2.0  25.0    5   2      3
5  2547.000  4603.00  2.1   1.8   3.9  69.0 624.0    3   5      4
6    10.550   179.50  9.1   0.7   9.8  27.0 180.0    4   4      4
7     0.023     0.30 15.8   3.9  19.7  19.0  35.0    1   1      1
8   160.000   169.00  5.2   1.0   6.2  30.4 392.0    4   5      4
9     3.300    25.60 10.9   3.6  14.5  28.0  63.0    1   2      1
10   52.160   440.00  8.3   1.4   9.7  50.0 230.0    1   1      1
11    0.425     6.40 11.0   1.5  12.5   7.0 112.0    5   4      4
12  465.000   423.00  3.2   0.7   3.9  30.0 281.0    5   5      5
13    0.550     2.40  7.6   2.7  10.3  18.0  46.0    2   1      2
14  187.100   419.00  3.3   0.5   3.1  40.0 365.0    5   5      5
15    0.075     1.20  6.3   2.1   8.4   3.5  42.0    1   1      1
16    3.000    25.00  8.6   0.0   8.6  50.0  28.0    2   2      2
17    0.785     3.50  6.6   4.1  10.7   6.0  42.0    2   2      2
18    0.200     5.00  9.5   1.2  10.7  10.4 120.0    2   2      2
19    1.410    17.50  4.8   1.3   6.1  34.0  28.0    1   2      1
20   60.000    81.00 12.0   6.1  18.1   7.0  21.0    1   1      1
21  529.000   680.00 11.0   0.3  10.8  28.0 400.0    5   5      5
22   27.660   115.00  3.3   0.5   3.8  20.0 148.0    5   5      5
23    0.120     1.00 11.0   3.4  14.4   3.9  16.0    3   1      2
24  207.000   406.00  8.2   3.6  12.0  39.3 252.0    1   4      1
25   85.000   325.00  4.7   1.5   6.2  41.0 310.0    1   3      1
26   36.330   119.50 11.0   2.0  13.0  16.2  63.0    1   1      1
27    0.101     4.00 10.4   3.4  13.8   9.0  28.0    5   1      3
28    1.040     5.50  7.4   0.8   8.2   7.6  68.0    5   3      4
29  521.000   655.00  2.1   0.8   2.9  46.0 336.0    5   5      5
30  100.000   157.00  7.4   3.4  10.8  22.4 100.0    1   1      1
31   35.000    56.00  3.3   0.6   3.8  16.3  33.0    3   5      4
32    0.005     0.14  7.7   1.4   9.1   2.6  21.5    5   2      4
33    0.010     0.25 17.9   2.0  19.9  24.0  50.0    1   1      1
34   62.000  1320.00  6.1   1.9   8.0 100.0 267.0    1   1      1
35    0.122     3.00  8.2   2.4  10.6  12.7  30.0    2   1      1
36    1.350     8.10  8.4   2.8  11.2   4.5  45.0    3   1      3
37    0.023     0.40 11.9   1.3  13.2   3.2  19.0    4   1      3
38    0.048     0.33 10.8   2.0  12.8   2.0  30.0    4   1      3
39    1.700     6.30 13.8   5.6  19.4   5.0  12.0    2   1      1
40    3.500    10.80 14.3   3.1  17.4   6.5 120.0    2   1      1
41  250.000   490.00  7.7   1.0   8.4  23.6 440.0    5   5      5
42    0.480    15.50 15.2   1.8  17.0  12.0 140.0    2   2      2
43   10.000   115.00 10.0   0.9  10.9  20.2 170.0    4   4      4
44    1.620    11.40 11.9   1.8  13.7  13.0  17.0    2   1      2
45  192.000   180.00  6.5   1.9   8.4  27.0 115.0    4   4      4
46    2.500    12.10  7.5   0.9   8.4  18.0  31.0    5   5      5
47    4.288    39.20 11.0   1.5  12.5  13.7  63.0    2   2      2
48    0.280     1.90 10.6   2.6  13.2   4.7  21.0    3   1      3
49    4.235    50.40  7.4   2.4   9.8   9.8  52.0    1   1      1
50    6.800   179.00  8.4   1.2   9.6  29.0 164.0    2   3      2
51    0.750    12.30  5.7   0.9   6.6   7.0 225.0    2   2      2
52    3.600    21.00  4.9   0.5   5.4   6.0 225.0    3   2      3
53   14.830    98.20  2.1   0.5   2.6  17.0 150.0    5   5      5
54   55.500   175.00  3.2   0.6   3.8  20.0 151.0    5   5      5
55    1.400    12.50  8.4   2.6  11.0  12.7  90.0    2   2      2
56    0.060     1.00  8.1   2.2  10.3   3.5 100.0    3   1      2
57    0.900     2.60 11.0   2.3  13.3   4.5  60.0    2   1      2
58    2.000    12.30  4.9   0.5   5.4   7.5 200.0    3   1      3
59    0.104     2.50 13.2   2.6  15.8   2.3  46.0    3   2      2
60    4.190    58.00  9.7   0.6  10.3  24.0 210.0    4   3      4
61    3.500     3.90 12.8   6.6  19.4   3.0  14.0    2   1      1
62    4.050    17.00 17.9   0.5  19.4  13.0  38.0    3   1      1

11.C4.5方法
通过寻找属性间的关系来对遗失值填充。它寻找之间具有最大相关性的两个属性,其中没有遗失值的一个称为代理属性,另一个称为原始属性,用代理属性决定原始属性中的遗失值。这种基于规则归纳的方法只能处理基数较小的名词型属性。

就几种基于统计的方法而言,删除元组法和平均值填充法差于热卡填充法、期望值最大化方法和多重填充法;回归是比较好的一种方法,但仍比不上热卡填充和期望值最大化方法;期望值最大化方法缺少多重填补包含的不确定成分。值得注意的是,这些方法直接处理的是模型参数的估计而不是空缺值预测本身。它们合适于处理无监督学习的问题,而对有监督学习来说,情况就不尽相同了。譬如,你可以删除包含空值的对象用完整的数据集来进行训练,但预测时你却不能忽略包含空值的对象。另外,C4.5和使用所有可能的值填充方法也有较好的补齐效果,人工填写和特殊值填充则是一般不推荐使用的。

不处理

补齐处理只是将未知值补以我们的主观估计值,不一定完全符合客观事实,在对不完备信息进行补齐处理的同时,我们或多或少地改变了原始的信息系统。而且,对空值不正确的填充往往将新的噪声引入数据中,使挖掘任务产生错误的结果。因此,在许多情况下,我们还是希望在保持原始信息不发生变化的前提下对信息系统进行处理。
直接在包含空值的数据上进行数据挖掘,这类方法包括贝叶斯网络和人工神经网络等。

贝叶斯网络是用来表示变量间连接概率的图形模式,它提供了一种自然的表示因果信息的方法,用来发现数据间的潜在关系。在这个网络中,用节点表示变量,有向边表示变量间的依赖关系。贝叶斯网络仅适合于对领域知识具有一定了解的情况,至少对变量间的依赖关系较清楚的情况。否则直接从数据中学习贝叶斯网的结构不但复杂性较高(随着变量的增加,指数级增加),网络维护代价昂贵,而且它的估计参数较多,为系统带来了高方差,影响了它的预测精度。当在任何一个对象中的缺失值数量很大时,存在指数爆炸的危险。人工神经网络可以有效的对付空值,但人工神经网络在这方面的研究还有待进一步深入展开。人工神经网络方法在数据挖掘应用中的局限性。

总结

多数统计方法都假设输入数据是完整的且不包含缺失值,但现实生活中大多数数据集都包含了缺失值。因此,在进行下一步分析前,你要么删除,要么用合理的数值代理它们,SPSS、R、Python、SAS等统计软件都会提供一些默认的处理缺失值方法,但这些方法可能不是最优的,因此,学习各种各样的方法和他们的分支就显得非常重要。Little和Rubin的《Sstatistical Analysis With Missing Data 》是缺失值领域里经典的读本,值得一看。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,798评论 6 13
  • 现实世界中的数据异常杂乱,属性值缺失的情况经常发生甚至是不可避免的。造成数据缺失的原因是多方面的,数据值缺失是处理...
    董梓茗阅读 2,635评论 0 0
  • {因为文章好,所以转载!!}R语言缺失值处理 2016-08-23 05:17砍柴问樵夫 数据缺失有多种原因,而大...
    梦醒启程阅读 19,230评论 2 11
  • 明道——“道为术之灵,术为道之体;以道统术,以术得道”;道是教育理念、教学规律,是教学原则。“明道”就是加强教育理...
    九九十十阅读 378评论 0 0
  • 担任了30天成长计划的橙务长,虽然感觉自己做的不够好,但却认识了许多优秀的小组长,他们的负责让我感动,昨天上一期的...
    杂草袁阅读 214评论 0 2