多类分类的分步优化

keb1811keb1811 成员职位:11贡献我

你好,

我正在使用不同的算法(决策树,KNN, Naïve贝叶斯,支持向量机,NN)进行多类分类,我正在尝试优化我的结果。我想一步一步地做,这样你们就能看到一个过程。首先,我只在交叉验证操作符中使用每个算法。下一步应该是网格操作符的优化(也在交叉验证中)。
现在我们来看看我的第一个问题:

我真的不确定,在网格优化中我必须选择哪些参数。对于Decision tree和KNN (Naïve贝叶斯没有任何参数需要设置),我使用了一些参数并获得了更好的结果……所以这对我来说很好。
但是,如果我为SVM选择以下参数,则该过程不会运行(它运行了许多小时,但没有结果):
- SVM Gamma 0-1;十步;线性
- svm.c 0-1;十步;线性
-支持向量机。0.001ε1;十步;线性

我的神经网络算法也遇到了同样的问题:

-学习率0.01-0.4;十步;日志。
-动量0.01-0.4;十步;日志。

有什么问题,所以我的过程不工作吗?

优化结果的下一步是使用(在网格操作符旁边)来自市场的样本(平衡)操作符。我将操作符放在交叉验证之前。这个操作符对我的小标签进行采样,这样数据集就更平衡了。我的问题是:

我把我的查全率和查准率从35%提高到75%是现实的吗?对我来说,这发生在决策树,KNN和Naïve贝叶斯。

最后一个问题:

按照以下顺序来展示改进过程是不是一个好方法/好主意?
1.只有每种算法
2.算法+网格
3.算法+网格+样本(平衡)
4.算法+网格+样本(平衡)+装袋/adaboost

非常感谢。

问候,

凯文


标记:

答案

  • Telcontar120Telcontar120 主持人,RapidMiner认证分析师,RapidMiner认证专家,会员职位:1635年独角兽
    对于您的SVM模型,我建议使用对数步骤在更大的范围内(例如从0.001到1000)优化gamma和C。它们的范围都太小了,线性步长在数量级上是不好的。
    相反,对于你的神经网络,你的范围是可以的,但你应该在这么小的范围内使用线性步长,而不是对数步长。

    布莱恩·T。
    Lindon合资企业
    乐鱼平台进入来自认证RapidMiner专家的数据科学咨询
  • keb1811keb1811 成员职位:11贡献我
    @Telcontar120

    谢谢你的回答。我改变了范围和步骤的种类(线性;日志)。但我的问题仍然存在,这个过程将不会运行到最后。我的笔记本电脑计算了15个多小时,但优化的网格操作只达到了1%。你有什么建议吗?

    问候
  • Telcontar120Telcontar120 主持人,RapidMiner认证分析师,RapidMiner认证专家,会员职位:1635年独角兽
    如果不知道数据集的大小和性质,就很难进行诊断。以下是一些建议:
    先尝试不进行优化的运行(保持默认值)。您的流程是否在合理的时间内运行?如果没有,那么应该对数据集进行抽样。
    尝试优化一个更小的组合集。优化网格运算符将取所有测试值的组合乘积。因此,如果你有3个参数要优化,并且你试图在每个参数的10个值中搜索,那么你要尝试测试1000个组合。即使对于大型机器,这通常也是不可行的。相反,专注于更少的步骤。尽量把总数控制在一个合理的数字内。
    布莱恩·T。
    Lindon合资企业
    乐鱼平台进入来自认证RapidMiner专家的数据科学咨询
    lionelderkrikor
  • keb1811keb1811 成员职位:11贡献我
    谢谢你的回答,我会尝试一组较小的组合。
登录注册置评。