CompactClassificationTree
コンパクトな分類木
説明
コンパクトなバージョンの分類木 (クラスは ClassificationTree)。コンパクトなバージョンには、分類木の学習のためのデータが含まれません。そのため、コンパクトな分類木では、交差検証などの一部のタスクを実行できません。コンパクトな分類木は、新しいデータの予測 (分類) を行うために使用してください。
作成
CompactClassificationTree オブジェクトは、compact を使用して完全な ClassificationTree モデル オブジェクトから作成します。
プロパティ
木のプロパティ
この プロパティ は読み取り専用です。
カテゴリカル分割。n 行 2 列の cell 配列として返されます。ここで、n は tree 内のカテゴリカル分割の数です。CategoricalSplit の各行は、カテゴリカル分割用の左と右の値になります。カテゴリカル予測子変数 z に基づくカテゴリカル分割をもつ各枝ノード j において、z が CategoricalSplit(j,1) にあれば左の子を選択し、z が CategoricalSplit(j,2) にあれば右の子を選択します。分割はツリーのノードと同じ順序で行われます。これらの分割用のノードは、cuttype を実行し 'categorical' カットを上から下に選択すれば見つかります。
データ型: cell
この プロパティ は読み取り専用です。
ツリー内の各ノードの子ノードの数。n 行 2 列の配列として返されます。ここで、n はノード数です。葉ノードは子ノード 0 をもちます。
データ型: double
この プロパティ は読み取り専用です。
tree 内のノードのクラス カウント。n 行 k 列の配列として返されます。ここで、n はノード数、k はクラス数です。任意のノード番号 i に対して、クラス カウント ClassCount(i,:) はノード i の条件を満たす各クラスからの (ツリーの当てはめに使用したデータからの) 観測カウント数です。
データ型: double
この プロパティ は読み取り専用です。
tree 内のノードのクラス確率。n 行 k 列の配列として返されます。ここで、n はノード数、k はクラス数です。任意のノード番号 i に対して、クラス確率 ClassProbability(i,:) は、ノード i の条件を満たすポイントに対する各クラスの推定確率です。
データ型: double
この プロパティ は読み取り専用です。
tree 内の枝で使用されるカテゴリ。n 行 2 列の cell 配列として返されます。ここで、n はノード数です。カテゴリカル予測子変数 X に基づく各枝ノード i に対して、X が CutCategories{i,1} 内のカテゴリである場合は左側の子が選択され、X が CutCategories{i,2} 内のカテゴリである場合は右側の子が選択されます。連続予測子に基づく枝ノードと葉ノードに対する CutCategories の列は両方とも空です。
CutPoint には 'continuous' 切り取りの切り取り点が含まれ、CutCategories にはカテゴリ セットが含まれます。
データ型: cell
この プロパティ は読み取り専用です。
tree 内の切り取り点として使用される値。n 要素のベクトルとして返されます。ここで、n はノード数です。連続予測子変数 X に基づく各枝ノード i において、X<CutPoint(i) の場合は左側の子が選択され、X>=CutPoint(i) の場合は右側の子が選択されます。カテゴリカル予測子に基づく枝ノードと葉ノードに対する CutPoint は NaN です。
CutPoint には 'continuous' 切り取りの切り取り点が含まれ、CutCategories にはカテゴリ セットが含まれます。
データ型: double
この プロパティ は読み取り専用です。
tree 内の各ノードの分枝に使用される変数の名前。n 要素の cell 配列として返されます。ここで、n はノード数です。これらの変数は、"切り取り変数" と呼ばれることもあります。葉ノードの場合、CutPredictor には空の文字ベクトルが格納されます。
CutPoint には 'continuous' 切り取りの切り取り点が含まれ、CutCategories にはカテゴリ セットが含まれます。
データ型: cell
この プロパティ は読み取り専用です。
tree 内の各ノードの分枝に使用される変数のインデックス。n 要素の配列として返されます。ここで、n はノード数です。詳細については、CutPredictor を参照してください。
データ型: double
この プロパティ は読み取り専用です。
tree 内の各ノードの切り取りのタイプ。n 要素の cell 配列として返されます。ここで、n はノード数です。各ノード i に対して CutType{i} は次のいずれかです。
'continuous'— 変数Xと切り取り点vに対して、切り取りがX < v形式で定義されている場合。'categorical'— 変数Xがカテゴリ セット内の値を受け取るかどうかによって切り取りが定義されている場合。''—iが葉ノードの場合。
CutPoint には 'continuous' 切り取りの切り取り点が含まれ、CutCategories にはカテゴリ セットが含まれます。
データ型: cell
この プロパティ は読み取り専用です。
枝ノードのインジケーター。n 要素の logical ベクトルとして返されます。それぞれについて、tree の枝ノードの場合は true、葉ノードの場合は false になります。
データ型: logical
この プロパティ は読み取り専用です。
tree 内の各ノードの最も確からしいクラスの名前。n 個の要素をもつ cell 配列として返されます。ここで、n はツリー内のノード数です。この配列の各要素は、ClassNames に含まれているクラス名のいずれかに等しい文字ベクトルです。
データ型: cell
この プロパティ は読み取り専用です。
tree 内の各ノードの誤分類確率。n 要素のベクトルとして返されます。ここで、n はツリー内のノード数です。
データ型: double
この プロパティ は読み取り専用です。
tree 内の各ノードの条件を満たす元データ内の観測値の割合。n 要素のベクトルとして返されます。ここで、n はツリー内のノード数です。NodeProbability の値は、各クラスに割り当てられているすべての事前確率について調整された値になります。
データ型: double
この プロパティ は読み取り専用です。
tree 内の各ノードのノード確率で重み付けされた不純度。n 要素のベクトルとして返されます。ここで、n はツリー内のノード数です。不純度の尺度はノードのジニ指数または逸脱度であり、ノード確率で重み付けされます。ツリーが twoing によって成長した場合、各ノードのリスクはゼロです。
データ型: double
この プロパティ は読み取り専用です。
tree 内のノードのサイズ。n 要素のベクトルとして返されます。ここで、n はツリー内のノード数です。ノードのサイズは、ノードの条件を満たすツリーを作成するために使用されるデータ内の観測値の数になります。
データ型: double
この プロパティ は読み取り専用です。
tree 内のノードの数。正の整数として返されます。
データ型: double
この プロパティ は読み取り専用です。
tree 内の各ノードの親の数。n 要素の整数ベクトルとして返されます。ここで、n はツリー内のノード数です。ルート ノードの親は 0 です。
データ型: double
ツリーの枝刈りのアルファ値。枝刈りレベルごとに 1 つの要素をもつ実数ベクトルとして返されます。枝刈りレベルの範囲が 0 ~ M の場合、PruneAlpha には昇順に並べ替えられた M + 1 要素が含まれます。PruneAlpha(1) は枝刈りレベル 0 (枝刈りなし) を表し、PruneAlpha(2) は枝刈りレベル 1 を表すというように続いていきます。
ɑ 値の意味については、決定木での枝刈り順序の作成方法を参照してください。
データ型: double
ツリー内の各ノードの枝刈りレベル。NumNodes 個の要素をもつ整数ベクトルとして返されます。枝刈りレベルの範囲は 0 (枝刈りなし) から M です。M は最下位の葉からルート ノードまでの距離です。
詳細については、枝刈りを参照してください。
データ型: double
この プロパティ は読み取り専用です。
代理分岐に使用されるカテゴリ。n 要素の cell 配列として返されます。ここで、n は tree 内のノード数です。各ノード k に対して、SurrogateCutCategories{k} は cell 配列です。SurrogateCutCategories{k} の長さは、このノードに見つかった代理予測子の数に等しくなります。SurrogateCutCategories{k} の各要素は、連続代理予測子の場合は空の文字ベクトル、カテゴリカル代理予測子の場合はカテゴリをもつ 2 要素 cell 配列になります。2 要素 cell 配列の最初の要素には、この代理分岐によって左の子に割り当てられたカテゴリがリストされ、この 2 要素 cell 配列の 2 番目の要素には、この代理分岐によって右の子に割り当てられたカテゴリがリストされます。各ノードの代理分岐変数の順序は、SurrogateCutVar に存在する変数の順序に一致します。このノードの最適分割変数は現れません。枝ではない (葉) ノードの場合、SurrogateCutCategories には空のセルが含まれます。
データ型: cell
この プロパティ は読み取り専用です。
tree 内の代理分岐に使用される数値切り取り点の割り当て。n 要素の cell 配列として返されます。ここで、n は tree 内のノード数です。各ノード k に対して、SurrogateCutFlip{k} は数値ベクトルです。SurrogateCutFlip{k} の長さは、このノードに見つかった代理予測子の数に等しくなります。SurrogateCutFlip{k} の各要素はカテゴリカル代理予測子でゼロになるか、連続代理予測子で数値切り取り点の割り当てになります。数値切り取り点の割り当ては、-1 または +1 のいずれかになります。連続予測子変数 Z に基づく数値切り取り C が含まれるすべての代理分岐では、Z<C でこの代理分岐の切り取りの割り当てが +1 であるか、 Z≥C でこの代理分岐の切り取りの割り当てが -1 である場合に、左の子が選択されます。同様に、Z≥C でこの代理分岐の切り取り点割り当てが +1 であるか、 Z<C でこの代理分岐の切り取り点が -1 であれば右の子が選択されます。各ノードにおける代理分岐変数の順序は、SurrogateCutPredictor によって返される変数の順序に一致します。このノードの最適分割変数は現れません。枝ではない (葉) ノードの場合、SurrogateCutFlip には空の配列が含まれます。
データ型: cell
この プロパティ は読み取り専用です。
tree 内の代理分岐に使用される数値。n 要素の cell 配列として返されます。ここで、n は tree 内のノード数です。各ノード k に対して、SurrogateCutPoint{k} は数値ベクトルです。SurrogateCutPoint{k} の長さは、このノードに見つかった代理予測子の数に等しくなります。SurrogateCutPoint{k} の各要素は、カテゴリカル代理予測子で NaN になるか、連続代理予測子で数値切り取り点になります。連続予測子変数 Z に基づく数値切り取り C が含まれるすべての代理分岐では、Z<C であり、その代理分岐の SurrogateCutFlip が +1 である場合、または Z ≥ C であり、その代理分岐の SurrogateCutFlip が -1 である場合、左の子が選択されます。同様に、Z≥C であり、その代理分岐の SurrogateCutFlip が +1 である場合、または Z<C であり、その代理分岐の SurrogateCutFlip が -1 である場合、右の子が選択されます。各ノードの代理分岐変数の順序は、SurrogateCutPredictor によって返される変数の順序に一致します。このノードの最適分割変数は現れません。枝ではない (葉) ノードの場合、SurrogateCutPoint には空のセルが含まれます。
データ型: cell
この プロパティ は読み取り専用です。
tree 内の各ノードの代理分岐に使用される変数の名前。n 要素の cell 配列として返されます。ここで、n は tree 内のノード数です。SurrogateCutPredictor の各要素は、このノードの代理分岐変数の名前をもつ cell 配列です。変数は、最適予測子との結びつきの予測尺度によって降順に並べ替えられており、かつ正の予測尺度をもつ変数のみが含まれています。このノードの最適分割変数は現れません。枝ではない (葉) ノードの場合、SurrogateCutPredictor には空のセルが含まれます。
データ型: cell
この プロパティ は読み取り専用です。
tree 内の各ノードの代理分岐のタイプ。n 要素の cell 配列として返されます。ここで、n は tree 内のノード数です。各ノードの k で、SurrogateCutType{k} はこのノードの代理分岐変数のタイプをもつ cell 配列です。変数は、最適予測子との結びつきの予測尺度によって降順に並べ替えられており、かつ正の予測尺度をもつ変数のみが含まれています。各ノードにおける代理分岐変数の順序は、SurrogateCutPredictor によって返される変数の順序に一致します。このノードの最適分割変数は現れません。枝ではない (葉) ノードの場合、SurrogateCutType には空のセルが含まれます。代理分岐のタイプは、切り取りが変数 Z に対して Z<V の形式で定義されている場合は 'continuous' に、切り取りが Z がカテゴリのセットの値を取るかどうかによって定義されている場合は切り取り点 V または 'categorical' のいずれかになります。
データ型: cell
この プロパティ は読み取り専用です。
tree 内の代理分岐の関連性予測尺度。n 要素の cell 配列として返されます。ここで、n は tree 内のノード数です。各ノード k に対して、SurrogatePredictorAssociation{k} は数値ベクトルです。SurrogatePredictorAssociation{k} の長さは、このノードに見つかった代理予測子の数に等しくなります。SurrogatePredictorAssociation{k} の各要素は、最適分割とこの代理分岐間の関連性予測尺度を与えます。各ノードの代理分岐変数の順序は、SurrogateCutPredictor に存在する変数の順序になります。このノードの最適分割変数は現れません。枝ではない (葉) ノードの場合、SurrogatePredictorAssociation には空のセルが含まれます。
データ型: cell
データ プロパティ
この プロパティ は読み取り専用です。
カテゴリカル予測子のインデックス。正の整数のベクトルとして指定します。CategoricalPredictors には、対応する予測子がカテゴリカルであることを示すインデックス値が格納されます。インデックス値の範囲は 1 ~ p です。p はモデルの学習に使用した予測子の数です。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]) になります。
データ型: single | double
この プロパティ は読み取り専用です。
重複が削除された Y の要素のリスト。categorical 配列、文字ベクトルの cell 配列、文字配列、logical ベクトル、または数値ベクトルとして返されます。ClassNames のデータ型は引数 Y のデータと同じです。(string 配列は文字ベクトルの cell 配列として扱われます)。
データ型: double | logical | char | cell | categorical
この プロパティ は読み取り専用です。
展開された予測子名。文字ベクトルの cell 配列として返されます。
モデルがカテゴリカル変数用のエンコーディングを使用している場合、ExpandedPredictorNames には展開された変数を表す名前が格納されます。それ以外の場合、ExpandedPredictorNames は PredictorNames と同じです。
データ型: cell
この プロパティ は読み取り専用です。
予測子名。文字ベクトルの cell 配列を指定します。PredictorNames のエントリの順序は学習データと同じになります。
データ型: cell
この プロパティ は読み取り専用です。
応答変数の名前。文字ベクトルとして返されます。
データ型: char
他の分類のプロパティ
この プロパティ は読み取り専用です。
誤分類コスト。正方数値行列として返されます。Cost には K 個の行および列が含まれ、K はクラスの数です。
Cost(i,j) は、真のクラスが i である点をクラス j に分類するコストです。Cost の行と列の順序は、ClassNames のクラスの順序に対応します。
データ型: double
この プロパティ は読み取り専用です。
各クラスの事前確率。K 要素の数値ベクトルとして返されます。ここで、K は応答内の一意のクラスの数です。Prior の要素の順序は、ClassNames のクラスの順序に対応します。
データ型: double
スコアを変換するための関数。関数ハンドルまたは組み込みの変換関数の名前として指定します。"none" は変換なしを意味します。つまり、"none" は @(x)x と同じ意味になります。組み込みの変換関数の一覧とカスタム変換関数の構文については、ScoreTransform (ツリー) または ScoreTransform (アンサンブル) を参照してください。
ドット表記を使用して関数 ScoreTransform を追加または変更します。
Mdl.ScoreTransform = "function" % or Mdl.ScoreTransform = @function
データ型: char | string | function_handle
オブジェクト関数
compareHoldout | 新しいデータを使用して 2 つの分類モデルの精度を比較 |
edge | 分類木モデルの分類エッジ |
gather | Gather properties of Statistics and Machine Learning Toolbox object from GPU |
lime | Local Interpretable Model-agnostic Explanations (LIME) |
loss | 分類木モデルの分類損失 |
margin | 分類木モデルの分類マージン |
nodeVariableRange | 決定木ノードの変数範囲の取得 |
partialDependence | 部分依存の計算 |
plotPartialDependence | 部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成 |
predict | 分類木モデルを使用したラベルの予測 |
predictorImportance | 分類木の予測子の重要度の推定 |
shapley | シャープレイ値 |
surrogateAssociation | 分類木における代理分岐に対する関連性の平均予測尺度 |
update | コード生成用にモデル パラメーターを更新 |
view | 分類木の表示 |
例
フィッシャーのアヤメのデータのコンパクトな分類木を構築します。
load fisheriris
tree = fitctree(meas,species);
ctree = compact(tree);生成された木のサイズと元の木のサイズを比較します。
t = whos('tree'); % t.bytes = size of tree in bytes c = whos('ctree'); % c.bytes = size of ctree in bytes [c.bytes t.bytes]
ans = 1×2
5001 11714
コンパクトな木は元の木より小さくなっています。
詳細
決定木では、"不純度" または "ノード誤差" に基づいてノードを分割します。
不純度とは、SplitCriterion 名前と値の引数によって、次のいずれかの意味を表します。
ジニ多様性指数 (
gdi) — ノードのジニ指数は、次の式で表されます。ここで、合計はノードのクラス i 全体が対象であり、p(i) は、ノードに到達したクラス i をもつ観測クラスの比率です。クラスを 1 つだけもつノード ("純粋" ノード) のジニ指数は
0です。それ以外のノードでは、ジニ指数は正の値です。したがって、ジニ指数はノードの不純度の基準です。逸脱度 (
"deviance") — ノードの逸脱度は、ジニ指数と同様に定義された p(i) を用いて次の式で表されます。純粋ノードの逸脱度は
0です。それ以外のノードでは、逸脱度は正の値です。Twoing 規則 (
"twoing") — Twoing はノードの純粋度の基準ではありませんが、ノードの分割を判断するための別の基準の 1 つです。L(i) は、分割後の左側の子ノードのクラス i のメンバーの比率を示し、R(i) は分割後の右側の子ノードのクラス i のメンバーの比率を示すとします。最大化するための分割基準を選択します。ここで、P(L) および P(R) は、それぞれ左側と右側に分割された観測値の比率を表します。式が大きい場合は、分割によって各子ノードの純粋度は高くなります。同様に、式が小さい場合は、分割によって各子ノードが互いに類似するようになります。このため、親ノードとも類似するようになります。分割によるノードの純粋度の向上はありませんでした。
ノード誤差 — ノード誤差はノードで誤分類されたクラスの比率です。j がノードで最大の学習標本数をもつクラスである場合は、ノード誤差は次のように表されます。
1 – p(j).
拡張機能
使用上の注意および制限:
Simulink® に分類木モデルの予測を統合するには、Statistics and Machine Learning Toolbox™ ライブラリにある ClassificationTree Predict ブロックを使用するか、MATLAB® Function ブロックを関数
predictと共に使用します。fitctreeを使用して分類木に学習をさせる場合、以下の制限が適用されます。名前と値のペアの引数
'ScoreTransform'の値を無名関数にすることはできません。固定小数点コードの生成では、'ScoreTransform'の値を'invlogit'にすることはできません。代理分岐は使用できません。つまり、名前と値のペアの引数
'Surrogate'の値は'off'でなければなりません。固定小数点コードの生成およびコーダー コンフィギュアラーを使用するコード生成では、以下の追加制限が適用されます。
カテゴリカル予測子 (
logical、categorical、char、string、またはcell) はサポートされません。名前と値の引数CategoricalPredictorsは使用できません。カテゴリカル予測子をモデルに含めるには、モデルを当てはめる前にdummyvarを使用してカテゴリカル予測子を前処理します。categoricalデータ型のクラス ラベルはサポートされません。学習データ内のクラス ラベル値 (TblまたはY) および名前と値の引数ClassNamesの値はどちらもcategoricalデータ型の配列にはできません。
詳細は、コード生成の紹介を参照してください。
使用上の注意および制限:
次のオブジェクト関数は GPU 配列を完全にサポートしています。
次のオブジェクト関数は GPU 配列のサポートに制限があります。
次の少なくとも 1 つに該当する場合、オブジェクト関数は GPU で実行されます。
モデルが GPU 配列を使用して当てはめられている。
オブジェクト関数に渡す予測子データが GPU 配列である。
詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2011a で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)