Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这对清理测试数据很重要吗?_Python_Machine Learning_Data Science_Data Cleaning - Fatal编程技术网

Python 这对清理测试数据很重要吗?

Python 这对清理测试数据很重要吗?,python,machine-learning,data-science,data-cleaning,Python,Machine Learning,Data Science,Data Cleaning,在培训数据中,我做了特征工程并清理了数据。这对测试数据同样重要吗? 我知道一些基本的修改,如标签编码、依赖/独立特征分割等。。测试数据中也需要。但是我们真的需要在做预测之前清理测试数据吗 这取决于: 规范化数据:如果您规范化了培训数据,那么是的,按照规范化培训数据的方式规范化测试数据。但是要小心,不要重新调整在训练数据上调整的任何参数 填充缺少的值:idem。将测试数据视为训练数据,但不要重新调整任何参数 删除异常值:可能不会。测试集的目的是对模型在看不见的数据上的性能进行估计。因此,删除异常值

在培训数据中,我做了特征工程并清理了数据。这对测试数据同样重要吗? 我知道一些基本的修改,如标签编码、依赖/独立特征分割等。。测试数据中也需要。但是我们真的需要在做预测之前清理测试数据吗

这取决于:

规范化数据:如果您规范化了培训数据,那么是的,按照规范化培训数据的方式规范化测试数据。但是要小心,不要重新调整在训练数据上调整的任何参数

填充缺少的值:idem。将测试数据视为训练数据,但不要重新调整任何参数

删除异常值:可能不会。测试集的目的是对模型在看不见的数据上的性能进行估计。因此,删除异常值可能不是一个好主意

一般情况下:仅对测试数据执行在应用模型时可以/也将对看不见的数据执行的操作。

这取决于:

规范化数据:如果您规范化了培训数据,那么是的,按照规范化培训数据的方式规范化测试数据。但是要小心,不要重新调整在训练数据上调整的任何参数

填充缺少的值:idem。将测试数据视为训练数据,但不要重新调整任何参数

删除异常值:可能不会。测试集的目的是对模型在看不见的数据上的性能进行估计。因此,删除异常值可能不是一个好主意


一般情况下:只对测试数据执行应用模型时可以/也将对看不见的数据执行的操作。

我不能回答是或否,所以让我从所有列车/测试/开发集的数据分布开始。 根据安得烈NG教授的说法,测试和DEV集合应该来自相同的分布,但是训练集可以来自不同的分布,并且通常是一件好事。 有时候清理trainig集合非常有用,还可以应用一些基本操作来加快培训过程(比如不清理的规范化),但我们讨论的是培训数据,这些数据可以而且应该有成千上万的示例,所以有时候您无法手动检查数据并清理数据,因为它可能根本不值得; 我是什么意思?让我给你举个例子:

假设您正在构建一个cat分类器(cat或no cat),您的准确率为90%,这意味着您有10%的错误。 执行Error-analysis()后,您会发现:

  • 6%的错误是由错误标记的图像引起的,(没有cat图像
    标记为cat和viceversa)
  • 44%的原因是图像模糊
  • 50%是由标记为猫的大型猫科动物的图像引起的。 在这种情况下,您将花费的所有时间修复错误标记的图像将在最佳情况下提高您的性能(0.6%)(因为它是整个10%错误的6%),因此纠正错误标记的数据是不值得的
  • 我举了一个错误标记数据的例子,但一般来说,我指的是任何类型的清理和修复。 但是清理测试集中的数据可能更容易,如果可能的话,应该同时测试/Dev集,因为测试集将在实时数据上反映系统的性能。 您在问题中提到的操作不是很干净,而是用于加快学习过程或使数据适合算法,应用这些操作取决于数据的形状和类型(图像、语音记录、文字……),以及您试图解决的问题

    最后,作为回答,我可以告诉你:

    • 在所有三种情况下,数据的形式和形状应该相同 设置(因此应用标签编码应该针对整个数据,而不仅仅是 用于培训数据,以及用于 预测,因为它会更改输出标签的形状)
    • 功能的数量应始终相同
    • 任何改变应用于数据的(形状、形式、特征数量等)的操作都应该应用于系统中要使用的每个样本
    我无法回答您是或否,因此让我从您所有列车/测试/开发设备上的数据分发开始。 根据安得烈NG教授的说法,测试和DEV集合应该来自相同的分布,但是训练集可以来自不同的分布,并且通常是一件好事。 有时候清理trainig集合非常有用,还可以应用一些基本操作来加快培训过程(比如不清理的规范化),但我们讨论的是培训数据,这些数据可以而且应该有成千上万的示例,所以有时候您无法手动检查数据并清理数据,因为它可能根本不值得; 我是什么意思?让我给你举个例子:

    假设您正在构建一个cat分类器(cat或no cat),您的准确率为90%,这意味着您有10%的错误。 执行Error-analysis()后,您会发现:

  • 6%的错误是由错误标记的图像引起的,(没有cat图像
    标记为cat和viceversa)
  • 44%的原因是图像模糊
  • 50%是由标记为猫的大型猫科动物的图像引起的。 在这种情况下,您将花费的所有时间修复错误标记的图像将在最佳情况下提高您的性能(0.6%)(因为它是整个10%错误的6%),因此纠正错误标记的数据是不值得的
  • 我举了一个错误标记数据的例子,但一般来说,我指的是任何类型的清理和修复。 但是清理测试集中的数据可能更容易,如果可能的话,应该同时测试/Dev集,因为测试集将在实时数据上反映系统的性能。 T