> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/models/ja/ping-si/evaluate-trained-models.md).

# 学習済みモデルを評価する

## 概要

モデル評価では次が表示されます:

1. 本番メトリクスエクスプローラー。モデルを実行する最適な confidence 閾値を見つけるのに役立ちます;
2. モデル改善の推奨事項。モデルの精度を向上させる方法の提案を提供します;
3. クラス別の性能。モデルが異なるクラスをどれだけ正しく識別できるかを示します;
4. 混同行列。モデルが得意なクラスと苦手なクラスを見つけるのに使用できます;
5. インタラクティブなベクターエクスプローラー。モデルがうまく識別できる画像クラスタや苦手な画像クラスタを特定できます;

モデル評価を使って、モデルの改善点を特定できます。

有料ユーザーがRoboflowで学習した、またはRoboflowにアップロードしたすべてのバージョン管理されたモデルに対して、モデル評価は自動的に実行されます。数百枚の画像のデータセットでは評価の実行に数分、大規模なデータセットでは数千枚以上の画像に対して数時間かかる場合があります。

### 対応プロジェクトタイプ

モデル評価は、Object Detection、Instance Segmentation、Classification、Semantic Segmentation の各プロジェクトをサポートしています。

Semantic Segmentation では、主要指標は **mIoU** （平均 Intersection-over-Union）です。mAP の代わりに使用されます。すべての指標（precision、recall、F1）は、インスタンスごとではなくピクセル単位で算出されます。クラス別の内訳では、IoU、precision、recall、F1、および各クラスの最適な confidence threshold が表示されます。混同行列の値は、オブジェクト数ではなくピクセル数を表します。

## Webアプリ

### モデル評価を開く

モデルの混同行列とベクターエクスプローラーを見つけるには、プロジェクト内の任意の学習済みモデルを開きます。次に、「評価を表示」ボタンをクリックします:

<figure><img src="/files/b2140d8e12a4504cc75d0ba72495c670e8979608" alt=""><figcaption></figcaption></figure>

ウィンドウが開き、混同行列とベクター分析を確認できます。

### 本番メトリクスエクスプローラー

本番メトリクスエクスプローラーでは、あらゆる confidence threshold におけるモデルの Precision、Recall、F1 スコアを確認できます。この情報はグラフで表示されます。

これらの統計に基づき、本番メトリクスエクスプローラーは「最適な confidence」を推奨します。これは、Precision/Recall/F1 スコアのトレードオフが最も良くなる閾値です。

モデル評価が完了すると、推奨される最適な confidence threshold がモデルの推論リクエストのデフォルトとして自動的に適用されます。クラス別の閾値が利用できる場合はそれも適用され、各クラス独自の値がない場合はグローバル閾値がフォールバックとして使用されます。

ただし、個別の推論リクエストごとに `confidence` パラメータを明示的に渡すことで、confidence threshold を上書きできます。

<figure><img src="/files/7ae3481c1107d0bb1357292b7ff99373c427caea" alt=""><figcaption></figcaption></figure>

スライダーをドラッグすると、異なる confidence threshold における F1/Precision/Recall の値を確認できます:

<figure><img src="/files/2afef2d62668af6b5cd7b496668a6ebb6137d548" alt=""><figcaption></figcaption></figure>

### モデル改善の推奨事項

モデル評価のモデル改善の推奨事項セクションには、モデルの精度を向上させる方法の提案が一覧表示されます。これらの改善案は、モデルで計算された混同行列の結果に基づいています。（このページの後半で混同行列について詳しく説明します）。

モデル改善の推奨事項機能では、次のような提案ができます:

* 偽陰性が多いモデルの改善方法。
* 偽陽性が多いモデルの改善方法。
* どのクラスがよく混同（誤認識）されるか。
* 精度向上のために、どのクラスにより多くのデータが必要か。
* テストセットまたは検証セットが小さすぎる可能性がある場合。
* その他。

<figure><img src="/files/1db2ba593be088ac2b9380050bf6527509d5e278" alt=""><figcaption></figcaption></figure>

### クラス別の性能

クラス別の性能チャートでは、データセット全体の各クラスについて、正しい予測、誤分類、偽陰性、偽陽性の数を確認できます。

この情報を使えば、モデルがどのクラスをうまく識別できるか、またどのクラスの識別が苦手かをひと目で確認できます。

<figure><img src="/files/642f0c647abb415d3add0dbb90268e3308febbf2" alt=""><figcaption></figcaption></figure>

データセットのクラス数が多い場合は、「すべてのクラス」ドロップダウンを開いて強調表示したいクラスを選ぶことで、特定のクラスに絞り込めます:

<figure><img src="/files/83d4525282e6c738f151262b793de1a5a3ffc4d2" alt=""><figcaption></figcaption></figure>

Confidence Threshold スライダーを動かすことで、閾値ごとにこのチャートがどう変化するかも確認できます:

<figure><img src="/files/c274b74aef0d41a74a2ce7a08aebf6f84d7d4dfb" alt=""><figcaption></figcaption></figure>

デフォルトでは、このチャートは推奨される最適な confidence threshold を使用します。

### 混同行列

混同行列は、モデルが異なるクラスでどれだけ性能を発揮するかを示します。

混同行列は、学習済みモデルでテストセットと検証セットの画像を実行して算出されます。その後、モデルの結果をデータセット注釈の「ground truth」と比較します。

混同行列ツールを使うと、次を特定できます:

* モデルの性能が良いクラス。
* オブジェクトに対してモデルが誤ったクラスを識別するケース（偽陽性）。
* 実際には存在しないのに、モデルがオブジェクトがあると識別するケース（偽陰性）。

以下は混同行列の例です:

<figure><img src="/files/b2ba82fdf534ab078337eb12cdade7710d77a46a" alt=""><figcaption></figcaption></figure>

モデルが多数のクラスを検出する場合、スクロールバーが表示され、混同行列を移動できます。

デフォルトでは、混同行列はモデルに対して算出された最適な閾値で実行した場合の性能を示します。

Confidence Threshold スライダーを使って confidence threshold を調整できます。スライダーを調整すると、混同行列、precision、recall が更新されます:

<figure><img src="/files/67671127a7935ba92190b25c6e03849ea8a6bb25" alt=""><figcaption></figcaption></figure>

混同行列の各ボックスをクリックすると、対応するカテゴリにどの画像が含まれるかを確認できます。

たとえば、「偽陽性」列の任意のボックスをクリックすると、正解データには存在しないオブジェクトが検出された画像を特定できます。

<figure><img src="/files/adf9bc195932eed988691b6f17893bf2e8b4ffdd" alt=""><figcaption></figcaption></figure>

個々の画像をクリックすると、インタラクティブ表示に入り、正解データ（注釈）とモデル予測を切り替えられます:

<figure><img src="/files/cdebf08be104eb9f488db53e0e3b3193021911ee" alt=""><figcaption></figcaption></figure>

「正解データ」をクリックすると注釈を表示し、「モデル予測」をクリックするとモデルの出力を表示します。

## HTTP API

モデル評価では、Version のテスト分割におけるモデルの性能を把握できます。クラス別指標、confidence-threshold 曲線、画像埋め込みクラスタリング、画像ごとの予測、改善提案が含まれます。Object Detection と Instance Segmentation では主要指標は mAP、Semantic Segmentation では mIoU です。評価は学習完了時に自動生成され、アプリから手動で再実行することもできます。

Model Evaluations API を使うと、アプリの評価ページに表示されるすべての内容を取得できます。UI の各パネルは専用エンドポイントに対応しています:

* [ワークスペース内のモデル評価を一覧取得](#list-model-evaluations)
* [1件の評価のメタデータと主要指標を取得](#get-a-model-evaluation)
* [スプリットごとの完全な指標詳細を取得（mAP または mIoU）](#map-results)
* [confidence-threshold スイープと F1 最適閾値を取得](#confidence-sweep)
* [1つのスプリットのクラス別性能を取得](#performance-by-class-1)
* [混同行列を取得](#confusion-matrix-1)
* [画像埋め込みクラスタリング（ベクター分析）を取得](#vector-analysis)
* [画像ごとの予測を取得](#per-image-predictions)
* [モデル改善の推奨事項を取得](#recommendations)

### 認証

すべてのエンドポイントには、 `model-eval:read` スコープを持つ API キーが必要です。クエリパラメータとして渡すか、 `Bearer` トークンとして `Authorization` ヘッダーに含めてください。

### よくあるエラー

| ステータス | エラーコード                 | 条件                                           |
| ----- | ---------------------- | -------------------------------------------- |
| `401` | 認証されていない               | API キーがない、または無効です                            |
| `404` | `model_eval_not_found` | 評価が存在しないか、別のワークスペースに属しています                   |
| `409` | `model_eval_not_done`  | 評価が完了していません。パネルデータはまだ利用できません                 |
| `400` | `invalid_confidence`   | `confidence` クエリパラメータが整数ではありません。 `[0, 100]`  |
| `400` | `invalid_split`        | `split` クエリパラメータがエンドポイントで許可されている値のいずれでもありません |

### モデル評価を一覧取得

ワークスペース内のモデル評価を一覧表示します。軽量なプロジェクションを返します。特定の評価の主要指標については、次の [モデル評価を取得](#get-a-model-evaluation).

```url
https://api.roboflow.com/:workspace/model-evals
```

```bash
curl "https://api.roboflow.com/my-workspace/model-evals?api_key=$ROBOFLOW_API_KEY&status=done&limit=10"
```

#### クエリパラメータ

| パラメータ                      | 型      | 説明                                              |
| -------------------------- | ------ | ----------------------------------------------- |
| `project`                  | string | プロジェクトをURLスラッグでフィルタします（例: `chess-pieces-fmhpz`) |
| `version` （別名 `versionId`) | string | 特定のバージョンでフィルタします（例: `"4"`)                      |
| `model` （別名 `modelId`)     | string | 特定のモデル ID の評価でフィルタします                           |
| `status`                   | 列挙型    | 次のいずれか `running`, `done`, `failed`。未知の値は `400`. |
| `limit`                    | 整数     | ページサイズ。デフォルト `50`、最大 `200`                      |

次のうち最大 1 つまでを `project` / `version` / `model` 各呼び出しで設定できます（最も具体的なものが優先されます: `model` > `version` > `project`）。組み合わせは `400 invalid_filter_combination` として拒否されます。ストレージインデックスを有限に保つためです。

#### レスポンス

```json
{
    "evals": [
        {
            "evalId": "huUF720inUcymARwqAGK",
            "status": "done",
            "project": "chess-pieces-fmhpz",
            "versionId": "4",
            "modelId": null,
            "createdAt": "2026-04-27T20:04:10.904Z"
        }
    ]
}
```

`project` はプロジェクトのURLスラッグです。REST API が URL パスで使用するのと同じ識別子です（`/:workspace/:project/...`）。評価 UI へ直接リンクするには: `https://app.roboflow.com/{workspace}/{project}/evaluation/{versionId}`.

### モデル評価を取得

ID で単一のモデル評価を取得します。完了済みの評価では、レスポンスに `summary` オブジェクトが含まれ、主要指標が返されます。実行中または失敗した評価では、軽量な形だけが返されます。主要指標に何が入るかはタスクタイプによって異なります - `mAP` 検出系タスクでは `mIoU` 、Semantic Segmentation では

```url
https://api.roboflow.com/:workspace/model-evals/:evalId
```

```bash
curl "https://api.roboflow.com/my-workspace/model-evals/huUF720inUcymARwqAGK?api_key=$ROBOFLOW_API_KEY"
```

#### 完了済み評価のレスポンス

```json
{
    "evalId": "huUF720inUcymARwqAGK",
    "status": "done",
    "project": "chess-pieces-fmhpz",
    "versionId": "4",
    "modelId": null,
    "createdAt": "2026-04-27T20:04:10.904Z",
    "summary": {
        "mAP": 0.9239650566041828,
        "mIoU": null,
        "precision": 0.85,
        "recall": 0.85
    }
}
```

#### 実行中または失敗した場合のレスポンス

同じフィールドが `summary` ブロックなしで返されます。

```json
{
    "evalId": "fNyWx6PC74rCc18IuZ3M",
    "status": "running",
    "project": "hard-hat-detection",
    "versionId": "1",
    "modelId": null,
    "createdAt": "2026-03-19T21:02:07.918Z"
}
```

#### 注記

* `mAP` は IoU 0.5 における平均適合率（`map50`）です。 `null` は、検出以外の評価タスク（例：分類、Semantic Segmentation）では
* `mIoU` は前景クラスのマクロ平均 Intersection-over-Union です。Semantic Segmentation の評価でのみ設定され、 `null` それ以外では
* `precision` と `recall` は、テスト分割における F1 最適 confidence threshold で報告されます。
* `evalId` は、すべてのパネル応答に埋め込まれる同じ識別子です。 `modelEvals.get` ペイロードは構造的にいずれかのパネルのペイロードのスーパーセットであるため、 `summary`-拡張済み `modelEvals.get` および `getMapResults` のレスポンスは同じクライアントコードパスでレンダリングできます。
* `project` はプロジェクトのURLスラッグです。REST API が URL パスで使用するのと同じ識別子です。評価 UI へ直接リンクするには: `https://app.roboflow.com/{workspace}/{project}/evaluation/{versionId}`. `project` は `null` プロジェクトが削除されている場合です。

### mAP結果

評価の主要指標詳細を返します。レスポンスの形はタスクタイプによって異なります:

* **Object detection / instance segmentation** - 各スプリットの IoU 0.5 / 0.5-0.95 / 0.75 における mAP。オブジェクトサイズ別およびクラス別に内訳されます。
* **Semantic segmentation** - 各スプリットの mIoU、precision、recall、F1（ピクセル単位）。クラス別 IoU と最適 confidence threshold も含まれます。

レスポンスの `taskType` フィールドが、期待される形を示します: `"object-detection-like"` または `"semantic-segmentation"`.

これはアプリの **スプリット別メトリクス** パネルが読み込むデータです。

```url
https://api.roboflow.com/:workspace/model-evals/:evalId/map-results
```

```bash
curl "https://api.roboflow.com/my-workspace/model-evals/$EVAL_ID/map-results?api_key=$ROBOFLOW_API_KEY"
```

#### レスポンス（Object Detection / Instance Segmentation）

```json
{
    "taskType": "object-detection-like",
    "splits": {
        "test": {
            "map50": 0.9239650566041828,
            "map50_95": 0.7555258345429926,
            "map75": 0.9239650566041828,
            "byObjectSize": {
                "small": {
                    "map50": 0.9038189533239035,
                    "map50_95": 0.6478143732740621,
                    "map75": 0.9038189533239035
                },
                "medium": {
                    "map50": 0.9913366336633663,
                    "map50_95": 0.8572608399609195,
                    "map75": 0.9913366336633663
                },
                "large": null
            },
            "perClass": {
                "Car-rims": {
                    "map50": 0.9239650566041828,
                    "map50_95": 0.7555258345429926,
                    "map75": 0.9239650566041828,
                    "byObjectSize": {
                        "small": { "map50": 0.9, "map50_95": 0.65, "map75": 0.85 },
                        "medium": { "map50": 0.99, "map50_95": 0.85, "map75": 0.99 },
                        "large": null
                    }
                }
            }
        },
        "valid": { "...": "same shape" },
        "train": { "...": "same shape" }
    }
}
```

#### レスポンス（Semantic Segmentation）

```json
{
    "taskType": "semantic-segmentation",
    "splits": {
        "test": {
            "miou": 0.816,
            "precision": 0.938,
            "recall": 0.862,
            "f1": 0.898,
            "perClass": [
                {
                    "classID": 3,
                    "className": "multi",
                    "iou": 0.816,
                    "precision": 0.938,
                    "recall": 0.862,
                    "f1": 0.898,
                    "optimalThreshold": 0.0
                }
            ]
        },
        "valid": { "...": "same shape" },
        "train": { "...": "same shape" }
    }
}
```

#### 注記

* レスポンスの `taskType` フィールドがレスポンスの形を判別します。スプリットの内容を解析する前に必ず確認してください。
* **検出:** `map50_95` は、IoU 閾値 0.5 から 0.95 まで 0.05 刻みで平均した mAP です（COCO 標準）。オブジェクトサイズのバケットは `null` そのサイズのインスタンスがスプリットに存在しない場合は `perClass`の下にクラス名をキーとして表示されます。
* **Semantic Segmentation:** すべての指標は、前景クラスに対するピクセル単位のマクロ平均です（背景は除外）。 `miou` は mean Intersection-over-Union です。 `optimalThreshold` はクラスごとの F1 最適 confidence threshold です。値 `0.0` は有効で、モデルが argmax でピークに達することを意味します。

### 信頼度スイープ

各 confidence threshold における指標曲線と、スプリットごと（およびクラスごと）の F1 最適閾値を返します。precision/recall のトレードオフを描画したり、デプロイ時の閾値を選ぶのに役立ちます。

これはアプリの **本番メトリクスエクスプローラー** パネルが読み込むデータです。

```url
https://api.roboflow.com/:workspace/model-evals/:evalId/confidence-sweep
```

```bash
curl "https://api.roboflow.com/my-workspace/model-evals/$EVAL_ID/confidence-sweep?api_key=$ROBOFLOW_API_KEY"
```

#### レスポンス

```json
{
    "splits": {
        "test": {
            "perThreshold": {
                "0.00": { "precision": 0.02, "recall": 1.0,  "f1": 0.039 },
                "0.20": { "precision": 0.45, "recall": 0.92, "f1": 0.605 },
                "0.37": { "precision": 0.85, "recall": 0.85, "f1": 0.85 },
                "0.50": { "precision": 0.91, "recall": 0.78, "f1": 0.84 }
            },
            "optimalThreshold": 0.37,
            "optimalMetrics": {
                "precision": 0.85,
                "recall": 0.85,
                "f1": 0.85
            },
            "perClass": {
                "Car-rims": {
                    "perThreshold": { "0.37": { "precision": 0.85, "recall": 0.85, "f1": 0.85 } },
                    "optimalThreshold": 0.37,
                    "optimalMetrics": { "precision": 0.85, "recall": 0.85, "f1": 0.85 }
                }
            }
        },
        "valid": { "...": "same shape" },
        "train": { "...": "same shape" }
    }
}
```

#### 注記

* `perThreshold` キーは小数文字列の confidence threshold で、通常は `0.01` から `0.00` まで `0.99`.
* `optimalThreshold` の各値が、そのスプリットで F1 を最大化する閾値です。
* スプリット内の `perClass` の各クラスエントリは、ネストされた `perClass`.

### クラス別の性能

1つのスプリットのクラス別主要指標を返します。レスポンスの形は評価のタスクタイプによって異なります:

* **Object detection / instance segmentation** - クラス別 `map50`, `map50_95`, `map75`、precision、recall、F1、および最適閾値。
* **Semantic segmentation** - クラス別 `iou`、precision、recall、F1、および最適閾値（ピクセル単位）。

レスポンスの `taskType` レスポンスのフィールドが、期待される形を示します。

これはアプリの **クラス別の性能** パネルが読み込むデータです。

```url
https://api.roboflow.com/:workspace/model-evals/:evalId/performance-by-class
```

```bash
curl "https://api.roboflow.com/my-workspace/model-evals/$EVAL_ID/performance-by-class?api_key=$ROBOFLOW_API_KEY&split=test"
```

#### クエリパラメータ

| パラメータ   | 型   | 説明                                                                                           |
| ------- | --- | -------------------------------------------------------------------------------------------- |
| `split` | 列挙型 | 次のいずれか `train`, `valid`, `test`。デフォルト `test`. `all` は **は** 有効ではありません。クラス別指標はスプリット間で集計できません。 |

#### レスポンス（Object Detection / Instance Segmentation）

```json
{
    "taskType": "object-detection-like",
    "split": "test",
    "classes": [
        {
            "className": "Car-rims",
            "map50": 0.9239650566041828,
            "map50_95": 0.7555258345429926,
            "map75": 0.9239650566041828,
            "precision": 0.85,
            "recall": 0.85,
            "f1": 0.85,
            "optimalThreshold": 0.37
        },
        {
            "className": "music-note",
            "map50": null,
            "map50_95": null,
            "map75": null,
            "precision": 0,
            "再現率": 0,
            "F1": 0,
            "最適しきい値": 0.5
        }
    ]
}
```

#### レスポンス（Semantic Segmentation）

```json
{
    "taskType": "semantic-segmentation",
    "split": "test",
    "classes": [
        {
            "classID": 3,
            "className": "multi",
            "iou": 0.816,
            "precision": 0.938,
            "recall": 0.862,
            "f1": 0.898,
            "optimalThreshold": 0.0
        }
    ]
}
```

#### 注記

* `taskType` 各クラスのフィールドセットを区別します。検出クラスには `map50`/`map50_95`/`map75`；セマンティックセグメンテーションのクラスには `iou` と `クラスID` 代わりに。
* `optimalThreshold` は、信頼度スイープにおける各クラスのF1最適な信頼度しきい値です。
* `precision`, `recall`、および `F1` は、その各クラスの最適しきい値で報告されます。
* 検出では、mAPフィールドは `null` その分割にそのクラスのインスタンスがない場合。
* セマンティックセグメンテーションでは、すべての指標はピクセル単位です。1つの `optimalThreshold` の `0.0` は有効です。

### 混同行列

画像ごとの予測から導出された集約済みの混同行列を返します。各セル `matrix[actual][predicted]` は、正解クラスが `実際` で、モデルが `予測`。セマンティックセグメンテーションの評価では、値はインスタンス数ではなくピクセル数を表します。

これはアプリの **混同行列** パネルが読み込むデータです。

```url
https://api.roboflow.com/:workspace/model-evals/:evalId/confusion-matrix
```

```bash
curl "https://api.roboflow.com/my-workspace/model-evals/$EVAL_ID/confusion-matrix?api_key=$ROBOFLOW_API_KEY&split=test"
```

#### クエリパラメータ

| パラメータ        | 型   | 説明                                                      |
| ------------ | --- | ------------------------------------------------------- |
| `split`      | 列挙型 | 次のいずれか `train`, `valid`, `test`、または `all`。デフォルト `test`. |
| `confidence` | 整数  | の信頼度しきい値の割合 `[0, 100]`。デフォルトは正規のファイルです（通常は `20`).       |

#### レスポンス

```json
{
    "split": "test",
    "confidenceThreshold": 0.2,
    "classes": ["Car-rims", "music-note", "background"],
    "matrix": [
        [20,  0, 0],
        [ 0,  0, 0],
        [80,  0, 0]
    ]
}
```

上の例では、信頼度しきい値 0.2 で:

* の20件すべてが `Car-rims` 正しく分類されました（`matrix[0][0] = 20`)
* モデルは80件の偽陽性を生成しました。 `Car-rims` 実際のクラスが `background` (`matrix[2][0] = 80`)
* テスト分割には `music-note` インスタンス

#### 注記

* `confidence` 集約するレポートの基になる、信頼度ごとのどのバリアントを選ぶかを指定します。しきい値が異なると、異なる行列が得られます。
* `split=all` train、valid、test 全体の生のカウントを集約します。

### ベクトル解析

評価の画像埋め込みクラスタリング結果を返します。UMAPで射影した埋め込みをHDBSCANでクラスタリングし、クラスターごとの集計指標を含みます。モデルの性能が体系的に良い、または悪い画像のグループを見つけるのに役立ちます。

これはアプリの **ベクトル解析** パネルが読み込むデータです。

```url
https://api.roboflow.com/:workspace/model-evals/:evalId/vector-analysis
```

```bash
curl "https://api.roboflow.com/my-workspace/model-evals/$EVAL_ID/vector-analysis?api_key=$ROBOFLOW_API_KEY"
```

#### クエリパラメータ

| パラメータ        | 型  | 説明                                        |
| ------------ | -- | ----------------------------------------- |
| `confidence` | 整数 | の信頼度しきい値の割合 `[0, 100]` （正規のレポートがデフォルトです）。 |

#### レスポンス

```json
{
    "clustering": {
        "method": "hdbscan",
        "nClusters": 54,
        "metrics": {
            "noiseRatio": 0.078125,
            "silhouetteScore": 0.48925095796585083
        },
        "parameters": {
            "min_cluster_size": 2,
            "min_samples": 1,
            "cluster_selection_method": "eom",
            "metric": "euclidean"
        },
        "processingTimeSeconds": 8.36
    },
    "preprocessing": {
        "method": "umap",
        "originalDimensions": 768,
        "targetDimensions": 10,
        "nNeighbors": 30,
        "minDistance": 0.05
    },
    "clusters": [
        {
            "id": -1,
            "numImages": 15,
            "splitDistribution": { "train": 12, "valid": 2, "test": 1 },
            "metrics": {
                "f1Mean": 0.462,
                "f1Std": 0.219,
                "f1Min": 0.129,
                "f1Max": 0.8,
                "precisionMean": 0.330,
                "recallMean": 0.952
            },
            "sampleImages": ["img1.jpg", "img2.jpg"]
        },
        {
            "id": 0,
            "numImages": 3,
            "splitDistribution": { "train": 2, "valid": 1 },
            "metrics": {
                "f1Mean": 0.889,
                "f1Std": 0.157,
                "f1Min": 0.667,
                "f1Max": 1.0,
                "precisionMean": 1.0,
                "recallMean": 0.833
            },
            "sampleImages": ["img3.jpg", "img4.jpg", "img5.jpg"]
        }
    ]
}
```

#### 注記

* クラスターID `-1` はノイズ／未クラスタ化バケット（HDBSCANの慣例）です。どの高密度領域にも当てはまらない画像が入ります。
* `平均適合率` と `平均再現率` はクラスター内のすべての画像にわたって平均化されます。
* 画像ごとの埋め込みとクラスター割り当ては、次を通じて公開されます [画像ごとの予測](#per-image-predictions).

### 画像ごとの予測

画像ごとの予測レコードを返します。TP/FP/FN の件数、画像ごとの適合率/再現率/F1、画像のクラスターIDと2D埋め込み、および生の混同行列エントリを含みます。ページ分割されています。

これはアプリの **画像ごとの予測** パネルが読み込むデータです。

```url
https://api.roboflow.com/:workspace/model-evals/:evalId/image-predictions
```

```bash
curl "https://api.roboflow.com/my-workspace/model-evals/$EVAL_ID/image-predictions?api_key=$ROBOFLOW_API_KEY&split=test&limit=50"
```

#### クエリパラメータ

| パラメータ        | 型   | 説明                                                     |
| ------------ | --- | ------------------------------------------------------ |
| `split`      | 列挙型 | 次のいずれか `train`, `valid`, `test`、または `all`。デフォルト `all`. |
| `confidence` | 整数  | の信頼度しきい値の割合 `[0, 100]` （どの信頼度別レポートのバリアントを読み取るかを選択します）。 |
| `limit`      | 整数  | ページサイズ。デフォルト `200`、最大 `1000`.                          |
| `offset`     | 整数  | 返却前にこの件数のレコードをスキップします。デフォルト `0`.                       |

#### レスポンス

```json
{
    "split": "test",
    "confidenceThreshold": 0.2,
    "totalImages": 192,
    "offset": 0,
    "limit": 50,
    "images": [
        {
            "imageId": "1QKLCUsfAzFiCIb6YCJj",
            "imageName": "abc.jpg",
            "split": "test",
            "augmentations": 2,
            "cluster": {
                "id": 4,
                "embedding2D": [7.494518280029297, -5.143994331359863]
            },
            "stats": {
                "truePositives": 2,
                "falsePositives": 7,
                "falseNegatives": 0,
                "precision": 0.222,
                "recall": 1.0,
                "f1": 0.364
            },
            "confusion": [
                [0, 0, 2],
                [2, 0, 7]
            ]
        }
    ]
}
```

#### 注記

* `imageId` はRoboflowの元画像IDです。ほかのRoboflow APIとの相互参照に便利です。
* `confusion` エントリは `[actualClassIdx, predictedClassIdx, count]` の3要素のタプルです。クラスインデックスは、次と [混同行列](#confusion-matrix-1)の `classes`.
* `embedding2D` は、UMAPで射影された2D座標で、次の中で使用されます [ベクトル解析](#vector-analysis) プロット。
* 異なる `confidence` 値を指定すると異なる統計が返ります。予測はしきい値によって変化します。任意の `confidence` 値の探索が成功するのは、評価パイプラインが生成したしきい値に限られます。生成されていないバリアントは `404 report_not_found`.
* **ページネーションのコスト**：各ページで全体の `model_eval_results.json` ファイルをストレージから再読み込みし、サーバー側で分割します。非常に大きな `image_results` 配列の場合は、より大きい `limit` 値（最大 `1000`）を、多数の小さなページよりも使うことで、ページごとの固定コストを最小化できます。

### 推奨事項

完了した評価から生成されたモデル改善の推奨事項を返します。クラス不均衡の警告、見逃し検出のパターン、データセットに追加すべき内容や再学習方法に関するその他の実行可能な提案を含みます。

これはアプリの **モデル改善の推奨事項** パネルが読み込むデータです。

このエンドポイントは **読み取り専用**。推奨事項は、学習完了の副作用として（または従来のアプリ内「推奨事項を更新」アクションによって）生成されます。まだ生成されていない場合、レスポンスは `200 {"generated": false}` - これは **は** 1つの `409 EVAL_NOT_DONE`。評価は *は* 完了しています。ただし、オプションの推奨事項サイド出力がないだけです。他のパネルのエンドポイント（`map-results`, `confidence-sweep`、など）は返します `409 EVAL_NOT_DONE` これは、背後のデータが評価に不可欠だからです。推奨事項はそうではありません。

```url
https://api.roboflow.com/:workspace/model-evals/:evalId/recommendations
```

```bash
curl "https://api.roboflow.com/my-workspace/model-evals/$EVAL_ID/recommendations?api_key=$ROBOFLOW_API_KEY"
```

#### レスポンス（推奨事項あり）

```json
{
    "generated": true,
    "generatedAt": "2026-04-27T20:05:37.512Z",
    "recommendations": {
        "summary": {
            "confidenceThreshold": 37,
            "split": "test",
            "generatedAt": "2026-04-27T20:05:37.512Z",
            "count": 3,
            "f1": 0.85,
            "precision": 0.85,
            "recall": 0.85
        },
        "items": [
            {
                "id": "56bcd423-38ff-45f9-b3e0-662a71ce44e6",
                "type": "missed_detection",
                "analysis": {
                    "affected_class": "Car-rims",
                    "count": 3
                }
            },
            {
                "id": "150e49a8-3a61-479a-9e18-3eb751494a70",
                "type": "class_imbalance",
                "analysis": {
                    "affected_class": "Car-rims",
                    "current_count": 20,
                    "total_gt_instances": 20,
                    "median_count": 10
                }
            }
        ]
    }
}
```

#### レスポンス（まだ生成されていません）

```json
{
    "generated": false
}
```

## MCPサーバー

AIエージェントを次に接続すると [MCPサーバー](https://docs.roboflow.com/agents/mcp-server) 、これらのツールでモデルのパフォーマンスを確認できます：

<table data-search="false"><thead><tr><th width="290">ツール</th><th>説明</th></tr></thead><tbody><tr><td><code>model_evals_list</code></td><td>ワークスペース内のモデル評価を一覧表示します。</td></tr><tr><td><code>model_evals_get</code></td><td>1件の評価の最上位サマリーを取得します。</td></tr><tr><td><code>model_evals_get_map_results</code></td><td>分割ごとのmAP結果を取得します。</td></tr><tr><td><code>model_evals_get_confusion_matrix</code></td><td>混同行列を取得します。</td></tr><tr><td><code>model_evals_get_performance_by_class</code></td><td>1つの分割におけるクラスごとの性能指標を取得します。</td></tr><tr><td><code>model_evals_get_recommendations</code></td><td>利用可能であれば、その評価に対して生成された推奨事項を取得します。</td></tr></tbody></table>
