Spark大数据分析实战【1.6】

张开发
2026/4/21 3:09:46 15 分钟阅读

分享文章

Spark大数据分析实战【1.6】
第9章 基于Spark的社交网络分析如今世界进入互联网时代,社交网络已经成为日常生活中不可缺少的一部分。社交网络应用是互联网应用的核心组成部分,而社交网络的数据也构成了互联网大数据的一个重要组成部分。社交网络分析(Social Network Analysis,SNA)是目前数据挖掘中与社会生活联系最紧密的热点之一,无论是工业界还是学术界都希望通过社交网络分析发掘潜在的巨大商业价值。在第9章当中,将讲解社交网络分析的理论,介绍社交网络中两大核心问题:社团挖掘和链路预测。社团挖掘和链路预测又分别对应着机器学习中的聚类和分类,因此将介绍聚类和分类的相关知识,以及Spark的MLlib中的聚类和分类工具包,并且通过实战向读者展示使用Spark进行大规模社交网络分析的技术。9.1 社交网络介绍社交网络通常是指用户和用户之间的社交关系构成的网络拓扑结构。在社交网络当中,通常以顶点表示,用户之间的社交关系则以边表示。9.2 社交网络中社团挖掘算法社团挖掘(Community Discovery)是指从社交网络中发现潜在的社交团体。社交团体内部的用户之间往往联系较为紧密,而社交团体之间的用户联系较少。例如,在人人网当中,清华大学这个团体的用户之间存在大量的好友关系,而清华大学和北京大学之间的用户好友关系就相对较少。社团挖掘又可以看作是聚类分析,即将关联最紧密的用户聚集为一个类别。使用社团挖掘算法可以找到社交网络当中的潜在集体,可以自动为社交网络中的人群进行分类,并且为预测用户新的好友,为同类用户做内容推荐等作用。9.3 Spark中的K均值算法9.3.1 Spark中与K均值有关的对象和方法在库org.apache.spark.mllib.clustering中,与K均值相关的对象包括KMeans和KMeansModel。对象KMeans中包含了分布式的K均值算法的实现,对象KMeans中相关的函数如下:·def setK(k:Int):KMeans.this.type:设置需要聚类的个数。默认的聚类个数为2。·def setMaxIterations(maxIterations:Int):KMeans.this.type:设置K均值算法最大的迭代次数。默认的最大迭代次数为20次。·def setInitializationMode(initializationMode:String):KMeans.this.type:设置初始化聚类中心的算法。若输出参数为“random”,则随机选择K个样本作为初始聚类中心;若输入参数为“kmeans||”,则使用“k-means||”算法计算初始化聚类中心。“k-means||”算法是“k-means++”算法的Spark分布式实现。·def setRuns(runs:Int):KMeans.this.type:设置K均值算法运行的次数。通常K均值算法的结果很容易受初始化聚类中心的影响;如果初始化聚类中心选取不佳,K均值算法只能收敛到局部最优解。然而如果对同一个数据集多次运行K均值算法,并且每次选择不一样的初始化聚类中心,并且在多次运行结果中选择最佳聚类结果,那么就可以保证结果尽量接近最优聚类。默认K均值算法

更多文章