--- title: "異常検知" url: https://docs.catalyst.zoho.com/ja/quickml/help/ml-algorithms/anomaly-detection/ description: "QuickMLは、Catalyst開発プラットフォームにおける完全ノーコードの機械学習パイプラインビルダーサービスで、エンドツーエンドのソリューションを備えた機械学習パイプラインを作成できます。" last_updated: 2026-08-17T12:16:04Z service: QuickML type: general --- # 異常検知アルゴリズム 異常検知は、データの大部分から大きく逸脱するデータポイント、イベント、または観測値を特定することに焦点を当てた**教師なし機械学習**技術です。これらの外れ値は、不正行為、ネットワーク侵入、機器の故障、データ品質の問題などの重要なインシデントを表すことがあります。事前定義されたラベルを予測する代わりに、異常検知モデルはデータ内の正常な動作を学習し、注意が必要な逸脱をフラグ付けします。 > **注意:** 異常検知機能は、すべてのデータセンターで**早期アクセス**として利用可能です。使用するには、support@zohocatalyst.com からアクセスをリクエストしてください。 > 異常検知の概念的な理解については、[異常検知ヘルプドキュメント](https://docs.catalyst.zoho.com/ja/quickml/help/learning-center/anomaly-detection/)を参照してください。 Catalyst QuickMLにおける異常検知は、時系列と非時系列に大きく分類され、それぞれ独自のアルゴリズムと設定可能なパラメータのセットを提供しています。 # 時系列異常検知アルゴリズム Catalyst QuickMLにおける時系列データの異常検知は、時間の経過に伴う連続データポイントにおける異常なパターンや逸脱を特定することに焦点を当てています。これらの手法は時間的な依存性と季節性を考慮し、突然のスパイク、ドロップ、またはトレンドの変化を検出できるようにします。 個々の時系列異常検知アルゴリズムを探る前に、以下の画像に示す**異常感度制御**に使用される共通パラメータを理解することが重要です。これらのパラメータはCatalyst QuickMLのすべての時系列異常検知アルゴリズムで共通であり、異常の検出と解釈を制御するために不可欠です。ユーザーは閾値、ウィンドウサイズ、異常スコアリング方法を微調整でき、システムが正常な変動と真の異常な動作を正確に区別することを保証します。  **共通パラメータ**: - **閾値(Threshold)**:モデルが予想される動作からの逸脱に対してどの程度敏感であるかを決定します。閾値が低いほど感度が上がり、小さな変動も異常としてフラグ付けされます。閾値が高いほど誤検知が減少します。 - **ウィンドウサイズ(Window size)**:分析に使用されるデータポイントのローリングウィンドウを定義します。最大24タイムステップまで適用可能です。 - **異常スコアリング方法(Anomaly scoring method)**:現在はZスコアをサポートしており、ポイントが平均から標準偏差の何倍離れているかを測定します。 以下は、Catalyst QuickMLでサポートされている時系列異常検知アルゴリズムと、その説明、実世界のユースケース、および主要なパラメータです。 ### Auto Regressor **説明**:Auto Regressor(AR)モデルは、過去の観測値の線形結合に基づいて将来の値を予測します。過去の動作が現在に直接影響を与えるという仮定に基づき、係数は過去と現在の値の関係の強さを表します。QuickMLはこれをLinear Regressor、Random Forest Regressor、AdaBoost Regressor、Gradient Boosting Regressorなどの柔軟な回帰バックエンドで拡張し、線形および非線形の時間モデリングを可能にします。 **数学的直感**: ``` Yₜ = c + ∑ᵢ₌₁ᵖ φᵢ Yₜ₋ᵢ + εₜ ``` 各要素の説明: - Yt = 現在の値 - c = 切片(定数項) - ϕi = 自己回帰係数 - Yt−i = ラグ付き観測値 - εt = ランダムノイズ **ユースケース**:財務予測、センサードリフト検出、予測的プロセス監視に使用され、直近の履歴が次の結果に大きく影響する場合に適しています。例えば、短期的な株価トレンドの予測や温度センサーの異常な変動の検出などです。 **主要なパラメータ**: > **注意:** パラメータ範囲において、角括弧 [ ] は境界値を含み、丸括弧 ( ) は境界値を除外します。
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| select_model_to_fit | 時系列のフィッティングに使用する回帰モデルを選択します。 | string | {'Linear Regressor', 'Random-Forest Regressor', 'AdaBoost Regressor', 'Gradient Boosting Regressor'} | 'Linear Regressor' |
| max_lag | 現在の値を予測するために使用する過去のタイムステップ数を定義します。 | int | [1, ∞) | 1 |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| ma_lag (q) | 将来の値を予測するために使用する過去の予測誤差の数を指定します。 | int | [0, 5] | 1 |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| ar_lag (p) | モデルに含まれるラグ観測値の数。 | int | [0, 5] | 1 |
| ma_lag (q) | 予測式におけるラグ付き予測誤差の数。 | int | [0, 5] | 1 |
| integration (d) | 定常性を達成するためにデータを差分化する回数。 | int | [0, 5] | 0 |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| ar_lag (p) | モデルで使用されるラグ観測値の数。 | int | [0, 5] | 1 |
| ma_lag (q) | モデルにおけるラグ付き予測誤差の数。 | int | [0, 5] | 1 |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| seasonal | モデルが季節性を考慮するかどうかを示します。 | bool | {True, False} | True |
| ar_lag (p) | 非季節ARラグパラメータ。 | int | [0, 5] | 1 |
| ma_lag (q) | 非季節MAラグパラメータ。 | int | [0, 5] | 1 |
| integration (d) | 非季節差分次数。 | int | [0, 5] | 0 |
| periodicity (s) | 季節周期の長さ(例:月次データの場合は12)。 | int | [0, ∞) | 12 |
| integration (D) | 季節差分次数。 | int | [0, 5] | 0 |
| max_order | モデルの最大合計次数(オプション)。 | int | [0, 5] | 5 |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| ar_lag (p) | 非季節AR項。 | int | [0, 5] | 1 |
| ma_lag (q) | 非季節MA項。 | int | [0, 5] | 1 |
| integration (d) | 非季節差分化。 | int | [0, 5] | 0 |
| seasonal_ar (P) | 季節AR項。 | int | [0, 5] | 1 |
| seasonal_ma (Q) | 季節MA項。 | int | [0, 5] | 1 |
| seasonal_integration (D) | 季節差分化。 | int | [0, 5] | 0 |
| periodicity (s) | 季節周期(例:月次の季節性の場合は12)。 | int | [0, ∞) | 12 |
| enforce_stationarity | モデルで定常性を強制するかどうか。 | bool | {True, False} | False |
| enforce_invertibility | モデルの可逆性を強制するかどうか。 | bool | {True, False} | False |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| damped_trends | トレンドコンポーネントにダンピングを適用するかどうか。 | bool | {True, False} | False |
| season | 適用する季節性のタイプ。 | string | {'Add', 'Mul'} | 'Add' |
| seasonal_periods | 完全な季節サイクルにおける期間の数。 | int | [1, ∞) | 12 |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| smoothing_level | レベルコンポーネントの平滑化係数。 | float | [0, 1] | 0.8 |
| smoothing_trend | トレンドコンポーネントの平滑化係数。 | float | [0, 1] | 0.2 |
| damping_trend | トレンドコンポーネントのダンピングを制御します。 | bool | {True, False} | True |
| optimise | パラメータを自動的に最適化するかどうかを指定します。 | string | {'Select', 'Manual'} | 'Select' |
| exponential | 指数トレンド平滑化を使用するかどうか。 | bool | {True, False} | False |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| kernel | 使用するカーネルタイプを指定します。指定しない場合、'rbf'が使用されます。 | string | {'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'} | 'rbf' |
| degree | 多項式カーネル関数('poly')の次数。他のカーネルでは無視されます。 | int | [1, ∞) | 3 |
| gamma | 'rbf'、'poly'、'sigmoid'のカーネル係数。 | string | {'scale', 'auto'} | 'scale' |
| coef0 | カーネル関数の独立項。'poly'と'sigmoid'で重要です。 | float | [0, 1] | 0.0 |
| tol | 停止基準の許容値。 | float | [0, 1] | 1e-3 |
| nu | トレーニングエラーの割合の上限およびサポートベクターの割合の下限。 | float | (0, 1] | 0.5 |
| shrinking | 縮小ヒューリスティックを使用するかどうか。 | bool | {False, True} | True |
| max_iter | ソルバーのイテレーション回数のハードリミット。-1で制限なし。 | int | [1, ∞), {-1} | -1 |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| n_estimators | アンサンブル内のベースエスティメータ(ツリー)の数。 | int | [1, ∞) | 100 |
| max_samples | 各エスティメータのトレーニングに抽出するサンプル数。 | string, int, float | [1, ∞), [0, 1], {'auto'} | 'auto' |
| contamination | データセット内の外れ値の割合。 | string, float | {'auto'}, (0, 0.5] | 'auto' |
| max_features | 各エスティメータに抽出する特徴量の数。 | int, float | [1, ∞), [0, 1] | 1.0 |
| bootstrap | トレーニングデータを復元抽出でサンプリングするかどうか。 | bool | {False, True} | False |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| n_neighbors | k近傍クエリに使用する近傍の数。 | int | [1, n_samples) | 20 |
| algorithm | 最近傍の計算に使用するアルゴリズム。 | string | {'auto', 'ball_tree', 'kd_tree', 'brute'} | 'auto' |
| leaf_size | BallTreeまたはKDTreeのリーフサイズ。速度とメモリに影響します。 | int | [1, ∞) | 20 |
| metric | 距離計算のメトリック。 | string | {'cityblock', 'cosine', 'euclidean', 'haversine', 'l1', 'l2', 'manhattan', 'nan_euclidean'} | 'minkowski' |
| p | Minkowskiメトリックのパラメータ(1=マンハッタン、2=ユークリッド)。 | float | [1, ∞) | 2 |
| contamination | データセット内の外れ値の割合。 | float, string | (0, 0.5], {'auto'} | 'auto' |