
(最終更新日:2021年2月22日、タイトル修正)
思考と推論、そして仮説演繹法
思考にはさまざまなタイプがありますが、推論(reasoning)はその中の一つに位置付けられています。例えば「類似と思考(改訂版、ちくま学芸文庫)」では思考のパターンとして以下が挙げられています。
- 推論と呼ばれるタイプの思考
- 80点が合格ラインの時、82点を取得した。自分は合格だと思う。
- 問題解決と呼ばれるタイプの思考
- 連絡したい相手に連絡が取れない。さてどうしようかと思う。
- 意思決定と呼ばれるタイプの思考
- ランチに何を食べようかと考える。
本稿では更に推論の一つの類型である仮説演繹法(hypothetico-deductive reasoning)に焦点を当て、データサイエンス手法との関係性を述べます。参考までに他の推論の型を列挙すると、例えば「ABC of 臨床推論:診断エラーを回避する(羊土社)」では、以下の7つとなります。その他推論の型についてはまた別途取り上げたいと思います。
- 演繹的推論(deductive reasoning)
- 仮説演繹法(hypothetico-deductive reasoning)
- 帰納的推論(inductive reasoning)
- 仮説的推論(abductive reasoning)
- 規則に基づく推論/分類による推論/決定論的推論
- 確率的推論(probabilistic reasoning)
- 因果推論(causal reasoning)
さて一つのモデルで考えない:高感度モデルの複数併用シナリオでも取り上げた通り、仮説演繹法は以下3つのステップで表現されます。
- step1:異常AではシグナルBが認められる。
- step2:シグナルBは認められない。
- step3:よって、異常Aはない。
論理学で言う対偶命題で、原因仮説を除外するときの推論形式です。もしあなたがドメイン知識から異常検知などにおける原因仮説を生成でき、かつそれら原因仮説(異常A)にとっての高感度情報(シグナルB)の存在がわかっていれば、その高感度情報が発生していないことを論拠に、原因仮説を除外するができるということです。小説などで探偵が行う、以下のような推論と言えば理解しやすいでしょうか。
- step1:Xが犯人なら動機が存在する。
- step2:Xの動機は存在しない。
- step3:よって、Xは犯人ではない。
高感度情報とは?
感度という用語を理解するために、機械学習の分類モデルの評価の基礎となっている混同行列(confusion matrix)を紹介します。臨床研究においても全く同様の行列を目にします。行列が転置していることが普通ですが、これは分野の違いによる慣習の差なので、特に気にする必要はありません。
行方向(Reference class)に注目します。機械学習分野では正解ラベル、臨床分野では参照ラベルなどと呼ばれるもので、異常などが実際にあったか(+:陽性や正例と呼ばれる)、なかったか(−:陰性や負例と呼ばれる)を表します。
PoC死しない全経路解説動画(動画へ飛びます)でも紹介しましたが、このラベルが機械的にほぼ完全に決められるのか、それとも人間の判断によって不完全にラベリングされるのかでプロジェクト進行に影響を与えます。気になる方は先のリンク先動画をご確認下さい。
次に列方向(predicted class)ですが、これは予測や診断の結果、正例とされたか負例とされたかを表します。さて感度(sensitivity)ですが、これは実際に正例だったもの(TP+FN)を分母とし、その中のどの程度が実際に正例と予測されたか(TP)の割合を示します。よって、シグナルBが異常Aに対し高感度情報であるとは、異常Aが観察される時(Reference class=+の行方向に対する)、シグナルBが高い確率で観察される(TPの割合が高い)ということを意味します。
アソシエーション分析
アソシエーション分析は別名マーケット・バスケット分析とも言われ、2000年代初頭のデータマイニングブーム当時から広く使われてきました。特段複雑なことをしている訳ではありませんが、計算量が課題となる分析です。具体的なアウトプットは、例えば、あるスーパーのカゴ(バスケット)の中の組み合わせパターンを集計し、以下のような併売ルールとなります。
- ビールを買っている人の10%は、ポテチを買っている。
これをアソシエーション・ルールと呼んでいますが、特別なものでないことがわかります。また組み合わせ爆発の関係で、単純な出力ですが全てを効率的に探索することの難しさも想像できるかと思います。さてこの併売割合10%のことを信頼度(confidence)と呼びます。また集計期間中のバスケット全体の中でポテチが買われる割合が2%であれば、信頼度はその5倍に相当するのでこれをリフト(lift)と呼びます。特にリフトが1.0よりも大きなルールはシンプルな推奨ロジックを提供してくれます。信頼度が高いルールは重要ですが、リフトも合わせて見ることがこの分析では強調されます。
アソシエーション分析による高感度情報の抽出
先程の異常AとシグナルBの関係をアソシエーションルールで表すと、以下のルール1のように書けます。後で混乱しないよう、ルール2も以下のように成立しているとして先に進みます。
- ルール1:異常A→シグナルB(信頼度99%)
- ルール2:シグナルB→異常A(信頼度15%)
上記ルール1の成立を論拠に、シグナルBの発生を以って異常Aがあると予測する診断ロジックの使い道を考えたいと思います。それはルール2の信頼度が高い場合の話であってルール1の高信頼度を根拠にするのはおかしいと思われるかもしれません。本当にそうでしょうか。ルール1が高信頼度で成立していれば、シグナルBが出現していなければどのような判断が可能となるでしょうか?
既にお気付きかと思いますが対偶命題の流れで推論すれば、シグナルBが発生していないこと自体が論拠となり、異常Aを否定することができます。これが仮説演繹法による推論です。
アソシエーション分析と混同行列を結べば、異常や犯行という<結果系>を<前提部>とし、その予兆や動機という<原因系>を<後続部>に持つルールの信頼度は混同行列の感度であると言えます。ちなみにルール2の信頼度は適合率に相当します。さて、アソシエーション分析の課題は計算量であることを指摘しました。分析の際、<結果系>を前提部、<原因系>を後続部に限定し集計すれば、この計算量も制御できます。ここまでをまとめると、確定のためではなく原因仮説の除外を目的とした高感度シグナル情報の抽出を目的としたアソシエーション分析の実施は意思決定者に除外診断という武器を提供することになるのです。
ルール2について補足します。もし異常Aが前提なしでは1.5%しか観測されない現象とすると、ルール2のリフトは10.0となります。15%の信頼度は低いとして流して書きましたが、実はルール2もリフトで見ると無視できない可能性があります。15%は小さい数値、リフト10倍は高い数値ということではなく、異常内容、シグナル内容、他ルールとの比較から、ルールの扱いを決定しましょう。
アソシエーションルールのグラフ表現
最後に、アソシエーション分析で抽出された高感度情報としてのルール群の活用について考察します。ルールはA→Bという向きを持ったデータ構造です。そしてこの矢印の属性として信頼度を持たせることは、私たちがよく知るグラフデータ構造そのものです。イメージを掴みたい方は「association rules graph」などで検索してみて下さい。
抽出されたルールはテーブル形式に代表されるRDB(Relational Data Base)ではなく、グラフデータベースに蓄積し活用することもできますし、また過去ライブ配信でも解説したグラフ特徴量(動画に飛びます)へとつながる可能性があることも指摘したいと思います。
関連ライブラリ
- MLXTEND:アソシエーション分析が可能な機械学習系ライブラリ
- MLXTEDを用いたアソシエーションルールのグラフ可視化のコード例
- AmpliGraph:知識グラフ(有向グラフ)の特徴量エンジニアリング