自组织小组的一个自然的例子,你可以应用在预测分析行为是蚂蚁寻找食物的殖民地。蚂蚁集体优化他们的轨道,使它总是以最短的路线可能的食物目标。即使你试图打扰蚂蚁的行进中的殖民地,阻止他们进入食物目标,他们很快就会回到正轨并(再次)找到食物目标的最短路线,所有这些都避免了同样的障碍物一边寻找食物。这种行为的一致性是可能的,因为每一只蚂蚁都会在地上沉积一条信息素。
<! - 1 - >
考虑一群蚂蚁在窝里闲着。当他们开始寻找食物时,他们完全没有关于在哪里找到它的信息。他们随机游行,直到个人找到食物;现在幸运的蚂蚁(叫它蚂蚁X)必须把它的发现传达给其余的蚂蚁 - 要做到这一点,它必须找到回巢。幸运的是,蚂蚁X一直在寻找食物时自己制造费洛蒙。它可以追踪自己的信息素回溯到巢。在返回巢穴的路上,蚂蚁X将信息素放在同一条路径上。<!因此,蚂蚁X的踪迹将是所有其他蚂蚁之间最强的气味。最强大的信息素会吸引所有其他仍在寻找食物的蚂蚁。他们会遵循最强烈的气味。随着更多的蚂蚁加入蚂蚁的踪迹,他们增加更多的信息素,气味变强。很快,所有其他的蚂蚁都有强烈的气味跟随。
如果几只蚂蚁发现了相同的食物来源,那么与较长路径的蚂蚁相比,采用最短路径的蚂蚁会做更多的行程 - 因此会在最短路径上产生更多的信息素。个人与集体行为之间的关系是一个很有启发性的例子。
每个点代表一个文件。假设黑点是有关预测分析的文档,白点是有关人类学的文档。表示不同类型文档的点是随机分布在5个单元格的网格中。在网格中随机部署“蚂蚁”来搜索相似的文档。每个有值的单元格代表一个“信息素”的实例。 “使用文档矩阵,每个单元格的”信息素“值是从相应的文档中计算出来的。好吧,一个蚁群的集体智慧如何产生一个有效聚类数据的模型呢?答案就在于一个简单的比喻:蚂蚁正在他们的环境中搜寻食物,就像我们在数据集中寻找聚类一样 - 在一大批文档中寻找类似的文档。考虑一个你想按主题组织的文档的数据集。类似的文件将被分组到相同的群集中。这里的蚁群可以提供关于如何分组类似文件的提示。设想一个二维(2D)网格,您可以将文档表示为点。 2D网格被分成单元格。每个细胞都有一个与之相关的“信息素”(价值)。简而言之,“信息素”值区分给定单元格中的每个文档。
这些点最初是随机分布的 - 网格中的每个点代表一个独特的文档。下一步是在2D网格上随机部署其他点,模拟蚁群在其环境中搜索食物。这些点最初分散在与文档相同的二维网格中。
添加到网格中的每个新点代表一只蚂蚁。那些经常在蚁群算法中被称为代理
的“蚂蚁”正在2D网格中移动。每个“蚂蚁”将拿起或放弃其他点(文件),取决于文件最好的属性。在这个比喻中,“食物”采取的文件形式足够相似,可以聚集在一起。
一只“蚂蚁”在网格中随机走动;如果遇到文档,则可以执行两个操作之一:选择或删除。每个单元格都有一个“信息素强度”,表示文档与其他文档(点)的相似程度 - 一个“蚂蚁”即将拾取或放下。
请注意,单元格3中的“蚂蚁”将拾取黑点文档,因为白色的“信息素”值占主导地位;并移动到与单元格4(几个黑点)中的值接近(类似)的单元格。搜索不断迭代,直到聚类形成。
实际上,“蚂蚁”通过执行两个操作之一,即拾取文档或删除文档,将文档从一个单元移动到另一个单元以形成集群。
当“蚂蚁”开始在网格上随机移动时,遇到一个点(文档)会导致“蚂蚁”从当前单元中拾取一个文档,随之移动,并将其放入单元格中足够的相似性以适应。
“蚂蚁”将如何确定放置文档的最佳单元格?答案是单元格中的值就像“信息素”一样 - 二维网格中的每个单元格都包含一个数值,可以用代表单元格中文档的方式进行计算。请记住,每个文档都被表示为一组数字或一组数字值。信息素的强度(数值)随着更多的文件被投入单元而增加 - 如果代表文件的数字被移出单元,则该值减小。