《《机器学习基础及应用》教案第11课聚类(一).docx》由会员分享,可在线阅读,更多相关《《机器学习基础及应用》教案第11课聚类(一).docx(7页珍藏版)》请在优知文库上搜索。
1、课题聚类(一)课时2课时(90min)教学目标知识技能目标:(1)掌握聚类的概念及距离的度量方法,了解聚类的类型(2)掌握k均值聚类算法的基本原理及其Skleam实现方法(3)能够使用k均值聚类算法训练模型(4)能够编写程序,寻找k均值聚类模型参数的最优值素质目标:了解时代新科技,激发学习兴趣和创新思维,增强民族自信心掌握常用的聚类算法,提高自主学习能力、数据分析能力和创新能力教学重难点教学重点:聚类的概念及距离的度量方法,k均值聚类算法的基本原理及其Sklean1实现方法教学睚点:使用k均值聚类算法训练模型;编写程序,寻找k均值聚类模型参数的最优值教学方法案例分析法、问答法、讨论法、i井授法
2、教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务,扫码观看“常见的聚类算法”视频,了解聚类和K均值聚类算法的相关知识【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】提出以下问题:什么是聚类任务?【学生】思考、举手回答传授新知【教师】通过学生的回答引入要讲的知识,介绍聚类任务、k均值聚类算法的相关知识9.1 聚类任务聚类(clustering)属于无监督学习,是机器学习的三大任务之一,其应用领域常广泛.在商业中,聚类常用于发现不同的
3、客户群体并刻画其特征;在生物中,聚类常用于基因分类,获取对种群固有结构的认识;在医学、交通及军事等领域中,聚类常作为图像分割(利用图像的灰度、颜色、纹理和形状等特征,将图像分割成若干个特定的、互不相交的、具有独特性质的区域)的支撑技术,用于提取特定内容。9.1.1 聚类的概念聚类是一种寻找数据之间内在分布结构的技术。聚类是指根据某种特定标准(如距离)把一个数据集分割成不同的类或簇,使得同一个簇中的数据对象的相似性尽可能大,不同簇中的数据对象的差异性尽可能大,即聚类后同类数据尽可能聚到一起,不同类数据尽可能分离。【指点迷津】聚类任务仅能自动形成簇结构,每个簇所对应的概念语义需由使用者自行定义.聚
4、类既可作为一个单独过程来寻找数据内在的分布结构,也可作为分类等其他学习任务的前驱过程。例如,在一些商业应用中,经常需要对新用户的类型进行判别,但直接定义用户类型往往是存在困难的,此时可先对用户数据进行聚类,根据聚类结果将每个簇定义为一个类(为用户数据打标签),然后再基于这些类训练分类模型,即可预测新用户的类别。9.1.2距离度量聚类是将差异性较小的样本聚为一类,将差异性较大的样本聚为不同类的过程。在聚类任务中,通常使用距离作为样本之间差异性的度量标准。距离越近,越亲密,距离越远,越疏远。1 .店的类型(1)在实际应用中,数据可分为连续型数据和离散型数据两大类。连续型数据指任意两个数据之间可细分
5、出无限多个值,如人的身高;离散型数据指任I可两个数据之间的数值个数是有限的,如产品的等级。(2)在统计学中,数据又可分为3种类型,分别是定类数据、定序数据和定S陵据。定类数据表示个体在属性上的特征或类别值仅是一种标志,没有顺序关系,如将性别男编码为1,性别女编码为O;定序娄照表示个体在某个有序状态中所处的位置,不能直接做四则运算,如受教育程度”是有顺序的,可定义为初中=3、高中=4、大学=5;定距数据是具有间距特征的变量,如温度。【教师】随机邀请学生回答以下问题:请举出几种定类数据、定序数据和定距数据的例子?【学生】聆听、思考、回答*【教师】总结学生的回答在机器学习中,需要将所有的属性值都统一
6、用数值表示,其中,定8瞄据本身就是数值,无须转换,对应连续型触;定类数据和定序数据需要通过编码转换为连续型数据.连续型数据和离散型数据的距离计算方法是不同的。2 .连续型数据的距离度量方法数据集中的每个样本都可以看作是多维空间中的一个点,故样本之间的距离就可转换成n维空间中点与点之间的距离。假设空间中有两点,和%,%和分别表示点,和在某一维度上的取值,则常用的计算两点之间距离的方法有如下几个。(1)欧式距离是直角坐标系中最常用的距离度量方法,是空间中两点之间的直线距离,其公式为ds,。,=J(.-9A+(演-XQ2+-+(电一肛)2(2)曼哈顿距离是把两点之间的每个维度的距离的绝对值相加得到的
7、距离,其公式为d(j,j)=%-xji+x,-xh1+xl-XjtiI(3)切比雪夫距离是取两点之间各个维度的距离的最大值,其公式为d(q,%)=max(%XjJ,|(气一匕),-x”)【教师】随机邀请学生回答以下问题:对于这三种连续型数据的距离度量方法来说,同样的数据集哪种方法计算出来的值最大?【学生】聆听、思考、回答【教师】总结学生的回答3 .离散型数据的距离度量方法离散型数据的距离通常使用简单匹配系数来度量,简单匹配系数的描述如下。假设i和j为两个样本,都由n个二元属性(取值为。或1)组成,这两个样本进行比较,可得到4个量,即样本i与样本j的属性值同时取I的属性个数,用a表示;样本i的值
8、取1,样本的值取O的属性个数,用b表示;样本i的值取O,样本j的值取1的属性个数,用C表示;样本i与样本j的属性值同时取O的属性个数,用d表示,则简单匹配系数的公式为sim(3j)=a+h+c+d显然,简单匹配系数的值越小,说明两个个体越相似。4 .1.3聚类的类型在实际应用中,根据聚类算法的不同,通常将聚类分为以下3种类型.(】)原型聚类亦称”基于原型的聚类,在实际聚类任务中经常使用。此类聚类算法假设聚类结构能通过一组原型(原型指样本空间中具有代表性的点)刻画。通常情形下,算法先对原型进行初始化,然后对原型进行迭代更新求解,其代表算法为k均值聚类算法、高斯混合聚类算法等.(2)层次聚类试图在
9、不同层次上对健集进行划分,从而形成树形的聚类结构。集的划分可采用自底向上”的聚合策略,也可采用“自顶向下”的分裂策略。(3)密度聚类亦称“基于密度的聚类”,此类聚类算法通过计算数据样本分布的紧密程度来确定聚类簇,将高密度区域的样本划分为同一个簇,其代表算法是DBSCAN聚类算法。【高手点拨】聚妁王务与分均王务的区别主要有以下几点。(1)训练模型使用的数据集不同。聚类任务属于无监督学习,其训练集不包含类别标签;而分类任务属于监督学习,其训练集需要有类别标签。(2)达成的目标不同。聚类任务的目标是把相似的数据分为一组,因此,聚类算法通常只需要考虑如何计算样本的相彳以度;而分类任务的目标是识别待测样
10、本属于某个类别,需要从已有的训练集中进行“学习,才能具备对未知数据进行分类的能力。(3)聚类和分类所采用的算法不同。聚类的主要算法有k均值算法、DBSCAN算法、高斯混合聚类算法等;分类的主要算法有逻辑回归算法、k近邻算法、朴素贝叶斯算法、决策树算法、随机森林算法、支持向量机等。*【教师】讲解“素养之窗”的内容(详见教材),了解AlGe的商业化发展9.2k均值聚类算法k均值(k-means)聚类算法原理简单,可解释性强,实现方便,广泛应用于数据挖掘、聚类分析、模式识别、金融风控、幡科学、智能营销和数据运营等领域,其目标是根据输入的参数k(簇的数目)的值,将样本集分成k个簇.9.2.1 k均值聚
11、类算法的基本原理1 .k均值聚类算法的原理分析k均值聚类算法的基本原理是,给定一个样本数据集,首先随机选择k个幡对象点作为初始聚类中心,然后计算每个样本点到各聚类中心的距离,将样本指派到距离最近的簇中,完成第一次聚类;接下来计算每个簇的平均值点(方法是对簇中所有点的坐标求平均值),将计算得到的均值点作为新的聚类中心,再计算每个样本点到新的聚类中心的距离,将其指派到距离最近的簇中,完成第二次聚类。依次往复执行,直到重新计算出的聚类中心点不再发生改变,算法结束,得到最终的聚类结果。【教师】通过多媒体展示“样本数据集“表格和“k均值聚类过程”图片(详见教材),并进行讲解例如,将表9-2中的样本数据集
12、聚为两个簇的过程如图所示(图中较大的实心圆表示聚类中心,较小的实心圆表示样本数据)表9-2样本数据集序号样本点横坐标样本点纵坐标序号样本点横坐标样本点纵坐标1346512367553388734459755471085可见,k均值聚类算法需要对聚类中心进行迭代更新,每次迭代所选取的聚类中心都会越来越接近簇的几何中心,故聚类效果也会越来越好。2 .k均值聚类算法的流程使用k均值算法进行聚类的具体步骤如下。(1)指定聚类簇的数目值(k的取值)(2)随机选择k个数据对象点作为初始聚类中心。(3)分别计算每个样本到各聚类中心的距离,将样本划分到距离最近的那个中心所处的簇中.(4)计算每个簇中所有样本的
13、平均值点(对簇中所有点的坐标求平均值),得到新的聚类中心。(5)重复步骤(3)与步骤(4),直到聚类中心点不再发生变化。k均值聚类算法相对简单、运算速度快,且处理大数据集时,效率较高。但在实际应用中,k均值聚类算法也有如下缺点:该算法要求用户必须事先给出簇的数目k,但很多时候,用户并不能准确知道k的具体值;该算法对初始值较敏感,对于不同的初始值,可能导致不同的聚类结果;该算法对噪声点和孤立点数据敏感,少量的噪声点对平均值的计算会产生极大的影响。【高手点拨】在k均值聚类算法中,如果数据量很大,类别值k也很大的话,分别计算每个样本数据点到聚类中心的距离是比较耗时的。在实际应用中,可使用MaPRed
14、UCe并行化编程框架将距离计算分配给多个计算单元,实现并行化计算。例如,要计算100个数据点到两个聚类中心的距离,可使用M叩RedUCe将该计算任务分配给10个计算单元,每个计算单元计算20个距离即可。9.2.2k均值聚类算法的Sklearn实现Sklearn的聚类模块cluster提供了KMeans类,用于实现k均值聚类算法。在Skleam中,可通过下面语句导入k均值聚类算法模块。fromskleam.clusterimportKMeansKMeanS类有如下几个参数。(】)参数LClUSIeN用于设定簇的数目。(2)参数init用于设置初始聚类中心的获取方法,其取值有random,k-me
15、ans+与用户自定义3种:random表示随机从训练数据中选择初始聚类中心;k-means为默认值,表示用一种特殊的方法选定初始聚类中心,可加速迭代过程的收敛;用户自定义表示用户可传递一个向量,用于指定聚类中心的获取方法。(3)参数n.init用于设置使用不同的初始聚类中心运行算法的次数。由于k均值聚类算法的结果受初始值的影响较大,因此需要多迭代几次以选择一个较好的聚类效果,默认值为10,一般不需要修改。(4)参数max_iter用于设置最大的迭代次数。【例91】使用k均值聚类算法将Skleam自带的莺尾花数据集聚为3类。【程序分析】使用k均值聚类算法将Skleam自带的莺尾花数据集聚为3类的步骤如下。(1)导入莺尾花数据集,提取花瓣长度和花瓣宽度作为特征变量,然后画出数据的散点图.【参考代码】fromsklearn.datasetsimportload_msimportnumpyasnpimportma(plolib.ylotaspl(# 提取花瓣长度和花瓣宽度作为特征变量x=lo