0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【シリーズ索引】速いラップと遅いラップは何が違うのか — レーシングシミュレータで学ぶデータサイエンス

0
Posted at

レーシングシミュレータの実データを使って、データ理解・特徴量エンジニアリング・モデル構築・解釈・改善までを一通り実装するシリーズです。この記事は、その全体像と各記事への索引です。

このシリーズを通して、時系列の走行データを特徴量テーブルに変換し、相関分析・回帰モデル・SHAP・残差分析・DTWまでを一通り実装します。最終的には、「なぜこのラップは速いのか/遅いのか」を、感覚ではなくデータで説明することを目指します。


こんな人に役立ちます

  • 実データでデータサイエンスの流れを一通り学びたい
  • センサーデータ・時系列データの分析例を知りたい
  • 特徴量エンジニアリング・モデル解釈・残差分析を実装レベルで理解したい
  • 統計検定2級のキーワードを実データで確認したい

富士スピードウェイ1コーナー(300km/h近くからのフルブレーキング〜立ち上がり)の走行テレメトリを題材に、データサイエンスの手法を一貫したストーリーで解説します。

このシリーズで追いかける問い:

「速いラップと遅いラップ、何が違うのか」をデータで説明できるか

単なるチュートリアルではなく、実データを前にしたときの「仮説を立てる」「外れ値を疑う」「モデルを解釈する」「特徴量を作り直す」という試行錯誤も含めて記録しています。

目的は「未来のタイムを当てること」ではありません。走行後には実測タイムがすでにわかっているため、単にタイムを予測するだけでは実用性は高くありません。このシリーズで重視しているのは、予測モデルを使って「どの操作・どの挙動がタイム差に効いていそうか」を読み解くことです。

フェーズ1:データを理解する
        ↓
フェーズ2:予測モデルを作る
        ↓
フェーズ3:モデルを解釈・改善する

番外編:ラップ間の類似性を測る(DTW)

使用データ

  • データ元:レーシングシミュレータのテレメトリ(約60Hz)
  • サーキット:富士スピードウェイ
  • 分析区間:1コーナー(T1区間、500〜1000m)
  • ラップ数:94ラップ(外れ値除去後)
  • 主な変数:スロットル・ブレーキ・横G・ステアリング角・ギア・位置座標

※ 本シリーズはレーシングシミュレータのテレメトリデータを使った分析です。実車の走行データではありません。
※ 元データは約100ラップですが、記事ごとの分析目的や外れ値除去の条件により、使用ラップ数が95本・94本など異なる場合があります。


このシリーズを読む前に(note)

分析の舞台と使用データの背景を先に把握しておくと、各記事の変数名や区間の意味がわかりやすくなります。


どこから読めばよいか

  • 最初から体系的に読みたい人:1 → 2 → 3 → … の順番がおすすめ
  • 機械学習に興味がある人:6 → 7 → 8 → 9
  • 統計検定2級の復習に使いたい人:2 → 3 → 5 → 10
  • 時系列データに興味がある人:1 → 11 → B1 → B2

フェーズ1:データを理解する

生の時系列データを分析可能な形に変換し、変数間の関係を把握します。いきなりモデルを作るのではなく、「どんなデータか」「どれくらいばらつくか」「どの変数が関係しそうか」「外れ値に騙されていないか」を確認します。

1. 時系列データから特徴量を作る — 5,965行を1行に集約する特徴量エンジニアリング

約60Hzで記録された時系列データを、1ラップ1行の特徴量テーブルに変換します。mean/max/min/std による集約は、センサーデータや製造ログの前処理としても広く使われる手法です。

2. 1コーナーの通過タイムは100本でどれくらいバラつくのか — 標準偏差で走りの一貫性を測る

同じコース・同じ車両でもタイムにはばらつきがあります。標準偏差で「安定して速いのか、たまたま速いのか」を区別します。

3. 104個の特徴量を作ったのに、効いていたのは数個だけだった — 相関係数とヒートマップでEDA

104個の特徴量を相関係数とヒートマップで俯瞰します。変数が多いときに「どこを深掘りするか」を絞る EDA の実践例です。

4. 相関係数27位 → Random Forest 1位。その原因は「95本中たった1本のラップ」だった

相関係数では無名だった特徴量が Random Forest で1位になった理由は、たった1本の外れ値でした。「数値だけで判断しない」ことの重要性を実データで確認します。

5. 相関係数を信じる前に散布図を見る — 外れ値5本で r = -0.77 が崩れた話

r = -0.77 という強い相関係数も、外れ値5本を除くと消えてしまいました。相関係数の限界と、散布図で確認する大切さを扱います。


フェーズ2:予測モデルを作る

回帰モデルでタイムを予測し、どの変数が効くかを明らかにします。精度を競うのではなく、「モデルを通じてデータの構造を理解する」ことが目的です。

6. 特徴量重要度が高くても予測精度は出なかった — Random ForestでT1通過タイムを分析してわかること

4つの主要な特徴量に絞った Random Forest で特徴量重要度を確認します。「重要度が高い = 精度が高い」ではないという重要な注意点を実データで確認します。

7. 速いドライバーは何が違うのか — アクセルとラインだけで85%説明できた

ドライバーの操作に近い24変数だけで、T1タイムの差の約85%が説明できました。CV R² の読み方と操作変数の選択も扱います。

8. 線形回帰で「何がタイムに効くか」を読む — Ridge・Lassoで変数を9個に絞る

線形回帰の係数で「各変数が何秒分タイムに効くか」を数値化します。Ridge・Lasso で多重共線性に対処し、24変数を9変数に絞り込みます。


フェーズ3:モデルを解釈・改善する

予測の根拠を理解し、特徴量を改善してモデルを深化させます。「なぜこのラップは遅いのか」「モデルが外した理由は何か」を追いかけます。

9. 「このラップはなぜ遅い?」をSHAPで分解する — Random Forestの予測根拠を秒単位で読む

SHAP値でモデルの予測根拠を変数ごとに分解します。「このラップでは throttle_pct__mean が +0.3秒分タイムを引き上げた」という個別サンプルへの説明が可能になります。

10. モデルが外れたラップには何があったか — 残差分析で「説明できなかった0.6秒」を追う

モデルが大きく外したラップに注目し、残差のパターンを調べます。Shapiro-Wilk検定で残差の正規性も確認します。

11. アクセルは「いつ踏むか」より「どれだけ踏み続けるか」が重要だった — 特徴量エンジニアリングで精度改善

残差分析の仮説をもとにスロットル操作を時系列で分解し、新しい特徴量を追加します。交差検証での R² が 0.848 → 0.866 に改善しました。

12. 相関があるのに効かない特徴量 — 走行ラインを位置座標から作って失敗した話

走行ライン情報を位置座標から特徴量化しましたが、精度は下がりました。横Gとの多重共線性が原因で、「相関がある特徴量でもモデルには効かない」実例を扱います。


番外編:ラップ間の類似性を測る

本編では1ラップを1行の特徴量に変換して分析しましたが、時系列の形そのものを比較する手法も扱います。

B1. 長さが違う100本の時系列から「最も似たもの」を探す — 距離軸アライメントとDTWをレーシングデータで実装する

ラップごとに走行時間が異なるため、時系列の長さが揃いません。DTW で長さが違う時系列同士の類似度を計算します。

B2. 速度が似ていても操作は別物 — 多次元DTWで"走りのスタイル"を定量化する

速度が似ていてもスロットルやブレーキは大きく違うことがあります。複数チャネルを同時に比較する多次元 DTW を実装します。


このシリーズで学べること

  1. 生データを特徴量に変換する — 時系列→集約統計の変換は、センサー・IoT・製造ログに共通するパターン
  2. 統計量でデータを理解する — 相関係数・標準偏差は便利だが、散布図と組み合わせて使う
  3. モデルで関係性を見る — 精度を競うのではなく、モデルを通じて変数の効き方を理解する
  4. 予測を解釈する — SHAP・残差分析でモデルの中身を読む
  5. 特徴量を改善する — 「仮説 → 特徴量作成 → 検証 → 改善」のサイクルを回す

キーワード別に読む

学びたいこと 対応記事
特徴量エンジニアリング 1, 11, 12
相関係数・EDA 3, 4, 5
Random Forest 6, 7, 9
線形回帰・Ridge・Lasso 8
SHAP・モデル解釈 9
残差分析 10
DTW・時系列類似度 B1, B2

なぜレーシングシミュレータを題材にするのか

  • 目的が直感的 — 「速いラップと遅いラップの違い」という問いはわかりやすく、変数の解釈にも文脈がある
  • 変数に意味がある — スロットル・横G・位置座標など、各変数の意味を走行の文脈で解釈できる
  • 実務に近い流れ — 時系列取得→前処理→特徴量エンジニアリング→モデル化→解釈のサイクルは製造業や IoT 分析と同じ構造

題材はレーシングシミュレータですが、扱っているプロセスは、センサーデータ・製造ログ・IoTデータの分析にも通じる実務寄りの流れです。


まとめ

このシリーズでは「速いラップと遅いラップの違い」という問いを軸に、特徴量エンジニアリング・相関係数・Random Forest・線形回帰・SHAP・残差分析・DTW を実装しながら学びます。手法を学ぶだけでなく、実データで使ったときに何が見えて何が見えないかを体感することを目的にしています。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?