Advertisement
Advertisement

More Related Content

Advertisement

Padoc_presen4R.pdf

  1. 前処理に重点おいた Padocデータ分析環境 2023/03/20 mabo 1
  2. 自己紹介と目次 1. 目的 2. データサイエンスの目的 3. データサイエンスの問題 4. データサイエンスの解決方法 5. Padoc分析環境の考え方 6. Padocの統合分析環境 7. Padocの機械学習モデル 8. Padocのイントール 9. Padocの事例 2 • 自己紹介 中井眞人 20年以上データサイエンティストとして働く • 実績 1.債務者の与信モデル 2.倒産率の推移予測 3.全社的ポートフォリオ分析 4.営業員の不正検知 5.最適人員配置 6.自然言語での要因分析 • 研究 1.VAEの潜在空間上の強化学習
  3. 1.目的 3 • データサイエンス工程での前処理が労力の70~80%占る • 主に前処理用のツールとしてPadocを提供 Padoc: Process and Analysis Data Optimization Circumstance
  4. データサイエンスの目的(1) • 今や生成モデルの時代・・だが 4 Mt.Fuji in style Gogh Whale in the sky BERTのChatBot(自作) 黒橋研のLLMを使用(参照先:https://note.com/npaka/n/na8721fdc3e24) cat to dog Stable Diffusion(自作:参照先 https://note.com/npaka/n/nd2b03d13a36a)
  5. データサイエンスの目的(2) 5 司馬遷 史記の編纂 徳川吉宗 小石川薬草園 ①集める→②理解する→③選択する→④活かす→⑤評価する • データサイエンスの手法は古代から存在した • 多くの知見を集めて問題解決する手法
  6. 2.データサイエンスの目的(3) 6 データサイエンスの目的 • 課題に関する集めたデータから発生メカニズムを推測し 解決方法をデータを使って実証的に示す • 機械学習は前処理で推測された発生メカニズムの モデル化に過ぎない 機械学習のモデル(例) • 判別分析 • 合理的配置や配分 • 需要予測 • 不正(異常)検知 • 推薦(穴埋)問題 データサイエンス 機械学習
  7. データサイエンスの目的(4) • 発想の転換 • 課題の発生メカニズムが不明の場合 主役をモデル→前処理へ変更する 7 課題 把握 モデル 構築 モデル評 価保守 課題データの 収集と理解 感応分析で データを選択 変数 加工 前処理 モデル 後処理 課題 把握 モデル 構築 モデル評 価保守 データの収集と 理解 業務知識で 要因を推測 要因の 兆候デー タを選択 課題の発生メカニズム(要因)の推測 モデル化 評価 DS:①集める→②理解する→③選択する→④活かす→⑤評価する
  8. 3.データサイエンスの問題(1) • 前処理は発生メカニズムを推測する工程なので70~80%を占める • 発生メカニズムは業務知識で選択したデータと課題との感応分析 で推測する 8 課題 把握 モデル 構築 モデル評 価保守 データの収集 と理解 業務知識で 要因を推測 要因の 兆候データ を選択 課題の発生メカニズム(要因)の推測 モデル化 評価
  9. 3.データサイエンスの問題(2) • 業務データからは課題は一般に見えない • 業務データは殆ど入出金・在庫の管理データで正確だが課題は見えない • User側のデータ管理者から複雑な業務データの構造を理解 • User側の業務従事者から業務に沿って業務データの内容を理解 • DS側とUser側は共同で発生メカニズムの仮説を立てる 9 User データ管理者 User 業務従事者 DS側
  10. 3.データサイエンスの問題(3) 10 • 業務データから発生メカニズムを示すデータの作成が容易でない 1. 課題の発生メカニズムによってデータを分割する必要がある 2. 過去のデータが無い (解約先や破綻先は削除されている場合が多い) 3. 業務データが複雑過ぎて内容が理解できない(下記参照) 1営業員 2支店 3顧客 4契約 5商品 6売上 7納品 8遅延 9入出金 10取消訂正 11日報 12営業履歴 13信用情報 営業データ(例) 別セグメント 発生要因が異なる
  11. 3.データサイエンスの問題(4) • 作成モデルが将来の運用データに適合するか不明 モデル作成データでの精度は意味がない。運用後の精度が大事 • 運用データが変化する可能性がある • 機械学習モデルの導入自体で運用データが変わる • 業務の拡大やビジネスの見直しにより運用データが変化する 11
  12. 4.データサイエンスの解決方法 • 課題の発生メカニズムの推測にはDS側とUser側の協調が必要 • 将来の運用も考えるとUser側によるモデル調整が必要 • 現在はDS側とUser側で協調できる適切な分析環境が無い • モデル作成言語PythonはUser側の理解し難い • SQLでは分析が出来ない 12 DS側 User側 DS側とUser側が協調できる分析環境をPadocが提供
  13. 5.Padoc分析環境の考え方 • Padocはテーブル型データを扱う • テーブル型データの編集や結合は コマンドで行う • 課題と感応の強さの順にデータ表示 できる • 分析結果をUserとで確認できる • コマンドの並びでUserが理解と確認 ができる 13 get data1; //テーブル型データの読込 wrk = undate(today) - undate(birthday); age = wrk/365.25; //年齢の計算 データ編集コマンド put data2; get data2; //別のデータの読込 merge data2 by id //マージコマンド put data3; get data3; cross target by age x1 x2 x3 x4 x5; get data3; reg target by x1-5 //分析コマンド anaput out1; Get out1 plot scat x1 x2 x3 by target;
  14. 6.PADOCの統合分析環境(操作) • コントロール画面① • コマンドの編集② • 反転部分だけ実行可能 • 実行結果のログの表示③ • 実行結果のテーブル表示④ • 分析結果のPlot表示⑤ ① ② ③ ④ ⑤ 実行アイコン データ編集と分析の統合環境
  15. 6.PADOCの統合分析環境(機械学習モデル) Cox Hazard 3Dの重回帰結果 SVM ガウス過程回帰 カーネル回帰 最短経路問題 ベイジアンネット 共分散構造分析(SEM) ガウス構造(GGM)
  16. 8.PadocのInstall 16 https://padoc.info/ download先のDirにある readMe.htmlに従って インストールする instructYou.htmlは分析 事例の実行方法を示す
  17. 7.Padocの記述例・人種問題の分析(1) home pgm; //dataはprogramと同じDirにある get banker.csv@; /* 人種・職種の整数→コード型に変更*/ attr name type/ minority:code jobcat:code ; put bank; get bank; /* 人種・職種別に給与の平均を計算 */ sumup salnow by minority jobcat; anaput work; get work; /* 職種-人種ラベル作成 */ jobnm=stradd(stradd(jobcat,”-”),minority); put work1; get work1; /* 職種・人種別の平均給与Plot */ plot bar salnow by jobnm/ yrange:[0:40000] ; 17 米国の銀行の人種と職種 に給与の差があるか調査 職種 1:行員 2:新人行員 3:警備 4:技術者 5:管理職 6:MBA 7:特殊 職種1,2の白人は給与 が僅に高いが、職種4,5 の白人は逆に低い
  18. 7.Padocの記述例・ローンのリスク層を計算(2-1) 18 ローン情報 顧客コード(複数) 個人コード サマリー 顧客コード 個人コード summary 個人データ 個人コード 家族コード 家族データ 家族コード 統合情報 顧客コード 個人コード 家族コード ローン破綻情報 分析データ 金額 返済 年齢 年収 破綻 変数加工 merge merge 感応度 分析 変数選択 判別ツリー 省略
  19. 7.Padocの記述・例ローンのリスク層の分析(2-2) /* 契約情報読込 */ get loan3ContR.csv@; select personid contract mon amount payrate bonus; paym=amount/mon+amount*payrate/100/12; Put cont0; /* 個人情報を顧客IDでマージ */ Get cont0; merge loan3PersonR.csv@ by personid/ method=and11 ; put togo0; /* 家族情報を世帯IDでマージ */ get togo0; merge loan3Home.csv@ by homeid/ method=and11 ; put togo1; /* 延滞情報を契約IDでマージ */ get togo1; merge loan3Bank.csv@ by personid/ method=and11 ; put loan3togo@; 19 /* 変数追加 */ get loan3togo@; old=ifix((undate(20180101)-undate(birth))/365.25); //年齢 workold=old-workspan; //就業年齢 if(bonus > 0) bonflg=“1”; //賞与有無 else bonflg="0"; ltoi = amount/income; //借金/収入 ptoi = paym/income; //金利/収入 put loan3ana@; /* 破綻先(def=bad) と他の変数のCross 感応度解析 */ get loan3ana@; cross def by counts amount sex work job income workspan marrige family home homespan openen old workold bonflg paym ltoi ptoi; /* 破綻先(def=bad)のTree分析 */ get loan3ana@; tree def by counts amount sex work job income workspan marrige family home homespan openen old workold bonflg paym ltoi ptoi/ target/bad,good terminal=100 /* 末端ノード数 */ test=50 /* 試験用のデータの率 50%*/ ; anaput anaout; /* 試験データの精度曲線 */ get anaout; plot line distincRate by countRate; ローンの申し込客のリスク層の分析 契約情報・個人情報・家族情報・延滞情報 を連結して判別ツリーでリスク層を検出
  20. 7.Padocの記述例・ローンのリスク層の分析(2-3) 20 破綻先と個人情報とのCross感応度 判別ツリーによるリスク層の検出
  21. 7.Padocの記述例・ローンの破綻率を計算(2-4) 21 get train3; /* ロジット回帰 */ logit deflg by bonflg work_dmy1 work_dmy3-4 home_dmy1-8 marrige_dmy1 ltov family income homespan openen old workspan ptov; anaput anaout; //work_dmy2 は発散する get anaout; /* ロジット回帰結果 パレート図の表示 */ plot line logitRate by countRate; get test3; /* 試験データのロジットモデル適用 */ score deflg by bonflg work_dmy1 work_dmy3-4 home_dmy1-8 marrige_dmy1 ltov family income homespan openen old workspan ptov; anaput test3out; get test3out; /* 試験データでのパレート図の表示 */ plot line logitRate by countRate; ローンの申し込客の破綻率のロジット回帰 個人・契約・家族・延滞・を連結したデータ でロジット回帰で破綻率を計算 /* 連結データの読込 */ get loan3ana@; /* カテゴリのOneHot化 */ onehot work home marrige; put anadata0; get anadata0; select def bonflg work_dmy1-5 home_dmy1-8 marrige_dmy1 workold ltov family old income homespan openen workspan ltov ptov; put anadata1; get anadata1; /* 目的変数の指標化 */ if(def == "good") deflg=0; else deflg=1; put anadata2; get anadata2; /* 学習データ2000件と試験データを分離4000件 */ rnd=random; sort rnd; if(# <= 2000) outrec train3; //学習データ else outrec test3; //試験データ
  22. 7.Padocの記述例・ローンの破綻率を計算(2-4) 結果 22 ロジット回帰結果 学習データでのパレート図 試験データでのパレート図
Advertisement