Main Content

回帰学習器アプリにより回帰モデルに学習をさせる

回帰学習器を使用すると、線形回帰モデル、回帰木、ガウス過程回帰モデル、サポート ベクター マシン、カーネル近似、回帰木のアンサンブル、ニューラル ネットワーク回帰モデルなどの回帰モデルに学習させることができます。モデルの学習に加えて、データの探索、特徴量の選択、検証方式の指定、および結果の評価を行うことができます。新しいデータに対してモデルを使用するためにモデルをワークスペースにエクスポートするか、プログラムによる回帰について学ぶために MATLAB® コードを生成できます。

回帰学習器におけるモデルの学習は、2 つの部分から構成されます。

  • 検証済みモデル: 検証方式を指定してモデルに学習させます。既定では、過適合を防ぐため交差検証が適用されます。あるいは、ホールドアウト検証を選択できます。検証済みモデルはアプリに表示されます。

  • 完全なモデル: 検定データを除くデータ全体についてモデルに学習させます。このモデルの学習は、検証済みモデルの学習と同時に行われます。ただし、データ全体に対して学習をさせたモデルはアプリに表示されません。回帰モデルを選択してワークスペースにエクスポートすると、完全なモデルがエクスポートされます。

メモ

アプリによるモデルの学習に検定データは使用されません。アプリからエクスポートされるモデルは、検定用に確保されたデータを除くデータ全体で学習させたものです。

検証済みモデルの結果が表示されます。診断尺度 (モデルの精度など) とプロット (応答プロットや残差プロットなど) には、検証済みモデルの結果が反映されます。1 つ以上の回帰モデルの学習を自動的に行い、検証結果を比較し、特定の回帰問題に対する最適なモデルを選択できます。モデルを選択してワークスペースにエクスポートすると、完全なモデルがエクスポートされます。回帰学習器は学習時に完全なモデルのモデル オブジェクトを作成するので、すぐにモデルをエクスポートできます。エクスポートしたモデルを使用して、新しいデータに対して予測を行うことができます。

選択したタイプのモデルに学習をさせることから始める場合は、自動で回帰モデルに学習をさせるを参照してください。どの回帰モデルに学習をさせるかが既にわかっている場合は、手動による回帰モデルの学習を参照してください。

自動で回帰モデルに学習をさせる

回帰学習器を使用すると、選択した各種の回帰モデルにデータを自動的に学習させることができます。

  • 複数モデルの同時学習の自動化から始めます。選択したモデルを素早く試し、その後、有望なモデルを対話的に探すことができます。

  • 必要なモデル タイプが既にわかっている場合は、代わりに個々のモデルに学習をさせることができます。手動による回帰モデルの学習を参照してください。

  1. [アプリ] タブの [機械学習および深層学習] グループで [回帰学習器] をクリックします。

  2. 回帰学習器アプリの [回帰学習器] タブで、[ファイル] セクションの [新規セッション] をクリックし、ワークスペースまたはファイルからデータを選択します。応答変数と、予測子として使用する変数を指定します。あるいは、[開く] をクリックして前に保存したアプリ セッションを開きます。回帰用のデータの選択または保存したアプリ セッションを開くを参照してください。

  3. [モデル] セクションで、矢印をクリックして回帰モデルのリストを展開します。[すべてのクイック学習] を選択します。このオプションは、事前設定されている、当てはめに手間のかからないすべてのモデルに学習をさせます。

    All Quick-To-Train button in the Models gallery on the Regression Learner tab

  4. [学習] セクションで、[すべてを学習] をクリックして [すべてを学習] を選択します。

    メモ

    Parallel Computing Toolbox™ がある場合、既定ではモデルの学習が並列に実行されます。並列的な回帰モデルの学習を参照してください。

    選択されたモデル タイプが [モデル] ペインに表示されます。学習が終了すると、最も高い [RMSE (検証)] のスコアが四角で囲まれて強調表示されます。

    Models pane where the lowest validation score is outlined in a box

  5. [モデル] ペインでモデルをクリックし、対応するプロットを開いて結果を確認します。

    以後の手順については、手動による回帰モデルの学習または回帰モデルの比較と改善を参照してください。

  6. 使用可能な事前設定済みの最適化不可能なモデルをすべて試すには、[回帰学習器] タブの [モデル] セクションで [すべて] をクリックします。次に、[学習] セクションで、[すべてを学習] をクリックして [選択を学習] を選択します。

    All button in the Models gallery

手動による回帰モデルの学習

個々のモデル タイプを調べる場合は、モデルを一度に 1 つずつかグループとして学習させることができます。

  1. モデル タイプを選択します。[回帰学習器] タブの [モデル] セクションで、モデルのタイプをクリックします。利用可能なすべてのモデルのオプションを表示するには、[モデル] セクションにある矢印をクリックして回帰モデルのリストを展開します。ギャラリーの最適化不可能なモデル オプションは、種々の設定が事前に行われている開始点であり、さまざまな回帰問題に適しています。

    モデルの説明を読むには、詳細表示に切り替えます。

    Details view of the regression models in the Models gallery

    各オプションについての詳細は、回帰モデルのオプションの選択を参照してください。

  2. モデルを選択したら、モデルに学習させることができます。[学習] セクションで、[すべてを学習] をクリックして [選択を学習] を選択します。このプロセスを繰り返してさまざまなモデルを調べます。

    あるいは、複数のドラフト モデルを作成し、それらのモデルをグループとして学習させることができます。[学習] セクションで、[すべてを学習] をクリックして [すべてを学習] を選択します。

    ヒント

    はじめに回帰木を選択します。学習済みのモデルで応答の予測精度が十分ではない場合は、柔軟性が高い他のモデルを試してください。過適合を回避するには、十分な精度が得られる、柔軟性が低いモデルを探してください。

  3. 同じタイプまたは異なるタイプのすべての最適化不可能なモデルを試す場合、[モデル] ギャラリーで [すべて] のオプションのいずれかを選択します。

    あるいは、特定のモデル タイプのハイパーパラメーターを自動的に調整する場合、対応する最適可能なモデルを選択してハイパーパラメーターの最適化を実行します。詳細は、回帰学習器アプリのハイパーパラメーターの最適化を参照してください。

以後の手順については、回帰モデルの比較と改善を参照してください。

並列的な回帰モデルの学習

Parallel Computing Toolbox がインストールされている場合、回帰学習器を使用して並列的にモデルに学習をさせることができます。並列学習を使用すると、同時に複数のモデルに学習をさせ、作業を続行することができます。

並列学習を制御するには、[回帰学習器] タブの [学習] セクションで [並列の使用] ボタンを切り替えます。ドラフト モデルに並列に学習させるには、このボタンがオンに切り替わっていることを確認してから [すべてを学習] ボタンをクリックします。[並列の使用] ボタンが使用可能になるのは、Parallel Computing Toolbox がある場合だけです。

Use Parallel button in the Train section

[並列の使用] ボタンは既定ではオンになります。[すべてを学習] をクリックして [すべてを学習] または [選択を学習] を初めて選択すると、ダイアログ ボックスが表示されると同時にワーカーの並列プールが開きます。プールが開いた後で、同時に複数のモデルに学習をさせることができます。

並列的にモデルに学習をさせているときに、[モデル] ペインにある、学習中のモデルと待機中モデルのそれぞれについて、進行状況インジケーターが表示されます。必要な場合は、個々のモデルを取り消すことができます。学習中に、モデルの結果およびプロットを確認したり、別のモデルに学習を開始させることができます。

Parallel Computing Toolbox がある場合、回帰学習器で最適化不可能なモデルに対して並列学習が使用可能になり、関数 statsetUseParallel オプションを設定する必要はありません。

メモ

Parallel Computing Toolbox がない場合も、モデル学習中のアプリの応答性を確保できます。ドラフト モデルに学習させる前に、[回帰学習器] タブの [学習] セクションで [すべてを学習] をクリックし、[バックグラウンド学習を使用] チェック ボックスが選択されていることを確認します。その後、[すべてを学習] オプションを選択します。ダイアログ ボックスが表示されると同時にバックグラウンド プールが開きます。プールが開いた後、モデルの学習をバックグラウンドで実行しながらアプリの操作を続けることができます。

回帰モデルの比較と改善

  1. 各モデルについて [モデル] ペインに表示される [RMSE (検証)] スコアを確認します。[モデル] ペインでモデルをクリックし、対応するプロットを開いて結果を確認します。プロットで結果を検査して、モデルの性能を比較します。プロットのレイアウトを再編成して複数のモデルの結果を比較できます。[レイアウト] ボタンのオプションを使用するか、プロットをドラッグ アンド ドロップするか、モデル プロットのタブの右にある [ドキュメント アクション] 矢印に表示されるオプションを選択します。

    さらに、[モデル] ペインの [並べ替え] オプションを使用して、モデルを比較できます。不要なモデルがあれば、モデルを選択してペインの右上にある [選択したモデルの削除] ボタンをクリックするか、[回帰学習器] タブの [モデル] セクションで [削除] ボタンをクリックするか、モデルを右クリックして [削除] を選択して削除します。

    回帰学習器におけるモデルの性能評価を参照してください。

  2. [モデル] ペインから最適なモデルを選択してから、モデルに対するさまざまな特徴量の追加と除外を試します。

    まず、モデルのコピーを作成します。モデルを選択した後、[回帰学習器] タブの [モデル] セクションで [複製] ボタンをクリックするか、モデルを右クリックして [複製] を選択します。

    次に、[回帰学習器] タブの [オプション] セクションで [特徴選択] をクリックします。使用可能な特徴ランク付けアルゴリズムを使用して特徴量を選択します。

    応答プロットは、削除する特徴量を識別するために役立ちます。予測力が低い特徴量を削除するとモデルを改善できるかどうか調べます。モデルに含める予測子を指定し、新しいオプションを使用して新しいモデルを学習させます。[モデル] ペインで各モデルの結果を比較します。

    PCA で特徴量を変換して次元を削減することもできます。[回帰学習器] タブの [オプション] セクションで [PCA] をクリックします。

    回帰学習器アプリの使用による特徴選択と特徴変換を参照してください。

  3. モデルをさらに改善できるか試すため、モデルを複製してから、モデルの [概要] タブの [モデルのハイパーパラメーター] セクションでハイパーパラメーターのオプションを変更し、新しいオプションを使用してモデルに学習させることができます。モデルの柔軟性を制御する方法についての詳細は、回帰モデルのオプションの選択を参照してください。モデルのハイパーパラメーターを自動的に調整する方法の詳細については、回帰学習器アプリのハイパーパラメーターの最適化を参照してください。

    特徴選択、PCA、または新しいハイパーパラメーターの値でモデルが改善される場合は、新しい設定で [すべて] のモデル タイプの学習を試します。別のモデル タイプで新しい設定を使用すると良好な結果が得られるかどうかを調べます。

ヒント

過適合を回避するには、十分な精度が得られる、柔軟性が低いモデルを探してください。たとえば、高速で解釈が容易な回帰木などの単純なモデルを探します。モデルの精度が不十分な場合は、アンサンブルなど柔軟性が高い他のモデルを試してください。モデルの柔軟性の詳細については、回帰モデルのオプションの選択を参照してください。

次の図には、アプリと、さまざまなタイプの回帰モデルが含まれている [モデル] ペインが示されています。

Regression Learner app with trained models in the Models pane

異なる回帰モデルを比較する詳しい手順の例については、回帰学習器アプリを使用して回帰木に学習をさせるを参照してください。

次に、異なるデータでモデルに学習をさせるコードを生成するか、新しいデータを使用して予測を行うために学習済みモデルをワークスペースにエクスポートできます。新しいデータによる予測のための回帰モデルのエクスポートを参照してください。

関連するトピック