matlab - 不平衡数据集的神经网络
问题描述
我有一个非常不平衡的数据集,由 6 个维度的 186219 行数据组成,包括 132 个真阳性和 186087 个假阳性,您建议尝试哪种类型的神经网络?我的谷歌驱动器IPDC_algorithm_training_dataset中的这个电子表格包含我的训练数据集。如果输出选项卡中的值为 100,则该特征为真阳性,如果某个特征的值为 0,则该特征为假阳性。
我现在与 MATLAB 捆绑在一起,所以如果我使用 MATLAB 来解决这个问题对我来说会更方便。
解决方案
对于不平衡的数据集,您的选择有限。如果你在整个数据集上训练一个神经网络,只要总是预测误报,它就可以达到 99.9% 的准确率。您需要以某种方式处理这种不平衡,例如丢弃(大量)误报样本或加权损失函数以解决不平衡问题。由于不平衡如此极端,您可能需要同时应用两者(以及正则化以防止过度拟合剩余数据)。
至于要使用什么网络类型,您可以只尝试一个基本的 MLP(多层感知器),至少作为基线 - 构建一个复杂的架构是没有意义的,需要训练更多的参数,数据集非常有限。
实际上,您最好使用浅层学习算法,例如增强树或朴素贝叶斯,或者获取更多数据以启用神经网络。如果新数据可能保持不平衡状态,则您需要大量额外数据。
推荐阅读
- python - 从 python 执行事件
- excel - 如何计算散点图中的系列
- java - 如何从本地 Maven 存储库中删除特定库
- javascript - 循环遍历来自字符串输入的嵌套对象
- security - 如何进行合理安全的功能许可证检查?
- oracle - Oracle SQL Developer Works SQLplus 不支持
- python - 如何在启动 UI 后以及稍后按下按钮时使用 QtPainter?
- python - 如何将外键合并到 django 表单中?
- powershell - 在显示空白字段的 ps 脚本中提取上次登录时间
- python - 在 python 底图上绘制路径