2

我有一个训练数据集,由大约 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
4

1 回答 1

2

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

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

其中n_i是类的样本数iN是样本总数,C是类数。

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

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

于 2013-01-25T15:02:01.207 回答