数据清洗遇到的问题思考
因为本次任务是基础的数据预处理和数据集划分,所以本次讨论不涉及特征工程和模型相关的。
问题一 缺失数据
有很多人问到了缺失值处理的问题。统一汇总提问:
为什么需要处理缺失值?
确实值会影响模型训练,某些特征值确实,有可能使得该条样本完全是负样本,影响模型。缺失率大于多少时应当抛弃该特征?
一半比例的数据可以丢弃缺失值填充有哪些方法?
缺失值填充方法:- 特殊值、均值、中位数、众数等
- 随机插补法----从总体中随机抽取某个样本代替缺失样本
- 多重插补法----通过变量之间的关系对缺失数据进行预测,利用蒙特卡洛方法生成多个完整的数据集,在对这些数据集进行分析,最后对分析结果进行汇总处理
- 热平台插补----指在非缺失数据集中找到一个与缺失值所在样本相似的样本(匹配样本),利用其中的观测值对缺失值进行插补
- 拉格朗日差值法和牛顿插值法
缺失值不多的时候,有时也可以不用处理,xgb之类的模型可以处理
处理缺失值的时候大多会选用中位数、均值或是二者的融合来对数值型特征进行填补,使用出现次数最多的类别来填补缺失的类别特征。
采用均值填充的影响或者优缺点?
缺点:大大降低数据的方差,即随机性5 需要依据什么样的准则去选择合适的方法?
(1) 删除- 如果行和列的缺失达到一定的比例,建议放弃整行或整列数据(2) 插补
- 列的维度上,如果是连续性,就使用平均值插补,如果是离散性,就使用众数来插补
- 行的维度上,引入预测模型,可考虑辅助回归,通过变量间的关系来预测缺失数据
(3) 不处理
当缺失值对模型的影响不大时,直接在包含空值的数据上进行数据挖掘
- 需要依据什么样的准则去选择合适的方法?
具体可以看数据分布情况,及业务情况。常见的能够自动处理缺失值的模型包括:KNN、决策树和随机森林、神经网络和朴素贝叶斯、DBSCAN。
离群值如何处理
大多数的参数统计数值,如均值、标准差、相关系数 等,以及基于这些参数的统计分析,均对离群值高度敏感。因此,离群值的存在会对数据分析造成极大影响
特征太多了
这个情况在银行业普遍存在,当然,其他领域估计也会有。以我个人经历,在实际生产中会有一张表超过300个字段的情况,哪些字段该要哪些不该要确实比较麻烦。我采取的方式是首先去判断哪些字段值重复率较高,这个通过sql语句group by可以直接看出来。其次把数据通过spss对每一个特征进行分析,是绘图还是简单的分析,软件里面都有提供,基本上通过上面两步保证百分之七八十吧,如果仅仅是是在数据探索阶段的话,基本上就完成了
时间序列如何处理
依情况处理,主要看单独时间字段或时间字段与某些字段的组合属性对目标分析的作用程度,再采取相应方式来进行特征提取比如:可以将时间字段与其他字段属性进行组合,分析每天、每周、每月或特点星期几等情况下特征数据频率信息,总的来说还是得看分析得目标。
时间特征处理:Python标准库包含用于日期(date)和时间(time)数据的数据类型,而且还有日历方面的功能。参考资料:https://www.jianshu.com/p/29ece4592178 《利用Python进行数据分析·第2版》第11章 时间序列
某些特征编码问题
有些特征离散值有1000个,如何编码?
好像有两种编码,一种是one-hot,那就是彼此之间没关系。一种是dummy,那就是有顺序性的特征。或者城市那个特征,用map处理成一线城市、二线城市、三线城市等等,这样对城市进行归类。如果用数值来反映就会存在一个问题:因为1,2,3,4,5会导致有排序关系。所以会有依赖关系。所以我们就需要根据实际情况去判断,我们的类别间到底存不存在距离关系。比如成绩的 优良差。他们是有距离关系的,差和优的"距离"确实比 良和优的"距离”要远的。
数据不平衡问题
数据不平衡会导致衡量指标(如:准确率、召回率)异常的好。可以用上采样 、下采样 、smote等方法,这些都是从数据集数量本身的角度出发,增加少的类别 减少多的类别
关于过采样和欠采样推荐大家看一个博客,写的挺详细的https://blog.csdn.net/qq_27802435/article/details/81201357。另外这是imbalanced-learn的官方文档https://imbalanced-learn.readthedocs.io/en/stable/api.html,具体效果图里面都有。另附github链接:https://github.com/scikit-learn-contrib/imbalanced-learn/tree/12b2e0d2858a30d4687fbf910372b8f416b33998
数据清洗遇到的问题思考相关推荐
- 数据分析师+前途无忧爬虫分析
首先说明这篇文章的数据来源,为前程无忧中所有"数据分析师"这一职位信息所得来的.并且主要分析了数据分析师在全国不同地区的需求情况.总体薪酬情况.不同城市薪酬分布.不同学历薪酬分布. ...
- a连接带id转送不了数据_你找到了数据清洗利器?
大家好,这期给大家介绍SQL中的一个函数NVL. 为什么笔者突然要提起它呢?原因,竟是! 哈哈UC浏览器的风格无疑了.其实原因很简单,就是笔者经常阅读同事写的代码.然后经常看到在表连接时会出现NVL函 ...
- 5G时代下,AI赋能行业的思考
编辑导语:如今,AI从一个遥不可及的科技变成了随手可见的产品,那么在5G时代下,AI又将得到怎样的发展呢?本文作者通过分析AI行业市场的基本状况,指出了其业务范围和行业分布,并且对AI的未来进行了展望 ...
- 【边缘计算】对边缘计算的理解与思考
来源:边缘计算社区 在2019年第三届边缘计算技术研讨会上华为高级产业发展经理.ECC需求与总体组副主席黄还青发表了<ECC及华为在边缘计算领域的思考与实践>主题演讲,本文为黄还青演讲中对 ...
- aryson ms sql_数据治理:SQL数据清洗十八般武艺
在Towards Data Science上看过一篇文章,讲的是用Pandas做数据清洗,作者将常用的清洗逻辑封装成了一个个的清洗函数. https://towardsdatascience.com/ ...
- 怎么用python处理数据_Python数据清洗 - 洗什么?怎么洗?看完就明白了
编辑推荐: 文章来自于csdn,本文主要讲解python数据预处理中的数据清洗的主要工作:缺失值处理.重复值处理.异常值处理的相关内容,希望对您的学习有所帮助. 数据挖掘过程中,采集的原始数据里存在着 ...
- 多业务融合推荐策略实践与思考
导读:58同城作为分类信息网站,服务覆盖多个领域,如房屋租售.招聘求职.二手买卖等等,不同的业务有不同的特点,这使得多业务融合推荐成为一大挑战.如何准确挖掘用户的需求?如何平衡各业务之间的流量分配?如 ...
- 如何学人工智能的思考
起因: 昨晚在人工智能大师班微信群里有同事问,数学如何学.我有感而发发表了一下我学习人工智能的思路. 一觉睡醒,昨晚的讨论又让我有了新的思考.所以写了这篇文章. 背景: 1. 我曾经花过几个月的时间去 ...
- Python数据清洗 - 洗什么?怎么洗?看完就明白了
目录 缺失值处理 删除缺失值 插补缺失值 不处理缺失值 重复值处理 异常值处理 遍历查找异常值,并根据规则调整大小 删除异常值 视为缺失值后进行插补 数据挖掘过程中,采集的原始数据里存在着各种不利于分 ...
最新文章
- 关于Oracle组件如何正确实现动态Web的数据库
- idea2019配置gradle详解_Java学习之——Gradle的安装配置、IDEA中创建Gradle的Java项目...
- 一步一步教你在 docker 容器下使用 mmdetection 训练自己的数据集
- 记录一次可能的order by注入
- 在mysql支持关系模型中_MySQL支持关系模型中、和三种不同的完整性约束
- VS 2019 for Mac 8.1 正式版和 8.2 预览版发布
- java 发送邮件_SpringBoot 2.1.5发送验证码邮件
- Python字符串isalpha()
- android kl文件
- Ubuntu下升级安装gcc-7.5.0教程
- RestTemplate设置代理
- Unity 3D ScrollView控件(滚动视图)
- MUI框架默认全局不可复制
- windows添加hosts
- 【论文解读】 FPGA实现卷积神经网络CNN(二): Optimizing FPGA-based Accelerator Design for DCNN
- 制作自己的ChatGPT
- xshell个人免费版
- 定制xdoclet 标签
- SDIO WiFi调试经验总结
- a DNS-1123 label must consist of lower case alphanumeric characters or ‘-‘, and must start and end w