主要内容

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

TreeBaggerの使用による回帰木の引导聚合(バギング)

统计和机器学习工具箱™には,回帰木の引导聚合(バギング)をサポートするオブジェクトとして,TreeBaggerを使用して作成されるTreeBaggerおよびfitrensembleを使用して作成されるRegressionBaggedEnsembleという2つのオブジェクトがあります。TreeBaggerRegressionBaggedEnsembleの違いについては,TreeBaggerとバギングアンサンブルの比較を参照してください。

この例では,TreeBaggerのみの機能を使用する分類のワークフローを示します。

205年個の観測値,25個の予測子,および1つの応答(保険リスクランク付けを表す“象征”)が含まれている,1985年の自動車輸入のデータベースを使用します。最初の15個の変数は数値で,最後の10個は直言です。シンボルインデックスは,3 ~ 3の整数です。

データセットを読み込み,それを予測子と応答の配列に分割します。

负载进口- 85Y = X (: 1);X = X(:, 2:结束);isCategorical =[0(1), 1(大小(X, 2) -15年,1)];%类别变量标志

バギングがランダム化されたデータ図を使用するため,その正確な結果は最初の乱数シードにより異なります。この例で結果を再生するには,ランダムストリーム設定を使用します。

rng (1945“旋风”

最適なリーフサイズの探索

回帰の場合,原則として葉のサイズを5に設定し,決定分岐のための入力特徴量の3分の1を無作為に選択します。以下の手順で,さまざまな葉のサイズを使用して,回帰によって取得された平均二乗誤差を比較することにより,最適な葉のサイズを確認してください。oobErrorは,MSEと成長したツリーの数を計算します。後でout-of-bag予測を取得するために,OOBPred“上”に設定しなければなりません。

叶= [5 10 20 50 100];坳=“rbcmy”;数字b = TreeBagger(50,X,Y, X);“方法”“R”“OOBPrediction”“上”...“CategoricalPredictors”,找到(isCategorical = = 1),...“MinLeafSize”、叶(i));情节(oobError (b),坳(我))结束包含(“树木数量”) ylabel (的均方误差)({传奇“5”“十”“20”“50”“100”},“位置”“东北”)举行

赤い曲線(葉のサイズ5)は最も低いMSE値です。

特徴量重要度の推定

実際に応用する場合,数百本のツリーでアンサンブルを成長させるのが普通です。たとえば,前述のコードブロックでは50個のツリーを使用して処理を高速化しています。これで最適な葉のサイズを推定したので,100本のツリーでより大きなアンサンブルを成長させ,それを使用して特徴量の重要度を推定してみましょう。

b = TreeBagger (100 X, Y,“方法”“R”“OOBPredictorImportance”“上”...“CategoricalPredictors”,找到(isCategorical = = 1),...“MinLeafSize”5);

誤差曲線を再び調べ,学習中に誤りがなかったことを確認します。

图绘制(oobError (b))包含(“树木数量”) ylabel (“包外均方误差”

予測機能は,些末な特徴量ではなく,より重要な特徴量に依存しなければなりません。このアイデアを使用して,特徴量の重要度を計測することができます。

特徴に関しては,データセット内の観測全体で,特徴ごとに値を並べ替えます。次にMSEがどのくらい低下するかを測定できます。特徴ごとにこれを繰り返すことができます。

各入力変数間のout-of-bag観測値の並べ替えに起因するMSEの増加をプロットします。OOBPermutedPredictorDeltaError配列は,変数ごとにアンサンブル内のすべてのツリーで平均化し,ツリーから取得した標準偏差で割ったMSEの増加を格納します。この値が大きいほど,変数はより重要になります.0.7で任意に切り捨てることにより,4つの最も重要な特徴量を選択できます。

图酒吧(b.OOBPermutedPredictorDeltaError)包含(的数字特征) ylabel (“Out-of-Bag特性重要性”

idxvar =找到(b.OOBPermutedPredictorDeltaError > 0.7)
idxvar =1×41 2 16 19
idxCategorical =找到(isCategorical (idxvar) = = 1);

TreeBaggerOOBIndicesプロパティは,どの観測がどのツリーのout-of-bagであるかを追跡します。このプロパティを使用して,すべてのツリーにまとめられた学習データの観測比率を監視することができます。曲線は約2/3の地点(1つのブートストラップ複製により選択された固有の観測の比率)で開始し,約10本のツリーの地点で0に下がります。

b.NTrees finbag = 0 (1);t = 1: b。NTrees finbag (t) =(所有的总和(~ b.OOBIndices (:, 1: t), 2));结束finbag = finbag / size(X,1);图绘制(finbag)包含(“树木数量”) ylabel (“袋内观察的部分”

特徴量の数を絞ってツリーを成長させる

最も強力な4つの特徴量を使用して,同じような予測力を得ることができるかどうかを判定します。まず,これらの特徴量のみで100本のツリーを成長させます。選択した4つの特徴量は,最初の2つが数値,残りの2つがカテゴリカルです。

b5v = TreeBagger (100 X (:, idxvar), Y,“方法”“R”...“OOBPredictorImportance”“上”“CategoricalPredictors”idxCategorical,...“MinLeafSize”5);图绘制(oobError (b5v))包含(“树木数量”) ylabel (“包外均方误差”

图酒吧(b5v.OOBPermutedPredictorDeltaError)包含(“功能指数”) ylabel (“Out-of-Bag特性重要性”

この最強の4つの特徴量にはフルセットと同じMSEがあり,縮小したセットで学習を行ったアンサンブルはこれらの特徴量を互いに対して同じようにランク付けします。数を絞り込んだセットから特徴1および2を削除すると,アルゴリズムの予測力が大幅に減少しない可能性もあります。

外れ値の探索

学習データ内の外れ値を見つけるには,fillProximitiesを使用して,近接行列を計算します。

b5v = fillProximities (b5v);

このメソッドでは,標本全体に対する平均外れ値予測を減算することにより,この測定値が正規化されます。その後,この差異の大きさが取得され,その結果が標本全体に対する中央絶対偏差で除算されます。

图直方图(b5v.OutlierMeasure)包含(离群值测量的) ylabel (“数量的观察”

データ内のクラスターを発見する

多次元尺度構成法を近接行列に適用すると,入力データの構造を検査し,観測の可能なクラスターを探すことができます。mdsProxメソッドは,計算近接行列のためにスケーリングされた座標と固有値を返します。颜色名前と値のペアの引数でこのメソッドを実行すると,スケーリングされた2つの座標の散布図が作成されます。

图(8)[~,e] = mdsProx(b5v,“颜色”“K”);包含(“第一比例协调”) ylabel (“第二个比例协调”

最初の20個の固有値をプロットすることにより,スケーリングした軸の相対的な重要性を評価します。

图酒吧(e(1:20))包含(“按比例缩小的协调指数”) ylabel (“特征值”

将来使用するためにアンサンブル構成を保存する

学習したアンサンブルを使用して未観測データの応答を予測する場合は,ディスクにアンサンブルを格納し,後でそれを取り出します。out-of-bagデータの予測の計算や,他の方法による学習データの再利用を行わない場合は,アンサンブルオブジェクト自体を格納する必要がありません。その場合は,アンサンブルのコンパクトなバージョンを保存するだけで十分です。以下のように,アンサンブルからコンパクトなオブジェクトを抽出します。

c =紧凑(b5v)
c = CompactTreeBagger Ensemble with 100 bagged decision trees

生成されるCompactTreeBaggerモデルは.matファイルに保存できます。

参考

|||||

関連するトピック