数学建模之聚类模型
聚类模型
将文本划分为由类似的对象组成的多个类的过程。在聚类之前,我们并不知道数据都有哪些类型甚至不知道可以分为多少个类型。而分类则是在已知数据类型的前提下,对数据进行划分。聚类之后我们可以用更加准确的统计模型对每个类进行单独估计,分析或预测。
K-means聚类算法
算法流程
- 指定需要划分的簇的个数K。 K簇即将数据分为K类。
- 随机选择K个数据对象作为初始的聚类中心。不一定要是样本点,可以是与样本点同类型的数据点。
- 计算各个数据对象到这K个初始聚类中心的距离,把数据对象划归到距离它最近的那个中心所处在的簇类中。
- 调整新类并且重新计算出新类的中心。
- 循环步骤三和四,看中心是否收敛,如果收敛或达到次数则停止循环。
- 结束
优缺点
优点
- 算法简单、快速
- 对处理大数据集,该算法是相对高效的
缺点 - 要求用户必须事先给出要生成的簇的数目K
- 对初始值敏感,同样的K,对于不同的初始聚类中心,得到的结果很有可能是不同的。
- 对于孤立点数据敏感
K-means++算法
初始的聚类中心之间的相互距离要尽可能远
算法流程
- 随机选取一个样本作为第一个聚类中心
- 计算每个样本与当前已有聚类中心的最短距离,这个值越大,表示被选取作为聚类中心的概率较大;最后,用轮盘法选出下一个聚类中心。
- 重复步骤二,直到选出K个聚类中心。选出初始点后,就继续使用标准的K-means算法。