アクションマイニングを用いた最適なアクションの導出
Upcoming SlideShare
Loading in...5
×
 

アクションマイニングを用いた最適なアクションの導出

on

  • 3,249 views

 

Statistics

Views

Total Views
3,249
Views on SlideShare
1,985
Embed Views
1,264

Actions

Likes
12
Downloads
15
Comments
0

6 Embeds 1,264

http://blog.gepuro.net 755
https://twitter.com 445
http://estrellita.hatenablog.com 36
http://localhost 26
http://192.168.11.102 1
http://cc.bingj.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

アクションマイニングを用いた最適なアクションの導出 アクションマイニングを用いた最適なアクションの導出 Presentation Transcript

  • アクションマイニングを⽤いた 最適アクションの導出 2013年10⽉12⽇ 第34回Tokyo.R @sfchaos
  • ⾃⼰紹介 � TwitterID:@sfchaos � お仕事:⾦融⼯学→データマイニング � Rを使わなくても良い勉強会があると聞き, ⾶んできました! 1
  • 1. イントロダクション 2
  • 真夏⽇ですが, 秋ですね! 3
  • 出典:http://markezine.jp/article/detail/18435 2013年秋 今をときめく データサイエンティストたち 出典:佐藤洋⾏他,データサイエンティスト養成読本,    Software Design Plus, 技術評論社, 2013年. 4
  • データサイエンティストに憧れて・・・ 機械学習を使って予測精度を上げれば 業務に使ってもらえる 5
  • そんな⾵に思っていた時期が ありました 6
  • ところが,世の中はそんなには ⽢くない(場合がある)らしい 頑張って 予測精度を 上げたのに 業務に合わず 使ってもらえず わずかでも 精度を上げて 胸張るが 売上コスト 説明できず 予測力 端から見れば テストの点 数点アップも 劣等生 7
  • 予測に限らずパターン発⾒でも 得られた知⾒をアクションに 結びつけることが重要 8
  • 例えば退会者の分析 (churn analysis) 「誰が退会するか」だけではなく, 「どうすれば退会を阻⽌できるか」が 実務的には重要 9
  • そんなある⽇⾒つけた アクションマイニングという キーワード 10
  • というわけで, 今⽇はアクションマイニングの サワリについてお話します 11
  • 2. アクションマイニング 12
  • アクションマイニングとは, アクション可能な知識発⾒の⼀分野 (Actionable Knoledge Discovery, AKD) 13
  • 従来の予測・パターン発⾒ 従来の予測・パターン発⾒では, 説明変数を原因, 結果変数を結果として考える. 説明変数 結果変数 14
  • 決定⽊ サービス レベル Low High Middle 性別 ⼥性 0.2 Low 男性 0.9 レート 0.1 0.9 High 0.2 顧客の満⾜度 15
  • アソシエーション分析 以下が起きているときに,チーズを無料にすれば ワインを購⼊する⼈は増えるか? � 多くの消費者がパンを購⼊する � あまり多くの消費者はチーズを購⼊しない パンとチーズを 購⼊ ワインを 購⼊する 16
  • アクションマイニング 結果変数を⽬標値にするために, 説明変数をどのように変えればよいか 説明変数 現状の状態 変更後の 状態 結果変数 何を どのように 変えれば よいか? 現状値 ⽬標値 17
  • 3. 因果ネットワーク 18
  • 因果ネットワークとは, 変数の間の(因果)関係をあらわした ⾮循環有向グラフ (asyclic directed graph) 19
  • 季節 スプリン クラー ⾬ 湿り 滑り やすさ 20
  • 必要なパッケージのインストール � Rgraphvizパッケージ > source("http://bioconductor.org/biocLite.R") > biocLite("Rgraphviz") � bnlearnパッケージ > install.packages("bnlearn") 21
  • Alarmデータセット � 患者の診断項⽬とアラームのデータセット > library(bnlearn) > alarm[1:2, ] CVP PCWP HIST TPR BP CO HRBP HREK HRSA PAP SAO2 FIO2 1 NORMAL NORMAL FALSE LOW NORMAL HIGH HIGH HIGH HIGH NORMAL NORMAL LOW 2 NORMAL NORMAL FALSE NORMAL LOW LOW HIGH HIGH HIGH NORMAL LOW NORMAL PRSS ECO2 MINV MVS HYP LVF APL ANES PMB INT KINK DISC 1 HIGH ZERO HIGH NORMAL FALSE FALSE FALSE FALSE FALSE NORMAL FALSE TRUE 2 HIGH ZERO ZERO NORMAL FALSE FALSE FALSE FALSE FALSE NORMAL FALSE FALSE LVV STKV CCHL ERLO HR ERCA SHNT PVS ACO2 VALV VLNG VTUB 1 NORMAL NORMAL HIGH FALSE HIGH FALSE NORMAL NORMAL NORMAL HIGH LOW ZERO 2 NORMAL LOW HIGH FALSE HIGH FALSE NORMAL LOW LOW ZERO ZERO LOW VMCH 1 NORMAL 2 NORMAL 22
  • Alarmデータセット � 診断項⽬(変数)間の関係を可視化 > library(bnlearn) > res = empty.graph(names(alarm)) > modelstring(res) <paste("[HIST|LVF][CVP|LVV][PCWP|LVV][HYP][LVV|HYP:LVF]", + "[LVF][STKV|HYP:LVF][ERLO][HRBP|ERLO:HR][HREK|ERCA:HR][ERCA]", + "[HRSA|ERCA:HR][ANES][APL][TPR|APL][ECO2|ACO2:VLNG][KINK]", + "[MINV|INT:VLNG][FIO2][PVS|FIO2:VALV][SAO2|PVS:SHNT][PAP|PMB][PMB]", + "[SHNT|INT:PMB][INT][PRSS|INT:KINK:VTUB][DISC][MVS][VMCH|MVS]", + "[VTUB|DISC:VMCH][VLNG|INT:KINK:VTUB][VALV|INT:VLNG][ACO2|VALV]", + "[CCHL|ACO2:ANES:SAO2:TPR][HR|CCHL][CO|HR:STKV][BP|CO:TPR]", sep = "") > graphviz.plot(res) 23
  • MVS DISC PMB INT PA P V MCH KINK VLNG SHNT VTUB PRSS 複雑な,あまりに複雑な FIO2 APL MINV VALV PVS TPR A NES ACO2 SAO2 ECO2 HY P LVF CCHL LVV STKV HIST ERLO HR ERCA PCWP CV P CO HRBP HRSA HREK BP Blood Pressure 24
  • 4. 因果ネットワークを⽤いた アクションマイニング 25
  • 今回は次の論⽂で提案された ⼿法を紹介 P.Shamsinejadbabak, M.Sarace, and H.Blockeel, Causality-based costeffective action mining, 2013. 26
  • CREAMアルゴリズム 27
  • 滑りやすさを 説明変数(要因)の状態を 変えたときに, 結果変数が⽬標値になる 条件付確率を算出し, 期待効果を推定 Step.1 因果ネットワークが与えられた前提で, 以下の値を外製的に設定 § スプリンクラーをOffからOnに変えるコスト § 滑りやすさが変更されたときに得られる利益 季節 Step.3 スプリンクラーをOffからOnにしたときに, ⽬標とする滑りやすさが実現する 条件付確率を算出 スプリン クラー ⾬ 湿り 滑り やすさ Step.2 ⽬標とする滑りやすさを設定 Step.4 Step.1で設定した利益とStep.3で求めた条件 付確率から,利益upの期待値を算出 Step.5 スプリンクラーをOffからOnにする期待効果 = Step.4で算出した利益upの期待値 Step.1で設定したコスト 28
  • こんな感じでアクションが出てくる � 業務では,このような分析結果をもとに,変数を変えるため の施策を考える活⽤イメージ(?) アク ショ ン ID 001 結果 効果 (=利益 - コスト) CVP=HIGH => NORMAL BP=HIGH ⇒ NORMAL 300,000円 002 ・・・ (⾎圧が「⾼」から 「正常」に) ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ 29
  • Rでの実装 cream.main <- function(target="BP", n=173328) { # CREAM CREAMアルゴリズムを実⾏する関数 # @param target: target attribute(character) # @param n: number of record of observational data library(bnlearn) ( ) # 観測データ(アラームデータセット) data(alarm) # CREAM CREAMアルゴリズムの実⾏ cost <- 1.0 profit <- 1.0 cn <- hc(alarm) cream(alarm, target, "NORMAL", cost, profit, cn) プログラムは 後⽇公開予定 } 30
  • Rでの実装 cream <- function(x, target, target.value, cost, profit, cn) { # The CREAM algorithm # for learning cost-effective action sets from causal networks # # # # # # # @param x: object data(data frame or matrix) @param target: target attribute(character) @param target.value: target value @param cost: cost data(numeric) @param profit: profit(numeric) @param cn: underlying causal network @return library(foreach) library(doSNOW) プログラムは 後⽇公開予定 var.list <- colnames(x) to.str <- paste0("(", target, "=='", target.value, "')") result <- vector("list", nrow(x)) fitted <- bn.fit(cn, x) ...  ... } 31
  • CREAMをさらに進化させて 因果ネットワークも内部で推定する ICE-CREAM(アイスクリーム) という⼿法もある 32
  • 5. まとめ 33
  • � アクションマイニングは,⽬的とする状態にするた めに,どのような要因を変化させると効果的かに ついて⽰唆. � ぶっちゃけ,当初の⽬的からすると,ややスケー ルダウンな感じも・・・ � が,うまく使えば「何をどう変えれば収益をupさ せられるか」が分かるかも!? 34
  • そんなこんなで, 気がついたら Rを使ってしまっていた・・・ 35
  • やはり便利ですね,Rは! 36
  • 参考⽂献 ⽂献名 著者 出版社等 Incorporating Hendrik Blockeel COSTS causal reasoning workshop @ ICDM 2012 in cost-effective コメ ント 下記の論⽂を要訳し たスライドであり,分 かりやすい. action mining Causality-based Cost-effective Action Mining Action Rules Mining Pirooz Shamsinejadbab aki, Mohamad Saraee, and Hendrik  Agnieszka Dardzinska 因果ネットワークを⽤ いたCREAM, ICECREAMという2つのア クションマイニングのア ルゴリズムを提唱. Springer 未読.この分野を専 ⾨的に扱った本. 37