假设我不是预先为实例分配标签,而是编写了一个从实例到标签的确定性函数,该函数规定,
“如果实例A满足某个条件,则标记为0。否则,标记为1。”
然后,我对由此产生的实例和标签集合进行ROC分析。
能否有人告诉我,我到底做了什么?我只是在测试我的函数作为分类器的判别能力吗?
我有点困惑,因为在这种情况下,我是在分配标签。我并不是假设标签是给定的,并试图学习一个分类器,严格来说。
回答:
你所做的是机器学习中相当常见的事情。你得到了一个未知的随机过程 f: IR^m -> IR^n
,以及进一步的一些有趣信息(由标签表示),这些信息是作为 n
个结果的函数给出的,即 g: IR^n -> {0,1}
。
现在你只对这些标签感兴趣,因此你不关心预测原始过程 f
—— 这更难,因为它是多维值的。相反,你只考虑组合过程
h: IR^m -> {0,1}, h = g o f
并尝试在这个过程中进行二元分类。
在某种程度上,这在任何二元分类数据集上都会这样做。人们总是可以构建——有时是人为地——中间变量,然后将这些变量映射到二元结果集上(要么通过已知的映射,如你所示的情况,要么通过尚未推断的映射)。例如,考虑多层神经网络:隐藏层可以被视为那些中间变量。同样,对于主成分回归,输入变量首先被线性变换——即应用一个确定性映射——然后推断出结果的、希望更简单的随机过程。
编辑:这很大程度上取决于你应用的标签。如果这是从中间变量到 {0,1} 的“自然”映射,即直接对你要寻找的量进行分类,并且由你的设置唯一指定的映射,那就继续进行。然而,我感觉你对你的映射的质量不是完全确定。在这种情况下,我建议不要通过你的映射来影响机器学习方法,而是直接对所寻求的量进行建模…也许你可以提供更多关于你的设置的细节,然后我们可以继续讨论。