《Spark大数据技术与应用案例教程》教案第17课使用聚类算法处理鸢尾花数据.docx

上传人:夺命阿水 文档编号:1242631 上传时间:2024-04-12 格式:DOCX 页数:6 大小:39.67KB
返回 下载 相关 举报
《Spark大数据技术与应用案例教程》教案第17课使用聚类算法处理鸢尾花数据.docx_第1页
第1页 / 共6页
《Spark大数据技术与应用案例教程》教案第17课使用聚类算法处理鸢尾花数据.docx_第2页
第2页 / 共6页
《Spark大数据技术与应用案例教程》教案第17课使用聚类算法处理鸢尾花数据.docx_第3页
第3页 / 共6页
《Spark大数据技术与应用案例教程》教案第17课使用聚类算法处理鸢尾花数据.docx_第4页
第4页 / 共6页
《Spark大数据技术与应用案例教程》教案第17课使用聚类算法处理鸢尾花数据.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《《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.7482184933

15、22614)12I6.709335174662589,18.380152122747177I21(7.365729715930851,21.297157588866403Ionly showing top 2 rows图5-14二维数据集内容课堂实践onlyshowingtop2rows图5-15GMM聚类后的结果【4催示】transfOrm()方法会将输入数据转换为聚类结果,输出的聚类结果中会产生一列预测结果,预测结果的列名默认为prediction。在例5-7中,我们使用了alias。方法将预测结果的列名修改为cluster【学生】聆听、思考、理解、记录【教师】介绍“使用聚类算法处理鱼尾花

16、数据”的大概流程,安排学生扫描微课二维码观看视频“使用聚类算法处理莺尾花数据”(详见教材),并要求学生进行相应操作打开PyCharm,在IrisFeaturepy”文件中继续编写应用程序,实现Iris数据集的聚类分析。具体实现步骤如下。步骤IA使用FandomSplilO方法将indexed按照7:3的比例划分为训练集IrainingData和测试集testData步骤2A创建KMeans又搀kmeans其中,featuresCol为pcaFeatures,表示输入的惭正列;k为3,表示将数据分成3个簇;seed为1,表示随机初始化的种子值为Ie步骤3A使用fit()方法和训练集训练KMean

17、s模型,得到训练好的模型model.(详见教材)【参考代码】#将数据集划分为训练集和测试集(trainingData,testData)=indexed.randomSplit(0.7,0.3)舱0建KMeans对象kmeans=KMeanS(featuresCol=pcaFeatures,k=3,seed=1)理11练KMeans模型model=kmeans.fit(trainingData)#应用KMeanS模型进行轴转换并选取指定列predictions=model.transfbrm(testData).select(col(pcaFeatures),col(prediction)#显

18、示聚类结果prediciions.show()【运行结果】在PyCharm中运行代码,控制台输出使用K-Means算法对莺尾花数据进行聚类的结果,如图5-16所小。IpcaFeaturesIpredictionI-r-9.168582819.1|I-8.4433481947742.IIlI-8.4294773314272IIlI-7.9395103568038.I1|l(-7.937543175879.IIl-7.86111817339.11I-7.7871967478886.IIlI-7.6341978782912.I1|1(-7.4337939826187.IIl-7.4168667599

19、68.1|-7.412972173712.I11-7.29983246815.1|I(-7.9661397916.I2|I-6.9754844205620.I1|I-6.9254153229567.I2|I-6.9254153229567.I2|-6.919231123.I2|I-6.8990113479645I2|-6.89672922357.2|I-6.5984775849899.I2|十十onlyshowingtop2rows图5-16K-MeanS算法的聚类结果【小提示】聚类算法属于无监督学习,所以在训练KMeanS模型时不需要使用标签列,只需要使用数据中的特征列。在实际应用场景中,聚类算法使用的数据集一般都没有标签列。【学生】自行扫码观看配套微课,按照要求进行操作,如遇问题可询问老师【教师】巡堂辅导,及时解决学生遇到的问题课堂小结【教师】简要总结本节课的要点聚类算法概述K-Means算法高斯混合模型【学生】总结回顾知识点作业布置【教师】布置课后作业(1)完成项目五项目实训中与本科相关的习题;(2)根据课堂知识,课后自己尝试使用聚类算法处理数据。【学生】完成课后任务教学反思

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号