機械学習における精度の重要性、その計算方法、不均衡データセットにおける制限事項、モデルの性能を向上させる方法について解説します。
精度は、分類モデルの性能を評価するための最も基本的な指標の1つである。これは は、処理された予測の総数のうち、システムによって行われた正しい予測の割合を表します。 機械学習 機械学習(ML)において、精度はしばしば開発者が モデルが効果的に学習しているのか、それとも単に推測しているだけなのかを測るために、開発者が最初に確認する数値です。精度は を確実にするために、他の評価指標と一緒に使われることが多い。 評価指標と併用されることが多い。 特に複雑なデータセットでクラスを区別する場合など、モデルの挙動を包括的に理解するために他の評価指標と併用されることが多い。
精度の計算が簡単なので、データサイエンティストからビジネスエグゼクティブまで幅広いステークホルダーが利用しやすい。 に至る関係者にとって非常に利用しやすくなっている。数学的には、真陽性と真陰性の数を全ケース数で割ったものとして定義される。 の数をケースの総数で割ったものである。教師あり学習タスクの場合 教師あり学習タスクの場合、この指標は は、アルゴリズムが訓練データで提供された真実(ground truth)と一致する頻度を示す。 を示す。しかし、精度が高いからといって常に完璧なモデルであるとは限りません。 その信頼性は、基礎となるデータの分布に大きく依存する。
自動化された意思決定が人間の専門家を支援する様々な業界において、精度は極めて重要な役割を果たしている。
を使ってモデルを開発する場合 ultralytics パッケージでは、精度を評価することは検証ワークフローの標準的な部分である。
の標準的な部分です。次の例は
YOLO11 分類モデルを検証し
精度メトリクスを取得する。
from ultralytics import YOLO
# Load a pretrained YOLO11 classification model
model = YOLO("yolo11n-cls.pt")
# Validate the model on the MNIST160 dataset
# The function returns a metrics object containing top1 and top5 accuracy
metrics = model.val(data="mnist160")
# Display the Top-1 accuracy (percentage of times the top prediction was correct)
print(f"Top-1 Accuracy: {metrics.top1:.2f}")
直感的ではあるが、アンバランスなデータセットを扱う場合、精度は誤解を招く可能性がある。 を誤解させることがある。この現象は精度のパラドックスとして知られている。例えば、不正検出のシナリオにおいて、不正なトランザクショ を予測するモデルは、99%の精度を達成することになる。 99%の精度を達成する。しかし、不正を検出するという本来のタスクは完全に失敗する。このような場合、モデルは は高い精度を示すが、少数派のクラスに対する予測力はゼロである。
これに対処するために、実務家は次のような方法を採用している。 データ補強を採用し、クラスのバランスをとる。 エラーのタイプを分析するさまざまなメトリクスを見る。
モデルの性能を完全に理解するためには、精度を関連する用語と区別する必要がある:
精度を高めるには、実験を繰り返す必要がある。開発者はしばしば ハイパーパラメータのチューニング 最適な収束を得るために、ハイパーパラメータを調整する。さらに トランスフォーマーや、最新の Ultralytics YOLO を使用することで、大きな利益を得ることができる。最後に、学習データセットがクリーンで多様であることを、能動学習によって確認する。 能動学習によって、モデルがよりよく汎化される が向上する。