モーター能力指数(N枠_モーターpt)を計算するためのスコアテーブル。
data/estimate/motor_ability_score.csvdocs/design/motor_ability_index.mdscripts/boatrace/index_features.py の motor_ability_pt() から load_motor_score_table() 経由で読み込まれる| 列 | 型 | 説明 |
|---|---|---|
級別 |
str | B2 / B1 / A2 / A1 |
グレード分類 |
str | 全(B2/B1)/ SG_G1 / G2_G3_一般(A2/A1) |
1着pt 〜 6着pt |
int | 各着順の得点 |
行は 6 行(級別 × グレード分類の組み合わせ)。
級別,グレード分類,1着pt,2着pt,3着pt,4着pt,5着pt,6着pt
B2,全,125,100,75,50,25,0
B1,全,100,80,60,40,20,0
A2,SG_G1,125,100,75,50,25,0
A2,G2_G3_一般,75,60,45,30,15,0
A1,SG_G1,100,80,60,40,20,0
A1,G2_G3_一般,50,40,30,20,10,0
data/programs/title/YYYY/MM/DD.csv の グレード 列を以下に正規化する(grade_bucket_for_grade())。
| グレード原値 | 分類 |
|---|---|
SG / SG / PG1 / PG1 / G1 / G1 / GⅠ |
SG_G1 |
G2 / G2 / GⅡ / G3 / G3 / GⅢ / IP(一般) / その他 |
G2_G3_一般 |
A1 / A2 で SG_G1 ⇔ G2_G3_一般 を切り替え、B1 / B2 では分類を見ず 全 を採用する。
選手pt と異なり、モーターpt は機材起因事故を負の評価として計上する。
| 着順トークン | スコア | 分母(出走数) |
|---|---|---|
1〜6(半角・全角) |
テーブル値 | +1 |
転 / 落 / 沈 / エ(機材起因) |
-100 | +1 |
F / L / 失 / 妨(選手起因) |
スキップ | +0 |
欠 / 不(無効走) |
スキップ | +0 |
定数定義(scripts/boatrace/index_features.py):
MOTOR_NEGATIVE_TOKENS = {"転", "落", "沈", "エ"}
MOTOR_NEGATIVE_SCORE = -100
MOTOR_SKIP_TOKENS = {"F", "L", "失", "妨", "欠", "不"}
motor_ability_score_v4.csv)v4_motor 予想者の motor4 成分が使うチューニング済みスコア表。
data/estimate/motor_ability_score_v4.csvdocs/design/motor_score_tuning_v4.mdindex_features.py の FeatureContext.motor4_score_table()(load_motor_score_table(repo, filename=MOTOR4_SCORE_FILENAME))スキーマは従来表と同一。値は行別スケール(1着pt)を維持したまま、行内の間隔を
γ=1.5 の凸カーブ(A × ((6-着順)/5)^1.5 を整数丸め)にしたもの。エキスパート
評価 4 場との順位相関で最適化した(1着の価値を等間隔より大きく評価する)。
級別,グレード分類,1着pt,2着pt,3着pt,4着pt,5着pt,6着pt
B2,全,125,89,58,32,11,0
B1,全,100,72,46,25,9,0
A2,SG_G1,125,89,58,32,11,0
A2,G2_G3_一般,75,54,35,19,7,0
A1,SG_G1,100,72,46,25,9,0
A1,G2_G3_一般,50,36,23,13,4,0
v4 では失格・棄権のペナルティも MOTOR4_NEGATIVE_SCORE = -50(従来 -100)に
緩和され、採用節数も MOTOR4_HISTORY_SESSIONS = 5(従来 6)になる。トークン
分類ルール(転/落/沈/エ = ペナルティ、F/L/失/妨/欠/不 = 除外)は共通。
スコアテーブルを書き換えた場合は以下も更新する(CLAUDE.md ルール):
data/estimate/motor_ability_score.csv をコミットdocs/data/motor_ability_score.md(本ファイル)の「現行データ」セクションを同期docs/design/motor_ability_index.md のスコアテーブル例も更新scripts/tests/unit/test_motor_ability.py の期待値を更新data/estimate/stadium/index_weights/YYYY-MM.csv を再生成重要: テーブル変更は
モーターptの意味を変えるため、過去日 index の再計算も必要。motor_ability_score_v4.csvを変更した場合も同様に、v4_motorの重み・index の 再計算とdocs/design/motor_score_tuning_v4.mdの更新が必要。