業務データの異常検知入門:Python で作る簡易AIレポートツール

はじめに

日々の業務データの中には、通常と異なる「異常値」や「不自然なパターン」が隠れていることがあります。
売上データの急増・急減、サーバーログの急激なエラー数増加、センサー値の異常などを見逃すと、大きなトラブルや損失につながることも少なくありません。

本記事では、Python を使って業務データを自動で異常検知し、簡易レポートを作成する方法を、初心者でも試せるコード例付きで解説します。


異常検知とは?

異常検知(Anomaly Detection)とは、通常のデータパターンから外れた動きを自動で見つける技術です。
主な用途は以下の通りです:

  • 売上データの不自然な変動
  • IoT センサーの異常挙動
  • ネットワークログの不正アクセス検知
  • 会計データの不正利用監査

今回のゴール

  • Python × scikit-learn を用いた簡易異常検知の実装
  • 可視化とレポート生成(matplotlib, pandas_profiling など)
  • 業務でそのまま応用できるテンプレートコード提供

使用するライブラリ

pip install pandas matplotlib scikit-learn seaborn openpyxl

※必要に応じて pandas-profilingydata-profiling を入れると自動レポート化も可能です。


サンプルデータの準備

ここでは売上データを模したサンプルを作成します。

import pandas as pd
import numpy as np

# 日付データ作成
dates = pd.date_range("2025-01-01", periods=100)
sales = np.random.normal(100, 10, size=100)

# 途中に異常値を混ぜる
sales[20] = 300  # 急増
sales[55] = 20   # 急減

df = pd.DataFrame({"date": dates, "sales": sales})
print(df.head())

異常検知の実装(IsolationForest)

scikit-learnIsolationForest を使うと、外れ値を効率的に検知できます。

from sklearn.ensemble import IsolationForest

# モデル作成
model = IsolationForest(contamination=0.05, random_state=42)
df["anomaly"] = model.fit_predict(df[["sales"]])

# -1 が異常値、1 が正常値
df["anomaly"] = df["anomaly"].map({1: "normal", -1: "anomaly"})
print(df[df["anomaly"] == "anomaly"])

可視化

異常値をグラフにマークして確認します。

import matplotlib.pyplot as plt

plt.figure(figsize=(12,6))
plt.plot(df["date"], df["sales"], label="Sales")
plt.scatter(
    df[df["anomaly"]=="anomaly"]["date"],
    df[df["anomaly"]=="anomaly"]["sales"],
    color="red", label="Anomaly"
)
plt.legend()
plt.title("Sales Data with Anomaly Detection")
plt.show()

これで、売上データに含まれる不自然な動きを一目で確認できます。


簡易レポート出力

Excel 形式でレポートを保存して、業務共有できるようにします。

report = df[df["anomaly"]=="anomaly"]
report.to_excel("anomaly_report.xlsx", index=False)

print("異常値レポートを anomaly_report.xlsx に出力しました。")

応用ポイント

  • 売上や在庫データに応用 → 急激な変化を監視
  • サーバーログ解析 → エラー急増を自動通知
  • センサーデータ → 機械故障の早期発見

さらにメール送信や Slack 通知と組み合わせると、
異常を見つけたら自動でチームに共有する仕組み」が実現できます。


まとめ

本記事では、

  • Python での簡易異常検知(IsolationForest 使用)
  • グラフによる可視化
  • Excel 形式でのレポート出力

を解説しました。

難しい AI アルゴリズムを知らなくても、「いつもと違う動き」を自動で見つけて報告する仕組みは業務で即戦力になります。
まずはサンプルコードを動かし、自社データに適用してみましょう。

タイトルとURLをコピーしました