人工智能算法——K均值聚类算法Python实现

 公司新闻     |      2019-04-07 07:36

  均值聚类算法是一种简单的迭代型聚类算法,采用距离作为相似性指标,从而发▪…□▷▷•现给定数据集中的个类,且每个类有一个聚类中心,即质心,每个类的质心是根据类中所有值的均值得到。对于给定的一个包含选取欧式距离作为相似度指标。聚类目标是使得各类的聚类平方和最小,即最小化:

  (2)对于样本中的数据对象,根据它们与这些◆◁•聚类中心的欧氏距离,按距离最近的准则将它们分到距离它们最近的聚类中心(最相似)所对应的类;

  (3)更新聚类中心:将每个类别中所有对象所对应的均值作为该类别新的聚类中心,计算目标函数的值;

  (4)判断聚类中心和目标函数的值是否发生改变,若不变,则输出结果,若改变,则返回步骤(2)。

  以下是K均值法的python代码实现。程序使用的工具包括numpy和matplotlib,其中numpy△▪▲□△是一个用于处理多维数◆●△▼●组的库,而Matplotlib则用于绘制二维图形。

  fl◇•■★▼ag = i#循环结束时,flag保存的是与当前item距离最近的那个簇标记

  现在假设有9个坐标点数据,它们分别是(3,2)、(3,9)(8,6)(9,5)(2,4)(3,10)(2,5)(9,6)(2,2)。利用上面的程序来◇=△▲计算▼▼▽●▽●它的簇,设定在计算开始时随机选择三个点作为初始质心,并且要求聚类结果必须小于0.0001。

  程序调用python的绘图包输出图形界面的结果如下图13.5、图13.6和图13.7所示。从这◆■几个图中可以看到簇类和簇心的变化。

  图13.6展示第二次迭代后,簇心发生○▲-•■□变化,平均均方误差减小(从图13.4可以看出)。

  图13.7展示第三次迭代后,簇心进一步发生变化,平均均方误差更小(从图13.4可以看出)。

  从图13.4可以看出,第4次迭代与◆▼第三次迭代的结果是相同的,因此迭代4次后,程序终止执行。

  (1)在计算机安◇…=▲装了python之后,还需要安装numpy和matplotli▲=○▼b。这两个工具包分别是帮助进行科学运算并且根据计算结果绘制图的。

  (2)安装完□◁成后,可以根据实际情况改变数据集文件的地址,数据集是由loadDataSet这个函数进行数据的加载和整理的。本程序中main函数部分的语句

  (3)数据集加载完成后,由函数initCentroids来进行质●心的初始化。在本程序中,使用了random函数来从数据集中随机抽取若干个质心,而质心的数量可以由第二个参数来设定。本程序设定的质心数量为3个。

  (4)整理好的数据集和随机选取的质心会作为参数,交给函数minDistance进行聚类迭代计算。在这个计算里面,使用了定义的calcuDistance函数来计算点到点之间的欧式距离。

  (5)最后利用上一步的结果,使用函数getVar来计算簇集合间的均方误差。

  (6)控制迭代结束的条件是,在main函数中利用两次聚类的结果只差小于0.0001。

  本书系统地阐述了人工智能的基本原理、实现技术及其应用,全面地反映了国内外人工智能研究领域的最新进展和发展方向。全书共19章,分为4个部分:第1部分是搜索与☆△◆▲■问题求解,用8章的篇幅系统地叙述了人工智能中各种搜索方法求解的原理和方法,内容包括状态空间和传统的图搜索算法、和声算法、禁忌搜索算法、遗传算法、免疫算法、粒子群算法、蚁群算法和Agent技术等;第2部分为知识与推理,用4章的篇幅讨论各种知识表示和处理技术、各种典型的推理技术,还包括非经典逻辑推理技术和非协调逻辑推理技术;第3部分为学习与发现,用3章的△▪▲□△篇幅讨论传统的机器学习★-●=•▽算法、神经网络学习算法、数据挖掘和知识发现技术;第4部分为领域应用,用3章分别讨论专家系统开发技术和自然语言处理原理和方法。

  本书作为作者已出版多次的《人工智能》教材的配套教辅材料,其章节与原教材基本对应,但内容分为学习目标与要求、知识要点、原教材对应的习题解析、补充题、课堂演示与实验指导5个部分。其中,学习目标与要求为每章要达到的学习目标;知识点与原教材的内容对应,基本上全面介绍了人工智能的理论与技术;习题解析对每章的习题进行了解答;补充题对原教材的习题进行了补充,并给出了解答。返回•□▼◁▼搜狐,查看更多

北京pk赛车10官方