【发布时间】:2016-08-22 05:40:12
【问题描述】:
我正在尝试在 WEKA 中使用 10 倍 CV 评估分类器的性能。我有 32,000 条记录,分为三个不同的类,“po”、“ng”、“ne”。 宝:~950 ng: ~1200 ne: ~30000
我应该如何拆分数据集以执行 CV?我是否正确假设对于 CV,我应该为每个班级拥有大致相等数量的记录,以防止对“ne”班级的不公平加权?
【问题讨论】:
标签: classification weka
我正在尝试在 WEKA 中使用 10 倍 CV 评估分类器的性能。我有 32,000 条记录,分为三个不同的类,“po”、“ng”、“ne”。 宝:~950 ng: ~1200 ne: ~30000
我应该如何拆分数据集以执行 CV?我是否正确假设对于 CV,我应该为每个班级拥有大致相等数量的记录,以防止对“ne”班级的不公平加权?
【问题讨论】:
标签: classification weka
首先,不,你不必有相等的不。您班级中的案例。并非所有数据集都是平衡的。是的,它可能会给出不切实际的答案。数据集的不平衡是一种普遍现象,但处理它的策略很少-:
1) 重新采样数据集
欠采样-删除多数类的记录
过采样-在少数类中添加记录
您可以使用 SMOTE 算法为您完成。
2) 性能指标
像 Kappa(或 Cohen 的 kappa)这样的一些指标可以很好地发挥作用,其中分类准确性通过数据中类别的不平衡进行归一化。
3) 成本敏感分类器 Weka 有一个 CostSensitiveClassifier,它可以包装任何分类器并应用自定义惩罚矩阵来进行未分类。 但这里的挑战是如何确定成本,因为成本应该取决于领域而不是数据。
在交叉验证的情况下,我发现此链接很有用。 http://www.marcoaltini.com/blog/dealing-with-imbalanced-data-undersampling-oversampling-and-proper-cross-validation
希望对你有帮助。
【讨论】: