深度森林:常见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"})

逻辑回归中没有具体指明solvermulti_class,LogisticRegressionsolver一般有liblinearlbfgsnewton-cgsag(具体可自行百度),所以在此我将这行代码改为

     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。

 

 

你可能感兴趣的:(Gcforest)