用于一类分类的贝叶斯网络

机器算法验证 r 分类 图形模型 贝叶斯网络 一类
2022-04-16 04:39:17

从维基百科对一类分类的定义

在机器学习中,一类分类,也称为一元分类或类建模,试图通过从仅包含该类对象的训练集中学习来识别所有对象中特定类的对象。

和:

一个类似的问题是 PU 学习,其中二元分类器以半监督的方式仅从正样本点和未标记样本点中学习。

我正在贝叶斯网络的背景下寻找这方面的例子。我想象这样一种情况,对于网络的一个节点,只有正面的例子可用,但需要一个二元分类器。如果可能的话,我想知道这种情况的任何例子,以及相关的代码。我主要使用 R 中的 bnlearn 包,但我可以使用任何东西。

注意:虽然这已被广泛用于异常值检测,但我想解决的问题并不是真正的异常值检测问题。我想模拟动物物种分布,我只有正面例子:观察动物物种的地方。但是,如果在某个采样工作中没有观察到,自然无法确定该物种是否存在。

1个回答

非常简单但可行的方法:

  • 收集您的数据,对其进行预处理以获得分类特征X.
  • 创建、调整、优化贝叶斯网络X与 bnlearn。结果,我们实际上有一个概率分布p(X).
  • 接受所有观察并计算它们的可能性Li=p(xi).
  • 基于可能性定义一个阈值θ对于假阴性,即如果所需的灵敏度为 95%,您应该采用对应于第 5 个分位数的可能性。

然后得到的分类器是:p(X)>θ.

诀窍是你永远不知道未观察到的反例有多相似。但是,根据一些事后观察,您也可以根据特异性调整阈值。