在Weka 3.8.3(一个机器学习平台)中,使用JRip分类器进行分析的结果形式如下。
=== Summary ===Correctly Classified Instances 158 25.2396 %Incorrectly Classified Instances 468 74.7604 %Kappa statistic 0.0004Mean absolute error 0.3743Root mean squared error 0.4365Relative absolute error 99.7998 %Root relative squared error 100.7977 %Total Number of Instances 626 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class 0.166 0.162 0.255 0.166 0.201 0.504 A 0 0 0 0 0 0.464 B 0.006 0.009 0.2 0.006 0.012 0.526 C 0.829 0.829 0.252 0.829 0.387 0.499 DWeighted Avg. 0.252 0.252 0.177 0.252 0.151 0.498=== Confusion Matrix === a b c d <-- classified as 26 0 1 130 | a = A 31 0 1 123 | b = B 20 0 1 135 | c = C 25 0 2 131 | d = D
使用RWeka 0.4-40(适用于R的Weka),同类型的分析结果形式如下。
=== Summary ===Correctly Classified Instances 203 32.4281 %Incorrectly Classified Instances 423 67.5719 %Kappa statistic 0.0966Mean absolute error 0.3605Root mean squared error 0.4246Relative absolute error 96.1482 %Root relative squared error 98.0552 %Total Number of Instances 626 === Confusion Matrix === a b c d <-- classified as 41 0 3 113 | a = A 12 0 5 138 | b = B 7 0 23 126 | c = C 9 0 10 139 | d = D
“详细类别准确度”部分(原始Weka结果中的第二部分)的数据在哪里?我尝试了
library(RWeka)library(caret)TrainData <- p[,2:211]TrainClasses <- p[,215]jripFit <- train(TrainData,TrainClasses,method='JRip')jripFitsummary(jripFit)str(jripFit)
但哪里也找不到。显然,p
是我的数据框,第215列是分类器。
回答:
没有必要使用caret
包。
library(RWeka)jripFit <- JRip(myClass ~ ., data = p[,c(2:211,215)])summary(jripFit,class=T)
其中myClass
是p
的第215列的名称,必须是因子(而第2到211列是数值型)。
另一个有趣的点:JRip
函数比train
函数快了663倍(!),至少在我的机器上是这样。