这样类比理解聚类
聚类是机器学习中非常常见得一种算法。在Spark Mlib中,聚类有如下几种存在的形式:
基于DataFrame封装的API:
(1)K-means
(2)Latent Dirichlet allocation (LDA)
(4)Gaussian Mixture Model (GMM)
基于RDD构建的API:
(1)K-means
(3)Power iteration clustering (PIC)
(4)Latent Dirichlet allocation (LDA)
总述:物以类聚,人以群分
聚类的算法实现思路,实现的步骤在这篇文章中并非重点,而介绍这一部分细节的资料也有很多,无论书籍还是互联网上和算法相关的论坛,都容易找到实现的细节。
而Spark Mlib模块所实现的算法虽然与理论算法有所差异,但万变不离其宗。如果您对聚类的算法细节感兴趣,可以参考另外一篇文章,Spark聚类实现的细节一文。也可以参考另外一些机器学习类书籍。
实际上,很多情况下,对某些知识的深入研究,深入理解其理论,却比不上对其熟悉后灵活应用在其他领域所创造的价值大。试想一下,人工智能三起倆落的发展历程中,如果没有近些年分布式计算使得算力支持,没有互联网的大量训练数据的积累,没有大数据背景下的数据驱动的运营倒逼机器学习运用到商业界。近些年崛起的这个人工智能绝比现在的发展速度慢多了。于是,在接下来,我也不会用纯粹的数学思维来介绍聚类,而是用一种结合工作或者生活的方式展现聚类的应用。
聚类在工作和生活中的应用
(1)四象限法则
四象限法则是史蒂芬柯维在《高效能人士的七个习惯》这本书提到的时间管理法则,要事第一强调将重要的事情放在第一位,其实,要事第一以及四象限法则也可以理解为是一种包含聚类思维的一种法则。
为什么可以这样理解呢?
试想一下,早晨起来,当你整理完一切,轻轻松松的来到一天开始工作的办公桌前,你想着放空身心和大脑,一切几乎清零,从头用心整理一下思路,随后脑子开始快速运转,计算出所有待处理的事情,此时这些待处理的事情经过回忆,全部呈现在toDoList列表中,或者任何你可以记下来的地方。这些待办事项便是一种输入数据。输入数据进入大脑,大脑通过聚类思维将这些待办事项归为四类,如果在这过程中,待办事项大多是自己有经验处理的,那便在不知不觉中参考了以往的经验,参考了历史的标记数据,因为在过去,由于曾经处理过得事情告诉过你,哪些重要,哪些不重要,因此此时的大脑算法便是一直监督学习算法,应该算作一种分类算法。而如果今天你记录下来的待办事项大多都没有历史经验告诉过你类似的事情中,哪些是重要紧急的,哪些是不重要不紧急的。那此时的大脑所采用的机器学习算法就属于非监督学习算法,最大的可能性用的算法是聚类算法。因此,无论机器学习算法是否能够应用到你的行业中,其实,它或多或少都和我们的工作或者生活有关,因为它可以被视作一种人类的思维方式,甚至可以作为一种思维的工具,来帮助我们进行高效的思考。这也在一定的程度上看出,其实,机器的计算方式(算法)和人的思考方式有很多类似的地方,虽然二者的物理执行方式完全不同。
(2)清单列表
清单列表是一种提高人工工作效率,甚至避免犯一些基本错误的工具,它在《清单革命》这本书中被系统的介绍过,但我们今天来讨论的不是清单怎么制作,也不是来讲清单怎么帮助我们提高效率的,而是来谈谈或者认识列出清单的思维过程中,发散性的思维所想到的诸多的待办事项,是怎么通过类似收敛性的聚焦,聚合到今天这个待办事件的清单列表中的呢?这个过程类似一个个事件碎片聚集在清单列表中,从而模拟出一个聚类过程。通过理解和工作相关的这个过程,能帮助我们理解计算机的聚类方法。
首先,列清单时,根据时间距离来看,离今天时间最近的事情有哪些,距离今天在一周之内的事情全部想出来放在一起,另外,根据重要性来看,越重要的事情距离今天的距离越短,比如就以这俩个维度(时间距离和重要性距离)来综合算出距离今天最近的那些所有的事情,它们统一的就被聚集在今天的待办事项的列表中的。这个过程虽然和计算机中的机器学习聚类算法虽然差异也大,但也有相似性,对于那些没有算法基础的非专业朋友,如果想尝试用相对更容易理解的方式来理解聚类,便可以借用类似的方法去理解,而对于专业的算法研究者,也可以使得自己的专业同生活结合得更加紧密一些,也扩大了算法应用的范围(不仅仅能用在工作中,也能用在生活的点滴细节中,也能扩大自己思维的边界)。
聚类思维和人类的归纳思维有何异同
前面笔者也有所提及,机器学习的很多理解,可以尝试想想人是怎么思考解决生活中的问题的。不能保证就能完全理解算法的执行过程,但能起到前期的辅助理解的作用,当有了人是怎么思考类似问题的探索后,再去理解机器学习的算法,很大程度上能感觉到,那些以前很难理解得算法比之前要容易理解得多。
(1)归纳思维
《科学究竟是什么》这本书中提到四种主流的科学观,这四种主流的科学观分别为
(1)归纳主义
(2)否证主义
(3)结构主义
(4)贝叶斯主义
我们重点来谈谈归纳主义,归纳主义科学观认为,科学是对事实归纳总结后得出的结论,这种结论并非100%准确,比如看到很多的天鹅都是白色的,在很大的地域范围内都没有看到过黑天鹅,因此就很容易归纳出“所有天鹅都是白色的”这一类似的结论,但这些归纳的结论对大多数事物有重要的意义,所以能应用到大多数的事物上。
我们先不论归纳主义是否可靠,我们的重点是看到几乎所有的天鹅都是白色的,将其归为白色天鹅一类,这一思维逻辑是否可以算作聚类思维。如果再发现有黑色天鹅和蓝色天鹅,因为之前没有见过黑色天鹅和蓝色天鹅,因此这种思维就不算分类,而应当算作聚类思维,那按照聚类思维的话,大脑像计算机一样计算出结果,地球上的天鹅有三类。这也是计算机机器学习算法计算的子过程。
(2)机器从0到1的思维聚焦