2013-11-27 7 views
5

Ich versuche, die relativen Raten verschiedener Algorithmen in den C# - und F # -Reichweiten mithilfe von WekaSharp zu bewerten, und einer der Algorithmen, an denen ich interessiert war, waren Markov-Ketten. Ich weiß, dass Weka eine HMM-Anwendung hat, aber ich konnte das nicht in WekaSharp implementieren und fragte mich, ob es eine Möglichkeit gäbe, den J48-Algorithmus für diesen Zweck zu modifizieren. Ich weiß, dass es eine gewisse Ähnlichkeit zwischen J48 und Markov-Ketten erster Ordnung gibt, aber ich versuche herauszufinden, was geändert werden muss und ob dies sinnvoll ist. Hier ist die J48 wie in WekaSharp von Yin Zhu implementiert:Unterschied zwischen J48- und Markov-Ketten

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 

Vielen Dank.

+0

Ich denke, J48 ein statistischer Klassifizierer ist die Verwendung von statistischen Verteilungen, aber Markov-Ketten ist eine FSM, die trainiert werden können Statistiken mit –

+0

@KhaledAKhunaifer von FSM Sie Finite State Machine bedeuten ? –

+0

@VitalijZadneprovskij Ja, es ist mit einem 1D Array Alpha für den Startzustand und Beta 2D Array für den Übergang zwischen den Zuständen implementiert –

Antwort

1

J48 ist nur eine Implementierung der C4.5 algorithm, die Entscheidungsbäume erlernt, indem sie die Entropie jedes Attributs (Dimension) berücksichtigt und das Attribut mit der maximalen Entropie als Wurzel des aktuellen Teilbaums verwendet. Dieser Algorithmus benötigt keine Verstärkung.

Ich denke, dass von Markov Chains Sie Hidden Markov Model, die in der Verstärkung Lernen verwendet wird.

Sie sollten einen Blick auf HMMWeka werfen.

Eine weitere Frage ist: What is the equivalent for a Hidden Markov Model in the WEKA toolkit?