Main Content

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

回帰学習器アプリのハイパーパラメーターの最適化を使用した回帰モデルの学習

この例では、回帰学習器アプリでハイパーパラメーターの最適化を使用してアンサンブル回帰のハイパーパラメーターを調整する方法を示します。学習済みの最適化可能なアンサンブルの検定セット性能を、事前設定された最適なアンサンブル モデルと比較します。

  1. MATLAB® コマンド ウィンドウで、carbig データセットを読み込み、ほとんどの変数が含まれている table を作成します。table を学習セットと検定セットに分割します。

    load carbig
    cartable = table(Acceleration,Cylinders,Displacement, ...
        Horsepower,Model_Year,Weight,Origin,MPG);
    
    rng('default') % For reproducibility of the data split
    n = length(MPG);
    partition = cvpartition(n,'Holdout',0.15);
    idxTrain = training(partition); % Indices for the training set
    cartableTrain = cartable(idxTrain,:);
    cartableTest = cartable(~idxTrain,:);
  2. 回帰学習器を開きます。[アプリ] タブをクリックしてから、[アプリ] セクションの右にある矢印をクリックしてアプリ ギャラリーを開きます。[機械学習および深層学習] グループの [回帰学習器] をクリックします。

  3. [回帰学習器] タブの [ファイル] セクションで、[新規セッション]、[ワークスペースから] を選択します。

  4. [ワークスペースからの新規セッション] ダイアログ ボックスで、[データセット変数] のリストから [cartableTrain] table を選択します。

    ダイアログ ボックスに示されているように、応答変数および予測子変数が選択されます。既定の応答変数は [MPG] です。既定の検証オプションは 5 分割交差検証であるため、過適合が防止されます。この例では、既定の設定を変更しないでください。

    New Session from Workspace dialog box

  5. 既定のオプションをそのまま使用して続行するため、[セッションの開始] をクリックします。

  6. 事前設定されたすべてのアンサンブル モデルに学習させます。[回帰学習器] タブの [モデル タイプ] セクションで矢印をクリックしてギャラリーを開きます。[木のアンサンブル] グループで [すべてのアンサンブル] をクリックします。[学習] セクションで [学習] をクリックします。各アンサンブル モデル タイプに学習させて、モデルを [モデル] ペインに表示します。

    ヒント

    Parallel Computing Toolbox™ を使用している場合、[学習] セクションにある [並列の使用] ボタンを選択してから [学習] をクリックすることにより、すべてのアンサンブル モデル ([すべてのアンサンブル]) を同時に学習させることができます。[学習] をクリックすると [並列プールを開いています] ダイアログ ボックスが開いたままになります。同時に、ワーカーの並列プールが開きます。この間、ソフトウェアの対話的な操作はできません。プールが開いた後、アンサンブル モデルの学習が同時に行われます。

    Response plot of the car data modeled by a boosted trees ensemble model

    最初のモデル (モデル 1.1) の応答プロットが表示されます。青色の点は真の値、黄色の点は予測値です。左の [モデル] ペインに各モデルの RMSE 検証が表示されます。

    メモ

    検証により、結果に無作為性が導入されます。実際のモデルの検証結果は、この例に示されている結果と異なる場合があります。

  7. 学習させる最適化可能なアンサンブル モデルを選択します。[回帰学習器] タブの [モデル タイプ] セクションで矢印をクリックしてギャラリーを開きます。[木のアンサンブル] グループで [最適化可能なアンサンブル] をクリックします。最適化可能なモデルを選択すると [並列の使用] ボタンが無効になります。

  8. 最適化するモデル ハイパーパラメーターを選択します。[モデル タイプ] セクションで [詳細設定]、[詳細設定] を選択します。ダイアログ ボックスが開き、ここで最適化するハイパーパラメーターの [最適化] チェック ボックスを選択できます。既定では、すべてのチェック ボックスが選択されます。この例の場合、既定の選択をそのまま使用して、[OK] をクリックします。

    Select Ensemble Hyperparameters to Optimize dialog box

  9. [学習] セクションで [学習] をクリックします。

  10. 最適化が実行されると [最小 MSE のプロット] が表示されます。反復ごとに、ハイパーパラメーター値の異なる組み合わせが試され、その反復までに観測された最小検証の平均二乗誤差 (MSE) をもつプロットが更新され、濃い青で示されます。最適化プロセスが完了すると、最適化された一連のハイパーパラメーターが選択され、赤の四角形で示されます。詳細は、最小 MSE のプロットを参照してください。

    最適化されたハイパーパラメーターはプロットの右の [最適化の結果] セクションと [現在のモデルの概要] ペインの [最適化されたハイパーパラメーター] セクションの両方に一覧表示されます。

    Minimum MSE plot for the optimizable ensemble model

    メモ

    一般に、最適化の結果に再現性はありません。

  11. 学習済みの事前設定されたアンサンブル モデルを学習済みの最適化可能なモデルと比較します。[モデル] ペインで、最小の [RMSE (検証)] (検証平方根平均二乗誤差) が四角で囲まれて強調表示されます。この例では、学習済みの最適化可能なアンサンブルが 2 つの事前設定されたモデルよりも優れています。

    学習済みの最適化可能なモデルに、学習済みの事前設定されたモデルよりも低い RMSE が必ずあるとは限りません。学習済みの最適化可能なモデルが適切に機能しない場合、より長く最適化を実行してより優れた結果が得られるように試すことができます。[モデル タイプ] セクションで [詳細設定]、[オプティマイザーのオプション] を選択します。ダイアログ ボックスで [反復] の値を増やします。たとえば、既定値の 30 をダブルクリックし、値 60 を入力します。次に、[OK] をクリックします。

  12. ハイパーパラメーター調整は過適合モデルになることがよくあるため、最適化されたアンサンブル モデルの性能を検定セットでチェックし、事前設定された最適なアンサンブル モデルの性能と比較します。はじめに、アプリに検定データをインポートします。

    [回帰学習器] タブの [検定] セクションで、[検定データ]、[ワークスペースから] を選択します。

  13. [検定データのインポート] ダイアログ ボックスで、[検定データセット変数] のリストから [cartableTest] table を選択します。

    ダイアログ ボックスに示されているように、応答変数および予測子変数が特定されます。

    Import Test Data dialog box

  14. [インポート] をクリックします。

  15. cartableTest データで、事前設定された最適なモデルと最適化可能なモデルの RMSE を計算します。

    最初に、[モデル] ペインで [バギング木] モデルと [最適化可能なアンサンブル] モデルの横にある星形アイコンをクリックします。

  16. 各モデルに対して、[モデル] ペインでモデルを選択してから、[検定] セクションで [すべて検定]、[選択項目を検定] を選択します。学習データと検証データを含むデータ セット全体で学習させたモデルの検定セットの性能が計算されます。

  17. 検定セット RMSE に基づいてモデルを並べ替えます。[モデル] ペインで [並べ替え] リストを開き、[RMSE (検定)] を選択します。

    この例では、学習済みの最適化可能なアンサンブルが、依然として検定セット データで学習済みの事前設定されたモデルよりも優れています。

    Trained models sorted by test RMSE

関連するトピック