🤖

機械学習概論

2023/05/11に公開

[!Important]+ Goals
人工知能の注目分野「機械学習」について正確に理解すること。

[!info]+ Subject

  • 機械学習プロジェクトに関わる全ての人
    機械学習を体系的に復習したい人 >- 機械学習を体系的に復習したい人

[!abstract]+ Curriculum
1.機械学習概論
2.機械学習の流れ
3.性能評価指標
添削問題


機械学習概論

  • ディープラーニング:生物の神経細胞の構造を模倣したアルゴリズム「ニューラルネットワーク」の利用が主流で、現在最も高い精度が得やすい機械学習技術。
  • 強化学習:正解ラベルも大量のデータも必要としない自律的な機械学習。
    • エージェント、環境、行動、報酬

機械学習の流れ

学習データの扱い方

ホールドアウト法

トレーニングデータ+検証データ

K分割クロス検証

K分割クロス検証|500](https://i.imgur.com/LVWKUKd.png)

  • LOO (Leave-One-Out) : Kをデータ数として、一つだけ抜いて検証。
    • 50~100データ程度

科学学習

  • 科学学習防止
    • 正規化:線形回帰式に利用可能
    • ドロップアウト : ディープラーニングに利用可能
    • クロス検証法 : すべて利用可能

アンサンブル学習

複数のモデルに学習させて全ての予測結果を統合することで汎化性能を高める手法。

  • バギング:同時に複数のモデルを学習させて平均を取る。
    • 分類はボッティング
  • ブースト:学習結果を次のモデルの学習に反映する。

性能評価指標

性能評価指標

混乱の行列

![](https://i.imgur.com/rlWuceM.png)

Accuracy : 正答率

\text{Accuracy} = \frac{TP+TN}{All}
  • データに偏りがある場合、直感とかけ離れた結果が出ることもある。

Precision : 精度

\text{Precision} = \frac{TP}{TP+FP}
  • "顧客の好みではない商品を提案したくない"などのケースでは高い精度が求められる。Webサービスのレコメンドなどでは最も重要視される指標。

Recall : 再現率

\text{Recall} = \frac{TP}{TP+FN}
  • 絶対に間違ってはいけない場合は、高い再現性が必要。 医療検査などで重要視される。

F-measure : F値 = 精度と再現率の調和平均値

\text{F-measure} = \frac{2\times\text{Precision}\times\text{Recall}}{\text{Precision}\times\text{Recall}} = \frac{2TP}{2TP+FN+FP}
  • 機械学習モデルを評価する際に、正解率と並んで最も利用される指標です。

性能評価 簡単な実装

#sk/confusion_matrix

# 今回必要となるモジュールをインポートします
import numpy
from sklearn.metrics import confusion_matrix

# データを格納します。今回は1が陽性、0が陰性を示しています
y_true = [0,0,0,1,1,1]
y_pred = [1,0,0,1,1,1]

# 以下の行に変数confmatにy_trueとy_predの混同行列を格納してください
confmat = confusion_matrix(y_true, y_pred)

# 結果を出力します。
print (confmat)

PR曲線

精度と再現性

  • トレードオフ関係
    |800

PR曲線

|500

  • BEP(Break Even Point)とは

|500

Discussion