医療職からデータサイエンティストへ医療職からデータサイエンティストへ統計学、機械学習に関する記事をまとめています。ベイズベイズとは条件付き確率を表すのにとても有用な概念で、統計学だけでなく機械学習にも応用されています。クラス分類では、ある変数の情報が入ってきたときに、それがあるクラスに属する確率としてベイズの考えが利用され、迷惑メールフィルターの基礎的な部分などにも用いられます。今回はそんなベイズを使った機械学習におけるクラス分類の基礎事項と、クラス分類の性能評価に用いられる混同行列も合わせて紹介していきます。基礎的なところから書いていくので、すでにご存知の方は適宜読み飛ばしてください。ベイズの基礎事項ベイズの基礎部分は、様々なところでわかりやすい解説がなされているので、この記事では基礎的な用語の紹介に留めておきます。見るベイズの式は以下のようなものです。更新されることを表しています。日本語で書くと、となります。事後確率、真ん中の項を修正項と呼びます(事前確率を事後確率に修正するイメージです)。ベイズの基礎知識に関しては、こちらの書籍がとてもわかりやすくておすすめです。見るベイズ識別規則ベイズの定理をなんとなく理解したところで、これをどのようにクラス分類の応用するのかというのはとても簡単で、ズバリ事後確率がもっとも大きくなるクラスに分類します。ある商品を購入するかどうかは年齢のみが要因として作用するとしましょう。ここでは話を簡単にするため、年齢を離散値として扱い、高齢者or若者の2値とします。購買データを調べ、商品の購入の有無を調べると以下のようになっていました。ここからベイズ識別規則を使って、高齢者(x=1)であった場合に商品を買うかどうかを求めてみます。年齢の情報が与えられていないときに商品を買う確率、つまり事前確率p(C)はとなります。高齢者である確率(修正項の分母)はとなります。ちなみに修正項の分子を尤度、修正項の分母を周辺確率とも呼びます。以上からそれぞれの事後確率を求めるととなるので、高齢者という情報が与えられた場合は商品を購入するクラス(C=1)に分類されることになります。これがベイズ識別規則というものです。このように事後確率が大きくなるクラスに分類するのですが、よくみてみると周辺尤度はどちらにも共通しているので、これは考慮しなくても良さそうです。以上から式でまとめるとベイズ識別規則はと表すことができます。maxは難しそうに見えますが、単に尤度×事前確率の値が大きくなる方のiに分類するという意味です。今回の場合はi=0の時より、i=1の時の方が値が大きくなったため、i=1に分類されることになります。連続量の予測モデル先ほどは簡単にするために年齢を2値としましたが、もう少し実用的にするために年齢を連続量に置き換えて、ベイズ識別規則によるモデル作ってみましょう。仮想的に以下のような1000人の購買データがあったとします。24classは買ったかどうか(それぞれ500人ずつ)、ageは年齢です。これをclassで色分けしてヒストグラムにしてみます。ここでやりたいことはベイズ識別規則を使って、その人がどちらのクラスに分類されるか、つまり購入するかどうかを予測するモデルを作成します。30歳の人がどちらに分類されるか計算してみましょう。年齢の情報が与えられていないときに商品を買う確率、つまり事前確率p(C)はとなります。それぞれのクラスで尤度×事前確率の値を求めてみるととなりました。ベイズ識別規則のルールに従うとC=0の方が値が大きいため、年齢30歳の人は購買なしに分類されます。このようにして30歳から40歳まで人がどちらに分類されるかを表したのが以下になります。138歳までは購買なしに分類され、それ以上になると購買ありに分類されるモデルとなっているようです。(38歳は値が同じであるため、リジェクトといって分類不可とすることもできます。)ちなみに機械学習クラス分類モデルには、予測の方法の違いからいくつかの種類に分けられ、ベイズ識別規則によるものは識別モデルに分類されます。その他の分類に関しては、下記記事をご覧ください。www.medi-08-data-06.work混同行列による性能評価さて、クラス分類で問題となるのは、誤って分類してしまう可能性もあるというところです。今回の場合は39歳以上という情報が与えられた場合は購買あり(C=1)に分類されてしまうため、39歳以上で購買なしの方たちは誤って分類されてしまいます。混同行列はクラス分類の機械学習モデルの性能評価によく用いられます。混同行列とは以下のようなものです。Trueとは正しく分類したという意味で、Positiveとは購買ありのクラスという意味です。Positive)とは、購買ありの人を正しく分類したという意味となります。Negativeを一つずつ見ていけば理解できるかと思います。この混同行列からよくクラス分類の機械学習評価指標で用いられる正確度(accuracy)という指標を求めることができます。正確度は以下のように計算されます。正確度=(TP+TN)/(P+N)Pは購買あり(Positive)の数、Nは購買なし(Negative)の数です。P+Nとはつまり、サンプル数のことです。正確度は、全サンプルの中で正しく分類されたサンプルの割合という意味です。今回のモデルの場合の混同行列は以下のようになります。ここから正確度を計算するととなりました。データの90%をこのモデルで正しく予測できることになります。これが現実世界のデータセットを使ったモデルならかなり良い結果ですね。テストデータではなくトレーニングデータの結果であることには注意が必要です。混同行列からは、正確度の他にも、様々な評価指標を計算することができます。医療でもよく用いられるこの二つです。TN/(TN+FP)一見同じに見えますが、この二つはトレードオフの関係となります。購買ありに分類される年齢を20歳以上とするとどうでしょうか?この場合の混同行列をみてみます。ここから感度・特異度を計算してみると1000人中、ほとんどの人が購買ありと分類されるため、購買ありの人を正しく購買ありと判断する確率はほぼ100%となります。購買なしの人もほとんどが購買ありに分類されているため、購買なしの人を正しく分類できていません。逆に年齢の閾値を60歳にしてみると結果は以下のようになります。この場合、特異度は高くなりますが、感度は低くなります。このように感度・特異度はトレードオフの関係にありますが、モデルによってはどちらも100%に近づけることも可能です。今回の例では変数が年齢しかないため、どちらも100%とまではいきませんが、ベイズ識別規則ではこの二つが最大になるところに閾値が設定されます。試しに、ベイズ識別規則で示された39才を閾値として感度、特異度を求めてみるとどちらも高いことが分かりますね。購買する可能性のある人を出来るだけ逃したくないと思えば、多少特異度を犠牲にしても感度が高くなる閾値に設定したモデルにすることもできますし、逆もまた然りです。ベイズ識別規則においては、損失行列というものを用いてそれぞれのクラスに損失の重み付けをすることで、感度・特異度の非対称性を実現できます。詳しくは扱いませんが、気になる方はこちらをご参照ください。見るその他機械学習の分類問題で使われる指標としては、以下の二つがあります。TP/(TP+FN)再現率は感度と式は同じですが、意味合いが異なります。適合率と再現率もトレードオフの関係であると言えます。関係性については理解が進んでおらず、曖昧なことしか書けないので、ここでは紹介に程度に留めておきます。m(__)mまとめ今回はクラス分類の基礎であるベイズ識別規則と混同行列を紹介しました。クラス分類の機械学習手法はまだまだたくさんあるので、そのうちにご紹介していきます。混同行列は目的に合わせて指標を使い分ける必要があるので、よく理解しておきたいところです。※本記事は筆者が個人的に学んだことをまとめた記事なります。所属する組織の意見・見解とは無関係です。数学の記法や詳細な理論、用語等で誤りがあった際はご指摘頂けると幸いです。前回はベイズ推定を使って単回帰分析を行いました。学んだこと、日々の所感をまとめていきます。※本ブログは筆者が個人的に学んだこと感じたことをまとめたブログになります。所属する組織の意見・見解とは無関係です。medi_data0826引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。