企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 通过数据预处理提高模型精度 > 原文: [https://machinelearningmastery.com/improve-model-accuracy-with-data-pre-processing/](https://machinelearningmastery.com/improve-model-accuracy-with-data-pre-processing/) 数据准备可以决定您模型的预测能力。 在他们的书 [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) 的第3章中,Kuhn和Johnson介绍了数据准备过程。他们将其称为训练集数据的添加,删除或转换。 在这篇文章中,您将发现可用于提高模型预测能力的数据预处理步骤。 [![i love spreadsheets](https://img.kancloud.cn/27/b4/27b4dc689244bbf2f48a21cb87155fef_300x225.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/08/i-love-spreadsheets.jpg) 我喜欢电子表格 照片由 [Craig Chew-Molding](https://www.flickr.com/photos/craigmoulding/8399214678) ,保留一些权利 ## 数据准备 在建模问题之前,您必须预先处理原始数据。具体准备工作可能取决于您可用的数据和您要使用的机器学习算法。 有时,数据的预处理可能会导致模型精度的意外改善。这可能是因为数据中的关系已被简化或未被遮挡。 [数据准备](http://machinelearningmastery.com/how-to-prepare-data-for-machine-learning/ "How to Prepare Data For Machine Learning")是一个重要的步骤,您应该尝试适合您的数据的数据预处理步骤,看看您是否能够获得模型精度的理想提升。 您可以为数据考虑三种类型的预处理: * 为数据添加属性 * 从数据中删除属性 * 转换数据中的属性 我们将深入研究这三种预处理中的每一种,并查看您可以执行的一些特定操作示例。 ## 添加数据属性 高级模型可以从复杂属性中提取关系,尽管某些模型要求明确说明这些关系。从训练数据中获取新属性以包含在建模过程中可以提高模型表现。 * **虚拟属性**:分类属性可以转换为n二进制属性,其中n是属性具有的类别(或级别)的数量。这些非规范化或分解的属性称为虚拟属性或虚拟变量。 * **转换后的属性**:可以将变换后的属性变量添加到数据集中,以便允许线性方法利用属性之间可能的线性和非线性关系。可以使用简单的变换,如log,square和square root。 * **缺少数据**:缺少数据的属性可以使用可靠的方法(例如k-最近邻居)估算丢失的数据。 ## 删除数据属性 某些方法在冗余或重复属性方面表现不佳。通过从数据中删除属性,可以提高模型的准确性。 * **投影**:训练数据可以投影到较低维空间,但仍然表征数据中的固有关系。一种流行的方法是主成分分析(PCA),其中该方法找到的主要成分可以作为一组简化的输入属性。 * **空间符号**:数据的空间符号投影将数据转换到多维球体的表面。结果可用于突出显示可以修改或从数据中删除的异常值的存在。 * **相关属性**:由于存在高度相关的属性,某些算法的重要性会降低。可以识别具有高相关性的成对属性,并且可以从数据中移除最相关的属性。 ## 转换数据属性 训练数据的变换可以减少数据的偏度以及数据中异常值的突出性。许多模型希望在应用算法之前转换数据。 * **居中**:转换数据,使其平均值为零,标准差为1。这通常称为数据标准化。 * **缩放**:标准缩放变换是将原始比例的数据映射到0到1之间的比例。这通常称为数据规范化。 * **删除偏斜**:偏斜数据是指分布被推送到一侧或另一侧(更大或更小的值)而不是正态分布的数据。某些方法假设正常分布的数据,并且如果消除了偏斜,则可以更好地执行。尝试使用值的日志,平方根或反转替换属性。 * **Box-Cox** :Box-Cox变换或变换系列可用于可靠地调整数据以消除偏斜。 * **Binning** :通过将值分组到bin中,可以使数字数据离散。这通常称为数据离散化。此过程可以手动执行,但如果系统地执行并使用在域中有意义的启发式自动执行则更可靠。 ## 摘要 数据预处理是准备原始数据进行建模,满足特定机器学习算法数据期望所需的重要步骤,并且可以在模型精度方面带来意想不到的提升。 在这篇文章中,我们发现了三组数据预处理方法: * 添加属性 * 删除属性 * 转换属性 下次您希望提高模型精度时,请考虑您可以为数据设计哪些新视角,以便模型进行探索和利用。