機械学習の手法 3種類
教師あり学習 (supervised learning)
教師データを使って予測値を正解ラベルに近づけることを目標に学習する手法
-
回帰 (regression) : 出力値の予測
- 線形回帰
- 単回帰分析 : 1つの説明変数から目的変数を予測する
- 重回帰分析 : 複数の説明変数から目的変数を予測する
- 多重共線性 (マルチコ) : 相関関係が強い組を同時に説明変数にすると予測が上手くいかなくなる
- 線形回帰
-
分類 (classification) : あらかじめ設定したクラスにデータを割り振る
- 線形分離可能 : パーセプトロン (AND, OR, NAND)
- 線形分離不可能 : 多層パーセプトロン (XOR)
- SVM (サポートベクターマシン)
- 元々は「マージンの最大化」をコンセプトにした線形分離のアルゴリズム
- スラック変数は誤分類を許容するための工夫
- カーネル法によって、線形分離不可能なデータにも対応できる
- カーネルトリックによって、計算量を現実的に抑える
- 決定木 (decision tree)
- 不純度が最も減少するように条件分岐を作りデータを振り分ける (繰り返す)
- 情報利得の最大化
- 不純度は「クラスの混じり具合」(ジニ係数、エントロピー)
- 決定木 + バギング = ランダムフォレスト (過学習しにくくなる)
- データのスケールを事前に整えなくてもいい
- 分析結果の説明が容易
- 不純度が最も減少するように条件分岐を作りデータを振り分ける (繰り返す)
- ロジスティクス回帰
- 線形回帰を分類問題に応用したアルゴリズム
- 対数オッズ(=log(pi/1-pi))を重回帰分析から求める
- 対数オッズをロジスティクス関数 (シグモイド関数) で変換しクラスiに属する確率piの予測値を求める
- 各クラスに属する確率を各々計算し、最大確率のクラスが所属クラスになる
- このとき、目的関数としては尤度(ゆうど)関数を用いる
- kNN法 (k Nearest Neighbor法)
- データから近い順にk個のデータを見て、それらの多数決で所属クラスを決定
- データ数に偏りがあると判定結果が不正確
教師なし学習 (unsupervised learning)
教師データを使わずに、データの本質的な構造を浮かび上がらせる手法
-
クラスタリング : 「クラスタ」はデータから自動的に導かれる
- k-means法
- クラスタの中心を重心の位置にずらしていくことを繰り返す
- k-means法
-
次元削減 (次元圧縮) : データが失われないようにデータを低次元に圧縮する手法
- 主成分分析
- 線形な次元削減
- 計算量の削減、次元の呪いの回避
- 寄与率から各成分の重要度が分かる
- 主成分から各成分の意味を推測できる
- 線形な次元削減
- 主成分分析
強化学習 (reinforcement learning)
収益を最大化する方策を獲得することを目的とした手法
- エージェントは収益を最大化するような行動を選択する (状態が変化する)
- 変化した状態で、収益が最大化するような行動を選択する (これを繰り返す)
- 価値関数 : 収益の期待値を表す関数
- 方策 : ある状態のときに、どの行動を取るかを示す関数
- Deep Q-Network (DQN) : 価値関数の計算を近似計算するDNN。DeepMind社が開発したDQNを利用した強化学習を深層強化学習という。
分類(教師あり学習)と回帰(教師あり学習)とクラスタリング(教師なし学習)
- 分類
- あらかじめ設定したクラスに振り分ける
- キノコの色、表面積、絵の長さから毒キノコかどうかを予測する
- 年収、年齢、過去の転職回数から、借金返済可能かを予測する
- 写真から男性か女性かを予測する
- あらかじめ設定したクラスに振り分ける
- 回帰
- 数値を予測する
- 間取り、築年数、駅からの距離からその物件の家賃を予測する
- 数値を予測する
- クラスタリング
- データの類似度を基にいくつかのグループに分ける
- ECサイトの購買履歴で類似したデータ同士をいくつかのグループにまとめる
- データの類似度を基にいくつかのグループに分ける
アンサンブル学習
分類問題に関しては、単一の強識別機を用いるよりもほぼ確実にバギングの性能が高くなることが経験的に知られている。
基礎集計
データの傾向を事前に把握する
- 平均、分散、標準偏差を計算する
- 散布図行列をプロットして傾向を調べる
- 相関行列を表示して、傾向を調べる
前処理 (preprocessing)
データをモデルに正しく入力できるようにする
データの大きさをある程度均一にする
- 欠損値の処理、補完 : 空欄のあるデータを消去、補完する
- 名寄せ : アンケート結果などの表記揺れを統一する
- 正規化 : データを0から1にスケーリングする (正則化 : 過学習を抑制する手法)
- 標準化 : 平均を0、分散を1にする
- 時系列データの時間粒度の変更
- 画像データのサイズの統一化、グレースケール化
- テキストデータの分かち書き、不要文字の削除、半角全角の統一
特徴量エンジニアリング
モデルが認識しやすい特徴をデータからつくること
- カテゴリカル変数 : 何か種類を表す変数 (性別、国籍、出身地)
- one-hot-encoding : 「カテゴリカル変数」を分かる形 = 特徴量に変換する
評価
-
ホールドアウト法 : データを「訓練データ」と「テストデータ」に分けること
-
クロスバリデーション (交差検証) : データを分割してテストデータに用いるブロックを順に移動しながらホールドアウト法による検証をい、その精度を平均する手法 (データ少ないときにも、ホールドアウト法と比較して信頼できる精度が得られる)
-
訓練データ : 機械学習モデル自体を学習
-
検証データ : 学習に使用していない ある瞬間の学習の結果を評価
-
テストデータ : モデルの学習が完了した時点 訓練データにも検証データにも使っていないデータでモデルの最終的な予測結果を評価