java - 哪个 WEKA 概率分类器?

标签 java classification weka probability

我有以下问题: 我有一个数据集(arff),里面存储了:字符、按键保持时间、用户。 因此,有了这些信息,我必须计算一个人在键盘上打字的概率。

如果一个人在键盘上打字,将提取与上述相同的信息(用户、按键保持时间、用户),并将与 arff 文件进行“比较”。结果应如下:我在 arff 文件中有一个用户“John”的数据集。之后,一名用户输入他的用户名“John”并写入文本。结果应该是用户输入的“Johns”与 arff 中存储的“John”数据集等效的概率。 对90%的人来说,这是对的人,对90%的人来说,是约翰。

我希望我能解释我的问题。我的问题是,在这种情况下我应该采用哪个分类器?我用 IBK 做到了,但如果我有 15 个人,概率将除以 15,我得到的概率很小。 概率取决于arff中存储的人数。或者我应该将结果乘以人数以获得真实概率?

最佳答案

注意:分布的所有概率之和必须为 1。

当你有更多的类时,你会得到“小概率”,但这并不是因为它除以类的数量,所以你不会找到你想要的将结果与类数相乘的概率:它不再是一个概率(它很容易变成 >1)。

<小时/>

您使用 IBk 获得的概率分布与您想要的不同:它告诉您存储的用户中哪一个与当前用户更相似(约翰 vs 保罗 vs 莎拉的概率等),独立于他所说的名字。

<小时/>

您想要的输出是二元分类器的结果,但您需要为存储的每个用户训练一个分类器。

每个分类器的训练集将与您已有的数据集类似,但是(以 John 为例)将有 isJohn 而不是 user,并且如果 user 是 John,则此新列将包含 true,否则包含 false

编辑

    character, key holdtime,    user
           90,        150ms,    John
           70,        120ms,   Sarah
          100,        110ms,    Paul

将成为

character, key holdtime,  isJohn
       90,        150ms,    true
       70,        120ms,   false
      100,        110ms,   false

该分类器的输出分布为 is Johnis not John

要获得所需的准确输出,您必须为每个存储的用户训练一个分类器,并根据当前用户所说的名称调用正确的分类器。

<小时/>

关于使用哪个分类器,我认为没有办法知道哪个分类器最适合您的情况。我通常会尝试一些分类器并选择最好的一个

关于java - 哪个 WEKA 概率分类器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33776151/

相关文章:

java - 在 Android 的 Runnable 中创建条件

java - 是否有用于触摸设备(如平板电脑)的 Java API?

php - 使用朴素贝叶斯分类器对推文进行分类 : some problems

java - 如何在 Scala 或 Java 中读取具有混合编码的文本文件?

java - 具有字符串属性的 WEKA 决策树

machine-learning - 如何创建名称实体识别并评估其在精确度和召回率方面的性能?

java - 如何在Java中对多声道声音输入进行采样

java - session 范围 Bean 不是 session 范围 Bean

java - 在 java 代码 : Class Attribute Not Set? 中使用 WEKA API 时出错

python - 如何分割测试和训练数据,以保证每个类别中至少有一个