machine-learning - 类先验在 Weka 分类中的作用

标签 machine-learning classification weka

我有一个由大约 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

最佳答案

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

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

其中 n_i 是类 i 的样本数,N 是样本总数,C code> 是类的数量。

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

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

关于machine-learning - 类先验在 Weka 分类中的作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14523095/

相关文章:

python - 将函数结果附加到数据框

machine-learning - 神经网络的输入选择

matlab - 使用 LASSO 框架分类

c++ - 将权重和参数从 matlab 导出到 C++

java - 在 weka 分类器中缩放训练数据

java - LibSVM 和 Weka API 不能一起工作

python - 为什么我得到 "Supported target types are: (' 二进制', 'multiclass' )。相反,得到 'continuous'。“错误?

python - 为什么没有定义类别的图像的预测概率如此高?

apache - 简单地更改 apache Mahout 分类器输入中的 csv header 会产生不同的模型?

weka - 如何从 .t​​xt 创建 .arff 文件?