有格式的文本文件scheme{N}.txt,其中包含格式中的行:
x – значение координаты X,
y – значение координаты Y,
w – ширина элемента,
y – высота элемента,
type – тип элемента (1-прямоугольник, 2-круг)
描述位于图表上的元素。一个文件 - 一个方案,一行 - 一个元素。
例如,有两种方案:
使用您的文本文件:
方案1.txt
200,200,400,100,1
1100,200,400,100,1
700,450,350,200,2
方案2.txt
200,200,400,200,1
1100,200,400,200,1
700,300,350,150,2
350,550,950,100,1
一个任务
当然,这样的文件有数百个,现在有必要使用聚类对这些方案进行分组,在一组中会有元素布局和空间排列scheme{N}.txt最相似的方案(文件名)。例如,上述两种方案可以被认为是相似的,因此被定义在一组中。
问题
根据任务,如何为聚类准备数据?明明这是 ML,不可能有明确的推荐,但不知道从何说起。如果您在指示性描述的帮助下尝试,因为事实证明模式对象(训练样本)必须由一组元素对象来描述。请告诉我应该寻找解决方案的方向。
.NET 的机器学习框架
作为一名 .NET 开发人员,我仍然计划使用 .NET 的 ML 框架之一来实现整个事情:ML.NET,它现在正在开发中,但是集群已经允许或Accord.NET Framework,同志由于它的年龄,它的 API 最丰富。


通常,在聚类任务中,我们通过对象之间的距离或相似性将对象选择/分组到集群中。
在您的情况下,对象是文件(模式)。
您必须实现一个函数来计算两个文件的距离(相似因子)并尝试使用它。以“余弦相似度”为例。在计算相似度之前,最好将矩阵的最后一列(元素类型)进行转换,使其与其余列的维数大致相同——例如,将图形的类型(数字
1、2)替换为正方形这个图的面积的根。那么所有 5 列将被测量为相同的值,并且在计算"cosine similarity"列的值时将被视为向量在五维空间中的对应坐标。PS
Accord.NET我不知道该怎么做...Python 示例(使用模块:Numpy、Pandas、SciKit-Learn)。
源文件:
1.csv:
2.csv:
编码:
计算
cosine similarity:那些。考虑第一个文件的第一行与第二个文件的所有 4 行的相似性(我们在第一个文件的第一行的第一行中有 4 个元素,等等),即 结果,我们得到一个维度矩阵
(число строк первого файла, число строк второго файла)。您可以将整个矩阵的平均值作为文件相似性的衡量标准(您需要在实践中尝试使用这种方法处理许多文件以了解它是如何“工作”的):