教師あり学習
教師あり機械学習とはもっとも使われており、成功しているタイプの機械学習。
ある入力に対して特定の出力を予測したい場合に用いる。
目的:新しい見たことのないデータに対し正確な予測を行うこと
作成の手間はかかるが一度行えば可能な範囲が広がるということである。この予測が可能となることを汎化という。
教師あり機械学習は2つにわけられる。
クラス分類と回帰である。
1、クラス分類
クラス分類の目的:あらかじめ定められた選択肢の中からクラスラベルを予測すること
2、回帰
回帰の目的:連続値の予測
この二つの区別は、連続性の有無である。
ー考え方における落とし穴ー
まずデータを眺め、ルールを見出す。
その情報量に対し過度に複雑なモデルを作ってしまう落とし穴を過剰適合と呼ぶ。
つまり新しいデータには汎化できない複雑なモデルということである。
逆もしかり、単純すぎるモデルを選択することを適合不足と呼び、正確な予測ができない。
この間のスイートスポット、ちょうど良い所を探すことが大切となる。
そのデータに対してどういったモデルが適しているのか考える必要がある。以降、8つの大まかなモデルの紹介に移る。
1、最近傍法
小さいデータに適している方法。
理解しやすいが処理速度が遅く多数の特徴量を扱うことができないため、ほとんど使われていない。
ー K-最近傍法ー
最も単純な学習アルコリズム。
予測には訓練データセットの中から予測したいデータポイントに一番近い点をみつける。
このデータポイントに対して1つではなく、K個選択しても良い。なのでK-最近傍法という。
その中で多数派のクラスを採用する。
K=1など少ない値で行うと複雑の高いモデルになり、最近傍点が多い場合複雑度が低くなる。
2、線形モデル
大きいデータセット、また高次元のデータに適する。
ー線形モデルによる回帰ー
予測式:y:予測 x:特徴量 w,b:学習されたモデルのパラメータ
y=Σw[i]x[i]+b
式から読み取れるよう、直線で表される。その線を境界線とする。訓練データのポイント数より特徴量が多い場合、モデル化できる。
ー線形モデルによるクラス分類ー
y=Σw[i]x[i]+b>0
線形回帰とよく似ているが、0より大きいか否かでクラス分類される
3、ナイーブベイズ
線形モデルに似ている。しかしクラス分類にしか利用できない。クラスに対する統計値を個々の特徴量ごとにあつめて学習するので線形モデルよりも速く、大きいデータセット、また高次元のデータに適する。しかし精度は線形モデルより遅れることが多い。
4、決定木
Yes/Noで答えられる質問で構成された階層的な木構造を学習する。
幾度か分割をつづけてやり過ぎてしまうと、過剰適合になってしまうため注意。
その対応策としては事前枝刈り、事後枝刈りがある。
事前枝刈りは先に木の深さを制限かける方法などである。
事後枝刈りは構築後、情報の少ない部分を削除していく方法である。
非常に高速。データのスケールを考慮する必要がない。可視化可能。
5、ランダムフォレスト
決定木の欠点、過剰適合を防ぐ一つ。
過剰適合の木々を集めることで全体の平均をとれるのではという考えである。
単一の決定木よりも高速・頑健・強力。
高次元の疎なデータには適さない。
6、匂配ブースティング決定木
ランダムフォレストとはまた違った過剰適合を防ぐ手立て。
1つ前の決定木の誤りを次の決定木が修正していく。
そのためランダムフォレストより訓練には時間がかかるが、予測が速くメモリ使用量も小さい。
またよりパラメータに敏感。
広く用いられている。
7、サポートベクタマシン
同じような意味をもつ特徴量からなる中規模なデータセットに対して強力。データのスケール調整の必要がある。パラメータに敏感。
8、ニューラルネットワーク
最近「ディープラーニング」という名前で注目を集めている。
非常に複雑なモデルを構築できる。大きなデータセットに有効。データのスケール調整する必要がある。パタメータに敏感。大きなモデルは訓練に時間を要する。
実施するケースに見あったモデルの選択が大事、ということですね。
細かなところはまた後日、大枠を先にということで次回は教師なし学習です。
機械学習を行うにあたっての基本の開発環境構築はこちらで紹介しています。
【初心者向け】初めての機械学習入門(https://qiita.com/colako/items/859e6d045ae7832b8432)
参考文献
・Pythonではじめる機械学習ーscikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎
(著者 Andreas C.Muller、Sarah Guido 発行所 株式会社オライリー・ジャパン)
・サポートベクタ―マシーン(support vector machine:SVM)の基礎(https://www.hellocybernetics.tech/entry/2016/08/08/061746 2018/10/09閲覧)