36、通过数据预处理提高模型精度

数据准备可以决定您模型的预测能力。

在这篇文章中,您将发现可用于提高模型预测能力的数据预处理步骤。

我喜欢Spreadsheets
照片由Craig Chew-Molding拍摄,保留一些权利

数据准备

在建模问题之前,您必须预先处理原始数据。具体准备工作可能取决于您可用的数据和您要使用的机器学习算法。

有时,数据的预处理可能会导致模型精度的意外改善。这可能是因为数据中的关系已被简化或未被遮挡。

数据准备是一个重要的步骤,您应该尝试适合您的数据的数据预处理步骤,看看您是否可以获得模型精度的理想提升。

您可以为数据考虑三种类型的预处理:

  • 为数据添加属性
  • 从数据中删除属性
  • 转换数据中的属性

我们将深入研究这三种预处理中的每一种,并查看您可以执行的一些特定操作示例。

添加数据属性

高级模型可以从复杂属性中提取关系,尽管某些模型要求明确说明这些关系。从训练数据中获取新属性以包含在建模过程中可以提高模型性能。

  • 虚拟属性:分类属性可以转换为n二进制属性,其中n是属性具有的类别(或级别)的数量。这些非规范化或分解的属性称为虚拟属性或虚拟变量。
  • 转换后的属性:可以将转换后的属性变体添加到数据集中,以便允许线性方法利用属性之间可能的线性和非线性关系。可以使用简单的变换,如log,square和square root。
  • 缺少数据缺少数据的属性可以使用可靠的方法(例如k-最近邻居)估算丢失的数据。

删除数据属性

某些方法在冗余或重复属性方面表现不佳。通过从数据中删除属性,可以提高模型的准确性。

  • 投影:训练数据可以投影到较低维空间,但仍然表征数据中的固有关系。一种流行的方法是主成分分析(PCA),其中该方法找到的主要成分可以作为一组简化的输入属性。
  • 空间符号:数据的空间符号投影将数据转换到多维球体的表面。结果可用于突出显示可以修改或从数据中删除的异常值的存在。
  • 相关属性:由于存在高度相关的属性,某些算法的重要性会降低。可以识别具有高相关性的成对属性,并且可以从数据中移除最相关的属性。

转换数据属性

训练数据的变换可以减少数据的偏度以及数据中异常值的突出性。许多模型希望在应用算法之前转换数据。

  • 居中:转换数据,使其平均值为零,标准差为1。这通常称为数据标准化。
  • 缩放:标准缩放转换是将原始比例的数据映射到0和1之间的比例。这通常称为数据规范化。
  • 删除倾斜:倾斜数据是指分布被推送到一侧或另一侧(更大或更小的值)而不是正常分布的数据。某些方法假设正常分布的数据,并且如果消除了偏斜,则可以更好地执行。尝试使用值的日志,平方根或反转替换属性。
  • Box-Cox:Box-Cox变换或变换族可用于可靠地调整数据以消除偏斜。
  • 分箱:通过将值分组到分箱中,可以使数字数据离散。这通常称为数据离散化。此过程可以手动执行,但如果系统地执行并使用在域中有意义的启发式自动执行则更可靠。

摘要

数据预处理是准备原始数据进行建模,满足特定机器学习算法数据期望所需的重要步骤,并且可以在模型精度方面带来意想不到的提升。

在这篇文章中,我们发现了三组数据预处理方法:

  • 添加属性
  • 删除属性
  • 转换属性

下次您希望提高模型精度时,请考虑您可以为数据设计哪些新视角,以便模型进行探索和利用。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 蜜雪冰城
    michelleheshiya阅读 143评论 0 0
  • 那次回矿是我最后一次看到黑眼儿,后来关于黑眼儿的消息,我全都是听来的,听说那家伙之后又咬了学校里的孩子,可怜的叔叔...
    心眸阅读 245评论 2 1
  • PHP标记四种风格: var_dump($variable) constant: 常量不需要使用$符号; clas...
    markstudio阅读 183评论 0 0
  • 时光流转了一千年, 像是一个从未醒来的梦那么漫长。 在一千年前的梦里,这里。。。。 将军的战马嘶鸣,挥舞的长戟破风...
    汴京七离阅读 240评论 0 0