如何处理深度学习中的缺失值和异常值?

大家好!在深度学习的世界里,我们时常会遇到两个隐形杀手——缺失值和异常值。这两个家伙容易让我们的模型走进歧途。但别担心,我将为你们介绍一些处理策略,让你们的模型摆脱困境。

第一步:处理缺失值

缺失值是深度学习中的“隐形幽灵”,经常在数据集中游荡。处理缺失值的方法有很多种。

  1. 删除法:最简单的方法是直接删除含有缺失值的样本。但是这样会导致数据量减少,影响模型的训练效果,所以要谨慎使用。

  2. 填充法:我们可以使用均值、中位数、众数等来填充缺失值,保持数据量不变。

  3. 插值法:对于时间序列数据,我们可以使用插值法(如线性插值、拉格朗日插值)来估计缺失值。

  4. 模型预测法:对于一些特定类型的数据,我们可以使用其他模型(如KNN、决策树)来预测缺失值。

第二步:处理异常值

异常值是深度学习的“捣蛋鬼”,它们可能来自于测量误差、数据录入错误等。

  1. 观察法:我们可以使用散点图、箱线图等可视化工具来观察异常值,并手动进行处理。

  2. 重设法:将异常值视为缺失值,使用之前介绍的缺失值处理方法来进行处理。

  3. 截断法:将超出一定范围的异常值截断为边界值,使得它们不会对模型产生较大的影响。

第三步:数据标准化

在处理完缺失值和异常值后,我们还需要对数据进行标准化。标准化可以让数据落在一个统一的尺度范围内,避免某些特征因数值大小而对模型产生更大影响。

感谢大家对文章的喜欢,欢迎关注威

❤公众号【AI技术星球】回复(123)

白嫖配套资料+60G入门进阶AI资源包+技术问题答疑+完整版视频

内含:深度学习神经网络+CV计算机视觉学习(两大框架pytorch/tensorflow+源码课件笔记)+NLP等

综上所述,处理深度学习中的缺失值和异常值是至关重要的一步。选择合适的处理策略能够有效提高模型的训练效果和泛化能力。记住要根据数据特点和问题类型选择合适的处理方法,相信你们能让模型摆脱隐形杀手,获得更好的表现!加油,你们是最棒的!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于Pytorch框架及深度学习算法实现百度Aistudio无人车车道线检测python源码+数据集+超详细注释.zip ## 特色 1. 对unet做了一些抽象,可以较容易地替换backbone成其他的,比如不同版本的resnet。见`nets/unet.py`。 2. 针对unet的输出尺寸跟输入尺寸不一致的问题做了微调,使其一致。好处是,跑出来的结果可以直接用,不必像baseline那样在最后要对结果做人工修正。 3. 利用训练的过程miou的异常下降筛查出一部分有问题的训练数据,并将这些脏数据去掉后,重新训练,效果得到比较大的提升。相关的逻辑可以在代码里搜`LOG_SUSPICIOUS_FILES`。脏数据主要包括:标签错误,标签缺失,原图过曝(百度比赛说明里提到,车道线的标记是用其他方式得到的,并非在原图上得到,所以会出现原图压根看不见车道线,但标签里却标出来了)。 4. 参考了baseline的思路,对原图裁掉了上侧小半部分,因为这些地方都是天空和树木这种背景,裁掉后还可以减小图片,使得在有限的显存下能训练得下去。 5. 参考了baseline的思路,先后将裁剪后的原图缩小到3种分辨率(768x256, 1024x384, 1536x512)进行训练,比如在768x256下训练了十来个epoch后,将最后的权重作为预训练权重,在1024x384的分辨率上重新训练。由于本人训练时的显存只有15G,所以对应这三种分辨率的batchsize分别是8/4/2。 6. 对原图进行分辨率缩放时,采用的是双线性插值模式(cv2.INTER_LINEAR)。但对于标签图进行缩放时,采用的是最近邻模式(cv2.INTER_NEAREST),因为标签的像素值有特殊的含义,如果用双线性插值的话,缩放后会出现约定范围之外的像素值。相应地,对于推断结果,即预测的标签图,需要恢复成原图尺寸,也要采用最近邻模式。见`utils/data.py` ## 改进思路 1. 训练的时候发现,个别class的iou特别低,直接拉低了miou。应该是因为训练数据不平衡导致的,可以考虑数据增强,或者对这些class使用加权。 2. 训练出0.684的miou,采用的是最基础的unet网络,backbone都没换。但可以考虑尝试deeplab v3+之类的,看是否有更好的效果,最后还可以考虑融合。 3. 尝试不同训练阶段使用不同的loss或者组合。 4. 尝试其他优化器? ## 文件说明 1. 配置在`config.py` 2. data_list/bad.csv 是初赛训练数据里要剔除的数据 3. data_list/train.csv 是初赛训练数据里作为训练集使用的 4. data_list/val.csv 是初赛训练数据里作为验证集使用的 .......

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值