Machine learning 将Weka分类器转换为分数

Machine learning 将Weka分类器转换为分数,machine-learning,classification,weka,Machine Learning,Classification,Weka,我试图将实例分类为0或1的分类器结果转换为一个分数(置信度?),比如0到10之间, 我使用的是RIDOR分类器,但也可以通过回归、RandomForest或AttributeSelectedClassifier轻松地使用Classification,尽管它们的分类效果不太好 我已经将我能输出的一切输出到终端(选中所有选项),但在预测中找不到置信度度量。此外,据我所知,没有一个可以选择输出源代码?在这种情况下,我将不得不手动编码分类器 以下是生成的规则示例: class = 2 (405

我试图将实例分类为0或1的分类器结果转换为一个分数(置信度?),比如0到10之间, 我使用的是RIDOR分类器,但也可以通过回归、RandomForest或AttributeSelectedClassifier轻松地使用Classification,尽管它们的分类效果不太好

我已经将我能输出的一切输出到终端(选中所有选项),但在预测中找不到置信度度量。此外,据我所知,没有一个可以选择输出源代码?在这种情况下,我将不得不手动编码分类器

以下是生成的规则示例:

    class = 2  (40536.0/20268.0)
       Except (fog <= 14.115114) and (polySyllabicWords/Sentence <= 1.973684) and (polySyllabicWords/Sentence <= 1.245) and (Characters/Word > 4.331715) => class = 1  (2309.0/5.0) [1137.0/4.0]
       Except (fog <= 14.115598) and (polySyllabicWords/Sentence <= 1.973684) and (polySyllabicWords/Sentence > 1.514706) => class = 1  (2281.0/0.0) [1112.0/0.0]
       Except (fog <= 14.136126) and (Words/Sentence > 19.651515) and (polySyllableCount <= 10.5) and (polySyllabicWords/Sentence > 2.416667) and (Syllables/Sentence <= 34.875) => class = 1  (601.0/0.0) [303.0/6.0]
       Except (fog <= 14.140863) and (polySyllabicWords/Sentence <= 1.944444) and (polySyllableCount <= 4.5) and (polySyllabicWords/Sentence <= 1.416667) and (wordCount > 29.5) and (Characters/Word <= 4.83156) => class = 1  (333.0/0.0) [152.0/0.0]
       Except (fog <= 14.142217) and (polySyllabicWords/Sentence <= 1.944444) and (polySyllableCount <= 4.5) and (polySyllabicWords/Sentence <= 1.416667) and (numOfChars > 30.5) and (Syllables/Word <= 1.474937) => class = 1  (322.0/0.0) [174.0/4.0]
       Except (fog <= 14.140863) and (polySyllabicWords/Sentence <= 1.75) and (polySyllableCount <= 4.5) => class = 1  (580.0/28.0) [298.0/21.0]
       Except (fog <= 14.141508) and (Syllables/Sentence > 25.585714) and (Words/Sentence > 19.683333) and (sentenceCount <= 4.5) and (polySyllabicWords/Sentence <= 2.291667) and (fog > 12.269468) => class = 1  (434.0/0.0) [202.0/0.0]
       Except (fog <= 14.140863) and (Syllables/Sentence > 25.866071) and (polySyllableCount <= 16.5) and (fog > 12.793102) and (polySyllabicWords/Sentence <= 2.9) and (wordCount <= 59.5) and (Words/Sentence > 16.166667) and (Words/Sentence <= 24.75) => class = 1  (291.0/0.0) [166.0/0.0]
       Except (fog <= 14.140863) and (Syllables/Sentence > 25.585714) and (Words/Sentence > 19.630682) and (polySyllabicWords/Sentence > 2.656863) and (polySyllableCount <= 16.5) and (fog > 13.560337) and (Words/Sentence <= 21.55) and (numOfChars <= 523) => class = 1  (209.0/0.0) [93.0/2.0]
       Except (fog <= 14.147578) and (Syllables/Word <= 1.649029) and (polySyllabicWords/Sentence <= 1.75) and (polySyllabicWords/Sentence > 1.303846) and (polySyllabicWords/Sentence <= 1.422619) and (fog > 9.327132) => class = 1  (183.0/0.0) [64.0/0.0]......
class=2(40536.0/20268.0)

除此之外(fog一般来说,从分类器中获取置信度并不容易,尤其是如果您希望对其进行校准(例如,表示为分类正确的概率)。然而,有几种相对简单的方法可以获得粗略估计

对于基于树和规则的分类器,括号中的数字表示存储桶中包含的正确/错误样本的数量。例如,具有(20,2)的存储桶根据列车数据,这意味着有20种情况下该规则是正确的,2种情况下该规则是错误的。您可以使用该比率作为信心的粗略衡量

使用回归时,您可以让WEKA输出分类器(而不仅仅是类)的实际数值结果,并在此基础上进行置信度度量


更一般地说,根据文档,您可以使用推荐行的-p选项(请参阅)。但是,我不确定这些数字是如何计算的。

一般来说,从分类器中获得置信度并不容易,特别是如果您希望校准它(例如,表示为分类正确的可能性).然而,有几种相对简单的方法可以得到粗略的估计

对于基于树和规则的分类器,括号中的数字表示存储桶中包含的正确/错误样本的数量。例如,具有(20,2)的存储桶根据列车数据,这意味着有20种情况下该规则是正确的,2种情况下该规则是错误的。您可以使用该比率作为信心的粗略衡量

使用回归时,您可以让WEKA输出分类器(而不仅仅是类)的实际数值结果,并在此基础上进行置信度度量


更一般地说,根据文档,您可以使用推荐行的-p选项(请参阅)。但是,我不确定这些数字是如何计算的。

是的,第一行表示默认分类应为(2),除非以下规则之一为真。是的,第一行表示默认分类应为(2),除非以下规则之一为真。