深度森林:常见Warning及解决方案

本人最近使用周志华的深度森林算法去解决一些问题,于是在github上下载了官方的Gcforest程序,下载地址:https://github.com/kingfengji/gcForest

运行之后发现了一些Warning,有时会导致程序无法运行,下面给出两种常见的Warning和解决方案。

1. FutureWarning
 (1) FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.

 (2) FutureWarning: Default multi_class will be changed to 'auto' in 0.22. Specify the multi_class option to silence this warning. "this warning.", FutureWarning).

我在第一次运行这个程序的时候,就遇到了这两个警告。原因是因为原先的代码:

     ca_config["estimators"].append({"n_folds": 5, "type": "LogisticRegression"})
逻辑回归中没有具体指明solver和multi_class,而LogisticRegression的solver一般有liblinear,lbfgs,newton-cg,sag(具体可自行百度),所以在此我将这行代码改为

     ca_config["estimators"].append({"n_folds": 5, "type": "LogisticRegression",
                                     "solver": "lbfgs",
                                     "multi_class": "auto"
                                    })
就消除了这个Warning(solver可根据数据情况自行设定,不一定非要lbfgs)。

2. ConvergenceWarning
ConvergenceWarning: lbfgs failed to converge. Increase the number of iterations. "of iterations.", ConvergenceWarning)

在消除第一个警告之后,又来了一个新警告(收敛警告),说的是lbfgs 无法收敛,要求增加迭代次数。LogisticRegression里有一个max_iter(最大迭代次数)可以设置,默认为1000。所以在此可以将其设为3000。所以将上面那段代码完善一下改为:

    ca_config["estimators"].append({"n_folds": 5, "type": "LogisticRegression",
                                     "solver": "lbfgs",
                                     "multi_class": "auto",
                                     "max_iter" : 3000
                                    })


             就消除了这个Warning。
————————————————
版权声明:本文为CSDN博主「CoolMan_1995」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/coolman_1995/article/details/90670601

你可能感兴趣的:(机器学习,机器学习)