MLP训练:如何处理未知特征值



假设我们有一个MLP要用一组特征向量来训练,其中一些向量包含未知值。我该如何处理呢?MLP能够做到这一点吗?

假设训练向量为:

(1.0, 3.4, unknown, 2.0), (3.1, unknown, 1.2, 0.1), (2.1,3.4,1.2,4.5), ...

数据缺失

你指的是丢失数据的问题(小。和Rubin 1987)。这不是神经网络分类器可以很好地处理的事情。您应该预处理您的数据,并尝试通过基于已知实例变量值(1)的简单统计估计值或更高级的算法(2)来填充缺失的数据。

(1)举例:

instance1 = 0, 0, 1, 0, 1
instance2 = 0, 0, 1, 0, 1
instance3 = 1, 1, 1, 0, 0
instanceX = 1, 1, 1, 0, ?
# The statistical approach
We can see that instanceX shares a lot of instance3's features,
thus we will set the unknown variable accoring to instance3's defined value: 0
# The mean
We could calculate the dataset's mean value for this variable and
use the calculated value: 1
(2) EM算法

这是一种更复杂的算法,用于寻找丢失数据的近似估计。

最新更新