日々精進

新しく学んだことを書き留めていきます

lightgbmでpredictを実行すると「{ValueError}train and valid dataset categorical_feature do not match.」エラー

原因は以下

  • 前処理時にDataFrameの列の一部をcategory型に変換していた
  • 学習データは一度parquet形式で保存したものを読み込んでlightgbmに渡していた
  • テストデータは前処理して、parquet形式で保存せず、そのままlightgbmのpredictに渡していた
  • 一度parquet形式で保存したものを読み込むと、category型がobject型になる(!)ので学習時とテストデータに対する推論時で列の型が違ってエラーになった

ファイルに保存する時の形式をparquetからpickleに変更して解決した。こんな罠があるとは・・

参考:

blog.amedama.jp