机器学习实战读书笔记(三)

从本节开始,将介绍无监督学习。今天整理了无监督学习中的k均值聚类算法和MapReduce部分的内容。本部分是8月24号的内容。

9. k均值聚类算法

(1)k均值聚类算法

优点:易于实现。

缺点:可能收敛到局部最小值,在大规模的数据集上的收敛速度慢。

适用数据类型:数值型。

可以用的误差指标如误差的平方和(Sum of Squared Error,即SSE)来评价算法的效果。k值是需要事先指定的。针对于k均值中的缺陷,通过采用更有效的二分k均值的聚类算法来改进。

算法的工作流程:首先选择k个初始值作为质心,然后将数据中的每一点分配到一个簇中,即为每一个点找到距其最近的质心,将其分配给该质心所在的簇中。其次,将每个簇的质心更新为该簇中所有点的平均值。

(2)二分k均值算法

算法的工作流程:首先将所有的点看做是一个簇,然后将这个簇一分为二。之后选择一个簇继续进行细分,选择哪一个簇进行划分取决于对其划分是否可以最大程度地降低SSE的值(即选择有最大误差的簇进行划分)。上述基于SSE的划分不断重复,直到得到用户指定的簇数目为止。

通过和(1)进行对比,可以发现:聚类(2)会收敛到全局最小值,而(1)偶尔会陷入到局部最小值

(3)示例分析

采用二分k均值算法将地图上的点进行聚类。

(4)除了(1)和(2)之外,还有一种被称为层次聚类的方法也被广泛使用。

14. 大数据与MapReduce

主要介绍内容:(1)介绍MapReduce和Hadoop,用Python编写MapReduce作业。其中,Hadoop是MapReduce框架的一个免费开源实现。    (2)使用亚马逊的Web服务实现在多台机器上运行代码。

                          (3)用Python自动执行MapReduce作业的mrjob框架,使用mrjob搭建分布式SVM,以实现并行训练分类器。

(1)MapReduce

1)包括:map阶段(mapper),sort/combine阶段,reduce阶段(reducer)。

      各个阶段之间不做数据交流。

      数据被重复放在不同的机器上,以防某个机器失效。

      mapper和reducer传输的数据形式是key/value对。

2)Hadoop流

参考文献:《Hadoop实战》、官方文档(http://hadoop.apache.org/)、《Mahout in Action》。

Hadoop流类似于Linux中的管道(符号是|,实现将一个命令的输出作为另一个命令的输入)。

(2)在亚马逊的Web服务上运行Hadoop

Web服务:AWS(http://aws.amazon.com/),租赁大规模计算基础设施。

(3)mrjob框架

很多机器学习算法不能直接用在MapReduce框架上,不过已经有大多数机器学习算法的MapReduce实现。

SVM中的Platt SMO算法在MapReduce下难以实现,但有一些其它的SVM实现使用了随机梯度下降法求解(如Pegasos)可以在框架下实现。

可以使用mrjob框架和Python来完成MapReduce作业。

(4)没有大数据的问题,一般用不到MapReduce和Hadoop。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值