现实世界的数据在大多数情况下是不完整的、嘈杂的和不一致的。
随着数据生成的指数增长和异构数据源数量的增加,收集异常或错误数据的概率相当高。
但只有高质量的数据才能产生准确的模型,并最终做出准确的预测。因此,处理尽可能高质量的数据至关重要。这个处理数据的步骤被调用数据预处理,这是数据科学的重要步骤之一,机器学习,以及人工智能。
数据预处理是将原始数据转换成有用的、可理解的格式的过程。真实世界或原始数据通常具有不一致的格式、人为错误,而且可能不完整。数据预处理解决了这些问题,使数据集更完整、更高效地进行数据分析。
这是一个至关重要的过程,可以影响数据挖掘和机器学习项目的成功。它可以更快地从数据集发现知识,并最终影响机器学习模型的性能。
换句话说,数据预处理就是将数据转换成计算机可以轻松处理的形式。它使数据分析或可视化变得更容易,并提高了在数据上训练的机器学习算法的准确性和速度。
正如您所知,数据库是数据点的集合。数据点也称为观测、数据样本、事件和记录。
每个样品用不同的特征来描述,也称为特征或属性.数据预处理对于有效地构建具有这些特性的模型至关重要。
收集数据时可能会出现许多问题。您可能必须聚合来自不同数据源的数据,从而导致不匹配的数据格式,例如integer和float。
提示:使用的自动化能力机器学习软件和那些乏味的任务说再见。
如果您从两个或多个独立数据集聚合数据,则gender字段可能有两个不同的值:man和male。同样地,如果您从10个不同的数据集中聚合数据,那么在其中8个中出现的字段可能在其余两个中丢失。
通过对数据进行预处理,我们使数据更容易解释和使用。这个过程消除了数据中的不一致或重复,否则会对模型的准确性产生负面影响。数据预处理还确保不存在任何由于人为错误或bug而导致的错误或丢失的值。总之,采用数据预处理技术可以使数据库更加完整和准确。
对于机器学习算法来说,质量是最重要的训练数据.它们的表现或准确性取决于数据的相关性、代表性和综合程度。
在了解如何预处理数据之前,让我们先看看影响数据质量的一些因素。
对于机器学习模型来说,数据就是素材。
一个不完整的训练集可能会导致诸如偏见等意想不到的后果,给特定群体带来不公平的优势或劣势。不完整或不一致的数据也会对数据挖掘项目的结果产生负面影响。为了解决这些问题,使用了数据预处理的过程。
数据处理有四个阶段:清理、集成、还原和转换。
数据清理清理是指通过计算缺失值、去除异常值、纠正不一致的数据点和平滑噪声数据来清理数据集的过程。从本质上讲,数据清理背后的动机是为机器学习模型提供完整和准确的样本。
数据清理中使用的技术是特定于数据科学家的偏好和他们试图解决的问题。以下是在数据清理过程中解决的问题和涉及的技术。
丢失数据值的问题是很常见的。它可能发生在数据收集过程中,也可能由于某些特定的数据验证规则。在这种情况下,您需要收集额外的数据样本或查找额外的数据集。
当您连接两个或多个数据集以形成更大的数据集时,也会出现值丢失的问题。如果不是所有的字段都出现在两个数据集中,最好在合并之前删除这些字段。
以下是一些解释丢失数据的方法:
如果数据库中任何行或列的值丢失了50%,最好删除整个行或列,除非可以使用上述任何方法填充值。
大量无意义的数据被调用噪音.更准确地说,它是具有错误属性值的测量变量或数据中的随机方差。噪声包括重复或半重复的数据点,对特定研究过程没有价值的数据段,或不需要的信息字段。
例如,如果你需要预测一个人是否会开车,那么关于他头发颜色、身高或体重的信息就无关紧要了。
离群值可以被视为噪声,尽管有些人认为它是有效的数据点。假设您正在训练一种算法来检测图片中的乌龟。图像数据集可能包含错误标记为乌龟的海龟图像。这可以被认为是噪音。
然而,也有一些乌龟的形象看起来更像乌龟而不是乌龟。这个样本可以被认为是一个异常值,而不一定是噪声。这是因为我们想教算法所有可能的方法来检测乌龟,所以,偏离群体是必要的。
对于数值,可以使用散点图或方框图来识别异常值。
以下是用于解决噪音问题的一些方法:
由于数据是从各种来源收集的,数据集成是数据准备的关键部分。集成可能导致多个不一致和冗余的数据点,最终导致模型精度较低。
以下是一些整合数据的方法:
顾名思义,数据简化用于减少数据量,从而降低与数据挖掘或数据分析相关的成本。
它提供了数据集的压缩表示。尽管这一步减少了数据量,但它保持了原始数据的完整性。在处理大数据时,这个数据预处理步骤尤其重要,因为涉及的数据量很大。
以下是一些用于数据缩减的技术。
降维,也称为降维,减少数据集中要素或输入变量的数量。
数据集的特征或输入变量的数量称为其维数。特征的数量越多,可视化训练数据集和创建预测模型就越麻烦。
在某些情况下,这些属性中的大多数是相关的,因此是冗余的;因此,可以使用降维算法来减少随机变量的数量,得到一组主变量。
降维分为两部分:特征选择和特征提取。
在特征选择,我们试图找到原始特征集的子集。这允许我们得到一个更小的子集,可以用来建模问题。另一方面,特征提取将高维空间中的数据减少到低维空间,或者换句话说,减少维数的空间。
以下是一些降维的方法:
其他降维技术包括因子分析、独立成分分析和线性判别分析(LDA)。
特征子集选择是选择贡献最大或最重要的特征或属性子集的过程。
假设你试图通过查看相似学生的历史数据来预测一个学生是否会通过考试。您有一个具有四个特征的数据集:卷号、总分、学习时数和课外活动。
在这种情况下,学号不会影响学生的成绩,可以取消。新的子集将只有三个特征,并且将比原来的集合更有效率。
这种数据简化方法有助于创建更快、更经济高效的机器学习模型。属性子集选择也可以在数据转换步骤中执行。
Numerosity减少是用较小的数据表示形式替换原始数据的过程。有两种方法可以做到这一点:参数方法和非参数方法。
参数化方法使用模型表示数据。对数线性和回归方法用于创建此类模型。相反非参数方法使用聚类、直方图、数据立方体聚合和数据采样存储精简的数据表示。
数据转换是将数据从一种格式转换为另一种格式的过程。从本质上讲,它涉及到将数据转换成计算机可以有效学习的适当格式的方法。
例如,速度单位可以是英里每小时、米每秒或公里每小时。因此,数据集可以以不同的单位存储汽车的速度值。在将数据输入算法之前,我们需要将数据转换为相同的单元。
以下是数据转换的一些策略。
这种统计方法是在算法的帮助下去除数据中的噪声。它有助于突出数据集中最有价值的特性并预测模式。它还涉及到消除数据集中的异常值,以使模式更加可见。
聚合是指汇集来自多个数据源的数据,并将其以统一的格式表示,以便进行数据挖掘或分析。聚合来自不同来源的数据以增加数据点的数量是至关重要的,因为只有这样ML模型才会有足够的示例来学习。
离散化涉及将连续数据转换成更小的间隔集。例如,将人们分为“青少年”、“年轻人”、“中年人”或“老年人”等类别比使用连续年龄值更有效。
泛化涉及将低级数据特征转换为高级数据特征。例如,分类属性(如家庭地址)可以泛化为更高级的定义(如城市或州)。
归一化是指将所有数据变量转换成特定范围的过程。换句话说,它用于缩放属性的值,使其落在更小的范围内,例如,0到1。十进制缩放、最小-最大归一化和z-score归一化是数据归一化的几种方法。
特性构建包括从给定的特性集构建新的特性。这种方法简化了原始数据集,使分析、挖掘或可视化数据变得更容易。
概念层次结构生成允许您在要素之间创建层次结构,尽管未指定。例如,如果您有一个包含街道、城市、州和国家数据的房屋地址数据集,则可以使用此方法以分层形式组织数据。
机器学习算法就像孩子一样。他们几乎不知道什么是有利的,什么是不利的。就像孩子开始重复从成年人那里学到的脏话一样,不准确或不一致的数据很容易影响ML模型。关键是为他们提供高质量、准确的数据,数据预处理是必不可少的一步。
机器学习算法通常被认为是非常努力的。但有一种算法经常被贴上懒惰的标签。它被称为再算法是一种优秀的分类算法。
千万不要错过一个帖子。
订阅,让您的手指紧握科技脉搏。