SVM のマップ削減データマイニングアルゴリズム

SVM のマップ削減データマイニングアルゴリズム

元のアルゴリズムに並列戦略を適用するのは難しいため、他のアルゴリズムのバリアントである pegasos が並列化に適しています。以下は、アルゴリズムのプロセスです。

W=0 に初期化(ベクトル形式)

i が t の場合:

K個のサンプルをランダムに選択する

Kのjの場合:

j番目のサンプルが誤分類された場合

このサンプルを使用して重みを更新します

Wのアップデートを蓄積する

終了

以下はmrjobに基づくマップ削減バージョンです。

  1. クラスMRsvm(MRJob):
  2.  
  3. DEFAULT_INPUT_PROTOCOL = 'json_value'  
  4.  
  5. #パラメータの設定 
  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. 自己.w = 0
  14.  
  15. self.eta = 0.69 #学習率
  16.  
  17. self.dataList = [] # サンプル収集に使用するリスト
  18.  
  19. self.k = self.options.batchsize
  20.  
  21. 自己.numMappers = 1
  22.  
  23. self.t = 1 # 反復回数
  24.  
  25.  
  26. def map(self, mapperId, inVals):
  27.  
  28. #<キー、値> は <マシン マッパー ID、W 値、またはサンプル機能とラベル> に対応します。  
  29.  
  30. Falseの場合: 譲歩
  31.  
  32. #値がWに属するかサンプルIDに属するかを判断する 
  33.  
  34. inVals[0]== 'w'の場合:
  35.  
  36. 自己.w = inVals[1]
  37.  
  38. inVals[0]== 'x'の場合:
  39.  
  40. 自己.データリスト.追加(inVals[1])
  41.  
  42. 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]#サンプルデータの分析
  48.  
  49. self.w == 0の場合: self.w = [0.001]*shape(X)[1] # Wを初期化
  50.  
  51. self.dataListインデックス:
  52.  
  53. p = mat(self.w)*X[index,:].T #サンプルを分類する
  54.  
  55. ラベル[インデックス]*p < 1.0の場合:
  56.  
  57. yield (1, [ 'u' , index])#これは誤分類されたサンプルIDです。サンプルIDを記録します。
  58.  
  59. yield (1, [ 'w' , self.w]) #map はワーカーのwを出力する
  60.  
  61. 結果 (1, [ 't' , self.t])
  62.  
  63.  
  64. def Reduce(self, _, パックされた値):
  65.  
  66. valArr in packedVals : #parse データ、誤分類されたサンプル ID、W、反復回数
  67.  
  68. 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. ラベル = self.data[:,-1]; X=self.data[:,0:-1]
  75.  
  76. wMat = mat(self.w); wDelta = mat(zeros(len(self.w)))
  77.  
  78. self.dataListインデックス:
  79.  
  80. wDelta += float (labels[index])*X[index,:] #Wを更新
  81.  
  82. eta = 1.0/(2.0*self.t) #学習率を更新
  83.  
  84. #Wへのアップデートを蓄積する 
  85.  
  86. wMat = (1.0 - 1.0/self.t)*wMat + (eta/self.k)*wDelta
  87.  
  88. mapperNum範囲(1、self.numMappers+1)の場合:
  89.  
  90. 生成(mapperNum、[ 'w' 、wMat.tolist()[0]])
  91.  
  92. self.t < self.options.iterationsの場合:
  93.  
  94. 生成(mapperNum, [ 't' , self.t+1])
  95.  
  96. jが範囲(self.k/self.numMappers)の場合:
  97.  
  98. 生成(mapperNum、[ 'x' 、random.randint(shape(self.data)[0])])
  99.  
  100.          
  101. defステップ(self):
  102.  
  103. 戻り値([self.mr(マッパー=self.map, リデューサー=self.reduce,
  104.  
  105. mapper_final = self.map_fin)] * self.options.iterations)

<<:  比較ベースのアルゴリズムでは、5 つの要素をソートするのに 7 回のパスが必要だと言われるのはなぜですか?

>>:  一般的な MapReduce データマイニングアルゴリズム: 平均と分散

ブログ    
ブログ    

推薦する

2020年の人工知能の概要と2021年のトレンド

過去2年間、中国は世界の継続的なイノベーションの最前線に立ってきました。2020年の疫病は、人工知能...

...

AIが産業変革を促進する仕組み

このように技術的に進歩した世界では、検査などの重要な産業プロセスは依然として非効率でコストがかかり、...

サム・アルトマンが2023年の年末総括を発表、17の大格言がネット全体に響き渡る!

2023年も終わりに近づいています。過去1年を振り返ると、ChatGPTの登場が世界的なAIブーム...

...

フードデリバリー広告向け大規模ディープラーニングモデルのエンジニアリング実践

著者: Yajie Yingliang、Chen Long 他導入美団のフードデリバリー事業が成長を...

二次編集やUnreal Engine 5へのインポートをサポートし、Stable Diffusionは3D生成機能に進化

全体像を捉えるモデルに関して言えば、Stability AI が 2022 年にリリースした Sta...

AIアルゴリズムエンジニアの涙の体験談

[[425033]]私たちはしばらくの間、展開モデルの最適化に取り組んできました。ここ数日でようやく...

清華大学が転移学習アルゴリズムライブラリをオープンソース化:PyTorch実装に基づき、既存のアルゴリズムの簡単な呼び出しをサポート

最近、清華大学ビッグデータ研究センターの機械学習研究部門は、効率的で簡潔な転移学習アルゴリズムライブ...

ChatGPTを使用してスマートコントラクトとブロックチェーンに革命を起こす方法

1. はじめに近年、人工知能(AI)の進歩により、さまざまな業界に革命が起きています。 ChatGP...

通信ネットワークにおけるOSPFプロトコルの適用とアルゴリズムの最適化

3G通信技術は広く利用されており、4Gに向けてますます進化しています。通信ネットワーク内のアクセスス...

JavaScript は機械学習にも使えます。オープンソースの JavaScript 機械学習フレームワーク 5 つを推奨します

3か月前、同社のAIチームは、写真や動画に映る有名人やランドマークを分析するために機械学習を活用する...

AIは自分が生成したものを理解できるのか?GPT-4とMidjourneyを試した後、誰かがこの問題を解決した

ChatGPTからGPT4、DALL・E 2/3からMidjourneyまで、生成AIはこれまでにな...

Googleがこれまでで最も強力なAIモデル「Gemini」を発表

グーグルは水曜日、AIを収益化する方法に対する回答を求める圧力が高まる中、同社がこれまでで最も強力だ...