【发布时间】:2013-12-13 16:34:44
【问题描述】:
我正在尝试使用 WekaSharp 对 C# 和 F# 领域中不同算法的相对速率进行一些评估,我感兴趣的算法之一是马尔可夫链。我知道 Weka 有一个 HMM 应用程序,但我无法在 WekaSharp 中实现它,我想知道是否有办法修改 J48 算法以适应这个目的。我知道 J48 和一阶马尔可夫链之间存在一些相似之处,但我正在尝试确定需要修改的内容以及这是否合理。这是在殷朱的 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
非常感谢。
【问题讨论】:
-
我认为 J48 是一个利用统计分布的统计分类器,但马尔可夫链是一个可以使用统计数据训练的 FSM
-
@KhaledAKhunaifer by FSM 你的意思是有限状态机?
-
@VitalijZadneprovskij 是的,它使用一维数组 alpha 来实现起始状态,使用 Beta 2D 数组来实现状态之间的转换
-
@RedMassiveStar 我认为 J48 以不同的方式工作,但在预测的应用中,马尔可夫链更好地利用 Redux 和动态规划来找到最佳预测.. 虽然 J48 可以调整为预测好
标签: algorithm f# weka markov-chains