Main Content

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

分類学習器アプリを使用したカーネル近似の分類器の学習

この例では、分類学習器アプリにおいてカーネル近似の分類器を作成および比較する方法と、学習済みのモデルをワークスペースにエクスポートして新しいデータに対する予測を行う方法を示します。カーネル近似の分類器を使用して多数の観測値を含むデータの非線形分類を実行できます。大規模なインメモリ データに対しては、ガウス カーネルによる SVM 分類器に比べ、カーネル分類器の方が学習と予測が高速になる傾向があります。

  1. MATLAB® コマンド ウィンドウで、humanactivity データ セットを読み込み、データ セットにある変数から分類に使用する table を作成します。データ セットには、人間の 5 種類の身体動作 (座る、立つ、歩く、走る、踊る) についての 24,075 個の観測値が含まれています。各観測値には、スマートフォンの加速度センサーによって測定された加速度データから抽出した 60 個の特徴量が含まれています。

    load humanactivity
    Tbl = array2table(feat);
    Tbl.Properties.VariableNames = featlabels';
    activity = categorical(actid,1:5,actnames);
    Tbl.Activity = activity;

    あるいは、humanactivity のデータ セットを読み込み、カテゴリカル activity 応答変数を作成して、featactivity のデータを個別の変数として保持できます。

  2. [アプリ] タブをクリックしてから、右にある [さらに表示] 矢印をクリックしてアプリ ギャラリーを開きます。[機械学習および深層学習] グループの [分類学習器] をクリックします。

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

    Classification Learner tab

  4. [ワークスペースからの新規セッション] ダイアログ ボックスで、[データセット変数] のリストから table Tbl を選択します。データ型に基づいて応答および予測子変数が選択されていることに注意してください。特に Activity は、唯一のカテゴリカル変数であるため、応答変数として選択されています。この例では、選択を変更しないでください。

    あるいは、予測子データ feat と応答変数 activity を 2 つの個別の変数として保持している場合は、最初に [データセット変数] のリストから行列 feat を選択できます。その後、[応答][ワークスペースから] オプション ボタンをクリックし、リストから activity を選択します。

  5. 既定の検証方式をそのまま使用して続行するため、[セッションの開始] をクリックします。既定の検証オプションは 5 分割交差検証であるため、過適合が防止されます。

    データの散布図が作成されます。

  6. 散布図を使用して、どの変数が応答の予測に有用であるかを調べます。[予測子][X] および [Y] のリストで異なるオプションを選択して、動作と測定値の分布を可視化します。動作 (色) が最も明確に分離されるのはどの変数であるかに注意してください。

  7. カーネル近似モデルを選択して作成します。[分類学習器] タブの [モデル タイプ] セクションで矢印をクリックしてギャラリーを開きます。[カーネル近似の分類器] グループで、[すべてのカーネル] をクリックします。

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

    ヒント

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

    ギャラリー内の各カーネル近似オプションの学習が 1 つずつ行われます。[モデル] ペインに、最適なモデルの [精度 (検証)] スコアの概要が表示されます。また、最初のカーネル モデル (SVM カーネル) の検証の混同行列も表示されます。

    Validation confusion matrix of the human activity data modeled by an SVM Kernel classifier. Blue values indicate correct classifications, and red values indicate incorrect classifications.

    メモ

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

  9. モデルの結果を確認するには、[モデル] ペインでモデルを選択し、[現在のモデルの概要] ペインを調べます。[現在のモデルの概要] ペインには、検証セットに対して計算された [学習結果] のメトリクスが表示されます。

  10. [モデル] ペインで 2 番目のカーネル モデル (ロジスティック回帰カーネル) を選択し、検証の混同行列を使用して各クラスにおける予測の精度を調べます。[分類学習器] タブの [プロット] セクションで矢印をクリックしてギャラリーを開き、[検証結果] グループの [混同行列 (検証)] をクリックします。真のクラスと予測したクラスの結果が含まれている行列が表示されます。

  11. 2 つのモデルの混同行列を左右に並べて比較します。[分類学習器] タブの [プロット] セクションで [レイアウト] ボタンをクリックし、[モデルの比較] を選択します。各プロットの右上で [プロット オプションを非表示] ボタン をクリックして、プロットのスペースを大きくします。

    Side-by-side comparison of the validation confusion matrices for the SVM Kernel and Logistic Regression Kernel classifiers

    元のレイアウトに戻すには、[プロット] セクションで [レイアウト] ボタンをクリックし、[単一モデル (既定)] を選択します。

  12. [モデル] ペインで最適なモデルを選択します (最高のスコアは [精度 (検証)] ボックスで強調表示されます)。モデルを改善するため、異なる特徴量をモデルに含めます。予測力が低い特徴量を削除するとモデルを改善できるかどうか調べます。

    追加または除外する特徴量を調べるには、散布図と平行座標プロットを使用します。[分類学習器] タブの [プロット] セクションでギャラリーを開き、[検証結果] グループの [散布] ボタンおよび [平行座標] ボタンをクリックします。

    含める特徴量を指定するには、[分類学習器] タブの [特徴量] セクションで [特徴選択] をクリックします。[特徴選択] ダイアログ ボックスで、モデルから削除する予測子を指定して [OK] をクリックします。[学習] セクションの [学習] をクリックして、新しいオプションで新しいモデルに学習をさせます。[モデル] ペインで各分類器の結果を比較します。

  13. [モデル] ペインで最適なモデルを選択します。モデルをさらに改善するため、詳細設定を変更します。[分類学習器] タブの [モデル タイプ] セクションで [詳細設定] をクリックし、[詳細設定] を選択します。[カーネルの詳細オプション] ダイアログ ボックスで、一部の設定の変更を試して [OK] をクリックします。[学習] セクションの [学習] をクリックして、新しいモデルに学習をさせます。

    カーネル モデルの設定の詳細については、カーネル近似の分類器を参照してください。

  14. 学習済みのモデルのコンパクトなバージョンをワークスペースにエクスポートできます。[分類学習器] タブの [エクスポート] セクションで、[モデルのエクスポート] をクリックして、[モデルのエクスポート] または [コンパクト モデルのエクスポート] のどちらかを選択します。カーネル近似モデルには学習データが格納されないため、どちらのオプションでも学習済みのモデルのコンパクトなバージョンがエクスポートされることに注意してください。新しいデータを予測するための分類モデルのエクスポートを参照してください。

  15. この分類器に学習をさせるためのコードを確認するため、[エクスポート] セクションで [関数の生成] をクリックします。この分類器の学習に使用されるデータ セットには 2 つを超えるクラスが含まれているため、生成されたコードは関数 fitckernel ではなく関数 fitcecoc を使用します。

ヒント

このワークフローを使用すると、分類学習器で学習させることができる他のタイプの分類器を評価および比較できます。

選択したデータ セットに対して使用できる事前設定済みの最適化不可能な分類器モデルをすべて学習させるには、次のようにします。

  1. [分類学習器] タブの [モデル タイプ] セクションで矢印をクリックしてモデルのギャラリーを開きます。

  2. [開始] グループで [すべて] をクリックします。次に、[学習] セクションで [学習] をクリックします。

    Option selected for training all available classifier types

他の分類器のタイプについては、分類学習器アプリにおける分類モデルの学習を参照してください。

関連するトピック