Main Content

reset

インクリメンタルな概念ドリフト検出器をリセット

R2022a 以降

    説明

    IncCDDetector = reset(IncCDDetector) は、インクリメンタルな概念ドリフト検出器 IncCDDetectorPreviousDriftStatusDriftStatus といった内部状態をリセットします。reset は、データのドリフトが detectdrift で結論付けられた後に呼び出します。

    すべて折りたたむ

    最初の 500 個の観測値は平均が 2 で標準偏差が 0.75 の正規分布から派生し、次の 500 個は平均が 4 で標準偏差が 1 の正規分布から派生する乱数ストリームを作成します。インクリメンタルなドリフト検出の用途では、データ ストリームへのアクセスとモデルの更新が連続的に発生します。ただし、この例では、明確にするためにデータのシミュレーションを分けて説明します。

    rng(1234) % For reproducibility
    numObservations = 1000;
    switchPeriod1 = 500;
    X = zeros([numObservations 1]);
    for i = 1:numObservations
        if i <= switchPeriod1
            X(i) = normrnd(2,0.75);
        else
            X(i) = normrnd(4,1);
        end
    end

    インクリメンタルな概念ドリフト検出器を開始します。指数移動平均法 (HDDMA) による Hoeffding 境界の手法を使用します。入力タイプを連続、ウォームアップを 50 個の観測値、推定期間を 50 個の観測値に指定します。

    incCDDetector = incrementalConceptDriftDetector("hddma",InputType="continuous", ...
        WarmupPeriod=50,EstimationPeriod=50)
    incCDDetector = 
      HoeffdingDriftDetectionMethod
    
            PreviousDriftStatus: 'Stable'
                    DriftStatus: 'Stable'
                         IsWarm: 0
        NumTrainingObservations: 0
                    Alternative: 'greater'
                      InputType: 'continuous'
                     TestMethod: 'average'
    
    
    

    incDDetector は、HoeffdingDriftDetectionMethod オブジェクトです。最初にオブジェクトを作成した時点では、DriftStatusIsWarmCutMeanNumTrainingObservations などのプロパティは初期状態になります。detectdrift は、それらをデータの供給に応じてインクリメンタルに更新し、ドリフトを監視します。

    観測値を一度に 1 個ずつ処理してデータ ストリームをシミュレートし、ドリフトが検出されるまでインクリメンタルなドリフト検出を実行します。

    i=1;
    while incCDDetector.DriftDetected~=1
        incCDDetector = detectdrift(incCDDetector,X(i));
        i=i+1;
        if incCDDetector.DriftDetected
           sprintf("Drift detected at observation #%d.",i)
           incCDDetector
        end      
    end
    ans = 
    "Drift detected at observation #518."
    
    incCDDetector = 
      HoeffdingDriftDetectionMethod
    
            PreviousDriftStatus: 'Warning'
                    DriftStatus: 'Drift'
                         IsWarm: 1
        NumTrainingObservations: 467
                    Alternative: 'greater'
                      InputType: 'continuous'
                     TestMethod: 'average'
    
    
    

    観測値 518 の時点で、ドリフト ステータスが Warning から Drift に切り替わっています (ドリフトが検出されています)。detectdrift は推定期間 50 の後に内部の統計量の更新を開始するため、学習観測値の数は 467 です。

    ドリフト検出器をリセットして調べます。

    incCDDetector = reset(incCDDetector)
    incCDDetector = 
      HoeffdingDriftDetectionMethod
    
            PreviousDriftStatus: 'Stable'
                    DriftStatus: 'Stable'
                         IsWarm: 0
        NumTrainingObservations: 0
                    Alternative: 'greater'
                      InputType: 'continuous'
                     TestMethod: 'average'
    
    
    

    関数 reset は、CutMeanPostCutMeanInputBoundsNumTrainingObservations などの内部の統計量、ドリフト ステータス PreviousDriftStatusDriftStatus、およびインジケーター IsWarmDriftDetectedWarningDetected をリセットします。

    入力引数

    すべて折りたたむ

    インクリメンタルな概念ドリフト検出器。DriftDetectionMethod または HoeffdingDriftDetectionMethod のいずれかのオブジェクトとして返されます。これらのオブジェクトとそのプロパティの詳細については、該当するリファレンス ページを参照してください。

    バージョン履歴

    R2022a で導入