基于Spark的机器学习实践 (九) - 聚类算法-阿里云开发者社区

开发者社区> javaedge> 正文

基于Spark的机器学习实践 (九) - 聚类算法

简介: 基于Spark的机器学习实践 (九) - 聚类算法
+关注继续查看

0 相关源码

1 k-平均算法(k-means clustering)概述

1.1 回顾无监督学习

◆ 分类、回归都属于监督学习

◆ 无监督学习是不需要用户去指定标签的

◆ 而我们看到的分类、回归算法都需要用户输入的训练数据集中给定一个个明确的y值

1.2 k-平均算法与无监督学习

◆ k-平均算法是无监督学习的一种

◆ 它不需要人为指定一个因变量,即标签y ,而是由程序自己发现,给出类别y

◆ 除此之外,无监督算法还有PCA,GMM等


源于信号处理中的一种向量量化方法,现在则更多地作为一种聚类分析方法流行于数据挖掘领域。

k-平均聚类的目的是:把n 个点(可以是样本的一次观察或一个实例)划分到k个聚类中,使得每个点都属于离他最近的均值(此即聚类中心)对应的聚类,以之作为聚类的标准。

这个问题将归结为一个把数据空间划分为Voronoi cells的问题。


这个问题在计算上是NP困难的,不过存在高效的启发式算法。

一般情况下,都使用效率比较高的启发式算法,它们能够快速收敛于一个局部最优解。

这些算法通常类似于通过迭代优化方法处理高斯混合分布的最大期望算法(EM算法)。

而且,它们都使用聚类中心来为数据建模;然而k-平均聚类倾向于在可比较的空间范围内寻找聚类,期望-最大化技术却允许聚类有不同的形状。


k-平均聚类与k-近邻之间没有任何关系(后者是另一流行的机器学习技术)。


2 k-平均算法原理

2.1 k-平均算法描述

◆ 设置需要聚类的类别个数K ,以及n个训练样本,随机初始化K个聚类中心

◆ 计算每个样本与聚类中心的距离,样本选择最近的聚类中心作为其

类别;重新选择聚类中心

◆ 迭代执行上一步,直到算法收敛

算法图示

3 Kmeans算法实战

k-means是最常用的聚类算法之一,它将数据点聚类成预定义数量的聚类

MLlib实现包括一个名为kmeans ||的k-means ++方法的并行变体。

KMeans作为Estimator实现,并生成KMeansModel作为基本模型。

  • 代码
  • 结果

4 LDA算法概述

4.1 LDA算法介绍

◆ LDA即文档主题生成模型 ,该算法是一种无监督学习

◆ 将主题对应聚类中心,文档作为样本,则LDA也是一种聚类算法

◆ 该算法用来将多个文档划分为K个主题 ,与Kmeans类似


隐含狄利克雷分布(英语:Latent Dirichlet allocation,简称LDA),是一种[主题模型],它可以将文档集中每篇文档的主题按照[概率分布]的形式给出。

同时它是一种[无监督学习]算法,在训练时不需要手工标注的训练集,需要的仅仅是文档集以及指定主题的数量k即可。

此外LDA的另一个优点则是,对于每一个主题均可找出一些词语来描述它。

LDA首先由 David M. Blei、吴恩达和迈克尔·I·乔丹于2003年提出,目前在[文本挖掘]领域包括文本主题识别、文本分类以及文本相似度计算方面都有应用。

5 LDA算法原理

5.1 LDA算法概述

◆ LDA是一种基于概率统计的生成算法

◆ 一种常用的主题模型,可以对文档主题进行聚类,同样也可以用在其他非文档的数据中

◆ LDA算法是通过找到词、文档与主题三者之间的统计学关系进行推断的

5.2 LDA算法的原理

◆ 文档的条件概率可以表示为

6 LDA算法实践


LDA实现为支持EMLDAOptimizer和OnlineLDAOptimizer的Estimator,并生成LDAModel作为基本模型。如果需要,专家用户可以将EMLDAOptimizer生成的LDAModel转换为DistributedLDAModel。

  • 代码
  • prediction.show()
  • topics.show(false)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
7238 0
机器学习之层次聚类
层次聚类 聚类是将样本进行归类形成K个簇,层次聚类是其中的一种方法。它将数据组成一棵聚类树,过程可以是凝聚形式或分裂形式。
895 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
9502 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
8920 0
吴恩达《机器学习》课程总结(13)聚类
13.1无监督学习:简介 将没有标签的样本分成不同的集合(簇),这种算法叫做聚类。常用的领域有市场分割、社交网络分析、计算机集群管理、了解星系等。 13.2K-均值算法 (1)K-均值是最普及的聚类算法,是一种迭代算法,假设需要将数据聚类成n个组,这时候首先随机选择K个点,称为聚类中心。
1163 0
Python数据挖掘与机器学习,快速掌握聚类算法和关联分析
前文数据挖掘与机器学习技术入门实战与大家分享了分类算法,在本文中将为大家介绍聚类算法和关联分析问题。分类算法与聚类到底有何区别?聚类方法应在怎样的场景下使用?如何使用关联分析算法解决个性化推荐问题?本文就为大家揭晓答案。
15547 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11327 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
5824 0
+关注
javaedge
关注公众号:JavaEdge,后台回复面试,领取更多大厂求职资源。曾在百度、携程、华为等大厂搬砖,专注Java生态各种中间件原理、框架源码、微服务、中台等架构设计及落地实战,只生产硬核干货!
2317
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
《Nacos架构&原理》
立即下载
《看见新力量:二》电子书
立即下载
云上自动化运维(CloudOps)白皮书
立即下载