ゆたろ@米国生活に怯えるデータサイエンティスト来年はどうやら家族で米国に行くようです。2024.08.13今回は過去に実施されたSignateのシェアサイクルの利用予測に挑戦しました。実際に投稿してみた結果、ランキング100位(暫定評価3.67)を切れました!今回はそのノウハウを共有したいと思います。※コードの公開はしません。用意されているデータは以下の5つ自転車の台数状況データ(status.csv)利用者の移動履歴データ(trip.csv)ステーション情報(station.csv)気象情報(weather.csv)投稿用サンプルファイル(sample_submit.csv)※データ詳細はこちら複数のデータが用意されており、すべての情報を使おうとするとかなり複雑なデータ結合が必要となる。時系列データをどう扱うか?今回のデータは時系列データを用いた予測となり、ARIMAやProphetといった時系列特有のトレンドを意識したアルゴリズムを用いることが一般的だが、今回は時間は意識しつつ通常の回帰問題としてモデリングを行った。重要なのが公式のコンペの説明でも触れられているが、時間の前後関係を意識しないとリーケージが発生する可能性がある。リーケージとは、予測時点では知り得ない未来データを意図せず使っており、評価上の精度が異常に良くなる現象である。対策としては、データの一部を検証用として適切に切り離しておくホールドアウト法による検証を行うことで検知することができる。(交差検定では精度が良いが、ホールドアウトでは極端に精度が下がる)複数ある予測対象日をどう扱うか?概要ページや自転車の台数状況データ(status.csv)の予測対象となるデータに注目すると、”2014-09-01”以降、ある特定の日の1時~23時を予測対象とするようにと指示がある。やろうと思えば、予測対象の時間帯の直前までのデータを使ってモデリングを行うことができるが、これをやろうとすると最大で予測対象日分(120個)のモデルを作成することになる。初期の段階では120個ものモデルを作成するのは時間も手間かかってしまい、あまり現実的ではない。(精度改善の段階まで進んだのであればトライするのはあり)そこで、まずは予測対象日のない”2014-08-31”までのデータを使ってモデリングを行い、”2014-09-01”以降の予測対象日となっているタイミングの予測を一気に行う。これにより、作成するモデルは1つで済み、予測回数も1回で済む。予測対象日以降のデータは学習に使わないのでリーケージの心配もグッと下がる。おまけに、これだけでも結構よい精度が出てしまう。実は、今回時系列モデリングを選択しなかったポイントがここにもある。近い時間のデータを参考にすることで精度よく予測を行う。時系列モデリングを選択してしまうと、予測対象直前のデータを使用するために120個のモデルをどうしても生成する必要が生じてしまう。(そうしないと精度が酷いことに)一方、通常の回帰問題であれば、データセット内の前後のデータで強い関連性があるわけではなく、予測対象の説明変数によって予測値が出力される。何も予測対象の直前のデータを使わなくてもOKということになるので、モデル作成負荷を下げることができる。(精度改善の段階なのであれば、もちろん使えるデータ数を増やすという意味でもモデルを複数作成し、それぞれ予測対象直前のデータを用いることも考えられる)特徴量エンジニアリングをどうするか?結局試した特徴量エンジニアリングは次の通り。ゼロ時台のデータを削除City2だけ分割した理由は、各Cityに分けてターゲットの時間推移をみると、明らかに縦軸が大きく、利用者の規模が異なるため。それ以外の特徴量の加工は与えられたデータセットを結合したくらい。気温や降水確率、湿度といった天気予報は自転車に乗るかどうかにとても効いて来ると考えていたが、直前の天気情報でないと逆に精度が下がってしまった。曜日や時間帯によって自転車の使われ方にパターンがあるような気がしたから。天気情報はただの数値であるため、自転車に乗ってどこかに行きたいという人間の気分に合わせたい。そこで人間が快適と判断する温度や湿度、風の強さからどれくらいかけ離れているか(不快に感じるか)を特徴量として入れたかったが、もちろん面倒なのでやめた緯度経度の情報から地域の特色を特徴量に入れ込むデータにあるCityは正式な地名が伏せられているのに、なぜか緯度経度は数値として与えてくれている。この緯度経度を検索すると米国のサンフランシスコ周辺の地域であることがわかる。夜中~朝方の時間帯は0時時点の自転車台数をそのまま予測値とする夜中に自転車を使ってどこかに行く人は恐らく少ない。日付データを主に数値化して活用しています。0時時点の台数は精度への影響が見られなかったため、特徴量からは外しています。(https://signate.jp/articles/competition-report-sc2021fall-20211215)これはいったいどういうことだろうか?普通に考えたら、夜中に自転車を使う人は限りなく少なく、予測対象直前の0時の自転車台数がそのまま1時、2時...朝方まで続くと考えられるが、実際はそうではない、ということ。この理由はいったい何なんでしょう?運営会社が各ステーションの自転車台数の偏りを均すために故意的に移動させているんでしょうか?データを見れば12時~1時の間で不自然に台数が変化しているはず。(しかし面倒なのでデータは見ない。冒頭に述べた通り、暫定評価3.67を取ってから手は止まってしまった。最終的な処理は以下の通り。天気情報といった与えられたデータを結合した曜日を追加した「City2」だけモデルを分けた直前のデータを使うためにモデルを120回作成した(モデル完了まで1日かかった)上記だけでそれなりの精度が出てしまったというのと、表彰者も特に複雑な特徴量エンジニアリングを行ったわけではなく、逆に何もしないのことで素材の味が活きている的な雰囲気を感じ取ってしまった。Netの使い分け【忘備録的な】リッジ回帰、ラッソ。どっちがどっちだかわからなくなることが多々あります。後輩もできたことだし、ここで一度ちゃんと理解しておこうか。思った次第でございます。解決してくれる、D最適計画について説明をします。いわゆるマテリアルインフォマティクスってやつです。様々な噂を耳にします。機械学習を攻略(したい)!!第1章さて、第1章からやっていきましょう。機械学習の概念のおさらいなのでまだまだちょろい。今回は製造業の中でもR&D部門のお客様からよく聞く問い合わせ内容を紹介したいと思います。前回の記事ではChatGPTを使うことでエクセルやPDFファイル、そして画像といった非構造化データからデータを抽出し、構造化データが作れることを検証しました。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。ホームAI・データサイエンス自己紹介ゆたろです。データ分析やAI分析をやってます。最近は、自分もAIに駆逐されることを前提に一体何ができるかのを考えながら生きてます。ゆたろ@米国生活に怯えるデータサイエンティスト.ホーム検索トップサイドバータイトルとURLをコピーしました。