From 23417371ca9dfccae5bcad5ff086fcdc2df1e489 Mon Sep 17 00:00:00 2001 From: jiangzhonglian Date: Wed, 13 Sep 2017 16:04:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=2015=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=A1=88=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/15.大数据与MapReduce.md | 29 +- images/15.BigData_MapReduce/mr_1_cluster.jpg | Bin 70005 -> 47236 bytes input/15.BigData_MapReduce/myout.txt | 304 +------------------ src/python/15.BigData_MapReduce/mrSVM.py | 87 +++--- src/python/15.BigData_MapReduce/pegasos.py | 13 +- src/python/15.BigData_MapReduce/wc.py | 3 +- 6 files changed, 81 insertions(+), 355 deletions(-) diff --git a/docs/15.大数据与MapReduce.md b/docs/15.大数据与MapReduce.md index cad066ba..08afb24e 100644 --- a/docs/15.大数据与MapReduce.md +++ b/docs/15.大数据与MapReduce.md @@ -10,14 +10,14 @@ ## 大数据 场景 ``` -假如你为一家网络购物商店工作,很多拥护访问该网站,其中有些人会购买商品,有些人则随意浏览后就离开。 +假如你为一家网络购物商店工作,很多用户访问该网站,其中有些人会购买商品,有些人则随意浏览后就离开。 对于你来说,可能很想识别那些有购物意愿的用户。 那么问题就来了,数据集可能会非常大,在单机上训练要运行好几天。 -接下来:我们讲讲 Hadoop 如何来解决这样的问题 +接下来:我们讲讲 MapRedece 如何来解决这样的问题 ``` -## MapReduce +## MapRedece ### Hadoop 概述 @@ -79,21 +79,21 @@ cat input/15.BigData_MapReduce/inputFile.txt | python src/python/15.BigData_MapR #### Mahout in Action -1. 简单贝叶斯: -2. k-近邻算法: +1. 简单贝叶斯:它属于为数不多的可以很自然的使用MapReduce的算法。通过统计在某个类别下某特征的概率。 +2. k-近邻算法:高维数据下(如文本、图像和视频)流行的近邻查找方法是局部敏感哈希算法。 3. 支持向量机(SVM):使用随机梯度下降算法求解,如Pegasos算法。 4. 奇异值分解:Lanczos算法是一个有效的求解近似特征值的算法。 5. k-均值聚类:canopy算法初始化k个簇,然后再运行K-均值求解结果。 -#### 使用 mrjob 库将 MapReduce 自动化 +### 使用 mrjob 库将 MapReduce 自动化 > 理论简介 -* MapReduce作业流自动化的框架:Cascading 和 Oozie. -* mrjob是一个不错的学习工具,与2010年底实现了开源,来之于Yelp(一个餐厅点评网站). +* MapReduce 作业流自动化的框架:Cascading 和 Oozie. +* mrjob 是一个不错的学习工具,与2010年底实现了开源,来之于 Yelp(一个餐厅点评网站). ```Shell -python mrMean.py < inputFile.txt > myOut.txt +python src/python/15.BigData_MapReduce/mrMean.py < input/15.BigData_MapReduce/inputFile.txt > input/15.BigData_MapReduce/myOut.txt ``` > 实战脚本 @@ -106,11 +106,11 @@ python mrMean.py < inputFile.txt > myOut.txt python src/python/15.BigData_MapReduce/mrMean.py < input/15.BigData_MapReduce/inputFile.txt ``` -#### 利用 Pegasos 算法并行训练支持向量机 +### 项目案例:分布式 SVM 的 Pegasos 算法 Pegasos是指原始估计梯度求解器(Peimal Estimated sub-GrAdient Solver) -> Pegasos 工作原理 +#### Pegasos 工作原理 1. 从训练集中随机挑选一些样本点添加到带处理列表中 2. 按序判断每个样本点是否被正确分类 @@ -130,7 +130,7 @@ Pegasos是指原始估计梯度求解器(Peimal Estimated sub-GrAdient Solver) 累加对 w 的更新 ``` -> 开发流程 +#### 开发流程 ``` 收集数据:数据按文本格式存放。 @@ -141,6 +141,11 @@ Pegasos是指原始估计梯度求解器(Peimal Estimated sub-GrAdient Solver) 使用算法:本例不会展示一个完整的应用,但会展示如何在大数据集上训练SVM。该算法其中一个应用场景就是本文分类,通常在文本分类里可能有大量的文档和成千上万的特征。 ``` +> 训练算法 + +[完整代码地址](https://github.com/apachecn/MachineLearning/blob/master/src/python/2.KNN/kNN.py): + + 我们继续看 Python 版本的代码实现。 * * * diff --git a/images/15.BigData_MapReduce/mr_1_cluster.jpg b/images/15.BigData_MapReduce/mr_1_cluster.jpg index 6bf55a5837d5f1e4eea189d02524a9d56e60e4e3..c4047cbc63111deef10a7d9d31c56713b1b8eeab 100644 GIT binary patch literal 47236 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 I;=kwr7u!DKHUIzs literal 70005 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 V{-X;5~f$e}&&G{~xvxXEy)< diff --git a/input/15.BigData_MapReduce/myout.txt b/input/15.BigData_MapReduce/myout.txt index 2aa78fba..3dc35ffc 100644 --- a/input/15.BigData_MapReduce/myout.txt +++ b/input/15.BigData_MapReduce/myout.txt @@ -1,303 +1 @@ -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 79] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 115] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 107] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 109] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 109] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 88] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 56] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 94] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 50] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 86] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 75] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 30] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 20] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 157] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 15] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 19] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 63] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 124] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 132] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 3] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 140] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 139] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 127] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 98] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 30] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 16] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 4] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 2] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 75] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 123] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 42] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 16] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 94] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 163] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 159] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 23] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 16] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 160] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 5] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 42] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 53] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 83] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 46] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 121] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 73] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 123] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 93] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 99] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 106] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 173] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 192] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 132] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 57] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 47] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 164] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 157] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 199] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 62] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 175] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 154] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 110] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 0] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 116] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 49] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 76] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 121] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 178] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 75] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 167] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 41] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 105] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 71] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 5] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 135] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 80] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 116] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 198] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 164] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 105] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 98] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 156] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 72] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 54] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 62] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 57] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 87] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 68] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 163] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 140] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 40] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 70] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 120] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 172] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 71] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 82] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 168] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 42] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 144] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 27] -shape(self.w): (2,) -shape(X[index,:]) (1, 2) -1 ["u", 36] -in the map_fin -1 ["w", [0.001, 0.001]] -1 ["t", 1] +0.5095697 0.08477803392127012 diff --git a/src/python/15.BigData_MapReduce/mrSVM.py b/src/python/15.BigData_MapReduce/mrSVM.py index 9186b8b6..6493795d 100644 --- a/src/python/15.BigData_MapReduce/mrSVM.py +++ b/src/python/15.BigData_MapReduce/mrSVM.py @@ -1,3 +1,5 @@ +#!/usr/bin/python +# coding:utf8 ''' Created on 2017-04-07 MapReduce version of Pegasos SVM @@ -9,19 +11,20 @@ from mrjob.job import MRJob import pickle from numpy import * + class MRsvm(MRJob): DEFAULT_INPUT_PROTOCOL = 'json_value' - + def __init__(self, *args, **kwargs): super(MRsvm, self).__init__(*args, **kwargs) - self.data = pickle.load(open('C:\Users\Peter\machinelearninginaction\Ch15\svmDat27')) + self.data = pickle.load(open('input/15.BigData_MapReduce/svmDat27')) self.w = 0 self.eta = 0.69 self.dataList = [] self.k = self.options.batchsize self.numMappers = 1 - self.t = 1 #iteration number - + self.t = 1 # iteration number + def configure_options(self): super(MRsvm, self).configure_options() self.add_passthrough_option( @@ -30,49 +33,61 @@ class MRsvm(MRJob): self.add_passthrough_option( '--batchsize', dest='batchsize', default=100, type='int', help='k: number of data points in a batch') - - def map(self, mapperId, inVals): # 需要 2 个参数 - #input: nodeId, ('w', w-vector) OR nodeId, ('x', int) - if False: yield - if inVals[0]=='w': # 积累 w向量 + + def map(self, mapperId, inVals): # 需要 2 个参数 + # input: nodeId, ('w', w-vector) OR nodeId, ('x', int) + if False: + yield + if inVals[0] == 'w': # 积累 w向量 self.w = inVals[1] - elif inVals[0]=='x': - self.dataList.append(inVals[1])# 累积数据点计算 - elif inVals[0]=='t': self.t = inVals[1] - else: self.eta=inVals # 这用于 debug, eta未在map中使用 - + elif inVals[0] == 'x': + self.dataList.append(inVals[1]) # 累积数据点计算 + elif inVals[0] == 't': + self.t = inVals[1] + else: + self.eta = inVals # 这用于 debug, eta未在map中使用 + def map_fin(self): - labels = self.data[:,-1]; X=self.data[:,0:-1]# 将数据重新形成 X 和 Y - if self.w == 0: self.w = [0.001]*shape(X)[1] # 在第一次迭代时,初始化 w + labels = self.data[:,-1] + X = self.data[:, 0:-1] # 将数据重新形成 X 和 Y + if self.w == 0: + self.w = [0.001] * shape(X)[1] # 在第一次迭代时,初始化 w for index in self.dataList: - p = mat(self.w)*X[index,:].T #calc p=w*dataSet[key].T + p = mat(self.w)*X[index, :].T # calc p=w*dataSet[key].T if labels[index]*p < 1.0: - yield (1, ['u', index])# 确保一切数据包含相同的key - yield (1, ['w', self.w]) # 它们将在同一个 reducer + yield (1, ['u', index]) # 确保一切数据包含相同的key + yield (1, ['w', self.w]) # 它们将在同一个 reducer yield (1, ['t', self.t]) def reduce(self, _, packedVals): - for valArr in packedVals: # 从流输入获取值 - if valArr[0]=='u': self.dataList.append(valArr[1]) - elif valArr[0]=='w': self.w = valArr[1] - elif valArr[0]=='t': self.t = valArr[1] - labels = self.data[:,-1]; X=self.data[:,0:-1] - wMat = mat(self.w); wDelta = mat(zeros(len(self.w))) + for valArr in packedVals: # 从流输入获取值 + if valArr[0] == 'u': + self.dataList.append(valArr[1]) + elif valArr[0] == 'w': + self.w = valArr[1] + elif valArr[0] == 't': + self.t = valArr[1] + + labels = self.data[:, -1] + X = self.data[:, 0:-1] + wMat = mat(self.w) + wDelta = mat(zeros(len(self.w))) + for index in self.dataList: - wDelta += float(labels[index])*X[index,:] #wDelta += label*dataSet - eta = 1.0/(2.0*self.t) #calc new: eta - #calc new: w = (1.0 - 1/t)*w + (eta/k)*wDelta + wDelta += float(labels[index]) * X[index, :] # wDelta += label*dataSet + eta = 1.0/(2.0*self.t) # calc new: eta + # calc new: w = (1.0 - 1/t)*w + (eta/k)*wDelta wMat = (1.0 - 1.0/self.t)*wMat + (eta/self.k)*wDelta - for mapperNum in range(1,self.numMappers+1): - yield (mapperNum, ['w', wMat.tolist()[0] ]) #发出 w + for mapperNum in range(1, self.numMappers+1): + yield (mapperNum, ['w', wMat.tolist()[0]]) # 发出 w if self.t < self.options.iterations: - yield (mapperNum, ['t', self.t+1])# 增量 T - for j in range(self.k/self.numMappers):#emit random ints for mappers iid - yield (mapperNum, ['x', random.randint(shape(self.data)[0]) ]) - + yield (mapperNum, ['t', self.t+1]) # 增量 T + for j in range(self.k/self.numMappers): # emit random ints for mappers iid + yield (mapperNum, ['x', random.randint(shape(self.data)[0])]) + def steps(self): - return ([self.mr(mapper=self.map, reducer=self.reduce, - mapper_final=self.map_fin)]*self.options.iterations) + return ([self.mr(mapper=self.map, reducer=self.reduce, mapper_final=self.map_fin)] * self.options.iterations) + if __name__ == '__main__': MRsvm.run() diff --git a/src/python/15.BigData_MapReduce/pegasos.py b/src/python/15.BigData_MapReduce/pegasos.py index 51df16b8..3d07cefe 100644 --- a/src/python/15.BigData_MapReduce/pegasos.py +++ b/src/python/15.BigData_MapReduce/pegasos.py @@ -1,12 +1,14 @@ +#!/usr/bin/python +# coding:utf8 ''' Created on 2017-04-07 Sequential Pegasos the input T is k*T in Batch Pegasos @author: Peter/ApacheCN-xy ''' - from numpy import * + def loadDataSet(fileName): dataMat = []; labelMat = [] fr = open(fileName) @@ -17,6 +19,7 @@ def loadDataSet(fileName): labelMat.append(float(lineArr[2])) return dataMat,labelMat + def seqPegasos(dataSet, labels, lam, T): m,n = shape(dataSet); w = zeros(n) for t in range(1, T+1): @@ -29,10 +32,12 @@ def seqPegasos(dataSet, labels, lam, T): w = (1.0 - 1/t)*w print w return w - + + def predict(w, x): return w*x.T + def batchPegasos(dataSet, labels, lam, T, k): m,n = shape(dataSet); w = zeros(n); dataIndex = range(m) @@ -48,6 +53,8 @@ def batchPegasos(dataSet, labels, lam, T, k): w = (1.0 - 1/t)*w + (eta/k)*wDelta # 在每个 T上应用更改 return w + + datArr,labelList = loadDataSet('testSet.txt') datMat = mat(datArr) #finalWs = seqPegasos(datMat, labelList, 2, 5000) @@ -74,4 +81,4 @@ ax.plot(x,y) ax.plot(x,y2,'g-.') ax.axis([-6,8,-4,5]) ax.legend(('50 Iterations', '2 Iterations') ) -plt.show() \ No newline at end of file +plt.show() diff --git a/src/python/15.BigData_MapReduce/wc.py b/src/python/15.BigData_MapReduce/wc.py index 5df2786a..02e05e48 100644 --- a/src/python/15.BigData_MapReduce/wc.py +++ b/src/python/15.BigData_MapReduce/wc.py @@ -1,5 +1,6 @@ +#!/usr/bin/python +# coding:utf8 from mrjob.job import MRJob -import json class MRWordCountUtility(MRJob):