失敗の備忘録…最新の年月の値の取得 [データサイエンス、統計モデル]
とあるリコメンドロジックを作っていた際に、出力レコードが0になっていた。
テストでは正常に出力されていたのだが、どうしてだろう?と思い調べてみると…。
会員のステータスを月ごとに持っていると仮定する。
(例)
月 ID 状態
4月 1 A
5月 1 B
6月 1 A
SPSS Modelerでモデルを作成するときに、分析者側のオーダーとしては、
1. 7月の状態を計算し
(→ 7月 1 B なるものを計算し)
2. 以下、モデルの付与を行う
という処理を想定していたのだが、システム側は、1. と 2. を独立のものと考えていたようで、2. → 1. の順番で実行されてしまった。
つまり、7月分のレコードがないので、出力レコードが 0 だった。。。というわけである。
ここで、今後の対策を兼ねて、いろいろ検討してみると、
・月が切り替わるタイミングで施策を実行する場合、当月のファイルを作成できない場合どうなるのか?
という問題も残る。
そのあたりの分岐の仕組みもバッチ化すると、場合分けの条件が増えてしまう。
解決方法としては、シンプルに、最新の状態(最新の年月)を持ってくるのがよさそうだ。
→ max値を取得し、条件抽出する。
テストでは正常に出力されていたのだが、どうしてだろう?と思い調べてみると…。
会員のステータスを月ごとに持っていると仮定する。
(例)
月 ID 状態
4月 1 A
5月 1 B
6月 1 A
SPSS Modelerでモデルを作成するときに、分析者側のオーダーとしては、
1. 7月の状態を計算し
(→ 7月 1 B なるものを計算し)
2. 以下、モデルの付与を行う
という処理を想定していたのだが、システム側は、1. と 2. を独立のものと考えていたようで、2. → 1. の順番で実行されてしまった。
つまり、7月分のレコードがないので、出力レコードが 0 だった。。。というわけである。
ここで、今後の対策を兼ねて、いろいろ検討してみると、
・月が切り替わるタイミングで施策を実行する場合、当月のファイルを作成できない場合どうなるのか?
という問題も残る。
そのあたりの分岐の仕組みもバッチ化すると、場合分けの条件が増えてしまう。
解決方法としては、シンプルに、最新の状態(最新の年月)を持ってくるのがよさそうだ。
→ max値を取得し、条件抽出する。