sklearn:クラスタリング

clustering

クラスタリング

正解データが欠落してる状態を想像してください。

データたちをクラスター(かたまり)として自動的に分類していく作業です。

正解データがないので「教師なし学習」に分類されます。

サンプルデータを用意します

k-means クラスタリングをします

プロットします

というふうにやります。

 

 

sklearn:ハイパーパラメータの最適化

hyper_params_optimise

ハイパーパラメータを学習と評価を自動的に繰り返すことによって、最適値にする方法があります

ハイパーパラメータとは

  • ユーザーが手動で設定するパラメータのこと。(訓練によって決まらない)
  • 決定木の層の深さ、ランダムフォレストの決定木カバレッジなど。

最適化の方法

グリッドサーチ:ハイパーパラメーターを自動で色々振った機械学習モデルを作成するします。(ランダムサーチというやり方もありますがマイナーなので割愛)

グリッドサーチと交差検証を行うのが一般的です。

ではやってみましょう

特に細かい説明は必要ないですよね。利用していきましょう。

 

 

ああ

 

 

ああ

 

sklearn:機械学習モデルを評価 混同行列・交差検証・ROC・AUC

model_evalation

今日は機械学習モデルの評価について考えてみます。

機械学習モデルの評価

訓練したモデルに対して、新しいデータが入ってきたときに、データのカテゴリをどれだけ正確に当てられたかが、その訓練済みモデルの性能になりますよね。

カテゴリの分類精として、下記4つの確率的な指標があります。

  1. 度適合率 Precision = tp / (tp + fp) :予測するクラスをなるべく間違えないようにする指標
  2. 再現率 Recall = tp / (tp +fn )
  3. F値  F-Value = 2/((1/適合率)+(1/再現率)) :適合率と再現率の調和平均
  4. 正解率 (tp+tn)/(tp+fp+fn+tn) :予測と実績が一致したデータの割合

で、これを一つの行列にまとめたのが、
混同行列 Confusion matrix

というものです。

各変数になっていのは

  • tp : True-Positive 正例Positiveと予測して、正解Trueだった
  • fp : False-Positive 正例Positiveと予測して、不正解Falseだった
  • fn : True-Negative 負例Negativeと予測して、正解Trueだった
  • tn : False-Negative 負例Negativeと予測して、不正解Falseだった

という結果の数が入ります。

統計用語が入っていますが、

  • 正例:興味のある事柄のクラスに属するデータ
  • 負例:興味のない事柄のクラスに属するデータ

ということです。

アイリスデータをSVMで分類する

混同行列を見ていきたいので、まずはサンプルデータとしてアイリスデータをSVM分類し、予測結果まで実行してみます。

混同行列を算出する

基本的には適合率が高いものが優秀と考えています。

再現率も考慮して 適合率と再現率の間を取るのがF1という値です。

こんな形のマトリクスで出力されます。

層化k分割交差検証

もともとのデータをk個の塊に等分して、訓練用データと検証用データの組み合わせをkパターン用意して、kパターンすべてについて一気に交差検証をする方法です。

ROCとAUC

予測確率の正確さを見ていく方法です。

  •  ROC曲線:Receiver Operating Characteristic
  •  AUC : Area Under the Curve

確率の高い順にデータを並べる
確率以上のデータはすべて正例と予測する

実際に正例だったデータの割合(真陽性率)
実際は負例にも関わらず正例と予測されたデータの割合(偽陽性率)

正例と予測する確率のしきい値を変えていったときに真陽性率を横軸、
偽陽性率を縦軸にとったものがROC曲線

次に AUC曲線 Area Under the Curveですが、要するにROC曲線の面積のことです。1に近いほど正例、0.5に近づくほど正例と負例が混在していて分類できなくなるという意味があります。

ROC曲線と AUCを素早く求めて見ましょう

参考

機械学習の評価指標 – ROC曲線とAUC