【问题标题】:parameter optimization for classifier algorithm分类器算法的参数优化
【发布时间】:2011-07-03 07:27:14
【问题描述】:

据说不同的算法有不同的参数。我真的不认为这是真的,比如说如果它是一个树决策算法和朴素贝叶斯算法,每个的参数是什么?谁能给我一个例子..

如果是这种情况,那么对将要使用决策树算法运行的数据进行 5 折交叉验证与贝叶斯算法不同吗?

另外,对于参数优化,我将进行 5 折交叉验证。有没有办法自动执行此操作以使用 weka 确定参数的设置值键?

【问题讨论】:

    标签: artificial-intelligence classification bayesian weka decision-tree


    【解决方案1】:

    由于您使用的是 Weka,您可以通过在Explorer 中打开数据集,转到Classify,选择算法,然后单击算法框来查看每个算法的参数。因此,例如朴素贝叶斯分类器的参数会影响它如何处理连续数据(离散化或使用核估计器)

    【讨论】:

    • 所以如果我要在 weka 中编写一个 5 折交叉验证代码来进行参数优化......我需要为每个算法编写一个吗?我怎样才能一次性做到这一点
    • 是的,每个算法都有自己的元参数,你需要单独优化它们。您确定需要交叉验证吗? Weka 中的默认参数通常都不错
    • 是的,我需要进行交叉验证才能找到最佳置信水平......这样做的最糟糕的方法是什么?
    【解决方案2】:

    决策算法的参数可能会随着时间的推移在算法中发生变化,当然在算法之间也会发生变化。

    假设您有一个 AI 决策树,用于确定战场上移动的士兵。你可能有一个防御算法,它会寻求一个尽可能最大化自己生命的决定。您可能有一个激进的算法,它将寻求对其他士兵的最大伤害。您可能有拆除算法来寻求对墙壁的结构性损坏。其中每一个都有不同的参数来确定做出哪个决定。

    随着模拟的进行,决策参数可能会发生变化。例如,激进算法可能会以 2:1 的方式权衡造成的伤害与承受的伤害。假设 AI 愿意在未来 100 个模拟周期中做出决定。它可能会发现,即使它的重量为 2:1,它为做出决定而运行的模拟与实际发生的情况并不匹配。如果它计算出它会造成 100 点伤害,但会造成 200 点伤害,但它实际上会造成 150 点伤害,这会在它几乎无法造成 70 点伤害之前杀死它,(假设它的设计目标是)它可以考虑到这一点。同样,它可能会发现,当它在特定条件下选择重新定位时,它能够在 T+10 刻时避免伤害,获得有利位置,并在 T+40 到 T+80 刻时造成比正常情况更多的伤害.这将导致它比以前更多地考虑更安全的情况。

    【讨论】:

    • 那么如果我要实现 5 折交叉验证,那么每种算法都会有所不同吗?你能把它放到决策树和贝叶斯算法中吗?
    • 是的,每种算法都有不同的参数。您当然可以应用贝叶斯原理来改变中间模拟中的参数,就像我在上一段中描述的那样。
    猜你喜欢
    • 2018-09-05
    • 2019-02-01
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 2017-02-15
    • 2018-02-17
    相关资源
    最近更新 更多