我一直在从事机器学习项目。我使用的是Kstar,它给我很好的效果。为了获得更高的准确性,我将使用朴素贝叶斯。当我尝试做这样的事情

try {
        NaiveBayes ks= new NaiveBayes();
        String[] options={"-B", "20"};
        ks.setOptions(options);
        for (String s : ks.getOptions()) {
            System.err.println(s);
        }
        classifier=ks;


它给出了这个错误

java.lang.Exception: Illegal options: -B 20


当我尝试这个

try {
        NaiveBayes ks= new NaiveBayes();
        String[] options={"-K", "20"};
        ks.setOptions(options);
        for (String s : ks.getOptions()) {
            System.err.println(s);
        }
        classifier=ks;


它给出了以下错误

java.lang.Exception: Illegal options: 20


所以我尝试了这个

try {
        NaiveBayes ks= new NaiveBayes();
        String[] options={"-K"};
        ks.setOptions(options);
        for (String s : ks.getOptions()) {
            System.err.println(s);
        }
        classifier=ks;


这工作了。但是准确性比Kstar差很多。我认为原因是没有为多项式内核设置选项。所以我需要正确设置选项(为多项式内核提供指数值)

请在这里帮我

最佳答案

每个分类器都有自己的一组参数。 KStar包含“ -B 20”选项(用于“手动混合”),但不是NaiveBayes的参数。 NaiveBayes -K选项也用于内核密度估计,但不是KStar的参数。

至于NaiveBayes模型的准确性,很难说是否与这些设置,数据的结构或模型的拟合有关。希望这些答案将在您继续试验该问题时进一步向您显示。

10-04 17:31