2013-11-27 44 views
5

我正在嘗試使用WekaSharp來對C#和F#領域中的不同算法的相對速率進行一些評估,我感興趣的算法之一是馬爾可夫鏈。我知道Weka有一個HMM應用程序,但我還沒有能夠實現這個到WekaSharp,並想知道是否有辦法修改J48算法來適應這個目的。我知道J48和一階馬爾可夫鏈之間有一些相似之處,但我試圖確定需要修改什麼,以及這是否合理。這裏是在Yin Zhu的WekaSharp中實現的J48:J48和馬爾可夫鏈之間的區別

type J48() = 
    static member DefaultPara = "-C 0.25 -M 2" 
    static member MakePara(?binarySplits, ?confidenceFactor, ?minNumObj, ?unpruned, ?useLaplace) = 
     let binarySplitsStr = 
      let b = match binarySplits with 
        | Some (v) -> v 
        | None -> false 
      if not b then "-B" else "" 
     let confidenceFactorStr = 
      let c = match confidenceFactor with 
        | Some (v) -> v 
        | None -> 0.25 // default confi 
      "-C " + c.ToString() 
     let minNumObjStr = 
      let m = match minNumObj with 
        | Some (v) -> v 
        | None -> 2 
      "-M " + m.ToString() 
     let unprunedStr = 
      let u = match unpruned with 
        | Some (v) -> v 
        | None -> false 
      if u then "-U" else "" 
     let useLaplaceStr = 
      let u = match useLaplace with 
        | Some (v) -> v 
        | None -> false 
      if u then "-A" else "" 
     binarySplitsStr + " " + confidenceFactorStr + " " + minNumObjStr + " " + unprunedStr + " " + useLaplaceStr 

非常感謝。

+0

我認爲J48是一個統計分類器使用統計分佈,但馬爾可夫鏈是可以使用統計 –

+0

@KhaledAKhunaifer由FSM你的意思是有限狀態機來培養了FSM ? –

+0

@VitalijZadneprovskij是的,它使用一維數組alpha來實現起始狀態,而Beta 2D數組用於狀態之間的轉換 –

回答