如何随机创建离群数据集?

时间:2019-12-10 18:56:42

标签: machine-learning outliers

我正在尝试创建一个离群数据集,该数据集有8列,有些列包含分类值,而另一些则包含正数值。并且此数据仅包含两种类型的数据点:普通数据点和离群值。

我想知道您是否知道可以帮助我自动创建此类数据集的任何工具或库或某些方法。我听说numpy具有生成标准分布的工具,但我认为它无法创建分类价值。

和每次一样,非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

前言:您应该问自己一个非常重要的问题:您认为什么是离群值,然后尝试模拟那些离群值。您可以在下面找到粗略的准则:

数值

您可以轻松地创建一个具有一些预定义分布的数据集(例如均值0和方差1的标准正态数据)并创建一些数据点(例如10_000 )。另一个可能来自另一种分布(甚至是高斯分布,但均值,方差也不同),并说50点是离群值。

分类值

取决于可能的分类值的大小以及是否要使离群值和非离群值数据都在某个范围内。

分类值相同范围

说,分类值在[0, 10]之内。因此,您可以在整个频谱上使用numpy的np.random.randint生成它们,例如,对于5列,那么您将得到一个与以下示例类似的示例:

[1, 4, 7, 9, 3]

现在,[0, 10]中包含的离群值可能具有更窄的值,例如[7,9],因此它们的值可能是:

[7, 7, 8, 9, 8]

鉴于该组合应该被视为异常值(当然,[0, 10]可能会产生一些误报,原则上会产生类似的结果。

分类值不同的范围

这种情况比较简单;只需使用不同的范围,就可以确保没有数据点将这些值包含在非异常数据中。

摘要

总而言之,您可以混合使用这些方法并改变程度,以使异常算法的任务更困难(相似的数据生成过程)或更简单(两者之间的功能差异很大)。

在上面进行参数设置并创建具有不同程度轻松度的函数应该非常容易。除非您需要更复杂的东西,否则不要去图书馆(当然,您可以使整个想法更复杂)。