LoginSignup
2
2

More than 1 year has passed since last update.

Python実践機械学習システム100本ノック 学習メモ

Last updated at Posted at 2021-04-18

はじめに

Python、AI初心者な自分がAI関連の部署に異動になったので、以下の書籍を読んで勉強始めました。

個人的に見返すため、あと学習内容のアウトプットを目的として、雑多にメモしていきます。

機械学習関連

用語

目的変数、説明変数

  • 目的変数:機械学習の結果、予測したい変数の事。yで表す。
  • 説明変数:予測に使用する変数の事。Xで表す。

競馬の着順を予想したいとした場合は以下のような例になるはず。

  • 目的変数:着順
  • 説明変数:馬場状態、馬の情報、騎手の情報

カテゴリカル変数

データのカテゴリー分けを表す変数の事。

  • 売り上げデータにおける店舗名、商品名

機械学習は数値を扱うものであり、上記のような変数はそのままでは学習に使えない。
ワンホットエンコーディングにて0と1のフラグに置き換える

ワンホットエンコーディング

カテゴリカル変数を機械学習で扱えるように、0と1のフラグに置き換えること。
置き換えた後の変数の事をダミー変数という。
例として、売上データの店舗名をワンホットエンコーディングする。

  • 変換前
ID 売上 店舗名
1 2,000 店舗A
2 3,200 店舗B
3 1,900 店舗C
4 2,900 店舗B
5 3,600 店舗C
  • 変換後
ID 売上 店舗A 店舗B 店舗C
1 2,000 1 0 0
2 3,200 0 1 0
3 1,900 0 0 1
4 2,900 0 1 0
5 3,600 0 0 1

カテゴリに応じて列を作り、そのカテゴリに属しているレコードに1が設定されるイメージ。

多重共線性(マルチコ:multi-colinearlity

多変量解析において、説明変数間に高い相関が認められる場合に発生する事象の事。
発生する具体的なケースとしては、上記で述べたダミー変数を試用している場合に発生する。
例えば、上記のデータでは必ずどこかの店舗に属している。
つまり店舗A~Cの説明変数間に対して完全に相関してしまっている。
結果として誤差が大きくなり、解析結果が不安定となってしまう。
対応としては、作成したダミー変数のうち、1列を削除するなどが挙げられる。
(上記の例であれば、「店舗A」を削除するとか。)

表現力

与えられた訓練データを再現するモデルの力の事。
モデルの表現力が高すぎると、訓練データの些細な違いまでモデルが学習してしまう。
すると、未知のデータに対する予測が難しくなる。

汎化性能

データに含まれる誤差の部分を無視する力の事。
汎化性能が高いほど未知のデータに対する識別能力が高いという扱いになる。
ただ、汎化性能が高すぎても鈍感なモデルになる。
汎化性能と表現力はトレードオフ。
同じ学習データを使用しても使用するモデルによって差がでる。

交差検証(cross-validation)

個々のモデルの汎化性能を評価する手法。
学習結果の評価のため、学習データと未知のデータ(テストデータ)に適用した時の結果を比較する。
代表的な交差検証の一つにK-分割交差検証がある。
これはデータをK個に分割し、そのうちの一つをテストデータ、残りのK-1個を学習データとし正解率の評価を行う。

予測結果と混合行列

モデルの予測結果はいかに分類される。

種類 説明
True Negative(真陰性) 予測結果は、実際も
False Negative(偽陰性) 予測結果は、実際は
True Positive(真陽性) 予測結果は、実際も
False Positive(偽陽性) 予測結果は、実際は

マトリクス(混合行列)で表すと以下となる。

予測は負 予測は正
実際は負 TN(True Negative) FP(False Positive)
実際は正 FN(False Positive) TP(True Positive)

評価指標

モデルの評価指標として正解率再現率適合率F値という指標が扱われる。
それぞれの値は上記のTPなどから算出する。

正解率(Accuracy)

全部の合計の内、予測結果と実際の結果が合致している割合(TNとTP)。
式で書くと以下のようになる。
$Accuracy = \frac{TP + TN}{TP + FP + TN + FN}$

再現率(Recall)

実際はだった物のうち、どの程度予想できていたかという割合。の物に対しての正答率となる。
式で書くと以下のようになる。
$Recall = \frac{TP}{FN + TP}$

適合率(Precision)

と予測した物のうち、実際と合っていた件数の割合。
式で書くと以下となる。
$Precision = \frac{TP}{FP+TP}$

F値(F-measure)

適合率再現率の調和平均の事。
式で書くと以下となる。
$F = \frac{2 × Precision * Recall}{Precision + Recall}$

参考資料

下山 輝昌,三木 孝行,伊藤 淳二『Python実践機械学習システム100本ノック』秀和システム
pandasでワンホットエンコーディング(ダミー変数)
重回帰分析における多重共線性への対応
汎化性能、表現力はトレードオフな事が分かる記事
交差検証(クロスバリデーション)とは?合わせてグリッドサーチに関しても学ぼう!
【入門者向け】機械学習の分類問題評価指標解説(正解率・適合率・再現率など)

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2