机器学习算法k均值聚类舆情研究

k均值聚类算法,是一种无监督算法,该算法的主要作用是将相似的样本自动归到一个类别中。所谓的无监督算法,就是输入样本没有对应的输出或标签,而聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个簇。k均值聚类简单易懂而且非常有效,但是确定合理的k值和k个初始类簇中心点对于聚类效果的好坏有很大的影响。

1)基本原理

2)k的选择及初始质心

3)k均值的优缺点

1.1k均值聚类算法描述

k均值聚类算法中的一种,其中k表示类别数,是一种通过均值对数据点进行聚类的算法。适用于大样本,但需要事先指定分为k个类。

原理:从n个数据对象任意选择k个对象作为初始聚类中心,对剩余的其他对象,则根据它们与k个聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;再计算每个所获的新的聚类中心(该聚类中所有对象的均值);不断重复这一过程,知道标准测度函数开始收敛为止。

k均值聚类的特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。

1.2k均值算法步骤

2.1k值的选取

对于一个给定没有分类的数据集,最后具体应该分为多少类,这确实时一个让人头痛的问题。要使k均值最后分类结果最好,也就是要使k均值最小化,是要最小化所有的数据点与其所关联的聚类中心点之间的距离之和,因此,我们可以设计k均值的代价函数为:

而k值在这里取到了重要作用。据统计发现k值的增加,其数据的代价损失是不断变小,如图,我们发现在k=3时,代价函数随着k值变化的幅度显著降低,在k>3之后所带来的作用也没有特别明显,所以我们可以选择k=3作为我们的聚类数目。

但实际应用中,k值的变换规律都不是和上图一样存在突变点,即拐点。那么这时,k值的选择主要还是根据经验以及利用k均值聚类的目的来决定。

2.2聚类中心的初始化

一般,在实际应用中,我们都是采取随机产生k个点作为初始的聚类中心,其原因是,简单快捷。

k-means++算法对于初始化质心的优化策略也很简单,如下:

以下是一组用户的年龄数据

我们将K值定义为2对用户进行聚类,并随机选择16和22作为两个类别的初始质心。

计算距离并划分数据

我们以图的形式展示聚类的过程,在这组年龄数据中,我们选择16和22作为两个类别的初始质心,并通过计算所有用户的年龄值与初始质心的距离对用户进行第一次分类。

通过计算每个用户年龄分别与两个初始质心的距离,这里我们以黑色实心圆点表示两者距离较大,如表2.2.3,第一个数据15,到初始初始质心点16的距离为1,到第二个初始质心22的距离为7,相比之下,15与16的距离更近,近的距离以空心圆点标记。因此15这个年龄被划分到质心点为16的一组中,如果年龄数据点到两个初始质心的距离相等时,可任意划分到这两组中,例如,数据19到16和22的距离都为3,在这里,我们将它划分到了22中。

上表,我们按欧式距离最小,即相似程度最高对数据分为组后,分别计算分组中数据的均值,得分别为15.33和36.25,并以这两个均值作为新的质心。用新的质心代替原有的初始质心,迭代计算每个年龄数据点到新质心的距离,直到新的质心和上一次的质心相同为止。

表2.2.4,以年龄数据点到新质心的距离值完成分组后,计算两组的均值,为18.56和45.9,年龄数据点22到18.56的距离为3.44,到45.9的距离为23.9。因此年龄数据点22分配到质心为18.56的分组中。

这两个均值与上一次的质心结果不一样,故又用新得到的均值代替原来的质心。在新的质心下,计算数据点到新质心的距离,并对比数据点到两个新质心的距离,选择较小的距离值来确定数据点的分组。

表2.2.5,计算出的新的均值为19.50和47.89,与原来的均值不同,故将新均值代替原有均值作为现在的质心。

算法停止条件

开始计算的第一步,我们就说迭代计算每个数据到新质心的距离,直到新质心和原质心相同,算法就结束。使用上一步分组得到的均值19.5和47.89作为新质心,并计算年龄数据点到新质心的距离,以下计算结果。

使用质心为19.50和47.89进行数据分组,并计算每组的均值作为新的质心,从表2.2.6可知,这里的均值和原质心相等,也就是说新质心与原质心相同,都是19.50和47.89。这时算法停止计算,年龄数据点被划分为两类,对应取值区间为15-28和35-65.这就是k均值聚类的一个全过程。

THE END
1.编程学习有哪些APP推荐编程学习有哪些下载学编程的软件有哪些 编程app精选合集 01-04 2022学习编程软件 学习编程软件免费下载合集 08-08 编程学习app有哪些 学习编程的软件下载推荐 随着计算机的应用越来越广泛,使很多的人都会选择计算机这个专业,其中的编程学习也是必不可少的。如果能了解复杂的编程,可以在很多的领域当中大放异彩。那么编程学习app有哪些呢?https://www.wandoujia.com/bangdan/1319495/
2.学数学必备软件大解析学数学必备软件大解析 在当今数字化时代,学习数学的软件工具层出不穷,为数学学习者和爱好者提供了极大的便利。本文将为您详细介绍几款学数学的必备软件,帮助您更好地掌握数学知识。数学计算软件 对于数学学习者来说,一款强大的数学计算软件是必不可少的。例如Matlab,它提供了丰富的数学计算功能,适用于数值分析、信号https://baijiahao.baidu.com/s?id=1819045378731181679&wfr=spider&for=pc
3.8款出色的AI数学工具Edu指南Symbolab 提供全面的数学科目,从预代数和几何到微积分、三角学等。该平台的 AI 算法可以解释和解决以各种格式输入的问题,包括键入的方程式、手写表达式,甚至教科书页面的照片。这种多功能性使具有不同学习风格和偏好的学生都可以使用 Symbolab。 Symbolab 的主要特点: https://www.shangyexinzhi.com/article/22320560.html
4.2024年推荐算法效率开发必备工具榜单算法软件算法软件有哪些WakaTime 是一款轻量级工作统计软件,其通过插件配置的方式内嵌到开发常用的办公开发软件中,在无感知的情况下统计相关工作时间,推荐算法场景下,常用的 Pycharm、Idea、CLion、VS Code、Word、Excel、PowePoint、iterm2、Sublime Text 等均适配 WakaTime。每天各个项目的开发时长、每天浏览网页与编码时间的对比、每日代码语言https://blog.csdn.net/2401_87225440/article/details/142346207
5.机器学习算法集成到软件mob64ca12f63d4f的技术博客为了将机器学习算法成功集成到软件中,我们需要经历一系列步骤。下面是整个过程的流程图: journey title 机器学习算法集成到软件流程 section 初学者指南 开始--> 学习机器学习算法 --> 准备数据集 --> 选择合适的算法 --> 训练模型 --> 集成到软件 --> 完成 https://blog.51cto.com/u_16213456/10704369
6.在没有机器学习算法之前,围棋游戏软件的人机对弈是什么原理?在没有现代机器学习算法之前,围棋游戏软件中的人机对弈主要依赖于经典的算法和技术手段。这些算法并不像今天的深度学习模型那样可以从大量数据中自我学习,而是根据棋局规则和预定的计算逻辑来决定下一步动作。围棋作为一种拥有极高复杂度的棋盘游戏,棋盘上的状态空间极其庞大。因此,早期的围棋游戏软件需要依赖特定的算法来https://www.jianshu.com/p/be08bf475592
7.第二届机械系统动力学国际会议征稿通知澎湃号·政务动力学基础理论研究 1. 多体系统与机构动力学 2.振动与控制 3. 非线性动力学 4.分析力学 5.芮方法(多体系统传递矩阵法)及其应用 动力学前沿与学科交叉研究 6. 多体系统动力学算法与软件 7. 随机与不确定性建模 8. 摩擦与低速碰撞 9. 并联机构/机器人系统动力学 https://www.thepaper.cn/newsDetail_forward_21622198
8.算法学习app免费下载算法详解app是一款手机学习算法的app,为用户详解各种算法原理,图文并茂,让你可以更好的理解和学习算法模型,对于对编程感兴趣的朋友来说非常不错。需要的用户赶快来下载吧。 功能介绍 算法详解app这款应用解释了一些算法的细节并且还有更加详细的演示功能,帮助使用者更好的理解特定的算法。 https://www.fxxz.com/azsoft/288531.html
9.MascotServer蛋白质与糖组学质谱数据鉴定与定量基于质谱数据的蛋白质鉴定软件 Mascot软件工具是针对质谱数据,主要利用肽段序列数据检索的方法来鉴定样本中蛋白质的组成以及翻译后修饰的行业标准软件。这种针对蛋白质或核酸序列数据库的检索需要高强度的计算过程,并需要复杂的统计学算法,才能得到快速且准确的分析结果。https://www.cloudscientific.com/identification-and-quantification-54
10.BoostKit大数据业界趋势鲲鹏大数据组件增强特性和典型配置聚焦大数据查询效率低、性能优化难等挑战,提供大数据组件的开源使能和调优、IO智能预取等基础加速软件包、Spark算法加速库等应用加速软件包,开源openLooKeng查询引擎,提升大数据分析效率。 了解详细:https://www.hikunpeng.com/developer/boostkit/big-data 2、BoostKit分布式存储 https://developer.huawei.com/consumer/cn/blog/topic/03898238728230088
11.朴素贝叶斯模型(NBM)详解与在Matlab和Python里的具体应用基于Matlab的贝叶斯网络工具箱BNT是kevinp.murphy基于matlab语言开发的关于贝叶斯网络学习的开源软件包,提供了许多贝叶斯网络学习的底层基础函数库,支持多种类型的节点(概率分布)、精确推理和近似推理、参数学习及结构学习、静态模型和动态模型。 2、向matlab中添加FULLBNT,参考地址: https://cloud.tencent.com/developer/article/1030151
12.基于深度强化学习的水面无人艇路径跟踪方法同时,现有技术还提出了基于最优控制和反馈线性化的自抗扰控制方法,这类算法通过环境和无人艇动力学建立准确的模型才能获得较好的控制精度,但同样由于无人艇航行环境的复杂性,导致难以准确的对环境和无人艇进行运动建模,进而导致无人艇路径跟踪控制的准确性不好。因此,如何设计一种能够提高无人艇路径跟踪控制稳定性和https://www.xjishu.com/zhuanli/54/202210772926.html/