# ラーメンスープ評価AI — 完成システム v1.0（2026-06-19 凍結）

本フォルダは、検証を経て確定した最終パイプラインの**複製スナップショット**。
これ以降の検証・改修は元ツリー（`精度改善_20260619/` 他）で行い、本フォルダは完成版として保全する。

## 確定構成

```
入力: 動画(→最良フレーム→LLM評価) ＋ 濃度(実測Brix or 濃度推定AI) ＋ 時間(開店前/17-19時)
  ↓ 2段ゲート
  ① 上流: RF-DETRスープ可読性 readable=False → 「要確認」
  ② 採点直前: LLM assessable=0 → 「要確認」（スコアしない）
  ↓ 両方OK
  線形回帰（特徴量 visual_plus_brix_slot）→ スコア回帰
  ↓ グレード付与（A≥80 / B60-79 / C21-59 / D<21）
出力: スコア / グレード / status(scored・要確認) / 理由
```

## フォルダ

| パス | 内容 |
|---|---|
| `pipeline/` | 自己完結の本番パイプライン本体。`predict.py`／`train_model.py`／`soup_scoring.py`／学習済み `models/`（線形回帰 .pkl）。詳細は `pipeline/README.md` |
| `final_validation/` | 報告用の最終検証（5-fold OOF）。スクリプト・CSV・summary |
| `_feature_lib/` | 特徴量生成の元モジュール（再検証時の参照用） |

## 使い方（クイック）

```powershell
$env:PYTHONIOENCODING="utf-8"; $env:PYTHONUTF8="1"
& "C:\rmlenv\Scripts\python.exe" "完成システム_v1.0_20260619\pipeline\predict.py" --demo
```

## 報告用 最終検証値（5-fold OOF / 線形回帰 / assessable=1 採点対象 346件）

| target | MAE | 相関 | グレード一致% | ±15点以内% |
|---|---|---|---|---|
| total | 8.35 | 0.597 | 88.7 | 91.6 |
| soup  | 8.04 | 0.515 | 87.6 | 90.5 |

- 改修前（全件519件）比: グレード一致 total 75.3%→88.7% / soup 74.4%→87.6%。
- BytePlus提案値（MAE 11.7 / 相関 0.53 / グレード一致 74%）を全指標で上回る。
- 数値は `final_validation/summary.md` に再現可能な形で保存。

## 再現

完成システムは元ツリー（`local_batch_api/`・`検証/`・`精度改善_20260619/`）を参照せず単体で推論可能。
学習データからの再学習・再検証は元ツリー側で実行する（`pipeline/train_model.py`・`final_validation/run_final_validation.py` は元ツリーの絶対パスを参照）。
