行動分類アルゴリズム

2つのユーザーの行動に基づいてレコード

[

[0、1、4、9]、
[8]、[0,7]、[2]

]

中間記録[4,0.5,5.5,5.5]を検索し、機能を生成し、

[

[0、1、0、1]、
[1、0、1、0]

]

発生特性の確率を計算

[1 / 2,1 / 2,1 / 2,1 / 2]

新旧の動作がベイズ確率同時確率のクラスの動作である機能、より多くの特性確率を生成するために、より多くの真ん中レコードの新しい動作を入力します。

CONST execMathExpress =( 'EXEC-mathexpress'を必要とします)。
// 贝叶斯计算公式
関数execByes(ガー){ 
  CONST ARR1 = [] 
  CONST ARR2 = [] 
  CONSTのObj = {}
   のための(I = 0せ; I <gArr.length; I ++ ){ 
    arr1.push(「P '+ i)が
    (arr2.push 'I + +'(1-P)'」
    のObj [ 'P' + I] = ガー[I]。
  } 
  CONST STR1 = arr1.join( '*' )。
  constのSTR2 = arr2.join( '*' ); 
  CONST STR = STR1 + '/(' + 0009 + '+' + STR2 + ')' execMathExpress(STR、のObj).toString(); 
} 

クラス人{ 
  コンストラクタ(キー){ 
    この .keys = キー。
    この .DATA = [] 
  } 
  {(アイテム)を学ぶ
    この.data.push(項目)。
  } 
  GetFeatureの(アイテム){ 
    CONST ARR = []; 
    constのdenが = この.data.lengthを。
    ため(I = 0せ; I <  .keys.length; Iを++ ){ 
      PNUMせ = 0 (++ J; J <デンJ = 0を聞かせて、{)
        CONST Dは = この.DATA [j]を。
        もし(項目[I]> D [i])と{ 
          PNUM ++ 
        } 
      } 
      場合(PNUM> DEN / 2){ 
        [I] = 1 ARR 
      } { 
        ARR [I] = 0 ; 
      } 
    } 
    戻りARR。
  } 
  考える(){ 

    CONST DEN = この.data.length。
    ため(I = 0せ; I <  .keys.length; Iを++ ){ 
      PNUMせ = 0 (++ J; J <デンJ = 0を聞かせて、{)
        CONST Dは = この.DATA [J]。
        もし(項目[I]> D [i])と{ 
          PNUM ++ 
        } 
      } 
      場合(PNUM> DEN / 2){ 
        [I] = 1 ARR 
      } { 
        ARR [I] = 0 ; 
      } 
    } 
  } 
  getOrder(アイテム){ 
    CONST ARR = この .getFeature(項目、この.keys)。
    console.log(ARR)
    はconsole.log(execByes(ARR))
    戻りexecByes(ARR)。
  } 
} 

constのD = ピープル([ 'ショー'、 'クリック'、 ''、 '時間'])
 関数randomArr(){ 
  CONST ARR = [];
  ため(I = 0せ; I <4; I ++ ){ 
    CONST N = 0 | Math.random()* 10 
    arr.push(N)
  } 
    戻りARR 
} 
CONST RECT = [0、1、4、9 ]、
  [ 8、0、7,2 ]、
  [ 9,9、1、8 ]、
  [ 1、0,6 、7 ]、
  [ 1、3、7、5 ]、
  [ 5,5、0,9 ]、
  [ 7,6、0,4 ]、
  [ 5,5、2、9 ]、
  [ 6、2、9 、5]、
  [ 3、5、3、3 ]。
ため(LET I = 0、I <4; I ++ ){ 
  rect.push(randomArr())
} 
rect.forEach(関数(アイテム){ 
  d.learn(アイテム)
})

にconsole.log(D)
d.getOrder( randomArr())。
d.getOrder(randomArr())。
d.getOrder(randomArr())。
d.getOrder(randomArr())。
d.getOrder(randomArr())。
d.getOrder(randomArr())。
d.getOrder(randomArr())。

 

おすすめ

転載: www.cnblogs.com/caoke/p/12628514.html