k-means
基本思想
从n个数据对象中任意选择k个对象作为中心进行聚类。
k-means算法接受参数k,将事先输入的n个对象划分为k个聚类使得所获得的聚类满足:同一个聚类中的对象相似度较高;不同聚类中的对象相似度较小。(相似度大=距离小;相似度小=距离大)
算法流程
首先从n个数据对象任意选择k个对象作为初始聚类中心,对于剩下的其他对象,则根据它们与这些聚类中心的相似度(距离)分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。
k个聚类的特点
各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。
算法优点
1.算法快速、简单。
2.对大数据集有较高的效率并且是可伸缩性的。
3.时间复杂度为O(nkt),近于线性,适合挖掘大规模数据集。
算法缺点
1.k是事先给定的,这个k值的选定是非常难以估计的。
2.在k-means算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始聚类中心进行优化。这个初始聚类中心的选择对聚类结果有较大影响,一旦初始值选择的不好,可能无法得到有效的聚类结果。
3.该算法需要不断进行样本分类调整,不断地计算调整后的新的聚类中心,因此当数据量非常大时,算法的时间开销是非常大的。
三层BP神经网络
主要思想
输入学习样本,使用反向传播算法对网络的权值和偏差进行反复的调整训练,使输出的向量与期望向量尽可能地接近,当网络输出层的误差平方和小于指定的误差时间时训练完成,保存网络的权值和偏差。
算法流程
主要分为以下两个阶段:
1.正向传播:
输入样本–>输入层–>隐含层–