38057


pythonでxgboostを使用しているのですが、高速化させたいです。  
なのでマルチコアにして高速化しようとしたのですが、高速化できません。  
xgbのパラメータでnthread=-1にすればPCの最大コア数で動作してくれると思ったのですが、動作しません。シングルコアでしか動きません。  
どのようにすればマルチコアで動かすことができますか？  
ご教授お願いします。


CC BY-SA 3.0
2017-09-19T14:37:08.920
38045
2017-09-20T05:28:40.643
2017-09-19T15:46:49.893
2383
23817
question
python3
マルチコアでpythonのxgboostを使いたい


[勾配ブースティングについてざっくりと説明する](http://smrmkt.hatenablog.jp/entry/2015/04/28/210039)
の記事に説明がありますが、xgboostは学習が逐次的に行われる(並列化できない）勾配ブースティングの高速なC++実装。並列化できないプログラムは単一スレッドで実行するしかありませんので、マルチコアによる高速化（並列化）はできません。

マルチコアを活用してマルチスレッド実行がしたいのであれば、ランダムフォレストかバギングを使いましょう。

[pythonでランダムフォレストまとめ](http://qiita.com/mshinoda88/items/8bfe0b540b35437296bd)
の記事には、用語解説やコード例があるので参考になるかと思います。


CC BY-SA 3.0
2017-09-20T05:28:40.643
38057
2017-09-20T05:28:40.643
217
38045
answer