向示例集添加噪声

数据挖掘 机器学习 分类
2022-02-13 05:28:29

我正在尝试研究分类算法中维度诅咒的影响。

我有一个只有 1 个特征的简单数据集。所以我可以表示一维的集合。如果现在我想在这个数据集中引入一些噪音,那么在我的数据集中添加另一个具有随机值的特征是否正确?

3个回答

除了 Lupacante 在概念上很好地展示了所添加的特征(必须)为模型提供信息之外,否则它会被大多数模型忽略(可能很容易被正则化模型忽略),我想补充一点,你还可以使用许多简单的数学表达式综合增加特征空间的维度。一致地说,假设您的唯一功能(列)是:

X

您可以轻松构建其他功能,例如(实际上是物理科学中的常见做法):

X2, x3, x0.5,sin(x), x2罪(x),...

直到你为你的练习打了所谓的维度诅咒。虽然我还不确定究竟是什么特征/num_samples 比率导致了维度灾难!到目前为止,我收集到的关于维度诅咒的信息非常主观。

这取决于对噪声的理解,因为噪声源可以被解释为破坏/更改数据的任何方式。

从技术上讲,如果你想给你的数据集添加噪音,你可以按照以下步骤进行:

  1. 将噪声添加到原始数据中,即以一定的噪声分布和一定的信噪比破坏原始数据,

或者

  1. 向特征空间添加噪声,但保持其维度。

添加噪声与改变特征空间的维度不同。如果数据在原始特征空间中是线性可分的,那么尽管您添加了一个额外的随机特征,它也是可分的。看一下图 1 和图 2。图描绘了一维特征空间中线性可分数据的散点图(var1_1 vs var1_1)。图 2 描绘了具有额外随机特征的相同特征空间的散点图,现在维度为 2,但数据仍然是线性可分的。您只需查看数据在 var1_1 轴上的投影。

图 1:一维特征空间中可分离数据的散点图 一维特征空间中可分离数据的散点图

图 2:可分离数据在二维特征空间中的散点图,与前一个空间相同加上一个额外的随机特征 [二维特征空间中可分离数据的散点图],与前一个空间相同,外加一个额外的随机特征[2]

如果你想评估你的预测模型对噪声的鲁棒性,我会选择选项 1,因为要推导出在特征空间中应用什么样的噪声并不简单。如果您正在处理图像,您可以模糊它们,或者如果您正在处理音频文件,您可以添加高斯白噪声或其他类型的噪声源,例如另一种将原始音频文件与其他声源混合。

添加具有随机值的额外特征的问题在于,如果它没有提供信息(很可能是,因为它的值都是随机的),它可能会被您的分类器忽略。

例如:

from sklearn.linear_model import LinearRegression
from numpy import arange, random, array

x1 = arange(100)
y = 3 + 2*x1
LinearRegression().fit(array([x1, x2]).T, y).coef_

返回array([ 2.00000000e+00, -1.30768001e-15]),这意味着新特征(具有随机值的特征)的系数实际上设置为0.

你可以做的是:

x = arange(100)
y = 3 + 2*x + random.randn(100)

然后,如果您尝试y针对 进行绘图x,您会发现这些值并非位于一条完美的直线上,而是略微(且随机地)偏离它。