《《Spark大数据技术与应用案例教程》教案第17课使用聚类算法处理鸢尾花数据.docx》由会员分享,可在线阅读,更多相关《《Spark大数据技术与应用案例教程》教案第17课使用聚类算法处理鸢尾花数据.docx(6页珍藏版)》请在第壹文秘上搜索。
1、使用聚类算法处理莺尾花数据课时2课时(90min)教学目标知识技能目标:(1)认识聚类算法(2)理解K-MeanS算法(3)理解高斯混合模型素质目标:能够意识到大数据应用的价值,具备坚实的计算机专业基础知识,有较强的数据统计分析能力,掌握丰富的数据分析方法和工具教学重难点教学重点:聚类算法、K-MeanS算法和高斯混合模型教学睚点:使用SparkMLlib的聚类算法处理数据教学方法案例分析法、问答法、讨论法、i井授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务请大家回顾上一
2、节课所学知识,并简单了解什么是聚类算法。【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】提出以下问题:什么是聚类算法?【学生】举手回答传授新知【教师】通过学生的回答引入新知,介绍聚类算法、K-MeanS算法和高斯混合模型的相关知识一、聚类算法概述【教师】利用多媒体展示“聚类算法的工作原理”图片,并讲解聚类算法的相关知识聚类算法的工作原理是根据输入的特征向量寻找数据(没有标签)的规律,并将类似的样本汇聚成簇,如图5/3所示.由于进行聚类分析的数据集没有标签,所以无法知道输入数据的输出结果是什么,但是可以清晰地知道输入数据属于哪一簇。T数据分布(聚类
3、前)数据分布(聚类后)课题图5-13聚类算法的工作原理使用聚类算法执行聚类任务的过程可简化为以下3步.(1)选择聚类算法和参数。根据任务的特性和数据的分布情况,选择合适的聚类算法和参数。(2)选择聚类数。确定聚类的数量,即确定要将数据分成多少个簇.(3)执行聚类算法。将数据输入选定的聚类算法中,并执行聚类操作。聚类算法根据数据点之间的相似度或距离进行分组,将相似的数据点分配到同一簇中。接下来,以K-Means算法和高斯混合模型为例,介绍SparkMLlib聚类算法的使用方法。二、K-MeanS算法【教师】讲解K-MeanS算法的相关知识K-Means算法即K均值聚类算法(K-meansclus
4、teringalgorithm),它是一种基于距离的聚类算法,用于将数据点分为K个簇。该算法的工作原理如下。(1)随机选择K个中心点(也称为质心)作为起始点。(2)将每个数据点分配到最近的中心点所在的簇中。(3)更新簇的中心点,即计算每个簇中所有触点的平均值,并将其作为新的中心点。(4)重复执行(2)和(3),直到簇的中心点不再改变或达到预定的迭代次数.K-Means算法的基本格式如下。KMeans(featuresCol,predictionCol.k,initMode,initSteps,tol,maxlter,seed,(IistanceMeasure,WeightCol)其中,参数fe
5、aturesCol表示输入特征列的名称;参数predictionCol表示预测结果的列名,将聚类的结果存储到该列中,默认值为prediction;参数k表示聚类的簇数,默认值为2;参数tol(可选)表示收敛容差,当聚类中心的变化小于该值时停止迭代,默认值为0.0001;参数seed(可选)表示随机数种子,用于确定初始化的随机值。三、高斯混合模型【教师】讲解高斯混合模型的相关知识高斯混合模型(Gaussianmixturemodel)简称GMM,是一种基于高斯分布的概率模型,它假设数据集由多个高斯分布组成,每个高斯分布对应一个簇。该算法的工作原理如下。(1)随机初始化K个高斯分布的均值、协方差矩
6、阵和权重。(2)计算每个数据点属于各个簇的后验概率,即每个簇生成该数据点的概率除以所有簇生成该数据点的概率之和。(3)根据(2)计算出来的后验概率,更新每个高斯分布的均值、协方差矩阵和权重。(4)重复执行(2)和(3),直至肝莫型参数收敛或达到预定的迭代次数。GMM的基本格式如下。GaussianMixture(featuresCol,predictionCol,k,probabilityCol,tol,maxlter,seed.UggregationDepth.weightCol)其中,参数featuresCol表示输入特征列的名称;参数predictionCol表示预测结果的列名,默认值为
7、prediction;参数k表示聚类的簇数,默认值为2;参数probabilityCol(可选)表示概率列的名称,默认值为probability;参数maxlter(可选)表示算法的最大迭代次数,默认值为I(X);参数seed(可选)表示随机数种子,用于确定初始化的随机值。【教师】通过例子,帮助学生掌握使用高斯混合模型进行聚类分析的方法【例5-7使用模拟器,生成一个包含1000个样本的二维数据集(见图5-14);然后使用GMM对该数据集进行聚类分析,设置簇数为3,最大迭代次数为20,种子值为42,输出结果如图5-15所示。hadoopbogon-$pysparkfrompyspark.ml.c
8、lusteringimportGaussianMixturefrompyspark.ml.featureimportVectorAssemblerfrompyspark.sql.functionsimport*性成模拟数据df=spark.range(O,1(XX).withColumn(x,randn(seed=42)*5+10).withColumn(y.randn(seed=43)*5+20)df.show(truncate=False)能0建VectorAssembler对象assembler=VectorAssembler(inputCols=(x,y,outputCol=featu
9、res)# 应用VeCIOrASSembler模型,将多个特征列合并成单个特征列data=assembler.transfbr(df).select(feaiures)# 创建GaussianMixture对象gmm=GaussianMixture(k=3.maxlter=2,seed=42)相Il练GaussianMixture模型model=gmm.fit(data)# 应用GaUSSianMiXtUre模型转换数据,并选取指定列results=model.transform(data).select(col(features),col(prediction,).alias(cluster
10、)results.show(truncate=False)lidIxIfeaturesIclusterlI23.51l942167394 I 122.81661245544653 I 118.9894181546672 I I17.34761346252285I I25.89543382126S3 Il121.92239527125826I25.51352724727683IIlll.964672646762I22.86522311837727I12 I13.668668266643287I16.67519373667936I13 7.38775We2141564116.81979388151
11、484I2.342896589156I21.96167589073965II5111.08169191331692124.933177764566793(1617.25736976114084517119.53984166885834187.91476785564919I15.436138669396116114.76122564431328111I14.25549665365717I26.68624547348371I1129.29489668755397I28.155319548O35I113118.738566824463883I26.43748134829483I114ll.58496
12、34267891412.53315712828481115114.822653223364743118.866564987858396I116I15.49812S556815231.e925186248726I11715.6876446094672165I18.748218493322614I118I6.709335174662589|18.381521227471771197.365729715930831I21.197157588866403I1(21.922395271265826,25.513527248727683I2I【10.960467026646762,22.865223118
13、37727)I13.668668266643287,16.67319373667936I17.58775992141564,16.8197938815148I22.368420896589156,21.9616758973965)12I(11.848169191331692,24.933177764566793I7.257369761140845,23.5110942167394I1(19.53984166085834,22.816612455446531I2I7.914767855649,18.994181546672I2I15.43613868669396,17.8347613462522
14、85|114.76122564431328,25.89540338212653I21(14.255496605365717,26.60624547348371I2l.2949668755397,28.ei5531954835II18.7385662446383,26.437481348289403)I21(18.587496342678914,20.533157128882848112I14.822653223364743,18.8665649785396|21(15.49812505568152,31.692518248726I21(5.6e76446947215,18.748218493322614)12I6.709335174662589,18.380152122747177I21(7.365729715930851,21.297157588866403Ionly showing top 2 rows图5-14二维数据集内容课堂实践onlyshowingtop2rows图5-15GMM聚类后的结果【4催示】transfOrm()方法会将输入数据转换为聚类结果,输出的聚类结果中会产生一列预测结果,预测结果的列名默认为prediction。在例5-7中,我们使用了alias。方法将预测结果的列名修改为cluster【学生】聆听、思考、理解、记录【教师】介绍