主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

incrementalLearner

単純ベ▪▪ズ分類モデルの▪▪ンクリメンタル学習器への変換

説明

IncrementalMdl= incrementalLearner (Mdlは,従来式の学習済み単純ベMdlのハパパラメタを使用して,ンクリメンタル学習用の単純ベ@ @ズ分類モデルIncrementalMdlを返します。プロパティ値はMdlから得られた知識を反映しているため,IncrementalMdlは新しい観測値に対してラベルの予測を行うことができます。また“ウォ,ム”となるため,予測性能が追跡されます。

IncrementalMdl= incrementalLearner (Mdl名称,值は,1以上の名前と値のペアの引数によって指定された追加オプションを使用します。一部のオプションでは,予測パフォ,マンスの追跡を行う前にIncrementalMdlに学習させる必要があります。たとえば,“MetricsWarmupPeriod”,50岁,“MetricsWindowSize”,100は50個の観測値から成る,パフォーマンスメトリクスの追跡前のインクリメンタル学習の予備期間を指定し,パフォーマンスメトリクスを更新する前に100個の観測値を処理することを指定します。

すべて折りたたむ

fitcnbを使用して単純ベaapl . exeズモデルに学習させ,それをaapl . exeンクリメンタル学習器に変換します。

デ,タの読み込みと前処理

人の行動のデ,タセットを読み込みます。

负载humanactivity

デタセットの詳細にいては,コマンドランで描述を入力してください。

単純ベ@ @ズモデルの学習

単純ベ▪▪ズ分類モデルをデ▪▪タセット全体にあてはめます。

TTMdl = fitcnb(feat,actid);

TTMdlは従来式の学習済み単純ベ@ @ズ分類モデルを表すClassificationNaiveBayesモデルオブジェクトです。

学習済みモデルの変換

従来式の学習済み単純ベ▪▪ズ分類モデルを▪▪ンクリメンタル学習用に変換します。

IncrementalMdl =增量学习者(TTMdl)
IncrementalMdl = incrementalClassificationNaiveBayes IsWarm: 1 Metrics: [1x2 table] ClassNames: [1 2 3 4 5] ScoreTransform: 'none' DistributionNames: {1x60 cell} DistributionParameters: {5x60 cell}属性,方法

IncrementalMdlは,単純ベaaplズ分類を使用するaaplンクリメンタル学習用に準備されたincrementalClassificationNaiveBayesモデルオブジェクトです。

  • 関数incrementalLearnerは,学習した条件付き予測子分布パラメ,タ,を,TTMdlが学習デタから抽出した他の情報と共に渡して,ンクリメンタル学習器を初期化します。

  • IncrementalMdlはウォム(IsWarm1)です。これは,インクリメンタル学習関数がパフォーマンスメトリクスの追跡と予測を実行できることを意味します。

応答予測

従来式の学習済みモデルから変換して作成したインクリメンタル学習器は,追加の処理なしで予測を生成できます。

両方のモデルを使用して,すべての観測値の分類スコア(クラス事後確率)を予測します。

[~,ttscores] = predict(TTMdl,feat);[~,ilcores] = predict(IncrementalMdl,feat);compareScores = norm(ttscores - ilcores)
compareScores = 0

モデルによって生成されたスコアの差は0です。

学習済みの単純ベaapl . aapl .ズモデルを使用して,aapl .ンクリメンタル学習器を初期化します。メトリクスのウォムアップ期間を指定して,ンクリメンタル学習器を準備します。その間,関数updateMetricsAndFitはモデルのあてはめのみを行います。メトリクスウィンドウサesc escズを観測値500個に指定します。

人の行動のデ,タセットを読み込みます。

负载humanactivity

デタセットの詳細にいては,コマンドランで描述を入力してください。

デタをランダムに2分割します。最初の半分は従来式のモデルの学習用,残りの半分は。

N = numel(actid);rng (1)%用于再现性CVP = cvpartition(n,“坚持”, 0.5);Idxtt =训练(cvp);Idxil = test(cvp);数据的前半部分Xtt = feat(idxtt,:);Ytt = actid(idxtt);数据的后半部分Xil = feat(idxil,:);Yil = actid(idxil);

デタの最初の半分に単純ベズモデルを当てはめます。

TTMdl = fitcnb(Xtt,Ytt);

従来式の学習済み単純ベ▪▪ズモデルを▪▪ンクリメンタル学習用の単純ベ▪▪ズ分類モデルに変換します。次を指定します。

  • メトリクスのウォムアップ期間は観測値2000個

  • メトリクスウィンドウサesc escズは観測値500個

  • 分類誤差および最小コストを使用してモデルの性能を測定

增量mdl =增量学习者(TTMdl,“MetricsWarmupPeriod”, 2000,“MetricsWindowSize”, 500,...“指标”, (“classiferror”“枢纽”]);

関数updateMetricsAndfitを使用して,。各反復で次を行います。

  • 20 .個の観測値を一度に処理して,デ,タストリ,ムをシミュレ,ト。

  • 前のesc escンクリメンタルモデルを,入力観測値に当てはめた新しいモデルで上書き。

  • 1番目のクラス内の2番目の予測子の平均 μ 12 ,累積メトリクス,およびウィンドウメトリクスを保存し,インクリメンタル学習中にそれらがどのように進化するかを確認。

%预先配置nil =数字(Yil);numObsPerChunk = 20;nchunk = cell (nil/numObsPerChunk);Ce = array2table(0 (nchunk,2),“VariableNames”, (“累积”“窗口”]);MC = array2table(0 (nchunk,2),“VariableNames”, (“累积”“窗口”]);Mu12 = 0 (nchunk,1);%增量拟合j = 1:nchunk ibegin = min(nil,numObsPerChunk*(j-1) + 1);iend = min(nil,numObsPerChunk*j);Idx = ibegin:iend;IncrementalMdl = updateMetricsAndFit(增量mdl,Xil(idx,:),Yil(idx));ce{j,:} = IncrementalMdl。指标{“ClassificationError”,:};mc{j,:} = IncrementalMdl。指标{“MinimalCost”,:};mu12(j + 1) = incrementalmld . distributionparameters {1,2}(1);结束

IncrementalMdlは,ストリ,ム内のすべてのデ,タで学習させたincrementalClassificationNaiveBayesモデルオブジェクトです。ンクリメンタル学習中およびモデルがウォームアップされた後、updateMetricsAndFitは入力観測値でのモデルの性能をチェックし,モデルをその観測値にあてはめます。

パフォ,マンスメトリクスと μ 12 が学習中にどのように進化したかを確認するには,それらを別々のサブプロットにプロットします。

图;Subplot (3,1,1) plot(mu12) ylabel(“\ mu_{12}”) xlim([0 nchunk]);参照线(IncrementalMdl。MetricsWarmupPeriod/numObsPerChunk,r -。);subplot(3,1,2) h = plot(ce.Variables);xlim ([0 nchunk]);ylabel (分类错误的)参照线(IncrementalMdl。MetricsWarmupPeriod/numObsPerChunk,r -。);传奇(h, ce.Properties.VariableNames“位置”“西北”) subplot(3,1,3) h = plot(mc.Variables);xlim ([0 nchunk]);ylabel (“最小成本”)参照线(IncrementalMdl。MetricsWarmupPeriod/numObsPerChunk,r -。);传奇(h, mc.Properties.VariableNames“位置”“西北”)包含(“迭代”

プロットは,updateMetricsAndFitが次を行うことを示しています。

  • μ 12 を@ @ンクリメンタル学習のすべての反復で当てはめ。

  • パフォ,マンスメトリクスをメトリクスのウォ,ムアップ期間後にのみ計算。

  • 累積メトリクスを各反復中に計算。

  • ウィンドウメトリクスを500個の観測値(25回の反復)の処理後に計算。

デ,タは行動で順序付けされるため,平均とパフォ,マンスメトリクスは定期的に急激に変動します。

入力引数

すべて折りたたむ

マルチクラス分類用の従来式の学習済み単純ベ@ @ズモデル。fitcnbによって返されるClassificationNaiveBayesモデルオブジェクトとして指定します。Mdl。DistributionNamesに格納される各予測子変数の条件付き分布は正規でなければなりません。

名前と値のペアの引数

オプションの名称,值引数のコンマ区切りペアを指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を,任意の順番で指定できます。

例:“指标”,“classiferror”“mincost”,“MetricsWindowSize”,100年は,誤分類率と最小コストを追跡することを指定し,パフォーマンスメトリクスを更新する前に100個の観測値を処理することを指定します。

関数updateMetricsまたはupdateMetricsAndFitを使って▪▪ンクリメンタル学習中に追跡するモデルのパフォ▪▪マンスメトリクス。組み込みの損失関数の名前,名前の字符串ベクトル,関数ハンドル(@metricName),関数ハンドルの構造体配列,または名前,関数ハンドル,構造体配列の细胞ベクトルとして指定します。

次の表は,組み込みの損失関数名の一覧です。字符串ベクトルを使用して、複数指定できます。

名前 説明
“binodeviance” 二項分布からの逸脱度
“classiferror” 分類誤差
“指数” 指数
“枢纽” ヒンジ
“分对数” ロジスティック
“mincost” 最小予測誤分類コスト(事後確率である分類スコアの場合)
“二次” 2 次

組み込み損失関数の詳細にいては,损失を参照してください。

例:“指标”,(“classiferror”“mincost”)

パフォ,マンスメトリクスを返すカスタム関数を指定するには,関数ハンドル表記を使用します。関数は次の形式でなければなりません。

度量= customMetric(C,S,成本)

  • 出力引数度规はn行1列の数値ベクトルです。ここで,各要素は、学習サイクル中にインクリメンタル学習関数によって処理されたデータの対応する観測値の損失です。

  • 関数名 (customMetric)を選択します。

  • Cはn行K列の逻辑行列であり,対応する観測値が属するクラスを各行が示します。Kはクラスの数です。列の順序は一会プロパティのクラスの順序に対応します。Cを作成するには,指定されたデ,タの各観測値に,いて観測値pがクラスに属する場合にC (p1を設定します。行pの他の要素を0に設定します。

  • 年代は,予測分類スコアのn行K列の数値行列です。年代预测の出力分数に似ています。ここで,行はデータの観測値に対応し、列の順序は一会プロパティのクラスの順序に対応しています。S (pは,クラスに分類されている観測値pの分類スコアです。

  • 成本は,誤分類コストの,k行k列の数値行列です。名前と値の引数“成本”を参照してください。

複数のカスタムメトリクスを指定し,それぞれにカスタム名を割り当てるには,構造体配列を使用します。組み込みメトリクスとカスタムメトリクスの組み合わせを指定するには,细胞ベクトルを使用します。

例:“指标”,结构(‘Metric2’,‘Metric1’,@customMetric1 @customMetric2)

例:'Metrics',{@customMetric1 @customeMetric2 'logit' struct('Metric3',@customMetric3)}

updateMetricsおよびupdateMetricsAndFitは,表で指定したメトリクスをプロパティIncrementalMdl。指标に保存します。指标のデ,タ型によって,表の行名が決まります。

“指标”値のデ,タ型 指标プロパティの行名の説明
字符串または文字ベクトル 対応する組み込みメトリクスの名前 “classiferror”の行名は“ClassificationError”
構造体配列 フィ,ルド名 结构(Metric1, @customMetric1)の行名は“Metric1”
プログラムファ@ @ルに格納されている関数への関数ハンドル 関数名 @customMetricの行名は“customMetric”
無名関数 CustomMetric_j。ここで,j指标のメトリクスj @ (C、S、成本)customMetric (C、S、成本)…の行名はCustomMetric_1

パフォマンスメトリクスオプションの詳細にいては,パフォ,マンスメトリクスを参照してください。

デ,タ型:字符|字符串|结构体|细胞|function_handle

このプロパティは読み取り専用です。

ンクリメンタルモデルが指标プロパティのパフォ,マンスメトリクスを追跡する前にあてはめなければならない観測値の数。非負の整数として指定します。

詳細にいては,パフォ,マンスメトリクスを参照してください。

デ,タ型:|

このプロパティは読み取り専用です。

ウィンドウパフォ,マンスメトリクスの計算に使用する観測値の数。正の整数として指定します。

パフォマンスメトリクスオプションの詳細にいては,パフォ,マンスメトリクスを参照してください。

デ,タ型:|

出力引数

すべて折りたたむ

▪▪▪▪ンクリメンタル学習用の単純ベ▪▪▪▪ズ分類モデル。incrementalClassificationNaiveBayesモデルオブジェクトとして返されます。IncrementalMdlは新しいデタに基づいて予測を生成するようにも構成されます(预测を参照)。

ンクリメンタル学習用にIncrementalMdlを初期化するために,incrementalLearnerは,この表に示すMdlのプロパティの値をIncrementalMdlの対応するプロパティに渡します。

プロパティ 説明
一会 バ@ @ナリ分類のクラスラベル。名前のリスト
成本 誤分類コスト。数値行列
DistributionNames 予測子変数の条件付き分布の名前。各セルに“正常を含むcell配列
DistributionParameters 予測子変数の条件付き分布のパラメ,タ,値。長さ2の数値ベクトルのcell配列(詳細にいてはDistributionParametersを参照)
之前 前のクラスラベルの分布。数値ベクトル
ScoreTransform スコア変換関数。名前または関数ハンドル。
Y ンクリメンタル学習用のクラスの重みに従った計算のためにfitcnbに提供されたクラスラベル。ラベルの配列として格納(Yを参照)

詳細

すべて折りたたむ

ンクリメンタル学習

“蓉城ンクリメンタル学習”“オンラ电子邮箱ン学習”)は予測子変数の分布,予測関数や目的関数の要素(調整パラメーターの値を含む),観測値のラベル付けなどがほとんど未知,またはまったく未知の可能性のある,データストリームからの入力データの処理に着目した,機械学習の一分野です。インクリメンタル学習が従来の機械学習と異なっているのは,モデルへのあてはめ,ハイパーパラメーター調整のための交差検証の実行,および予測子の分布の推測を行うために,十分にラベル付けされたデータを使用できるということです。

入力観測値に対し,インクリメンタル学習モデルは,次のいずれかの方法(通常はこの順序)でデータを処理します。

  • ラベルの予測。

  • 予測性能の測定。

  • モデルの構造的な破綻やドリフトにいてのチェック。

  • 入力観測値へのモデルのあてはめ。

アルゴリズム

すべて折りたたむ

パフォ,マンスメトリクス

  • 関数updateMetricsおよびupdateMetricsAndFitは,电子邮件ンクリメンタルモデルが“ウォ,ム”IsWarmプロパティ)のときに,新しいデ,タからモデルのパフォ,マンスメトリクス(“指标”)を追跡します。ンクリメンタルモデルは,适合またはupdateMetricsAndFitで次の両方のアクションを実行するとウォ,ムになります。

    • ンクリメンタルモデルをMetricsWarmupPeriodの観測値(“メトリクスのウォ,ムアップ期間”)に当てはめる。

    • MaxNumClassesのクラス,または名前と値の引数一会で指定されたすべてのクラス名を処理する。

  • ンクリメンタルモデルの指标プロパティは,各パフォ,マンスメトリクスの2の形式を表の変数(列)累积および窗口とし,個々のメトリクスを行に格納します。ンクリメンタルモデルがウォームになると、updateMetricsおよびupdateMetricsAndFitは次の頻度でメトリクスを更新します。

    • 累积-関数は、モデルの性能追跡の開始以降の累積メトリクスを計算します。関数は、関数が呼び出されるたびにメトリクスを更新し、提供されたデータ セット全体に基づいて計算を行います。

    • 窗口-関数は、名前と値のペアの引数MetricsWindowSizeによって決定されたウィンドウ内のすべての観測値に基づいてメトリクスを計算します。MetricsWindowSizeによってソフトウェアが窗口メトリクスを更新する頻度も決まります。たとえば,MetricsWindowSizeが20の場合,関数は提供されたデータの最後の20個の観測値に基づいてメトリクスを計算します(X((end - 20 + 1):end,:)およびY((end - 20 + 1):end))。

      ウィンドウ内のパフォーマンスメトリクスを追跡するインクリメンタル関数は,次のプロセスを使用します。

      1. 指定された各メトリクスにいて,長さMetricsWindowSizeのバッファ,および観測値の重みのバッファ,を保存します。

      2. 入力観測値のバッチに基づくモデル性能をメトリクスバッファーの要素に入力し,対応する観測値の重みを重みバッファーに格納します。

      3. バッファ,がいっぱいになると,Mdl.Metrics.Windowをメトリクスウィンドウの性能の加重平均で上書きします。関数が観測値のバッチを処理するときにバッファーがあふれる場合、最新の入力観測値MetricsWindowSizeがバッファ,に入り,最も古い観測値がバッファ,から削除されます。たとえば,MetricsWindowSizeが20でメトリクスバッファーには前に処理されたバッチからの10個の値が存在し,15個の値が入力されるとします。長さ20のウィンドウを構成するため,関数は15個の入力観測値からの測定値と前のバッチからの最新の5個の測定値を使用します。

R2021aで導入