首页 > 解决方案 > 使用采样频率的 mlpack 训练加权决策树

问题描述

按照官方文档中的示例,我现在正在训练一个决策树分类器:

arma::rowvec weights = arma::randu<arma::mat>(1, labels.size());
size_t numClasses = 2;

KFoldCV<DecisionTree<>, Accuracy> cv2(5, data, labels, numClasses, weights);
size_t minimumLeafSize = 12;
double weightedDecisionTreeAccuracy = cv2.Evaluate(minimumLeafSize);

我的问题:如果来自 2 个类的样本分布不均匀,DecisionTree 是否运作良好?我应该如何修改我的代码以考虑到在训练集中有 75% 的样本来自第 1 类,它们狭窄地分布在单个值附近,而剩下的 25% 来自第 2 类并且非常稀疏?

标签: c++decision-treemlpack

解决方案


推荐阅读