摘要
一个预测系统受许多因素的影响。最主要的影响因素是实例数据的描述和特征。在存在不必要和冗余的数据或嘈杂和欺骗性信息的情况下,在训练阶段发现知识变得困难。数据分析中的一个长期挑战是识别和纠正脏数据。如果个人未能做到这一点,结果将是不可靠的决定和不准确的分析。很多人都知道,机器学习模型的性能受到数据质量的影响。因此,科学家们在模型训练之前花费了大量的时间来清理数据。数据预处理被无数研究者认为是最大似然方法的基础阶段。然而,只有一小部分作品强调了数据处理技术的后果。本文讨论了数据预处理问题对ML算法通用性的严重影响,并讨论了所有的预处理技术,如所有可能的方法去除缺失值、数据入库和数据归一化等。在执行了所有的预处理技术后,将数据集划分为训练和测试数据集,然后应用机器学习算法。结论是,为了获得可靠的结果或更高的精度,数据预处理起着非常重要的作用,要建立机器学习模型,必须对所有的预处理技术有深入的了解,并了解它们在哪里和如何应用。
机器学习;决策树;支持向量机;NAÏve Bayes(NB)。
一、引言
由于计算机被分配来做出在很大程度上影响人们生活的逻辑决策,因此机器学习算法工作中与透明度和公平性相关的问题变得非常重要[1]。透明度和公平这两个术语在算法的工作中都发挥着至关重要的作用,其中透明度提供了对决策方式的深入了解,而公平指的是相似个体的皮肤决策结果[8]。在概念模型中,阐述了基本的计算过程,如时间序列中的数据收集、学习算法、统计处理、知识获取的估计及其在知识库中的存储和决策。包括在概念模型中的方法可以用于对比软件平台的实现。此外,该领域的关键知识并不总是直截了当和明确的。数据集中可能包含数百个属性,其中一部分对于特定任务的分析是多余的[12]。尽管如此,改变少数重要属性的影响可能会导致局势恶化。
A.机器学习
机器学习算法无疑从机器可读的信息中获取知识。机器学习算法可以组装很少精确和不太可理解的结果,或者如果数据不够充分或不相关且无关紧要的信息 [1][11],可能会崩溃以找到任何用途。机器学习方法在过去几年中获得了用于软件估计成本的火焰,并具有多种报告的严重应用。保证机器学习模型可接受性是一个动态研究课题,它与算法透明度和公平性的概念有关。与大多数支付给模型自我解释问题的方法不同,我们观察到在影响模型预测行为的数据预处理过程中做出了大量决策。此外,它们被加密为特定的数据转换步骤,这些步骤是学习管道的组成部分。从机器学习项目中的功能模型获得改进结果的先决条件是正确格式化数据[20]。很少有指定的机器学习模型需要特定方式的信息,例如随机森林算法不会相应地维护缺失值记录,必须从新的未细化数据集中管理随机定理缺失值。另一个方面是数据中的格式应该以一种这样一种方式:在一个数据集中执行多个机器学习,并从中选择最吸引人的机器学习。
建模步骤机器学习模型形成的主要步骤是标记过程[16]的开始。有时现实世界中的数据不足、不稳定、不合适,通常缺乏特定的属性值或趋势[3]。从这个角度来看,需要数据处理。清理、格式和组织原始数据至关重要,方法是准备它用于机器学习模型[10]。
二、数据预处理
对于统计噪声数据、空闲数据、错位数据值等问题,预处理步骤是非常重要的。噪声、冗余数据以及无关数据通常可以由专家通过选择相关实例来去除[2] 。 此外,当数据集非常大时,运行ML算法可能很困难。近年来,新的抽象、接口、可伸缩性方法和数值技术等数据清理问题一直是工业界和学术界关注的焦点。此外,现实世界中的数据表示使用了许多属性,然而,其中只有一小部分可能对主题 [8] [9] 至关重要。特征子集选择是一种最大限度地识别和剔除不合适和不必要信息的方法。此功能允许学习算法更快、更有效地工作。
A.数据预处理中的任务
- 数据清理:数据再处理的第一步也是最重要的一步是数据清理。就像蔬菜在烹饪前要被清理一样,从有丰富数据的来源中提取的信息也要被清理,以便只保留适当的数据。它进一步将它们分为缺失数据和噪声数据[5]。
a) 数据错位:在进行无休止的数据处理过程中,从提取的信息中遗漏了一些信息。当然,有办法应对这些问题。
b) 不考虑元组:当存在大量信息并且需要巨大的预处理时,可以简单地不考虑缺失的元组。然而,如果使用大量数据执行,这才令人满意,因为丢失数据的机会更多,对于第二种选择,我们可以通过平均值、模式或中值方法填充值到数据集。
c) 噪声数据:如果机器无法证明数据,则可以将其称为聋哑数据[4]。当数据可能存在缺陷或某些干扰错误可能会偷偷地移动到它时,这才是可行的。然而,聋哑数据也可以以不同的方式照顾。
d)分箱法,回归和聚类这种方法可以将被分类和侧向保留的数据平面化。在这里,目前的数据是根据其特征进行划分的,然后根据其功能对个体进行适当的处理[6]。数据分箱是一种通过参考相邻值对值进行排序的技术,而回归是在一个变量已知或相关时估计另一个变量的值的方法。聚类的另一种预处理技术是在创建分区时根据相似性对数据点进行分组。 - 数据转换:这是识别在哪里适当地整合数据以用于机器学习训练过程的下一步。为了修改或转换数据以适应自己的需要,可以采用以下几种方法:
a)规范化:通过最小化冗余或将大值分成小值来组织数据集中的数据的过程[19]。
b)属性选择:对于相应的数据分类和转换,属性从预构建的范围中选择[17]。
c)离散化:使用内部和抽象级别来恢复不同数字属性的值。
d)层次结构发明:根据给定的层次结构进行从低级到高级的转换也是有趣的预处理技术之一。 - 数据约简:数据的约简表示可以通过许多不同的技术进行,并进行数据预处理以获得所需的结果[14]。最常用的还原技术有:
a)数据聚合:从可用数据集中获取减少的信息,以摘要形式表示称为数据聚合。
b)属性子集选择:找到最相关或最重要的属性集的过程,使数据类的结果概率分布尽可能接近使用所有属性[4]获得的原始分布。
c)数量下降:当通过选择另一种较小的数据表示形式来减少数据量时,称为Numerosity fall.
d)降维:使用不同的编码机制,数据集的维数可以从原始数据集转换。在不知道它是如何工作的的情况下,人们可能会或可能不会丢失数据[16]。如果减少的信息在减少后成功检索,则不需要这种技术,但如果不检索,那么丢失的数据就适合我们的数据集。
III.相关工作
S.Bannumathi, Dr.A.Aloysius [2] 讨论了构建机器学习模型的非常重要阶段。数据预处理技术,如去除缺失值、归一化 z 分数计算和归一化数据,应用于决策树、naïve Bayes 和支持向量机等数据集。支持向量机算法在所有预处理技术后都具有很高的准确性。
Sanjay Krishnan,Michael J。Franklin、Ken Goldberg、Jiannan Wang 和 Eugene Wu [3] 用数学术语描述了主动干净框架,并且还探索了控制对数据清理的影响程度,因为完全清理的数据似乎并不实用。主动干净框架在三个不同的阶段初始化、诊断界面和清理界面中执行。
Peng Li、Xi Rao、Jennifer Blasé、Xu Chu 和 Ce Zhang [4] 讨论了 KDD、Company 和 Titanic 等 13 个真实世界数据集,以及它们常见的错误,如缺失值、异常值和重复值等,并展示了数据清理对决策树、随机森林、朴素贝叶斯等机器学习算法的影响。该理论提供了盲目清理数据有时可能会对模型产生负面影响的事实。讨论了清理和训练模型的最终原则性方法,以实现更好的准确性。
Xu Chu, Ihab F。Ilyas、Sanjay Krishnan 和 Jiannan Wang [5] 讨论了检测、如何检测以及在哪里检测这个定性术语的数据清理。最近提出的数据清理算法按作者分类,以便正确识别和纠正错误。还讨论了一些不同的挑战,例如采样、数据可扩展性和数据有时可能是半结构化或非结构化的。
Saqib Alam和Niamin Yao[8]对机器学习算法中的文本预处理产生了影响,情绪分析提供了对文本的分析,预处理的哪一部分对其性能给出了积极、消极或中立的态度。这里SVM算法具有0.54%的净改进,NB在预处理算法之后具有8.12%的改进。为了进一步去除数字、拼写检查和标点符号,可以单独使用更多技术来观察对机器学习算法的影响。
Carlos Vladimiro Gonzalez Zelaya[9]在本文中介绍了波动性度量,它衡量应用特定预处理步骤的效果,无论我们是否应该应用这种特定的预处理技术。它可以是分类的,也可以是数字的,可以帮助更好地预测和理解数据。
四、数据预处理的效果
该数据集是从UCI知识库下载的,其中包括400多份慢性肾脏疾病的记录。它阐明了预处理对构建机器学习的影响,因为使用干净和适当的数据可以获得更好的准确性。此外,在本节中,所有的预处理技术都通过示例进行了展示。
下载的数据集可能有空值的机会,但是,为了更好地结果,无法使用这些空值,因此最初识别如何使用以下记录中删除这些空值,其中最简单的方法之一删除具有空值的行和列。
上述方法易于实现,但由于这里放弃了近一半的数据,因此不足以获得更好的结果。相比之下,还有另一种有效的预处理技术来消除空值,即通过模式或中位数。结果,可以在不丢失记录的情况下轻松填充空值。
从数值变量和分类变量中删除所有空值。接下来,观察下一个从原始数据到清理数据的“hemo”变量效果的例子。
预处理的另一个关键步骤是将所有分类值转换为数值,因为无法使用构建机器学习模型字符串或分类值,分类值可能有一组可能是序数变量的类别,这些值可以进行排名,有时可能是没有内在顺序的名义变量,以处理这些类型的值有很多不同的方法,但最受欢迎的是:
热独编码:当特定分类变量的最小值或向量时,可以实现这种类型的方法,因为它为每个案例存在 1 值生成列,并且每个案例没有 0 值。
标签编码:当根据特定变量的当前类别的数量分配从 1 到 N 的值时,这称为标签编码。另一方面,该算法的缺点是它可能会考虑值之间的顺序关系(例如 Apple<Mango<orange, et al.)。
当前的数据准备机器学习算法,但有一些更有趣的数据预处理技术,通过这些技术,数据集可以为执行同样的数据分组更可靠,如图 6 所示(将值分组到不同的 bin 中)。通过使用这种技术,数据集可以为机器学习算法更容易理解。现在,请参阅以下示例,该示例指定数据分组的应用如何使数据集对算法有效工作更加简洁。
特征缩放也是数据预处理技术之一,如图 7 所示,但是没有必要对所有算法应用特征缩放。通常,盲数据预处理为模型提供正、负或中性的结果。数据归一化和标准化是特征缩放的两种基本技术,归一化有助于缩小 0 到 1 之间的特征,而标准化有助于根据标准正态分布 (std) 缩小特征。归一化分布在所有给定的数值数据上执行,并且在特征归一化前后清晰度和细化的差异也很明显。
总结一下,所有常见的预处理技术都是在慢性肾病数据集中实现的,现在用于构建机器学习模型,实现决策树(DT)、支持向量机(SVM)、Naik配置文件(NB)等数据集已经准备好了。SVM 给出了 98% 的准确度更高。
五、结论
建立和实践高质量的机器学习模型是很复杂的。同样,在脏数据领域执行它也是令人痛心的。一旦遇到庞大、肮脏的数据集,专家们就会不断抱怨,因为他们发现很难知道从哪里开始清理过程。本文讨论了如何清理我们的数据集,因为在训练后,模型知识是从机器学习算法中自动导出的。数据处理对ML方法的准确性有着巨大的影响,是ML方法的初级阶段。在这里,所有重要的技术,如用所有可能的方法去除缺失值,也显示了它们对数据集的影响、数据装箱、用所有不同的方法将分类值转换为数值以及数据归一化等,并讨论了它们的实验结果。在此之后,我们为机器学习算法训练了模型,它们提供了可靠和准确的结果,准确率为95%,支持向量机98%,决策树96%等。至于进一步的工作,我们还可以增加一些预处理步骤,例如,将使用先进的机器学习方法进行高级实验,并发现每个预处理步骤对机器学习算法的准确性有多大的影响。
[1]GULATI V, RAHEJA N. Efficiency Enhancement of Machine Learning Approaches through the Impact of Preprocessing Techniques[C/OL]//2021 6th International Conference on Signal Processing, Computing and Control (ISPCC), Solan, India. 2021. http://dx.doi.org/10.1109/ispcc53510.2021.9609474. DOI:10.1109/ispcc53510.2021.9609474.