使用部分“未知”数据进行分类


11

假设我想学习一个分类器,该分类器将数字向量作为输入,并给类标签作为输出。我的训练数据由大量输入输出对组成。

但是,当我要测试一些新数据时,该数据通常仅部分完成。例如,如果输入向量的长度为100,则可能仅给30个元素提供值,其余的为“未知”。

例如,考虑在已知图像部分被遮挡的情况下进行图像识别。或考虑已知部分数据已损坏的一般意义上的分类。在所有情况下,我都确切知道数据向量中的哪些元素是未知部分。

我想知道如何学习适用于此类数据的分类器?我可以将“未知”元素设置为随机数,但是鉴于已知元素通常比已知元素更多,所以这听起来不是一个好的解决方案。或者,我可以将训练数据中的元素随机更改为“未知”,并使用这些而不是完整的数据进行训练,但这可能需要详尽地采样已知和未知元素的所有组合。

我特别在考虑神经网络,但是我对其他分类器持开放态度。

有任何想法吗?谢谢!



我认为半监督学习更多地是在训练数据未完全标记的情况下。就我而言,我所有的训练数据都被标记了,但是测试数据的各个部分都是“未知的”。
Karnivaurus

阶梯网络的半监督学习:github.com/CuriousAI/ladder
itdxer 2016年

Answers:


2

我认为有一种合理的方法可以使其与神经网络一起使用。

p

我以前从未见过这样做,但这与在输入神经元而不是隐藏神经元中进行Dropout(神经网络中众所周知的正则化方法)非常相似。我认为一般来说这样做不是一个好主意,但是如果您被迫(像您的情况一样),至少从理论上讲,它与已知的可行方法足够接近。


1

我认为有一些选择适用于任何分类器:

  • 用单个值估算缺失值,例如训练集的平均值或中位数,或者根据输入的观察部分预测的某个值,或者仅使用随机数或常数。
  • 对未知数使用几个不同的值并汇总结果,例如取平均值

除此之外,您可以使用基于树的分类器(例如,随机森林),如果一棵树需要评估缺少特征的分割,则可以将数据向下传递到两个子节点。

pXÿXÿXX并根据该插补的概率对结果进行加权平均。对于某些分类器(例如线性判别分析模型),可以以封闭形式进行分析来完成,或者对于受限的玻尔兹曼机器或其深层变体(与前馈神经网络有关),近似地通过采样未知数来完成。


我认为这行不通。使用计算机视觉的一个典型示例,图像的每个像素可能与对象的不同部分相关联。例如,图像1的像素(50,50)是猫的眼睛,但是猫在图像2中稍微移动了一点,因此(50,50)只是背景的像素。如果NA的位置,即。随机遮挡,因观察而异,您的估算无效。
horaceT 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.