成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SVM的Map-Reduce數(shù)據(jù)挖掘算法

數(shù)據(jù)庫 算法
SVM支持向量機(jī),最近十五年機(jī)器學(xué)習(xí)界的明星算法,學(xué)術(shù)界也是各種研究,現(xiàn)今已經(jīng)達(dá)到一個瓶頸,屋漏偏逢連夜雨,隨著深度學(xué)習(xí)的雄起,SVM弄的一個人走茶涼的境遇(也許正是90年代神經(jīng)網(wǎng)絡(luò)的感受吧,呵呵),現(xiàn)在講一講關(guān)于SVM的并行。

由于原算法較難應(yīng)用并行策略,而它的另一個算法變種-pegasos 適合并行,下面是該算法的過程。

初始化W=0(向量形式)

for i in t:

     隨機(jī)選擇K個樣本

     for j in K:

          if 第j個樣本分錯

              利用該樣本更新權(quán)重

     累加W的更新

end for   

下面是基于mrjob的map-reduce版   

  1. class MRsvm(MRJob): 
  2.  
  3.     DEFAULT_INPUT_PROTOCOL = 'json_value' 
  4.  
  5.     #一些參數(shù)的設(shè)置 
  6.  
  7.     def __init__(self, *args, **kwargs): 
  8.  
  9.         super(MRsvm, self).__init__(*args, **kwargs) 
  10.  
  11.         self.data = pickle.load(open('data_path')) 
  12.  
  13.         self.w = 0 
  14.  
  15.         self.eta = 0.69 #學(xué)習(xí)率 
  16.  
  17.         self.dataList = [] #用于收集樣本的列表 
  18.  
  19.         self.k = self.options.batchsize 
  20.  
  21.         self.numMappers = 1  
  22.  
  23.         self.t = 1 # 迭代次數(shù) 
  24.  
  25.  
  26.     def map(self, mapperId, inVals):  
  27.  
  28.         #<key,value> 對應(yīng)著 <機(jī)器mapperID,W值或者樣本特征跟標(biāo)簽> 
  29.  
  30.         if False: yield 
  31.  
  32.         #判斷value是屬于W還是樣本ID 
  33.  
  34.         if inVals[0]=='w':  
  35.  
  36.             self.w = inVals[1] 
  37.  
  38.         elif inVals[0]=='x'
  39.  
  40.             self.dataList.append(inVals[1]) 
  41.  
  42.         elif inVals[0]=='t': self.t = inVals[1]  
  43.  
  44.  
  45.     def map_fin(self): 
  46.  
  47.         labels = self.data[:,-1]; X=self.data[:,0:-1]#解析樣本數(shù)據(jù) 
  48.  
  49.         if self.w == 0: self.w = [0.001]*shape(X)[1] #初始化W 
  50.  
  51.         for index in self.dataList: 
  52.  
  53.             p = mat(self.w)*X[index,:].T #分類該樣本  
  54.  
  55.             if labels[index]*p < 1.0: 
  56.  
  57.                 yield (1, ['u', index])#這是錯分樣本id,記錄該樣本的id  
  58.  
  59.         yield (1, ['w', self.w]) #map輸出該worker的w 
  60.  
  61.         yield (1, ['t', self.t]) 
  62.  
  63.  
  64.     def reduce(self, _, packedVals): 
  65.  
  66.         for valArr in packedVals: #解析數(shù)據(jù),錯分樣本ID,W,迭代次數(shù) 
  67.  
  68.             if valArr[0]=='u': self.dataList.append(valArr[1]) 
  69.  
  70.             elif valArr[0]=='w': self.w = valArr[1] 
  71.  
  72.             elif valArr[0]=='t': self.t = valArr[1]  
  73.  
  74.         labels = self.data[:,-1]; X=self.data[:,0:-1] 
  75.  
  76.         wMat = mat(self.w); wDelta = mat(zeros(len(self.w))) 
  77.  
  78.         for index in self.dataList: 
  79.  
  80.             wDelta += float(labels[index])*X[index,:] #更新W 
  81.  
  82.         eta = 1.0/(2.0*self.t) #更新學(xué)習(xí)速率 
  83.  
  84.         #累加對W的更新 
  85.  
  86.         wMat = (1.0 - 1.0/self.t)*wMat + (eta/self.k)*wDelta 
  87.  
  88.         for mapperNum in range(1,self.numMappers+1): 
  89.  
  90.             yield (mapperNum, ['w', wMat.tolist()[0] ]) 
  91.  
  92.             if self.t < self.options.iterations: 
  93.  
  94.                 yield (mapperNum, ['t', self.t+1]) 
  95.  
  96.                 for j in range(self.k/self.numMappers): 
  97.  
  98.                     yield (mapperNum, ['x', random.randint(shape(self.data)[0]) ]) 
  99.  
  100.          
  101.     def steps(self): 
  102.  
  103.         return ([self.mr(mapper=self.map, reducer=self.reduce,  
  104.  
  105.                          mapper_final=self.map_fin)]*self.options.iterations) 
責(zé)任編輯:彭凡 來源: YYGamer
相關(guān)推薦

2010-06-03 16:46:23

Hadoop Map-

2015-01-08 14:52:29

google云計算分布式計算框架

2024-01-10 08:47:48

Python函數(shù)Map()

2024-11-08 12:42:34

Rustmapfilter

2023-01-03 13:30:14

C++代碼map

2009-07-03 19:58:51

SQL Server2

2017-05-26 08:53:27

數(shù)據(jù)挖掘算法

2012-08-09 09:57:54

K-means

2014-03-17 15:28:48

MapReduce

2024-07-11 12:14:20

Pythonmapfilter

2015-09-21 09:20:55

2009-08-05 10:00:04

數(shù)據(jù)挖掘算法SQL Server

2011-01-26 09:14:43

數(shù)據(jù)挖掘

2016-01-29 11:00:55

數(shù)據(jù)挖掘算法大數(shù)據(jù)

2014-07-16 16:54:38

2009-04-13 10:15:24

SQLServer 2005數(shù)據(jù)挖掘

2021-03-22 06:28:44

reducemap函數(shù)

2024-06-04 00:20:00

Python函數(shù)

2020-06-03 15:35:10

數(shù)據(jù)挖掘算法大數(shù)據(jù)

2012-08-28 09:15:33

Hadoop海量數(shù)據(jù)挖掘算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久99精品久久久久久狂牛 | av一级久久 | 99re国产 | 精品久久久一区二区 | 男女羞羞视频在线 | 黄色网页在线 | 欧洲精品在线观看 | 一区二区三区高清 | 久久免费视频1 | 亚洲高清av在线 | 91在线精品一区二区 | 91一区二区三区在线观看 | 精品视频免费在线 | 精品久久久久久久久久久久久 | 国产精品不卡一区二区三区 | 一区二区高清不卡 | av永久免费 | 亚洲九色 | 日韩欧美中文 | 一级片在线视频 | 欧美日韩综合 | 亚洲精品成人av久久 | 污污免费网站 | 男女啪啪网址 | 一区二区福利视频 | 亚洲精品福利视频 | 精品国产1区2区3区 一区二区手机在线 | 欧美综合一区 | 欧美特级黄色 | 日韩免费一区 | 亚洲欧洲一区二区 | 91麻豆精品国产91久久久久久 | 国产在线中文字幕 | 91在线影院 | 亚洲精品久久久久中文字幕欢迎你 | 欧美人妇做爰xxxⅹ性高电影 | 日韩午夜网站 | 久久蜜桃精品 | 亚洲精品国产a久久久久久 午夜影院网站 | 日本在线观看视频 | 欧美日韩综合一区 |