R语言K-Means(K均值聚类)和层次聚类算法对微博用户特征数据研究

简介: R语言K-Means(K均值聚类)和层次聚类算法对微博用户特征数据研究

全文链接:https://tecdat.cn/?p=32955


本文就将采用K-means算法和层次聚类对基于用户特征的微博数据帮助客户进行聚类分析点击文末“阅读原文”获取完整代码数据


首先对聚类分析作系统介绍。其次对聚类算法进行文献回顾,对其概况、基本思想、算法进行详细介绍,再是通过对微博数据分析具体来强化了解聚类算法,本文的数据是由所设计地软件在微博平台上获取的数据,最后得到相关结论和启示。

聚类分析法概述

聚类算法的研究有着相当长的历史,早在1975年 Hartigan就在其专著 Clustering Algorithms[5]中对聚类算法进行了系统的论述。聚类分析算法作为一种有效的数据分析方法被广泛应用于数据挖掘、机器学习、图像分割、语音识别、生物信息处理等。

聚类方法是无监督模式识别的一种方法,同时也是一种很重要的统计分析方法。聚类分析已经被广泛的研究了很多年,研究领域涵盖数据挖掘、统计学、机器学习和空间数据库等众多领域。聚类是基于数据的相似性将数据集合划分成组,然后给这些划分好的组指定标号。目前文献中存在着大量的聚类算法,大体上,聚类分析算法主要分成如下几种[6],图2-1显示了一些主要的聚类算法的分类。

image.png

微博用户特征数据研究


为了进一步验证K-means算法,本文将采集一批微博数据,通过根据微博用户特征属性对其进行聚类,并得出结论。


数据采集

新浪微博,作为中国的较大的用户使用较受欢迎的微博使用平台之一,从其平台上抽取的微博一定程度上可以反映国内微博平台的传播情况。鉴于新浪微博在国内具有较大影响力,故本文选取有影响力的新浪微博用户为研究对象,包括大V、电商平台、明星、网红等,从微博用户特征出发,来探索基于用户特征的聚类分析。本研究总共获取了50359条微博数据。

数据取值范围

指标 取值范围
是否认证 V或N
性别 男或女
粉丝数 0,1,2…(非负整数)
微博数 0,1,2…(非负整数)
注册时间比 日期

根据本文需求,采用编程软件在新浪微博平台上收集到的相关数据,具体样本实例如图所示,其中,对是否加V,粉丝关注比进行标准化。

image.png

点击标题查阅往期内容


R语言对耐克NIKEID新浪微博数据K均值(K-MEANS)聚类文本挖掘和词云可视化


01

02

03

04


K-means和层次聚类


data=read.csv("新浪微博用户数据.csv")
#删除缺失值
dat=.mit(data)
for(i in 3:ncol(dta))dta[,i]=as.nuerc(daa[,i])
kmas(data[,c("性别" ,"粉丝数","微博数" ,"是否认证" ,"注册时间" )]

本文采用R软件对数据进行K-means聚类和层次聚类分析。R语言是统计领域广泛使用的,诞生于1980年左右的S语言的一个分支。


结果

将该数据集分为了三类。

plot(data[,3:4], fit$clust

image.png

image.png

点击标题查阅往期内容


R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标


01

02

03

04


image.png

image.png

K-means算法将该样本集分为4类,其中最多的为cluster-2,有39886条记录,其次是cluster-3,有4561条记录,再者是cluster-1,为3514条记录,cluster-4,为2398条记录。从聚类数量来看聚类数目分布合理,没有出现过少的离群点。从聚类中心来看,第二类别是微博数较少,但是粉丝很多,并且注册时间较早的一批用户,并且已经是认证的用户,因此可以认为是大V用户。第1类同样拥有较多的粉丝,同样是认证用户,可以认为是小V用户。第三类粉丝数目少,没有认证,并且注册较晚,因此可以认为是普通微博用户,第四类用户微博数目多,粉丝数目较多,但是没有认证,因此可以认为是草根名博。

image.png

层次聚类验证

为了验证该结果的可行性,又采用了R统计软件对样本进行了层次聚类分析。具体代码如下所示:

attach(x):
c<-hcst(dist(x),"sin
ct.hclu

得到聚类结果如图:

image.png

从层次聚类的结果来看,将该数据划分成4个类别是相对合理的,因此上述认证有理有据。


结论


本文研究了数据挖掘的研究背景与意义,讨论了聚类算法的各种基本理论包括聚类的形式化描述和定义,聚类中的数据类型和数据结果,聚类的相似性度量和准则函数等。同时也探讨学习了基于划分的聚类方法的典型的聚类方法。本文重点集中学习了研究了 K-Means聚类算法的思想、原理以及该算法的优缺点。并运用K-means算法对所采集的数据进行聚类分析,深化了对该算法的理解。


参考文献


[1] 中国互联网络信息中心(CNNIC).第33次中国互联网络发展状况统计报告[EB/OL].

[2] 郭宇红,童云海,唐世渭等.数据库中的知识隐藏 [ J ].软件学报,2007, 11 (18) : 278222797.

[3] hehroz S.Khan,Amir Ahmad.Cluster center initialization algorithm for K-Means clustering[J].Pattern Recognition Letters 25(2004): 1293-1302.

[4] 王春风,唐拥政.结合近邻和密度思想的K-均值算法的研究[J] 计算机工程应用.2011 年,47(19).147-149.

[5] 杨小兵.聚类分析中若干关键技术的研究[D].杭州:浙江大学,2005年:24-25.

[6] Hartigan J A. Clustering Algorithms[M].New York: John Wiley&Sons Inc.,1975.

[7] Tony Bain 等著.邵勇译.SQL Server2000 数据仓库与 Analysis Services[M]. 北京.中国电力出版社,2003.

[8] Handl Julia, Joshua Knowles, Douglas B. Kell. Computational cluster validation  in post-genomic data

相关文章
|
19天前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
22天前
|
存储 数据采集 数据处理
R语言数据变换:使用tidyr包进行高效数据整形的探索
【8月更文挑战第29天】`tidyr`包为R语言的数据整形提供了强大的工具。通过`pivot_longer()`、`pivot_wider()`、`separate()`和`unite()`等函数,我们可以轻松地将数据从一种格式转换为另一种格式,以满足不同的分析需求。掌握这些函数的使用,将大大提高我们处理和分析数据的效率。
|
9天前
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
|
19天前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
18天前
|
机器学习/深度学习 算法 数据挖掘
R语言中的支持向量机(SVM)与K最近邻(KNN)算法实现与应用
【9月更文挑战第2天】无论是支持向量机还是K最近邻算法,都是机器学习中非常重要的分类算法。它们在R语言中的实现相对简单,但各有其优缺点和适用场景。在实际应用中,应根据数据的特性、任务的需求以及计算资源的限制来选择合适的算法。通过不断地实践和探索,我们可以更好地掌握这些算法并应用到实际的数据分析和机器学习任务中。
|
22天前
|
数据采集 机器学习/深度学习 数据挖掘
R语言数据清洗:高效处理缺失值与重复数据的策略
【8月更文挑战第29天】处理缺失值和重复数据是数据清洗中的基础而重要的步骤。在R语言中,我们拥有多种工具和方法来有效地应对这些问题。通过识别、删除或插补缺失值,以及删除重复数据,我们可以提高数据集的质量和可靠性,为后续的数据分析和建模工作打下坚实的基础。 需要注意的是,处理缺失值和重复数据时,我们应根据实际情况和数据特性选择合适的方法,并在处理过程中保持谨慎,以避免引入新的偏差或错误。
|
20天前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
22天前
|
数据处理
R语言数据合并:掌握`merge`与`dplyr`中`join`的巧妙技巧
【8月更文挑战第29天】如果你已经在使用`dplyr`进行数据处理,那么推荐使用`dplyr::join`进行数据合并,因为它与`dplyr`的其他函数(如`filter()`、`select()`、`mutate()`等)无缝集成,能够提供更加流畅和一致的数据处理体验。如果你的代码中尚未使用`dplyr`,但想要尝试,那么`dplyr::join`将是一个很好的起点。
|
4月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
4月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为