このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
教師あり機械学習の目的は、不確定要素が存在する状況で証拠に基づいて予測を行うモデルを構築することです。適応アルゴリズムでデータのパターンを識別するにつれて、コンピューターは観測から "学習" します。観測値の数が増えると、コンピューターの予測性能が向上します。
具体的には、教師あり学習アルゴリズムでは、既知の入力データのセットとそのデータに対する既知の応答 (出力) を使用して、新しいデータに対する応答を適切に予測するようにモデルを"学習"させます。
たとえば、誰かが 1 年以内に心臓発作を起こすかどうかを予測するとします。年齢、体重、身長、血圧など、過去の患者に関する一連のデータを利用できます。データを測定してから 1 年以内に過去の患者に心臓発作が起こったかどうかは既知の情報です。したがって、問題は既存のすべてのデータを結びつけて、ある人が 1 年以内に心臓発作を起こすかどうかを予測できるモデルを作成することになります。
入力データ全体は、異種混合成分から構成される行列と見なすことができます。この行列の行は"観測値"、"例"または"インスタンス"と呼ばれ、それぞれに被験者 (この例では患者) についての一連の測定値が格納されます。この行列の列は"予測子"、"属性"または"特徴量"と呼ばれ、それぞれは各被験者に対する測定値 (この例では年齢、体重、身長など) を表す変数です。応答データは、入力データ内の対応する観測値 (患者が心臓発作を起こしたかどうか) の出力が、各行に格納されている列ベクトルと見なすことができます。教師あり学習モデルを"近似"または"学習"させるには、適切なアルゴリズムを選択し、入力と応答データを渡します。
教師あり学習は、分類および回帰という 2 つのカテゴリに大別されます。
"分類"では、有限個のクラスの集合からクラス (または"ラベル") を観測値に割り当てることが目標です。つまり、応答はカテゴリカル変数です。応用例には、スパム フィルター、広告推奨システム、イメージと音声の認識などがあります。ある患者が 1 年以内に心臓発作を起こすかどうかを予測することは分類問題であり、可能なクラスはtrue
とfalse
です。通常、分類アルゴリズムはノミナルな応答値に適用されます。ただし、一部のアルゴリズムは順序クラスに対応できます (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
データが欠落している観測値は無視されます。
回帰の場合、Y
はX
の行数と同じ数の要素をもつ数値ベクトルでなければなりません。
分類の場合、Y
には、次の表に示す任意のデータ型を使用できます。この表では、欠損値を表現する方法も示しています。
データ型 | 欠損値 |
---|---|
数値ベクトル | NaN |
categorical ベクトル |
|
文字配列 | 空白行 |
string 配列 | または"" |
文字ベクトルの cell 配列 | '' |
logical ベクトル | (表現できません) |
特性の異なるアルゴリズムには、それぞれ次のようなトレードオフが存在します。
学習の速度
メモリ使用量
新規データに関する予測精度
アルゴリズムによる予測の背景理解の容易さを表す、透明性または解釈可能性
アルゴリズムの詳細は、分類アルゴリズムの特性で説明します。アンサンブル アルゴリズムの詳細は、適用するアンサンブル集約法の選択で詳しく説明します。
使用する近似関数は、選択したアルゴリズムによって異なります。
アルゴリズム | 近似関数 |
---|---|
分類木 | fitctree |
回帰木 | fitrtree |
判別分析 (分類) | fitcdiscr |
k最近傍(分類) | fitcknn |
単純ベイズ (分類) | fitcnb |
分類用のサポート ベクター マシン (SVM) | fitcsvm |
回帰用の SVM | fitrsvm |
SVM または他の分類器向けのマルチクラス モデル | fitcecoc |
アンサンブル分類 | fitcensemble |
アンサンブル回帰 | fitrensemble |
アンサンブル分類木またはアンサンブル回帰木 (ランダム フォレスト[1]など) | TreeBagger |
これらのアルゴリズムの比較については、分類アルゴリズムの特性を参照してください。
近似した結果のモデルの精度を検査するには、主に次の 3 つの手法があります。
再代入誤差を調べます。以下の例を参照してください。
交差検証誤差を検査します。以下の例を参照してください。
バギングされた決定木の out-of-bag 誤差を検査します。以下の例を参照してください。
モデルを検証した後で、精度や速度、メモリ使用率を向上させるために、パラメーターを変更したい場合があります。
精度の高いモデルが得られるように、近似パラメーターを変更します。以下の例を参照してください。
サイズの小さいモデルが得られるように、近似パラメーターを変更します。その結果、モデルの精度が向上する場合もあります。以下の例を参照してください。
別のアルゴリズムを試します。以下の説明を参照してください。
いずれかのタイプのモデルで満足のいく結果が得られたら、適切な関数compact
(分類木用のcompact
、回帰木用のcompact
、判別分析用のcompact
、単純ベイズ用のcompact
、SVM 用のcompact
、ECOC モデル用のcompact
、アンサンブル分類用のcompact
およびアンサンブル回帰用のcompact
) を使用してトリミングします。compact
は予測に必要ない他のプロパティ (決定木の枝刈り情報など) と学習データをモデルから削除するので、メモリ使用量が少なくなります。kNN 分類モデルではラベルを予測するためにすべての学習データが必要なので、ClassificationKNN
モデルのサイズを小さくすることはできません。
分類または回帰の応答値を予測するには、ほとんどの近似モデルでpredict
メソッドを使用します。
Ypredicted = predict(obj,Xnew)
obj
は、近似させたモデルまたはコンパクト モデルです。
Xnew
は、新しい入力データです。
Ypredicted
は予測応答値であり、分類または回帰のどちらかになります。
以下の表では、さまざまな教師あり学習アルゴリズムの主な特性を示しています。特定のケースでは、リストされたものとは異なる特性を示す可能性があります。はじめにアルゴリズムを選択するときの指針として使用してください。速度、メモリ使用量、柔軟性および解釈可能性に関するトレードオフに基づいて判断してください。
ヒント
高速で解釈が容易なので,はじめは決定木または判別分析を試してください。応答を予測するにはモデルの精度が不十分な場合は、柔軟性が高い他の分類器を試してください。
柔軟性の制御については、各分類器のタイプの詳細を参照してください。過適合を回避するには、十分な精度が得られる柔軟性が低いモデルを探してください。
分類器 | マルチクラスのサポート | カテゴリカル予測子のサポート | 予測速度 | メモリ使用量 | 解釈可能性 |
---|---|---|---|---|---|
決定木—fitctree |
あり | あり | 高 | 小 | 容易 |
判別分析―fitcdiscr |
あり | なし | 高 | 線形の場合は小、二次の場合は大 | 容易 |
SVM―fitcsvm |
なし。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.