第十讲 聚类模型

K-mens聚类

将样本划分为由类似的对象组成的多个类的过程。聚类后,我们可以更加准确的在每个类中单独使用统计模型进行评估、分析或者预测;也可以探究不同类之间的相关性和主要差异。
分类是已知类别的,聚类未知。

K-means聚类算法流程:

  1. 指定需要划分的簇的个数K值(类的个数)
  2. 随机地选择k个数据对下个作为初始的聚类中心
  3. 计算其余的各个数据对象到这k个初始聚类中心的距离,把数据对象划分为距离它最近的那个中心所在的簇类中
  4. 调整新类并且重新计算出新类的中心;
  5. 循环步骤三、四,看中心是否收敛不变,如果收敛或达到迭代次数则停止循环
  6. 结束

流程图

图片说明

aaa

k-means算法的评价
优点:

  1. 算法简单,快速
  2. 对处理大数据集,该算法是相对高效率的
    缺点:
  3. 要求用户必须事先给出要生成的簇的数目k
  4. 对初值敏感
  5. 对于孤立点数据敏感

K-mean++算法

k-means++算法选择初始聚类中心的基本原则是:初始的聚类中心之间的相互距离要尽可能远。
流程:

  1. 随机选取一个样本作为第一个聚类中心
  2. 计算每个样本与当前已有聚类中心的最短距离(即与最近一个聚类中心的距离),这个数越大,表示被选取作为聚类中心的概率越大;最后,用轮盘法(依据概率大小来选取抽选)选出下一个聚类中心
  3. 重复第二步 ,直到选择k个聚类中心,选出初始点后,就继续使用标准的k-means算法。

操作: 分类 - > 聚类

图片说明

图片说明

所有变量通过spss进行标准化 消去量纲 可能结果会跟原来不一样

图片说明

系统/层次聚类

系统聚类的合并算法通过计算两类数据点间的距离,对最为接近的两类数据点进行组合,并反复迭代这一过程,直到将所有数据点合为一类,并生成聚类谱系图。
课程分类或者成绩分类

图片说明

指标与指标之间的距离

例子

图片说明

类与类之间的距离用重心法来定义的

图片说明

方法

最短距离法

最长距离定义法

图片说明

组间平均连接法

图片说明

组内平均连接法

图片说明

重心法

图片说明

系统聚类流程图

图片说明

最短距离系统聚类法

根据五个学生的六门课的成绩,对这五个学生进行分类

图片说明

计算每两个学生的距离 (样品间的距离矩阵 欧氏距离)

将每一个样品看做是一个类

即G1 G2 G3 G4 G5 观察D(G1,G5) = 15.8 最小,故将G1与G5聚为一类,记为G6 ,计算新类与其余各类之间的距离,得到新的距离矩阵D1

图片说明

聚类结果

图片说明

聚类分析注意问题

  • 对于一个实际问题要根据分类的目的来选取指标,指标选取不同分类结果一般也不同
  • 样品间距离定义方式不同,聚类结果也一般不同
  • 聚类方式的不同,聚类结果一般也不同(尤其是样品特别多的时候)。最好能够通过各种方法找出其中的共性
  • 要注意指标的量纲,量纲差别太大会导致聚类结果不合理
  • 聚类分析的结果可能不令人满意,因为我们所做的事一个数学的处理,对于结果我们要找到一个合理的解释。

流程

  • 将每个对象看作一类,计算两两之间的最小距离
  • 将距离最小的两个类合并为一个新类
  • 重新计算新类与所有类之间的距离
  • 重复二三两步,直到所有的类最后合并成一类
  • 结束

    spss的操作

    图片说明

    标准化 需要知道怎么还原

    图片说明

肘部法则

图片说明

图片说明

DBSCAN算法

图片说明

图片说明

图片说明

全部评论

相关推荐

03-15 20:26
已编辑
电子科技大学 C++
T3题面:给一个3e5数组,每次询问长度为len的子数组乘积的和,如果子数组乘积>1e9,则视为0.赛后一分钟想出来了,比赛时打了个暴力+线段树注意到1e9大约是2^30, 因此len长度如果>30就直接输出0,30以内做一个记忆化就行,复杂度O(30*n)感觉是以前比赛做过的题,忘了怎么做了。。。---upd: 忘了数据范围了,如果有0,1的话那这样也不行
blueswiller:给出一个做法,刚刚才想到,应该没问题,时间复杂度为 O(max(30n, nlogn)): 1. 根据 0 切分数组。2. 现在问题转化为>=1 的情况,我们首先维护每一个数前一个 > 1 的数的位置,同时维护一个长度的差分数组,初始值全为 0。3. 我们从每一个数 i 开始向前跳,至多跳 30 次,维护这个过程中的乘积,于是得到 30 个区间加和。举例:假设从 j1 跳到 j2 ,相当于对查询长度 (i- j1 + 1) 至 (i - j2) 贡献 a_i * ... * a_j1。4. 对于所有区间加和,我们采用差分数组结合树状数组对其进行维护,由于长度至多为 n ,树状数组构建的复杂度为 O(nlogn),于是,构建阶段的复杂度为 O(max(30n, nlogn))。在线单次查询的复杂度为树状数组查询的复杂度 O(logn)。
投递淘天集团等公司10个岗位 > 笔试
点赞 评论 收藏
分享
大摆哥:刚好要做个聊天软件,直接让你帮他干活了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务