我在 R 中使用 PART 算法(通过包 RWeka)进行多类分类。目标属性是客户支付发票的时间段(如 7-15 天、15-30 天等)。我正在使用以下代码来拟合和预测模型:
fit <- PART(DELAY_CLASS ~ AMT_TO_PAY + NUMBER_OF_CREDIT_DAYS + AVG_BASE_PRICE, data= trainingData)
predictedTrainingValues <- predict(fit, trainingData)
通过使用这个模型,我在训练数据上获得了大约 82% 的准确率。但测试数据的准确率约为 59%。我知道我过度拟合了模型。我试图减少预测变量的数量(上面代码中的预测变量是减少的变量),但这并没有多大帮助。减少变量的数量将测试数据的准确度提高到 61% 左右,并将训练数据的准确度降低到大约79%。
由于 PART 算法基于部分决策树,因此另一种选择是修剪树。但我不知道如何为 PART 算法修剪树。在互联网搜索中,我发现 FOIL 标准可用于基于规则的修剪算法。但我无法在 R 或 RWeka 中找到 FOIL 标准的实现。
我的问题是如何为 PART 算法修剪树,或者任何其他提高测试数据准确性的建议也是受欢迎的。
提前致谢!!
注意:我将准确率计算为正确分类的实例数除以实例总数。