Process Mining: Data science in Action の第3週の講義とクイズ終わった。内容はマイニング結果の評価指標の話、マイニング結果として用いるモデルの形式によるバイアスの話、新しい学習アルゴリズムの話。
モデルの形式としては、これまでペトリネットを中心に話してきていたけれど、それに加えてBPMN(Business Process Model and Notation)と Depenedency Graph および Causal Net (C-Net) を導入している。BPMNは表記は違うけれどペトリネットと割と近い。 Depenedency Graph はアクティビティの依存関係を表したグラフで、Causal Net はそれにAND分岐なのかOR分岐なのかといった組合せの情報を付与したもの。
Depenedency Graph の学習は、αアルゴリズムでも計算した footprint と同様だけれど、頻度を考慮したものを計算して、学習する。頻度が一定の閾値未満のもの辺を省くことでより単純化されたグラフになり、閾値の調整によって学習結果の複雑度を制御できる。実装は ProM の Heuristic Miner など。
Causal Net の学習では、Dependency Graph の学習結果に対して組合せの情報を付与することで学習する。 アプローチとしては各アクティビティの前後でタイムウィンドウを設定し、Dependency Graph 上で入力となっているようなアクティビティや出力となっているアクティビティの部分集合のうち、タイムウィンドウ中で(一定の頻度以上で)発生した組合せを付与するようなアプローチと、リプレイ結果のfitness他の指標を最適化するようなアプローチがある。この講義では後者についてはあまり触れなさそう。
Dependency Graph を介した Causal Net の学習のような二段階の学習の別の例として、状態遷移系(Transition System)を通じたペトリネットの学習がある。 イベントログからの状態遷移系の学習では、各イベントログの各時点での過去のアクティビティ列と未来のアクティビティ列の組合せを状態として考えると状態遷移系が生成できる。これは非常にオーバーフィッティングされた状態遷移系なので、過去のみにする、未来のみにする、タイムウィンドウ内のアクティビティのみ考慮する、列ではなく集合や多重集合にする、といった抽象化を行うことでより単純な状態遷移系が得られる。
状態遷移系からのペトリネットの学習では、リージョンと呼ばれるある条件を満たす状態集合を縮約してプレースにすることで、ペトリネットを学習する。リージョンは、各遷移ラベルについてリージョンに入る遷移か、出る遷移か、交差しない遷移か、そのいずれかであるような状態の部分集合。リージョンは色々なものが考えられるが、極小かつ自明なリージョン(空集合および全体集合)でないリージョンすべてを用いる。
クイズで、2回のattemptで二回とも違う箇所を一問ずつ間違えてしまい、スコアが 4.5 / 5.0 になってしまい、ちょっと悔しい。
今週の学習アルゴリズムはまだ実装してないけれど、後で実装しておきたい。
Process Mining: Data science in Action
https://www.coursera.org/course/procmin
#procmin
Learning dependency graph and causal net from event logs
https://gist.github.com/msakai/f0addf9ab8bd9dc18bb4
Learning transition systems from event logs and transforming the transition system into an equivalent Petri net using state-based regions
https://gist.github.com/msakai/615528334119b70a7dfd