主要内容

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

预测

分類木の使用によるラベルの予測

説明

标签=预测(MdlXは,学習済みの完全またはコンパクトな分類木Mdlに基づいて,テーブルまたは行列X内の予測子データに対する予測クラスラベルのベクトルを返します。

标签=预测(MdlX名称,值は1つ以上の名称,值引数のペアによって指定された追加オプションを使用します。たとえば,Mdlを特定のレベルまで枝刈りした後にラベルを予測するように指定できます。

标签分数节点cnum) =预测(___は,前の構文の入力引数のいずれかを使用して,さらに以下を返します。

  • ラベルが特定のクラスから派生する尤度を示す分類スコアの行列(分数)。分類木の場合、スコアは事後確率です。X内の各観測値について,予測クラスラベルは,すべてのクラスの中で最小の予測誤分類コストに対応します。

  • 分類の予測ノード番号のベクトル(节点)。

  • 分類の予測クラス番号のベクトル(cnum)。

入力引数

すべて展開する

学習済みの分類木。ClassificationTreeまたはCompactClassificationTreeモデルオブジェクトとして指定します。つまり,Mdlfitctreeまたは紧凑的が返す学習済み分類モデルです。

分類対象の予測子データ。数値行列またはテーブルを指定します。

Xの各行は1つの観測値に対応し,各列は1つの変数に対応します。

  • 数値行列の場合

    • Xの列を構成する変数の順序は,Mdlに学習させた予測子変数の順序と同じでなければなりません。

    • テーブル(たとえば资源描述)を使用してMdlに学習をさせた場合,资源描述に含まれている予測子変数がすべて数値変数であれば,Xを数値行列にすることができます。学習時に资源描述内の数値予測子をカテゴリカルとして扱うには,fitctreeの名前と値のペアの引数CategoricalPredictorsを使用してカテゴリカル予測子を同定します。资源描述に種類の異なる予測子変数(数値および直言データ型など)が混在し,Xが数値行列である場合,预测でエラーがスローされます。

  • テーブルの場合

    • 预测は,文字ベクトルの细胞配列ではない细胞配列や複数列の変数をサポートしません。

    • テーブル(たとえば资源描述)を使用してMdlに学習をさせた場合,X内のすべての予測子変数は変数名およびデータ型が,Mdlに学習させた(Mdl。PredictorNamesに格納されている)変数と同じでなければなりません。ただし,Xの列の順序が资源描述の列の順序に対応する必要はありません。资源描述Xに追加の変数(応答変数や観測値の重みなど)を含めることができますが,预测はこれらを無視します。

    • 数値行列を使用してMdlに学習をさせた場合,Mdl。PredictorNames内の予測子名とX内の対応する予測子変数名が同じでなければなりません。学習時に予測子の名前を指定する方法については,fitctreeの名前と値のペアの引数PredictorNamesを参照してください。X内の予測子変数はすべて数値ベクトルでなければなりません。Xに追加の変数(応答変数や観測値の重みなど)を含めることができますが,预测はこれらを無視します。

データ型:表格||

名前と値のペアの引数

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

枝刈りレベル。“子树”と昇順の非負の整数のベクトルまたは“所有”から構成されるコンマ区切りのペアとして指定します。

ベクトルを指定する場合,すべての要素が0から马克斯(Mdl.PruneList)の範囲になければなりません。0は枝刈りしない完全な木を,马克斯(Mdl.PruneList)は完全に枝刈りした木(つまり,ルートノードのみ)を表します。

“所有”を指定した場合,预测はすべての部分木(枝刈り順序全体)に作用します。これは,0:马克斯(Mdl.PruneList)を指定することと同じです。

预测では,子树で指定された各レベルまでMdlの枝刈りを行ってから,対応する出力引数を推定します。子树のサイズにより,一部の出力引数のサイズが決まります。

子树を呼び出すために,MdlPruneListプロパティまたはPruneAlphaプロパティを空にすることはできません。言い換えると,“删除”,“上”を設定してMdlを成長させるか,修剪を使用してMdlの枝刈りを行います。

例:“子树”,“所有”

データ型:||字符|字符串

出力引数

すべて展開する

予測クラスラベル。ベクトルまたは配列として返されます。标签の各エントリは,Xに対応する行で予測コストが最小のクラスと一致します。

子树T個の要素が含まれている数値ベクトルであり(“所有”の場合,子树参照)、XにはN行があるとします。

  • 応答のデータ型が字符の場合,次のようになります。

    • T= 1の場合,标签N行が含まれている文字行列になります。各行には,部分木子树によって生成された予測ラベルが格納されます。

    • T> 1の場合,标签NT列の细胞配列になります。

  • それ以外の場合,标签は応答と同じデータ型のNT列の配列になります。(字符串配列は文字ベクトルの细胞配列として扱われます)。

後の2つの場合,部分木子树(jによって生成された予測ラベルのベクトルが标签の列jに格納されます。

事後確率。NK列の数値行列として返されます。NXに含まれている観測値(行)の数,Kは(Mdl。ClassNamesに含まれている)クラスの数です。评分(i, j)は,Xの行がクラスjである事後確率です。

子树T個の要素が,XN個の行が含まれている場合,分数NxKxTの配列,节点cnumNT列の行列になります。

予測したクラスのノード番号。数値ベクトルとして返されます。各エントリは、Xの対応する行でMdl内の予測されるノードに対応します。

予測した标签に対応するクラスの番号。数値ベクトルとして返されます。cnumの各エントリは,Xの対応する行で予測されるクラス番号に対応します。

すべて展開する

学習から除外されたデータセットの数行について予測を確認します。

フィッシャーのアヤメのデータセットを読み込みます。

负载fisheriris

データを学習セット(50%)と検定セット(50%)に分割します。

1) n =大小(量;rng (1)%的再现性idxTrn = false (n, 1);idxTrn (randsample (n,圆(0.5 * n))) = true;%训练集逻辑索引idxVal = idxTrn == false;%验证设置逻辑索引

学習セットを使用して分類木を成長させます。

Mdl = fitctree(量(idxTrn:),物种(idxTrn));

検定データのラベルを予測します。誤分類した観測値の数をカウントします。

标签=预测(Mdl量(idxVal:));标签(randsample(元素个数(标签),5))显示几个预测的标签
ans =5 x1细胞{' setosa}{‘setosa}{‘setosa}{‘virginica}{“癣”}
numMisclass =总和(~ strcmp(标签,物种(idxVal)))
numMisclass = 3

3つの標本外観測値が誤分類されています。

フィッシャーのアヤメのデータセットを読み込みます。

负载fisheriris

データを学習セット(50%)と検定セット(50%)に分割します。

1) n =大小(量;rng (1)%的再现性idxTrn = false (n, 1);idxTrn (randsample (n,圆(0.5 * n))) = true;%训练集逻辑索引idxVal = idxTrn == false;%验证设置逻辑索引

学習セットを使用して分類木を成長させ,表示します。

Mdl = fitctree(量(idxTrn:),物种(idxTrn));视图(Mdl,“模式”“图”

图分类树查看器包含一个轴和其他类型的uimenu, uicontrol对象。轴包含18个类型为line, text的对象。

生成された木には4つのレベルがあります。

レベル1および3まで枝刈りした部分木を使用して,検定セットの事後確率を推定します。

[~,后]=预测(Mdl量(idxVal:)“子树”3 [1]);Mdl。ClassNames
ans =3 x1细胞{'setosa'} {'versicolor'} {'virginica'}
后(randsample(大小(后,1),5),:,:),...显示几个后验概率
ans = ans (:: 1) = 1.0000 0 0 0 0 0 0 0 0 1.0000 1.0000 1.0000 0.8571 - 0.1429 ans (:,: 2) = 0.3733 0.3200 0.3067 0.3733 0.3200 0.3067 0.3733 0.3200 0.3067 0.3733 0.3200 0.3067 0.3733 0.3200 0.3067

の要素はクラスの事後確率です。

  • 各行は検定セットの観測値に対応します。

  • 各列はMdl。ClassNamesに含まれているクラスに対応します。

  • 各ページは部分木に対応します。

レベル1まで枝刈りした部分木は,レベル3(ルートノード)まで枝刈りした部分木より予測が確実です。

詳細

すべて展開する

アルゴリズム

预测は,葉ノードまたは欠損値に達するまで,Mdlの枝に沿って予測を生成します。预测が,葉ノードに達したら,そのノードの分類が返されます。

预测が予測子の欠損値をもつノードに達した場合の振る舞いは,fitctreeMdlを作成したときの代理名前と値のペアの設定により異なります。

  • 代理“关闭”(既定値)预测は,そのノードに達する学習標本の最大数をもつラベルを返します。

  • 代理“上”- - - - - -预测は,そのノードで最適な代理分岐を使用します。正の"関連性予測尺度"を含むすべての代理分岐変数がない場合,预测は,そのノードに達する学習標本の最大数をもつラベルを返します。この定義については,関連性予測尺度を参照してください。

代替機能

万博1manbetx仿真软件ブロック

万博1manbetx®に分類木モデルの予測を統合するには,统计和机器学习工具箱™ライブラリにあるClassificationTree预测ブロックを使用するか,MATLAB®函数ブロックを関数预测と共に使用します。例については,ClassificationTree预测ブロックの使用によるクラスラベルの予測MATLAB函数ブロックの使用によるクラスラベルの予測を参照してください。

使用するアプローチを判断する際は,以下を考慮してください。

  • 统计和机器学习工具箱ライブラリブロックを使用する場合,固定小数点ツール(定点设计师)を使用して浮動小数点モデルを固定小数点に変換できます。

  • MATLAB函数ブロックを関数预测と共に使用する場合は,可変サイズの配列に対するサポートを有効にしなければなりません。

  • MATLAB函数ブロックを使用する場合,予測の前処理や後処理のために,同じMATLAB函数ブロック内でMATLAB関数を使用することができます。

拡張機能

R2011aで導入