我使用随机森林分类器(在R中)来对数据集中丢失的数据进行分类。基本上,我有一堆对象(公司),我想从其他属性(capital、owning_group和state)中猜测一个属性(D3)。相依属性是一个范畴变量(size),它有三个可能的值(小、中、大)。一个由3个变量组成的随机森林(R包randomForest)提供了以下输出:
ff = size ~ capital + owning_group + state
Call:
randomForest(formula = ff, data = df, importance = T, ntree = ntree, na.action = na.omit)
Type of random forest: classification
Number of trees: 2000
No. of variables tried at each split: 1
OOB estimate of error rate: 32.41%
Confusion matrix:
large medium small class.error
large 238 17 237 0.51626016
medium 80 25 322 0.94145199
small 73 30 1320 0.07238229
Overall Statistics
Accuracy : 0.7297
95% CI : (0.7112, 0.7476)
No Information Rate : 0.8049
P-Value [Acc > NIR] : 1
Kappa : 0.426
Mcnemar's Test P-Value : <2e-16
Statistics by Class:
Class: large Class: medium Class: small
Sensitivity 0.7087 0.84211 0.7294
Specificity 0.8868 0.83981 0.8950
Pos Pred Value 0.5488 0.14988 0.9663
Neg Pred Value 0.9400 0.99373 0.4450
Prevalence 0.1627 0.03245 0.8049
Detection Rate 0.1153 0.02733 0.5871
Detection Prevalence 0.2101 0.18232 0.6076
Balanced Accuracy 0.7977 0.84096 0.8122我把这个输出解释为:模型的准确率为73%,分类器对于medium和large有很多错误,但是small基本上是正确的。P值是否表示模型不显着?
假设这种精度对我的上下文来说是可以的,那么除了这些简单的观察之外,我如何验证这个模型呢?
发布于 2018-09-14 08:24:25
首先,如果您试图用RF模型来计算缺少的值,那么请看一下rfImpute()函数。
其次,您的数据不平衡,这就是您的分类不好的原因,您的模型偏向多数类(small),因此它将您的许多案例分类为多数类。不平衡问题需要得到解决。
验证是使用测试集完成的,因为您从模型中获得的结果已经使用交叉验证(称为OOB分数)完成。
https://datascience.stackexchange.com/questions/36134
复制相似问题