当前位置: 首页 > article >正文

ML 系列:机器学习和深度学习的深层次总结(06)— 提升数据质量

一、说明

在AI数据挖掘中,对原始数据的预处理是必须的技术手段,本篇将对数据预处理的一系列注意事项进行展示。

二、关于数据预处理

注意: 在本章中,讨论的技术和方法基于 Roy Jafari 的《Hands-On Data Preprocessing in Python》一书,该书为理解和实施有效的数据预处理工作流提供了有价值的参考。

数据预处理是指在应用机器学习算法之前准备数据以进行分析的技术和过程。这些步骤包括数据清理、数据规范化、数据缩减、将原始数据转换和组织成算法可以轻松使用的格式。数据预处理的目的是提高数据质量、减少噪声并消除任何不一致或可能的错误。

数据清理涉及删除或更正数据中的任何错误、不一致或缺失值。数据转换涉及将数据转换为更适合分析的格式,例如将分类数据转换为数值数据或降低数据的维度。数据规范化涉及缩放数据以确保其位于特定范围内,这对于某些机器学习算法可能很重要。数据集成涉及将来自多个来源的数据合并到单个数据集中。数据缩减涉及通过仅选择最相关的特征或样本来减小数据集的大小。

数据清理的过程可能因项目而异,并且无法提供有关如何执行数据清理的清晰分步说明,但是,我们可以将数据清理过程分为三个级别,如下所示:

三、清理一级

此级别是指数据的明显清理,大多数可用数据不需要此阶段的清理。如果数据集具有以下特征,则我们认为该数据集位于第一级:

  • 数据应具有标准结构。

  • 列的标题应清晰且可编码。

  • 每行数据都有一个唯一的标识符。

这种清理的一个例子可以认为我们有几个文本文件,如下图所示,如图 2 所示,这些数据没有适当的结构,应该以标准格式合并,以便对其进行分析。

在这里插入图片描述
在图 3 中,我们将文本数据以集成的方式转换为以下形式。
在这里插入图片描述
图 3.集成数据以达到数据清理的一级
在图 3 中,每一行都分配给一个文本文件,现在可以说这些数据处于数据清理的第一级。

四、清理二级

此级别是指 解包、重组和重新构建表。与一级数据清理不同,在一级数据清理中,样品不需要特殊分析,而在此级别的清理中,通常需要进行分析。如前所述,图 3 中的数据处于第一级清洗,如果我们注意每一行的名称,我们可以提取城市、月份和日期的名称,现在如果我们想要第二级清洗数据,具体打开数据的名称, 得到图 4。
在这里插入图片描述
图 4. 解压缩数据名称并向数据添加不同的列
在第二级数据清理中,可以进行更多的分析,例如以这样一种方式解包数据内容,即四个词的重复次数 [‘vote’, ‘tax’, ‘campaign’, ‘economy’] 并根据如图 5 所示向数据添加列,作为此分析的结果。
在这里插入图片描述
图 5. 解压缩数据内容并向数据添加不同的列
为了进一步分析,可以可视化添加的四列的不同值,如图 6 所示。
在这里插入图片描述
在这里插入图片描述
图 6. 可视化不同月份四个单词的重复次数

五、结论

在第 1 级中,我们清理了表格,但没有注意数据结构或记录的值。在第 2 级中,我们关注的是拥有一个能够支持我们分析目标的数据结构,但我们仍然没有太多关注记录值的正确性或适当性。这就是数据清理级别 3 的目标。在数据清理级别 III 中,我们将重点关注记录值,并采取措施确保解决与数据中记录的值相关的三个问题。首先,我们将确保检测到数据中的缺失值,我们知道发生这种情况的原因,并已采取适当的措施来解决这些问题。其次,我们将确保我们采取了适当的措施,以确保记录的值是正确的。第三,我们将确定已检测到数据中的极值点,并已采取适当措施解决它们。


http://www.kler.cn/a/323455.html

相关文章:

  • ubuntu22 安装 minikube
  • C语言之MakeFile
  • 图像处理之cornerdetection(角点检测)综述
  • 制作图片马常用的五种方法总结
  • 力扣 LeetCode 239. 滑动窗口最大值(Day5:栈与队列)
  • 解决failed to execute PosixPath(‘dot‘) 或者GraphViz‘s executables not found
  • 数通。。。
  • uniapp js向json中增加另一个json的全部数据,并获取json长度
  • 【分布式微服务云原生】Dockerfile命令详解
  • 一站式家装服务管理系统
  • day01——通过git进行管理项目
  • HarmonyOS鸿蒙系统开发应用程序,免费开源DevEco Studio开发工具
  • 【中间件——基于消息中间件的分布式系统的架构】
  • C语言开发基础新手快速入门及精通系列学习教程(系统性完整C语言学习笔记整理)
  • Android常用C++特性之std::unique
  • 接口报错500InvalidPropertyException: Invalid property ‘xxx[256]‘,@InitBinder的使用
  • Python编程:08- pycharm使用技巧
  • OpenSource - 开源WAF_SamWaf
  • 详解Ajax与axios的区别
  • 增强现实中的物体识别与跟踪
  • rocketmq 学习文档
  • Vue3(五) 组件通信大汇总
  • 学习记录:js算法(四十八):另一棵树的子树
  • 【C++】Eclipse技巧汇总
  • Codeforces Round 975 (Div. 2) A. Max Plus Size
  • 使用JLINK合并boot和app两个hex文件,使用Keil烧写到单片机