---
title: "Accuracy（正解率）とは？【G検定対策】"
description: "Accuracyは、全予測のうち正しく分類できた割合を表す評価指標です。混同行列を使った計算例、クラス不均衡で高く見える弱点、Precision・Recall・F1スコアとの違いを整理し、G検定で評価指標を選ぶ判断軸を確認します。"
last_modified_at: "2026-07-14"
canonical_url: "https://stemtazoo.github.io/gk/accuracy/"
section: "gk"
---

## まず結論

Accuracy（正解率）は、**全予測のうち、正しく分類できた割合**です。

混同行列では、正しく陽性と予測したTPと、正しく陰性と予測したTNを使います。

```text
Accuracy = (TP + TN) / (TP + TN + FP + FN)
```

G検定では、次のように判断します。

- クラスの偏りが小さい → Accuracyが全体性能の目安になりやすい
- クラスの偏りが大きい → Accuracyだけでは判断しない
- 見逃しが重要 → [Recall](https://stemtazoo.github.io/gk/recall/)を確認する
- 誤検知が重要 → [Precision](https://stemtazoo.github.io/gk/precision/)を確認する

## 直感的な説明

100問の○×問題で90問正解した場合、Accuracyは90%です。

分類問題でも考え方は同じです。

- 実際に陽性で、陽性と予測できた → 正解
- 実際に陰性で、陰性と予測できた → 正解
- 実際と予測が違った → 不正解

Accuracyは陽性だけを見る指標ではありません。
**陽性と陰性の両方を含めた、全体の正解率**です。

分かりやすい指標ですが、データの偏りが大きいと、モデルの弱点を隠してしまうことがあります。

## 定義・仕組み

### 混同行列との関係

|  | 予測：陽性 | 予測：陰性 |
|---|---|---|
| 実際：陽性 | TP（正解） | FN（不正解） |
| 実際：陰性 | FP（不正解） | TN（正解） |

Accuracyの分子は、正解したTPとTNです。
分母は、すべての予測件数です。

### 計算例

次の結果を考えます。

| 項目 | 件数 |
|---|---:|
| TP | 30 |
| TN | 50 |
| FP | 10 |
| FN | 10 |
| 合計 | 100 |

Accuracyは次のようになります。

```text
Accuracy = (30 + 50) / 100 = 0.8
```

したがって、Accuracyは**80%**です。

### 二値分類と多クラス分類

二値分類では、陽性と陰性の2クラスについて正解数を数えます。

多クラス分類でも基本は同じです。
たとえば犬・猫・鳥の3クラス分類では、全データのうち正しいクラスを当てた割合がAccuracyです。

クラス数が増えても、**全体の正解数 ÷ 全体の件数**という考え方は変わりません。

## いつ使う？（得意・不得意）

### 得意な場面

- クラス数が極端に偏っていない
- 各クラスの誤りを同程度に扱いたい
- 全体として何件正しく分類できたかを見たい
- 複数モデルを同じデータセットで比較したい

### 不得意な場面

- 正常99%、異常1%のようにクラスが偏っている
- 見逃しと誤検知の損失が大きく異なる
- 少数派クラスを正しく検出することが重要
- 医療診断、不正検知、故障検知など

### クラス不均衡で起きる問題

1000件のデータのうち、正常が990件、異常が10件あるとします。

モデルがすべて「正常」と予測すると、次のようになります。

- 正常990件は正解
- 異常10件はすべて見逃し
- Accuracyは990 ÷ 1000 = 99%

Accuracyだけを見ると高性能に見えます。
しかし、異常を1件も検出できていないため、異常検知モデルとしては役に立ちません。

このようなときは、[Recall](https://stemtazoo.github.io/gk/recall/)や[Precision](https://stemtazoo.github.io/gk/precision/)、[F1-score](https://stemtazoo.github.io/gk/f1-score/)も確認します。

## G検定ひっかけポイント

### Precision・Recall・F1との違い

| 指標 | 何を見るか | 重視する場面 |
|---|---|---|
| Accuracy | 全体のうち正解した割合 | クラスの偏りが小さい |
| [Precision](https://stemtazoo.github.io/gk/precision/) | 陽性と予測した中で、本当に陽性だった割合 | 誤検知を減らしたい |
| [Recall](https://stemtazoo.github.io/gk/recall/) | 実際の陽性のうち、検出できた割合 | 見逃しを減らしたい |
| [F1-score](https://stemtazoo.github.io/gk/f1-score/) | PrecisionとRecallの調和平均 | 両者のバランスを見たい |

### Accuracyが高ければ良いモデルとは限らない

Accuracyは重要な指標ですが、単独でモデルの良し悪しを決められるとは限りません。

特にクラス不均衡がある場合は、次を確認します。

- 多数派クラスだけを予測していないか
- 少数派クラスのRecallが低くないか
- 誤検知が多すぎないか
- 業務上、見逃しと誤検知のどちらが重大か

### ベースラインとの比較

モデルのAccuracyが95%でも、多数派クラスだけを予測する単純な方法が94%なら、改善はわずかです。

評価するときは、数値の高さだけでなく、**単純なベースラインよりどれだけ改善したか**も確認します。

### よくある誤り

- ❌ Accuracyは陽性だけの正解率
- ❌ Accuracyが高ければ、すべてのクラスを正しく分類できている
- ❌ クラス不均衡があってもAccuracyだけで十分
- ❌ AccuracyとPrecisionは同じ指標
- ❌ 見逃しを減らしたいときはAccuracyだけを最大化すればよい

### 選択肢を切る判断基準

- 「全体の正解割合」→ Accuracy
- 「陽性予測の信頼性」→ [Precision](https://stemtazoo.github.io/gk/precision/)
- 「実際の陽性をどれだけ拾ったか」→ [Recall](https://stemtazoo.github.io/gk/recall/)
- 「PrecisionとRecallのバランス」→ [F1-score](https://stemtazoo.github.io/gk/f1-score/)
- 「クラスが偏っている」→ Accuracy単独評価を疑う

## 確認問題

**問題：1000件のうち990件が正常、10件が異常である。すべて正常と予測するモデルの説明として最も適切なものはどれか。**

1. Accuracyは高いが、異常のRecallは0である
2. Accuracyも異常のRecallも99%である
3. PrecisionとRecallは必ず等しくなる
4. Accuracyが高いため、異常検知モデルとして十分である

<details>
<summary>答えを見る</summary>

**正解：1**

すべて正常と予測すると、正常990件は正解するためAccuracyは99%です。
一方、異常10件を1件も異常として検出できないため、異常クラスのRecallは0です。

この問題は、**高いAccuracyが少数派クラスの検出性能を保証しない**ことを示しています。

</details>

## まとめ（試験直前用）

- Accuracyは**全体のうち正しく分類できた割合**
- 式は `(TP + TN) / 全件数`
- 陽性と陰性の両方の正解を数える
- クラス不均衡では高く見えることがある
- 見逃しは[Recall](https://stemtazoo.github.io/gk/recall/)、誤検知は[Precision](https://stemtazoo.github.io/gk/precision/)、両者のバランスは[F1-score](https://stemtazoo.github.io/gk/f1-score/)で確認する

次に読むなら、誤検知を扱う[Precision](https://stemtazoo.github.io/gk/precision/)と、見逃しを扱う[Recall](https://stemtazoo.github.io/gk/recall/)がおすすめです。
