类别先验在 Weka 分类中的作用

Posted

技术标签:

【中文标题】类别先验在 Weka 分类中的作用【英文标题】:Role of class priors in Weka classification 【发布时间】:2013-01-09 11:49:52 【问题描述】:

我有一个由大约 1568 行组成的训练数据集,每行都有类属性的七个值之一。我正在寻求在 168 行的第二个数据集上测试此数据。

但我有一个问题。 Weka 报告说,“类先验”是:

141.0
169.0
225.0
197.0
421.0
281.0
141.0

我的训练集每个类属性值的实例数如下:

140
168
224
196
420
280
140

除了类先验与每个类属性值的训练集行数密切相关之外,谁能告诉我它们是什么以及它们实际代表什么?

测试集每个类属性值的实例数如下:

15
18
24
21
45
30
15

【问题讨论】:

【参考方案1】:

类先验是对从总体中随机抽样一个实例将产生给定类的概率的估计(无论实例的任何属性如何)。 Weka 假设您的训练数据是从总体中随机抽取的,因此您的训练集中的类比例表明它们在抽样总体中的相对丰度。请注意,Weka 报告的不是先验,而是用于计算先验的计数。将每个计数加 1 的原因是为了防止在训练数据中未表示特定类的情况下计数为零。所以 Weka 应该将每个类的实际先验计算为

P(c_i) = n_i / (N + C)

其中n_ii 类的样本数,N 是样本总数,C 是类数。

作为先验概率用于什么的一个非常简单的例子,考虑对疾病进行分类,只知道一个人发烧和头痛。这些症状是流感和埃博拉病毒的迹象。但是感染流感的人远多于埃博拉病毒(流感的先验概率远高于埃博拉病毒),因此根据这些症状,您可以将疾病归类为流感。

Weka 提供了更新或覆盖默认先验概率的方法。要了解如何在分类中使用先验概率的数学细节,请查看 Bayes' Theorem。

【讨论】:

以上是关于类别先验在 Weka 分类中的作用的主要内容,如果未能解决你的问题,请参考以下文章

使用 weka 进行文本分类

weka中的一元类文本分类?

Weka 常用分类算法效果比较

在文档分类中应用 Mallet 作为二元分类器

WEKA - 过滤掉 MultiClassClassifer 中的类

weka中的SMO置信度测量