問題タブ [lightgbm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
470 参照

python - パンダカテゴリの新しいレベル

pandas categorical https://pandas.pydata.org/pandas-docs/stable/categorical.htmlは、新しいレベルと目に見えないレベルをどのように処理しますか? scikit-learn のようなセットアップを考えています。現在、私は次のようなものを持っています: https://gist.github.com/geoHeil/5caff5236b4850d673b2c9b0799dc2ce

しかし、これはかなり遅いです。

どうやら、xgboost や lightbm などの決定木は、カテゴリ データを直接処理できます。つまり、この遅い変換を手動でいじる必要はありません。しかし、コード https://github.com/Microsoft/LightGBM/blob/master/python-package/lightgbm/sklearn.py#L532LGBMLabelEncoderを見ると、標準の scikit-learnを使用しているようですLabelEncoder

目に見えないデータをどのように処理できるのだろうか。

手動変換が必要な場合、 pandas.Categorical を使用すると、新しいデータに見えないレベルがある場合でも、より迅速に変換できますか?

編集

scikit-learn の通常の容疑者を機能させることができなかった方法の概要については、https://github.com/geoHeil/pythonQuestions/blob/master/categorical-encoding.ipynbを参照してください。私のソリューションよりもパフォーマンスの高いものをまだ探しています。また、lightGBM https://github.com/Microsoft/LightGBM/issues/789は、カスタム エンコーディング戦略を使用することを提案しています。