はじめに
Signateのアップル 引越し需要予測(SOTA)にチャレンジしていて、出たエラーについてメモです。
PyCaretの time_series を使った際に、型が異なる旨のエラーが出て困った。という内容です。
具体的な内容
・時系列モデルを利用するときには、indexにdatetimeを指定するのが通常
※2024-06-23のような形式
・PyCaretに投入する手前で、indexにdatetime型の日付データを設定
・trainデータで、モデル作成はできる
・testデータで、予測しようとすると型が異なる旨のエラーが発生
datetime型 vs period型
このときまで、period型なるものを知らなかったのですが、どうやらPyCaret側で処理したモデルは自動的にperiod型がindexに設定されるようです・・・。
よって、testデータのdatetime型と異なるというエラーが発生していました。
※Period型については、こちらの記事が詳しいです。
解決方法
train,test共に、indexのdatetime型をperiod型に変換するだけ!
train['datetime'] = pd.to_datetime(train['datetime']).dt.to_period('D')
train.set_index('datetime', inplace=True)
test['datetime'] = pd.to_datetime(test['datetime']).dt.to_period('D')
test.set_index('datetime', inplace=True)
参考:period型のindex
見た目は、datetime型かperiod型かわかりませんね・・・👹
今回は、以上です!