在MATLAB中创建人工数据

8

我需要一些人工数据,包括"Two-Spiral", "Cluster-inside-Cluster", "Half-Kernel", "crescent-full-moon", 和 "outlier" 用于机器学习目的。

Artificial Data

有没有MATLAB指南/包/源代码?


1
你是否拥有数据样本的全尺寸图片?那么你可以使用 imread 读取每张图片,循环遍历其 xy 坐标,并通过颜色阈值将点分离成簇。 - Larry Foobar
1
如果您可以使用函数定义其中一些形状(例如圆形等),那么您可以使用此解决方案中的蒙特卡罗方法:https://dev59.com/Q3HYa4cB1Zd3GeqPHyOu#16098613 - Dan
我该如何使用imread将不同聚类中的点分开? - BlueBit
另外,对于一些图片,例如(c),(d),(f),我没有任何图片。 - BlueBit
1个回答

15
因为我认为拥有这种数据集会很有用,而且这将是一项有趣的练习,所以我编写了一些函数来生成与您图片中所示的数据集非常相似的随机数据集。有许多选项可以控制实例数量、噪声量等。每个函数的输出是一个Nx3矩阵,其中每行包含实例的X,Y坐标和类。
以下是输出的样子: Example of generated datasets 我编写了6个脚本,每个脚本约30-40行。我上传了这些脚本到Matlab文件交换站,但它还没有被评审。目前,您可以在这里获取文件。这个第一版本中几乎没有注释,但我希望代码本身就很清晰易懂。还有一个演示脚本(datasetsdemo.m),它将运行所有脚本并生成上面显示的图像。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接