Main Content

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

教師あり学習のワークフローとアルゴリズム

教師あり学習とは

教師あり機械学習の目的は、不確定要素が存在する状況で証拠に基づいて予測を行うモデルを構築することです。適応アルゴリズムでデータのパターンを識別するにつれて、コンピューターは観測から "学習" します。観測値の数が増えると、コンピューターの予測性能が向上します。

具体的には、教師あり学習アルゴリズムでは、既知の入力データのセットとそのデータに対する既知の応答 (出力) を使用して、新しいデータに対する応答を適切に予測するようにモデルを"学習"させます。

たとえば、誰かが 1 年以内に心臓発作を起こすかどうかを予測するとします。年齢、体重、身長、血圧など、過去の患者に関する一連のデータを利用できます。データを測定してから 1 年以内に過去の患者に心臓発作が起こったかどうかは既知の情報です。したがって、問題は既存のすべてのデータを結びつけて、ある人が 1 年以内に心臓発作を起こすかどうかを予測できるモデルを作成することになります。

入力データ全体は、異種混合成分から構成される行列と見なすことができます。この行列の行は"観測値""例"または"インスタンス"と呼ばれ、それぞれに被験者 (この例では患者) についての一連の測定値が格納されます。この行列の列は"予測子""属性"または"特徴量"と呼ばれ、それぞれは各被験者に対する測定値 (この例では年齢、体重、身長など) を表す変数です。応答データは、入力データ内の対応する観測値 (患者が心臓発作を起こしたかどうか) の出力が、各行に格納されている列ベクトルと見なすことができます。教師あり学習モデルを"近似"または"学習"させるには、適切なアルゴリズムを選択し、入力と応答データを渡します。

教師あり学習は、分類および回帰という 2 つのカテゴリに大別されます。

  • "分類"では、有限個のクラスの集合からクラス (または"ラベル") を観測値に割り当てることが目標です。つまり、応答はカテゴリカル変数です。応用例には、スパム フィルター、広告推奨システム、イメージと音声の認識などがあります。ある患者が 1 年以内に心臓発作を起こすかどうかを予測することは分類問題であり、可能なクラスはtruefalseです。通常、分類アルゴリズムはノミナルな応答値に適用されます。ただし、一部のアルゴリズムは順序クラスに対応できます (fitcecocを参照してください)。

  • "回帰"では、観測値について連続的な測定値を予測することが目標です。つまり、応答変数は実数です。応用例には、株価、エネルギー消費、疾患の発生に関する予測などがあります。

Statistics and Machine Learning Toolbox™ の教師あり学習機能は、効率的なオブジェクト フレームワークから構成されています。さまざまなアルゴリズムの学習、モデルの結合によるアンサンブルの作成、モデルの性能の評価、交差検証、および新しいデータに対する応答の予測を効率的に行うことができます。

教師あり学習のステップ

Statistics and Machine Learning Toolbox には、教師あり学習に利用できるアルゴリズムが数多く用意されていますが、ほとんどの場合、予測モデルの取得には同じ基本的なワークフローを使用します。(アンサンブル学習の手順の詳しい説明は、アンサンブル学習のフレームワークを参照してください)。教師あり学習の手順は次のとおりです。

データの準備

どの教師あり学習手法でも,ここで通常Xと表記されている入力データ行列から開始されます。Xの各行が、1 つの観測値を表します。Xの各列が、1 つの変数または予測子を表します。Xに存在するNaN値で欠損値を表します。Statistics and Machine Learning Toolbox の教師あり学習アルゴリズムは、NaN値を処理できますが、その値を無視するか、またはNaN値を含む行を無視するかのどちらかになります。

応答データYには、さまざまなデータ型を使用できます。Yの各要素はXの対応する行に対する応答を表します。Yデータが欠落している観測値は無視されます。

  • 回帰の場合、YXの行数と同じ数の要素をもつ数値ベクトルでなければなりません。

  • 分類の場合、Yには、次の表に示す任意のデータ型を使用できます。この表では、欠損値を表現する方法も示しています。

    データ型 欠損値
    数値ベクトル NaN
    categorical ベクトル
    文字配列 空白行
    string 配列 または""
    文字ベクトルの cell 配列 ''
    logical ベクトル (表現できません)

アルゴリズムの選択

特性の異なるアルゴリズムには、それぞれ次のようなトレードオフが存在します。

  • 学習の速度

  • メモリ使用量

  • 新規データに関する予測精度

  • アルゴリズムによる予測の背景理解の容易さを表す、透明性または解釈可能性

アルゴリズムの詳細は、分類アルゴリズムの特性で説明します。アンサンブル アルゴリズムの詳細は、適用するアンサンブル集約法の選択で詳しく説明します。

モデルの近似

使用する近似関数は、選択したアルゴリズムによって異なります。

アルゴリズム 近似関数
分類木 fitctree
回帰木 fitrtree
判別分析 (分類) fitcdiscr
k最近傍(分類) fitcknn
単純ベイズ (分類) fitcnb
分類用のサポート ベクター マシン (SVM) fitcsvm
回帰用の SVM fitrsvm
SVM または他の分類器向けのマルチクラス モデル fitcecoc
アンサンブル分類 fitcensemble
アンサンブル回帰 fitrensemble
アンサンブル分類木またはアンサンブル回帰木 (ランダム フォレスト[1]など) TreeBagger

これらのアルゴリズムの比較については、分類アルゴリズムの特性を参照してください。

検証法の選択

近似した結果のモデルの精度を検査するには、主に次の 3 つの手法があります。

近似の検証とモデルの最終調整

モデルを検証した後で、精度や速度、メモリ使用率を向上させるために、パラメーターを変更したい場合があります。

いずれかのタイプのモデルで満足のいく結果が得られたら、適切な関数compact(分類木用のcompact、回帰木用のcompact、判別分析用のcompact、単純ベイズ用のcompact、SVM 用のcompact、ECOC モデル用のcompact、アンサンブル分類用のcompactおよびアンサンブル回帰用のcompact) を使用してトリミングします。compactは予測に必要ない他のプロパティ (決定木の枝刈り情報など) と学習データをモデルから削除するので、メモリ使用量が少なくなります。kNN 分類モデルではラベルを予測するためにすべての学習データが必要なので、ClassificationKNNモデルのサイズを小さくすることはできません。

近似モデルを使用した予測

分類または回帰の応答値を予測するには、ほとんどの近似モデルでpredictメソッドを使用します。

Ypredicted = predict(obj,Xnew)
  • objは、近似させたモデルまたはコンパクト モデルです。

  • Xnewは、新しい入力データです。

  • Ypredictedは予測応答値であり、分類または回帰のどちらかになります。

分類アルゴリズムの特性

以下の表では、さまざまな教師あり学習アルゴリズムの主な特性を示しています。特定のケースでは、リストされたものとは異なる特性を示す可能性があります。はじめにアルゴリズムを選択するときの指針として使用してください。速度、メモリ使用量、柔軟性および解釈可能性に関するトレードオフに基づいて判断してください。

ヒント

高速で解釈が容易なので,はじめは決定木または判別分析を試してください。応答を予測するにはモデルの精度が不十分な場合は、柔軟性が高い他の分類器を試してください。

柔軟性の制御については、各分類器のタイプの詳細を参照してください。過適合を回避するには、十分な精度が得られる柔軟性が低いモデルを探してください。

分類器 マルチクラスのサポート カテゴリカル予測子のサポート 予測速度 メモリ使用量 解釈可能性
決定木fitctree あり あり 容易
判別分析fitcdiscr あり なし 線形の場合は小、二次の場合は大 容易
SVMfitcsvm なし。
fitcecocを使用して複数のバイナリ SVM 分類器を結合
あり 線形の場合は中。
他の場合は低
線形の場合は中。
他のすべて: マルチクラスの場合は中、バイナリの場合は大
線形 SVM の場合は容易。
他のすべてのカーネル タイプの場合は困難
単純ベイズfitcnb あり あり 単純な分布の場合は中。
カーネル分布または高次元データの場合は低
単純な分布の場合は小。
カーネル分布または高次元データの場合は中
容易
最近傍fitcknn あり あり 3 次元の場合は低。
他の場合は中
困難
アンサンブルfitcensembleおよびfitrensemble あり あり アルゴリズムの選択によって高から中 アルゴリズムの選択によって低から高 困難

この表の結果は、多くのデータセットの分析に基づいています。調査に使用したデータセットには、最大で 7000 個の観測値、80 個の予測子および 50 個のクラスが含まれています。以下のリストで、表の用語を定義します。

速度:

  • 高 ― 0.01 秒

  • 中 ― 1 秒

  • 低 ― 100 秒

メモリ

  • 小 ― 1MB

  • 中 ― 4MB

  • 大 ― 100MB

メモ

この表は、一般的な指針を示しています。データとマシンの速度によって、結果は異なります。

カテゴリカル予測子のサポート

次の表に、各分類器の予測子のデータ型サポートを示します。

分類器 すべての予測子が数値 すべての予測子が categorical 一部が categorical、一部が数値
決定木 あり あり あり
判別分析 あり なし なし
SVM あり あり あり
単純ベイズ あり あり あり
最近傍点 ユークリッド距離のみ ハミング距離のみ なし
アンサンブル あり あり。ただし、判別分析分類器の部分空間アンサンブルは除く あり。ただし、部分空間アンサンブルは除く

参照

[1] Breiman, L. "Random Forests." Machine Learning 45, 2001, pp. 5–32.