我正在尝试使用WekaSharp对C#和F#领域中不同算法的相对速率进行一些评估,我感兴趣的算法之一是Markov Chains。我知道Weka有一个HMM应用程序,但我无法将其实现到WekaSharp中,并且想知道是否有办法修改J48算法以适应此目的。我知道J48和一阶马尔可夫链之间有一些相似之处,但我正在尝试确定需要修改的内容,以及这是否合理。这是在Yin Zhu的WekaSharp中实现的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 :(得分:1)
J48只是C4.5 algorithm的一种实现,它通过考虑每个属性(维度)的熵并将具有最大熵的属性作为当前子树的根来学习决策树。该算法不需要强化。
我想Markov Chains你的意思是Hidden Markov Model用于强化学习。
你应该看看HMMWeka。
相关问题是: What is the equivalent for a Hidden Markov Model in the WEKA toolkit?