paxata - storage.googleapis.com · 1. datarobotとpaxataによるai民主化のアプローチ 2....
TRANSCRIPT
Agenda
Confidential. ©2019 DataRobot, Inc. – All rights reserved
1. DataRobotとPaxataによるAI民主化のアプローチ2. Paxataとは?3. そのデータ、予測モデリングに適した形になってますか?
a. アクションに沿ったターゲット変数の形式にするb. 適切な範囲のデータを用いる
4. 予測モデリング可能な形にデータの前処理を行うa. Paxataによるデータの前処理
i. ターゲット変数の加工ii. 適切な範囲のデータを抽出
5. データをより予測に適した形に前処理するa. 文字列と複雑に複合した数値部分を取り出す
6. 予測に有用な追加テーブルを簡単に結合する7. まとめ
Confidential. ©2018 DataRobot, Inc. – All rights reserved
データサイエンティストに必要とされるスキル
DataScientist
数学&統計
ドメイン知識
データサイエンス
プログラミングスキル
● 業務知識● データへの理解● 行動可能な情報を抽出するコーディング技術● データを操作するためのコーディング技術● データ探索するためのコーディング技術● データ収集のコーディング技術● モデルを構築するためのコーディング技術● モデルを実装するためのコーディング技術● 基礎統計● アルゴリズムの仕組みの理解● 実践的な知識と経験● 予測結果と現実値との乖離理由を説明する知識
前提条件
Confidential. ©2018 DataRobot, Inc. – All rights reserved
データ・サイエンスができる人材を増やすには
現在
5
AIの民主化
データサイエンティスト
ビジネス・アナリストデータ・アナリスト
ビジネスユーザー
データサイエンティスト
シチズン・データ・サイエンティスト
ビジネスユーザー
シチズン・データ・サイエンティストの指導、育成、支援、監査
Confidential. ©2018 DataRobot, Inc. – All rights reserved
機械学習の自動化
シチズン・データサイエンティスト(CDS)
モデル解釈
課題設定
事業実装データ準備 モデル生成
データ準備やモデル生成に費やす時間を、課題解決そのものに注力できる
データ準備
課題設定
モデル解釈
モデル生成
事業実装
従来型のデータ・サイエンス
Citizen DSによるデータ・サイエンス × DataRobot, Paxata
Confidential. ©2019 DataRobot, Inc. – All rights reserved
Paxataとは?
Paxata(パクサタ)は、ビジネスデータに知見を持つ現場のユーザーが自分のほしいデータをセ
ルフサービスで準備できる環境を提供します。
Confidential. ©2019 DataRobot, Inc. – All rights reserved
Paxataとは?
DataRobotとPaxataなら、データをすばやく活用し、何度も打ち手を実行できる!
Confidential. ©2019 DataRobot, Inc. – All rights reserved
本ワークショップの構成
生の業務データ(原石)
直接利用できる形になっているとは限らない(大抵はなっていない)
① 特徴量とターゲットを機械学習に適した形に変換する 前処理済みデータ
② 複数テーブルを予測単位にマッチした形でマージする
Confidential. ©2019 DataRobot, Inc. – All rights reserved
[ハンズオン] ローン貸し倒れ予測をやってみよう!
● 過去のローンデータから貸し倒れ(誰に貸したらお金を返してくれるか、返してくれないか)の予測モデルを作ってみよう。
● まずは、connpassからダウンロードした train.csvを開いて見てみよう。
Confidential. ©2019 DataRobot, Inc. – All rights reserved
DataRobotにアップロードしてみよう
マウスオーバーして、「ターゲットとして使う」をクリックする
Confidential. ©2019 DataRobot, Inc. – All rights reserved
開始ボタンを押して予測モデリングをやってみよう
① モデリングモードを「クイック」にする
② 開始ボタンをクリックする
Confidential. ©2019 DataRobot, Inc. – All rights reserved
実際に予測を行ってみよう
① 予測をクリックする
② test.xlsxをドラッグ&ドロップする
Confidential. ©2019 DataRobot, Inc. – All rights reserved
予測結果を確認してみよう
● この予測結果の出力を見て、おかしな点・困った点に気づいたでしょうか?
Confidential. ©2019 DataRobot, Inc. – All rights reserved
予測結果を確認してみよう
1. 多値分類になっており、ローンの各ステータスをとる確率が返ってきてる。 → で、これを元に何ができるんでしたっけ?
2. 全てのレコードでCurrentになる確率が最も高いと返ってきている。 → Curerntは貸し倒れるかどうかの結果が出ていない「現行ローン」という意味。 なぜ、こんな事になってしまったのでしょうか?
Confidential. ©2019 DataRobot, Inc. – All rights reserved
問題点①: 予測タスクがアクションに繋がらない
● ローンの状態は貸し倒れたかどうかの Yes/Noではなく、様々なステータスが記録されている。● これらの多値分類を行うことはできるが、それではアクション(貸し出し審査)につなげにくい。
○ ここで欲しいのは貸付可否の指標であり、「貸し倒れの確率」が該当する。
Confidential. ©2019 DataRobot, Inc. – All rights reserved
問題点②: データの範囲が適切でない
● 新しすぎるローンデータはまだほとんどローンの状態が ”Current”になっている。○ 貸し倒れ or notの決着がついていないため( LendingClubのローン期間は3~5年程度)。○ 予測したい最新のローン申請に対する予測は当然 ”Current”になってしまう。
まだ貸したばかりのローン!
Confidential. ©2019 DataRobot, Inc. – All rights reserved
では、どのようにデータを修正すれば良いのだろう?
● 予測がアクション(貸付審査)に繋がるように、ここでは以下のように二値化する。
予測ターゲットの作成
正常なローン(False): Fully Paid(全額返済) , Current(現行)問題のあるローン(True): Charged Off(不良債権) , Default(未納), In Grace Period(猶予期間
中), Late (16-30 days)(遅延支払(16~30 日)), Late (31-120 days)(遅延支払(31~120日))
新しすぎるローンの削除
● 貸付たばかりのローンは結果がまだ出ていないため、データから除いておく。● LendingClubのローン期間は3年 or 5年。ここでは2015年までのデータでモデリングすることにする。
一般に、実務データは予測モデリングに対して Readyとは限らない。予測に対してどのようなアクションをとるのかを念頭に置いてデータセットを設計する。その中で業務知識が必要になる場面もある。
Confidential. ©2019 DataRobot, Inc. – All rights reserved
Paxataでデータの前処理をやってみよう(学習データ)
値を選択し、変換したい値を入力するだけ!
変更処理の結果はリアルタイムに確認可能!
Confidential. ©2019 DataRobot, Inc. – All rights reserved
Paxataでデータの前処理をやってみよう(学習データ)
貸付日より簡単に「年」と「月」を抽出!2015年より新しい年のデータもクリックの操作で削除可能!
Confidential. ©2019 DataRobot, Inc. – All rights reserved
Paxataでデータの前処理をやってみよう(テストデータ)
画面上の操作でデータソースを切替えるだけで他のデータにも同じ処理を適用可能!
Confidential. ©2019 DataRobot, Inc. – All rights reserved
予測ターゲットを指定しよう
マウスオーバーして、「ターゲットとして使う」をクリックする
Confidential. ©2019 DataRobot, Inc. – All rights reserved
開始ボタンをクリックして、モデリングを開始しよう
① モデリングモードを「クイック」にする
② 開始ボタンをクリックする
Confidential. ©2019 DataRobot, Inc. – All rights reserved
できたモデルを確認してみよう
① 指標を「AUC」に設定する
② 二値分類課題に落とし込むことができた。
「特徴量のインパクト」や「特徴量ごとの作用」を見てどのような特徴量が予測に効いているのか、どのような依存性のカーブを描いているのかを理解しよう。
Confidential. ©2019 DataRobot, Inc. – All rights reserved
しかし、まだ改善の余地は大きい・・・
● 勤続年数が「10+ years」「< 1year」など、数値型として読み取れておらず、カテゴリになっている。● 精度面で懸念があるだけでなく、傾向が読み取りにくいなど、解釈もしにくくなってしまっている。
Confidential. ©2019 DataRobot, Inc. – All rights reserved
通常の場合は、コーディングを伴う前処理が必要になる
● 例えば、df_train['勤続年数 '] = df_train['勤続年数 '].apply(lambda x: re.sub('\D', '', x))のような処理をすることになるが、不慣れな人には難しい場合もある。
Confidential. ©2019 DataRobot, Inc. – All rights reserved
指定した文字列を削除!
before
データセットをより予測モデリングに適した形に加工する
after
「検索」には以下を指定 year years + < n/a (半角スペース)
Confidential. ©2019 DataRobot, Inc. – All rights reserved
開始ボタンをクリックして、モデリングを開始しよう
① モデリングモードを「クイック」にする
② 開始ボタンをクリックする
Confidential. ©2019 DataRobot, Inc. – All rights reserved
精度とインサイトを確認してみよう
● 勤続年数の前処理によって、モデルの精度が向上していることがわかる
前処理後
前処理前
Confidential. ©2019 DataRobot, Inc. – All rights reserved
精度とインサイトを確認してみよう
● 勤続年数が数値として扱われて、傾向がより把握しやすくなった○ 勤続年数1年以下はリスクが高い。10年以上になるとリスクが下がる。○ でも、一番危ないのは欠損(空欄)の人。欠損であることにも意味がある!
Confidential. ©2019 DataRobot, Inc. – All rights reserved
でも、データって複数テーブルあるのが普通ですよね?
複数テーブルの例:● ローン履歴、クレジットカード履歴、マクロ経済指標 、etc.● 製品情報、検査データ、 etc● 店舗情報、売り上げ情報、地域情報、カレンダー、 etc
テーブル間でデータの粒度が異なる場合もあり、複数テーブルの統合の難しい点の一つ
Confidential. ©2019 DataRobot, Inc. – All rights reserved
複数テーブルのマージにより、特徴量を追加する
● 複数テーブルの場合、DataRobotに入れるために1枚のテーブルにマージする必要がある
ローン情報 州別の年ごとのGDPデータ
Confidential. ©2019 DataRobot, Inc. – All rights reserved
追加データを簡単にマージする
製品側が自動でキー項目を表示!ノンコーディングでデータを結合可能!
Confidential. ©2019 DataRobot, Inc. – All rights reserved
開始ボタンをクリックして、モデリングを開始しよう
① モデリングモードを「クイック」にする
② 開始ボタンをクリックする
● 各自で交差検定スコアやインサイトの内容について見てみよう
Confidential. ©2019 DataRobot, Inc. – All rights reserved
[応用] サブのテーブルを集約した後にマージする
● マージの仕方によって生成される特徴量が異なってくる。それによって精度等の結果も変わってくる。
ローン情報 株式相場データ(時系列)
Confidential. ©2019 DataRobot, Inc. – All rights reserved
通常はSQLやpandasなどコーディングが必要となる
groupby, mean
merge
Confidential. ©2019 DataRobot, Inc. – All rights reserved
集約とマージを簡単に行う
■ date をyear、month、day に分割 ■ year、month でclose をgroup byして average を算出
Confidential. ©2019 DataRobot, Inc. – All rights reserved
まとめ現在 AIの民主化
データサイエンティスト
ビジネス・アナリストデータ・アナリスト
ビジネスユーザー
データサイエンティスト
シチズン・データ・サイエンティスト
ビジネスユーザー
シチズン・データ・サイエンティストの指導、育成、支援、監査
● 生のデータは通常、直接機械学習に用いてビジネス価値を生み出せる状態にはなっていない。● 前処理が必要となり、通常は多くのコーディング作業を伴う。● コーディングレスの前処理と機械学習を実現することにより、ユーザーは自分の専門領域に専念しながら
データから価値を生み出すことができる。