ほくそ笑む

R言語と統計解析について

useR! 2018 メモ (2) 前半

rollmatch: An R Package for Rolling Entry Matching

傾向スコアマッチングは時系列共変量を持つ場合に対応していない。 時系列共変量に対応するには Rolling Entry Matching を使う。 rollmatch は Rolling Entry Matching 用のパッケージ。

varameta': Meta-analysis of medians

中央値や IQR で報告された研究結果のメタアナリシスを行うためのパッケージ varameta の紹介。

Does normalizing your data affect outlier detection?

データ正規化の方法は外れ値検出に影響を与えるか? 答えは YES. 4つの正規化手法に対して様々なデータセットを試した。

oddstream and stray: Anomaly Detection in Streaming Temporal Data with R

ストリーミングデータの異常検知用の2つのパッケージ oddstream と stray について。 oddstream は訓練データが必要だが stray は訓練データ不要。

The workflowr R package: a framework for reproducible and collaborative data science

聞いてないけどチェック。

The Grammar of Animation

gganimate パッケージ

New Features in the car and effects Packages

回帰分析の定番パッケージ car の新機能について。 ブートストラップ回帰ができるようになったなど。

mvord: An R Package for Fitting Multivariate Ordinal Regression Models

多変量ロジスティック順序回帰、多変量プロビット順序回帰を行う mvord パッケージの紹介。

Partial Least Squares with formative constructs and a binary target variable

目的変数がカテゴリカルな場合、構造方程式モデリングの代わりに PLS-PM (Partial Least Squares Path Modeling) を使う。plspm は PLS-PM のためのパッケージ。

Exceeding the designer's expectation

Glue strings to data in R

useR! 2018 メモ (1) Tutorial

Applications with R and Docker

Deep learning with TensorFlow and Keras

  • Kevin Kuo (@kevinykuo)
  • Slide: http://kevinykuo.com/talk/2018/07/user-tutorial/
  • 内容: Deep Learning と Keras の入門
  • 感想: ネットワーク組むのはできるんだけど、問題に合わせてネットワークをどういじるのかが知りたかった。

xgboost and MXNet

  • Tong He (@hetong007)
  • Slide: https://github.com/hetong007/user2018tutorial
  • 内容: XGBoost と MXNet の入門
  • 感想:パラメータをいじってどうなるか遊んでみよう!と言われて放置される。他の人は質問バンバンしてたけど英語力の問題で無理だった・・

Missing values imputation

こっち行けばよかった・・

A Survey Of Methods For Explaining Black Box Models メモ (3)

機械学習の解釈可能性についてのサーベイ

  • Guidotti+ (2018) "A Survey Of Methods For Explaining Black Box Models"

のメモ

注:ここから各手法の紹介になるが、手法の具体的な内容をこの論文から正確に読み取ることは難しいので内容については言及しない

6 Solving the Black Box Model Explanation Problem

  • このセクションではブラックボックスのモデル説明問題に対する手法をレビューする
    • すなわちグローバルな説明を得る問題

6.1 Explanation via Single Tree Approximation

  • グローバルに理解可能な説明として単一の決定木を使用する手法
  • ブラックボックスが Neural Network
    • Craven et al. [20], 1996, Trepan
    • Krishnan et al. [50]
    • Boz [9], DecText
    • Johansson et al. [39] (遺伝的プログラミングを使用)
    • これらはすべて NN の性質を使わないため agnostic
  • ブラックボックスが Tree Ensemble
    • Chipman et al. [14]
    • [23], CMM (Combined Multiple Model)
      • [29]
      • [114], STA (Single Tree Approximation)
    • Schetinin et al. [87], CDT (Confident Decision Tree)
    • Hara et al. [32], ATM (Additive Tree Model)
    • [94], TSP (Tree Space Prototype)
      • ランダムフォレストの近接性 (proximity) を定義
    • これらの手法において、データを拡張するかどうか、どのように拡張するかは重要そうである

6.2 Explanation via Rule Extraction

  • グローバルに理解可能な説明として決定則を使用する手法
  • ブラックボックスが Neural Network
    • ここについてはすでにサーベイ [5] がある
      • サーベイ [5] はこの領域に強く特化しているため他の問題に使えない
    • Craven et al. [19]
    • Johansson et al. [40], ルール抽出のアルゴリズム G-REX [37] を使用
    • [38], REFNE
      • Augava et al. [8], RxREN
  • ブラックボックスが SVM
    • [70], SVM+P (SVM+Prototypes), if-then 規則に変換
    • Fung et al. [28], 線形SVMのみ
    • [65]
  • ブラックボックスが Tree Ensemble
    • Deng [22], inTrees
      • STEL (Simplified Tree Ensemble Learner) とも呼ばれる

6.3 Agnostic Explanator

  • ブラックボックスに関する制約のない手法
  • Lou et al. [60], 一般化加法モデル (GAM) を利用して、回帰スプラインとツリーアンサンブルを解釈する
    • 改良したものが同じ著者により [61] で提案されている
  • [33] GoldenEye
  • [51] PALM (Partition Aware Local Model)

6.4 Explanation via Other Approaches

  • その他特殊なアプローチとして [97] がある

7 Solving the Black Box Outcome Explanation Problem

  • このセクションではブラックボックスの出力説明問題に対する手法をレビューする
    • すなわちローカルな説明を得る手法

7.1 Explanation of Deep Neural Network via Saliency Masks

  • DNN に対して説明として Salient Mask を求める手法
    • Salient Mask は、画像またはテキストに対して、予測に寄与する部分のこと
  • [108] CNN と RNN の組み合わせにより画像キャプションを生成するブラックボックスに対して、予測の説明はキャプション内の各単語のアテンションとして得られるか
    • Fong et al. [25] も同様の結果を得ている。
  • [113] CAM (Class Activation Mapping)
    • [89] relaxed generalization Grad-CAM
  • [56] テキストに対して rationale (フレーズの部分集合) を組み込んだアプローチ

7.2 Agnostic Explanator

  • ブラックボックスに関する制約のない手法
  • [84] LIME (Local Interpretable Model-agnostic Explanations)
    • [82][83] は LIME の拡張
  • [98] MES (Model Explanation System)
    • Monte Carlo アルゴリズムを使用

A Survey Of Methods For Explaining Black Box Models メモ (2)

機械学習の解釈可能性についてのサーベイ

  • Guidotti+ (2018) "A Survey Of Methods For Explaining Black Box Models"

のメモ

4 Open The Black Box Problems

  • このセクションではブラックボックス問題を4つに分類する
  • まず「リバースエンジニアリング」と「設計」の問題に分かれる
  • 前者は次の3つに分かれる
    • ブラックボックスのモデル説明問題 (=グローバル)
    • ブラックボックスの出力説明問題 (=ローカル)
    • ブラックボックスの検査問題
  • 後者は「ブラックボックスの設計問題」
  • これらの問題の共通の課題は「解釈可能で正確な予測モデルを提供すること」
  • これは機械学習における分類問題の特殊ケースである

4.1 Problem Formulation

  • 問題の定式化を行う
  • 予測器とは特徴空間からターゲット空間への写像である
  • 学習器関数とは、(特徴空間 x ターゲット空間) -> (特徴空間 -> ターゲット空間) の写像である
  • 教師あり学習ではデータセットは訓練とテストに分けられる
  • 解釈不能なモデル b
    • b がブラックボックスとは、関数の背後にある推論が人間には理解できず、返された結果はその選択の手がかりを与えないことである。
  • 理解可能なモデル c
    • c はグローバルまたはローカルな説明が可能
  • 予測器の性能評価は、精度と忠実度で行われる
    • これらは同じ方法で計算できる

Black Box Model Explanation

  • ブラックボックスのモデル説明問題とは、ブラックボックスの動作を模倣することができ、人間が理解できる解釈可能で透明なモデルを提供することである
    • ブラックボックスを近似する解釈可能なモデルはグローバルに解釈可能でなければならない

Black Box Outcome Explanation

  • ブラックボックスの出力説明問題とは、解釈可能な出力を与えることである。これはブラックボックスの出力に対して説明を与える方法である
    • ブラックボックスの背後にあるロジック全体を説明する必要はないが、特定のインスタンスの選択に対する理由を説明する必要がある

Black Box Inspection Problem

  • ブラックボックスの検査問題とは、ブラックボックスモデルがどう動くか、またはブラックボックスが他の予測でなくこの予測を返したのはなぜかを理解するための表現(視覚的またはテキスト的)を提供することにある
  • 例えば、ブラックボックスモデルの入力を変化させたときの予測の変化を観測するような視覚化を与える

Transparent Box Design Problem

  • 透過ボックスの設計問題とは、局所的または大域的に解釈可能なモデルを与えることである
  • 例えば決定木のような解釈可能なモデルを設計する

  • このサーベイで「ブラックボックスを開く」というとき、上記の4つのどれかを指している

5 Problem And Explanator Based Classification

  • このセクションでは、既存研究を分類するための特徴を説明する
  • 主な特徴は次の4つ
    • 問題のタイプ (セクション4で述べた)
    • 説明のタイプ
    • ブラックボックスモデルのタイプ
    • データのタイプ
  • セクション6以降の構成
    • セクション6: ブラックボックスのモデル説明問題を解く手法を提示した論文
    • セクション7: ブラックボックスの出力説明問題を解く手法を提案する論文について
    • セクション8: ブラックボックスを検査するための手法を提案する論文について
    • セクション9: ブラックボックスの「不透明な obscure」制限を克服するための透過的な予測器を設計する論文について
  • さらにそれぞれのセクションは説明のタイプによってサブセクションに分かれる
    • Decision Tree (DT)
    • Decison Rules (DR)
    • Feature Importance (FI)
    • Salient Mask (SM): 画像やテキストデータに対して、特定の出力を引き起こす原因となる部分を視覚的に強調する
    • Sensitivity Analysis (SA): 入力の不確定性のさまざまな原因に関するブラックボックスの出力の不確定性を評価する (?)
    • Partial Dependence Plot (PDP)
    • Prototype Selection (PS): 出力と一緒に、分類されたレコードに非常によく似た例を返して、予測がどの基準で返されたかを明確にする
    • Neurons Activation (NA): 特定の入力レコードに関して活性化されるニューロンの観察
  • 開かれるブラックボックスモデルのタイプ
    • Neural Network (NN)
    • Tree Ensemble (TE)
    • Support Vector Machine (SVM)
    • Deep Neural Network (DNN)
    • AGN (Agnostic Explanator): 特定のタイプのブラックボックス、説明、データタイプに関連付けられていない、理解可能な予測器
  • データのタイプ
    • Tabular (TAB): 表形式のデータ
    • Image (IMG): 画像
    • Text (TXT): テキスト
  • p20 表1 は既存研究を網羅的に示し、それぞれの特徴を記したもの

Reverse Engineering: A Common Approach For Understanding The Black Box

  • ブラックボックスの「モデル」「出力」「検査」問題を解く一般的なアプローチはリバースエンジニアリングである
    • 特定のデータに対するブラックボックスの出力をオラクルとし、理解可能な予測器を訓練する
  • オラクルを生成するための入力データを作成する方法は2つある
    • 制御された方法で入力を生成
    • 入力のランダム摂動 (random perturbations) を使う
  • リバースエンジニアリングは一般化可能かどうかで分類できる
    • 一般化可能とは、オラクルを得るためにブラックボックスへ渡すのは入力データのみである場合
    • 一般化可能なアプローチは任意のモデルに適用可能 (agnostic)
    • 一般化可能でないとは、入力データの他に特定のブラックボックスモデルの特性を渡す場合
    • 例えば、ランダムフォレストを開く場合に、ツリー間の距離を使用するなど
  • p20の表1 では、General 欄で一般化可能かどうか、Rondom 欄でランダム摂動を使うかどうかを示す

A Survey Of Methods For Explaining Black Box Models メモ (3) - ほくそ笑む

A Survey Of Methods For Explaining Black Box Models メモ (1)

機械学習の解釈可能性についてのサーベイ

  • Guidotti+ (2018) "A Survey Of Methods For Explaining Black Box Models"

のメモ

1 Introduction

  • 現在、センシティブな個人情報を予測する機械学習モデルはブラックボックスである
    • クレジットスコア、保険リスク、健康状態など
    • データにバイアスや偏見が入っている場合、学習モデルはそれを継承する危険性がある
  • 一般データ保護規則 (GDPR) が欧州で施行される
    • 自動化された意思決定が行われたとき、個人が論理的で意味のある説明を受ける権利が含まれる
  • 理解できない意思決定システムは倫理、安全性、生産責任の上で問題がある
    • データにはバイアスが紛れる可能性がある
    • 学習モデルは間違った意思決定を下す可能性がある
    • ガートナー「2018年までにビジネス倫理違反の半分がビッグデータ分析の不適切な使用により発生する」
    • 学習モデルには「説明」が必要である
  • 解釈可能な機械学習は長く研究されてきたが結果をまとめたものはない
    • 多少はあるが問題点がいくつかある
    • (なのでこの論文でまとめる)

2 Needs for Interpretable Models

  • このセクションではブラックボックスの危険性について述べる
  • 人間の判断に基づくデータを使って学習すると、意図せずに偏見を持つ分類器になることがある
  • 古くは1980年代にセントジョージ病院医学部の入学試験の一次審査を行うプログラムで、女性と少数民族を差別していた
  • 最近では propublica.org のジャーナリストは「犯罪再犯の危険性」(Northpointe 銀行の企業秘密)の予測モデルである COMPAS スコアが強い民族的偏見を持っていることを示した
  • Princeton の研究は、黒人の名前は白人の名前に比べて不愉快な言葉に関連していることを示した
  • Amazon.com は2016年に無料の即日配達を提供する米国の地域を決定するために使用されたプログラムが、無意識的に少数民族の地域を排除した
  • 3つの主要米国銀行(Experian、TransUnion、Equifax)の間でクレジットスコアが大幅に異なることが示された
    • 大きなばらつきがあるということは3つの採点システムが大きく異なっており隠れたバイアスを持っているか、非常に恣意的であることを意味している
  • バイアスの例として、1つ目は軍の作成した敵タンクと味方タンクを画像識別する分類器が、テストスコアは良好だったのに実戦ではまるで役に立たなかった
    • のちに判明した原因は、味方タンクの画像は曇りの日に撮られ、敵タンクは晴れの日に撮られたことだった
  • バイアスの例の2つ目は、オオカミとハスキー犬を区別する分類器が、背景に雪のある場合のみをオオカミと判別していた
  • ディープニューラルネットワーク(DNN)は画像判別やテキスト分類に関して精度が良い。
    • しかし人間にはわからないノイズを加えることで誤判別する
    • このようなシステムを信頼するのは難しい

3 Interpretable, Explainable and Comprehensible Models

  • このセクションでは解釈可能性、説明力(explainability)、理解可能性(comprehensibility)とは何かについて述べる
  • 解釈可能性は、人間に理解可能な用語で意味を説明または提供する能力と定義される
  • 予測結果に対して意思決定を下さないなら解釈可能でなくて良い

3.1 Dimensions of Interpretability

  • 解釈可能性にはいくつかの次元がある
  • Global <-> Local
    • モデルのすべてのロジックが理解できる <-> 予測結果に対してなぜそうなったかが分かる
  • 解釈に要する時間が短い <-> 長い
    • 災害時の判断は迅速に行う必要があるが、ローンの解約手続きにはより詳しい説明が好まれる
  • 解釈者の専門性が高い <-> 低い
    • 解釈者の知識はバラバラであり、専門性が高い解釈者にはより詳細な説明が必要
  • 既存の文献では Global <-> Local の次元しか考えられていない

3.2 Desiderata of an Interpretable Model

  • 解釈可能なモデルを実現するには次のことを考慮する必要がある
    • 解釈可能性: モデルの複雑さ。モデルサイズで測る
    • 精度: 予測の正確さ。F1-score などで測る
    • 忠実度:予測器を正確に再現できるか。F1-score などで測るが、精度と異なり結果の再現度を測る
  • モデルにさらに必要なもの
    • 公平性、プライバシー
    • 単調性(ある数値特徴量が増えるとクラス割り当て確率が増えるなど)があると解釈しやすい
    • ユーザビリティ:人々はタスクを達成するのに役立つ情報を提供するモデルを信頼する
    • 信頼性、堅牢性、因果関係、スケーラビリティ、一般性

3.3 Recognized Interpretable Models

  • 現在、解釈可能とされるモデルは、決定木、決定則、線形モデルの3つ
  • 決定木は if-then 形式の決定則に変換することが可能
    • if-then ルール: if 条件 then 結果
  • 決定則は if-then ルールの他に次のルールを含む
    • m-of-n ルール: n個の条件のうち m個が真ならば真
    • list of rules: given an ordered set of rules is considered true the consequent of the first rule which is verified
    • falling rule lists: consists of a list of if-then rules ordered with respect to the probability of a specific outcome and the order identifies the example to be classified by that rule
    • decision sets: an unordered set of classification rules is provided such that the rules are not connected by else statements, but each rule is an independent classifier that can assign its label without regard for any other rules
  • 決定木と決定則の解釈可能性の違い(ここらへん何いってるかわからなかった)
  • 線形モデルは特徴量に対する係数の符号と大きさで結果への寄与がわかる
  • 予測が間違うようなインスタンスの分析は重要である(ここらへんもようわからん)

3.4 Explanations and Interpretable Models Complexity

  • モデルの複雑さを評価するのは難しいのでモデルサイズにより粗い近似が使われる
  • 線形モデルの複雑さ: ゼロでない係数の数
  • 決定則の複雑さ: 条件の長さ
  • (ここら辺わからん)
  • 決定木と決定則の違いについて(わからん)

3.5 Interpretable Data for Interpretable Models

  • データのタイプによっても解釈可能性は異なる
  • 人間にとって最も理解しやすい形式はテーブル(表)
  • 画像とテキストは人間に理解されやすい
    • アルゴリズムに直接入れることはできない
    • ベクトルへの変換が必要 → ベクトルは人間には理解不可能
    • SVMニューラルネット、DNN などは解釈困難
    • 通常はこれらが使われるため画像とテキストに解釈可能なモデルを直接適用できない
  • 他にもシーケンスデータ、時空間データ、複雑なネットワークデータなど
    • これらに取り組んだ既存研究はない

A Survey Of Methods For Explaining Black Box Models メモ (2) - ほくそぽえむ

参考

【記事更新】私のブックマーク「機械学習における解釈性(Interpretability in Machine Learning)」 – 人工知能学会 (The Japanese Society for Artificial Intelligence)

knitr の SQL チャンクオプションまとめ

knitr は R 以外の様々な言語に対応しています。
現在対応してるのは Python, SQL, Bash, Rcpp, Stan, JavaScripy, CSS です。

これらの言語を使いたい場合、R チャンクと同様に、次のようにしてチャンクを作成できます。

```{sql, connection=con}
SELECT count(*) FROM trace WHERE date = '2018-01-01'
```

この記事では、SQL チャンクで利用できる便利なオプションについてまとめたいと思います。
その他の言語については『再現可能性のすゝめ―RStudioによるデータ解析とレポート作成―』の「6.4 R以外の言語エンジンの利用」をご参照ください。

再現可能性のすゝめ (Wonderful R 3)

再現可能性のすゝめ (Wonderful R 3)

1. max.print

表示される行数の最大値を指定します。
次の SQL では結果が 10行返ってきますが、レポートには最初の5行だけが表示されます。

```{sql, connection=con, max.print = 5}
SELECT date, count(*) FROM trace
 WHERE date BETWEEN '2018-01-01' AND '2018-01-10'
 GROUP BY date ORDER BY date
```

max.print = -1 または max.print = NA とすることで最大行数を制限なしとできます。
チャンクごとに指定するのが面倒な場合は、knitr のオプション sql.max.print ですべてのチャンクに適用できます。

2. tab.cap

テーブルキャプションを指定します。
SQL チャンクは通常、何行の結果が表示されているかをテーブルの上に表示します。
tab.cap に文字列を指定することでこれを任意の文字列に変更できます。

```{sql, connection=con, tab.cap="My Caption"}
SELECT date, count(*) FROM trace
 WHERE date BETWEEN '2018-01-01' AND '2018-01-03'
 GROUP BY date ORDER BY date
```

キャプションを無効にしたい場合は tab.cap = NA とします。

3. output.var

SQL の結果を R のデータフレームに保存します。このデータフレームは以降の R チャンクで利用できます。
次の例では、SQL の結果を result_from_sql というデータフレームに格納し、次のチャンクで R オブジェクトとして print しています。

```{sql, connection=con, output.var = "result_from_sql"}
SELECT date, count(*) FROM trace
 WHERE date BETWEEN '2018-01-01' AND '2018-01-03'
 GROUP BY date ORDER BY date
```

```{r}
print(result_from_sql)
```

このとき、SQL の結果は表示されないので注意して下さい。Rチャンクの中で knitr::kable() を使うと同様の表示ができます。

4. SQL 内で R オブジェクトを利用する

SQL の記述の中に R オブジェクトを利用するには、? を使います。
次の例では、取得する最大の日付を R オブジェクト max_date に格納し、SQL で ?max_date として利用しています。

```{r}
max_date <- "2018-01-03"
```

```{sql, connection=con}
SELECT date, count(*) FROM trace
 WHERE date BETWEEN '2018-01-01' AND ?max_date
 GROUP BY date ORDER BY date
```

5. デフォルトコネクションの指定

knitr オプション connection にデフォルトコネクションを指定できます。
これにより SQL チャンクに毎回 connection = con と書く手間が省けます。
knitr オプションは knitr::opts_chunk$set() 関数によって指定できます。

```{r, echo=FALSE}
library(DBI)
con <- dbConnect(odbc::odbc(), "PostgreSQL")
knitr::opts_chunk$set(connection = "con")
```

```{sql}
SELECT date, count(*) FROM trace
 WHERE date BETWEEN '2018-01-01' AND '2018-01-03'
 GROUP BY date ORDER BY date
```

まとめ

本記事では knitr の SQL チャンクで使える便利なオプションについてまとめました。
その他の言語については次の書籍の「6.4 R以外の言語エンジンの利用」をご参照ください。

再現可能性のすゝめ (Wonderful R 3)

再現可能性のすゝめ (Wonderful R 3)

Enjoy!

Laplace accuracy

Classification based on predictive association rules (CPAR) is a more advanced AR based classifier based on information metric [34]. In CPAR, Laplace accuracy is used to measure the accuracy of rules. Given a rule r, it is defined as follows:

 \displaystyle \ \ Laplace \ accuracy\ (r) = \frac{(N_c + 1)}{(N_{total} + m)}

where  m is the number of classes,  N_{total} is the total number of examples that satisfy the rule's body, among which  N_c examples belong to the predicted class,  c of the rule. For classification, the best  k rules of each class are selected from the rule sets of each class. By comparing the averaged Laplace accuracy of the best  k rules of each class, the class with the best accuracy is chosen as the predicted class.

Rule Extraction from Support Vector Machines (Studies in Computational Intelligence)

Rule Extraction from Support Vector Machines (Studies in Computational Intelligence)