Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AutoMLを利用した機械学習モデル構築時に意識すること

 AutoMLを利用した機械学習モデル構築時に意識すること

AutoMLを利用した機械学習モデル構築時に意識すること
田中 陸生(ソフトバンク株式会社)

初出イベント:
SB Tech Night #8 SoftBank World Special
2022/07/28(木)18:30 〜 20:30
https://sbtechnight.connpass.com/event/249395/

SoftBank Tech Night

July 29, 2022
Tweet

More Decks by SoftBank Tech Night

Other Decks in Technology

Transcript

  1. 機械学習を用いたデータ分析のプロセスとAutoMLの範囲
 CRISP-DM ( 画像引用元: Wikipedia - Cross-industry standard process for

    data mining ) Business Understanding(ビジネス理解) ビジネスの背景の理解、課題の明確化、分析の対象と目標値の決定 Data Understanding(データ理解) 分析に必要なデータの収集とその中身(項目・量・質)の理解 Data Preparation(データ準備) 形式の変更、新たな項目の追加、テーブル結合 Modeling(モデル構築) アルゴリズム選択、検証の構築、パラメータ最適化、モデルの評価 Evalution(評価) モデルがビジネスに与える効果を評価し、展開可能か判断 Deployment(展開) 利用者に向けて展開を行い、計画に基づいた運用/監視を実行 AutoMLによる主な自動化対象
  2. AutoMLがあると何が嬉しいのか?
 効率化 簡易化 • 多数のアルゴリズムの試行 • パラメータチューニング • 試行結果の精度記録、比較用の可視化 •

    ノーコード/ローコードでの実行 • エラーを起こさないためのデータ前処理 START 時間のかかる反復作業を任せることができる点と 専門知識を持ったエンジニアでなくともモデル構築が可能になる点
  3. AutoMLがあればデータサイエンティストは要らないのか?
 AutoMLによってデータ分析プロセスが完全に自動化される訳ではないため ヒト(データサイエンティスト )の価値は残る 課題設定・業務適用 予測モデル構築 AutoMLの自動化範囲とヒトがケアすべき範囲 を理解して、協力することが必要 • 機械的/統計的処理はAutoML

    • 業務知見が必要な処理はヒト ヒトにしかできない仕事 • 機械学習で何を分析したいのか • 分析結果をどのように活かすのか Data Understanding(データ理解) Data Preparation(データ準備) Modeling(モデル構築) Deployment(展開) Evalution(評価) Bussiness Understanding(業務理解) 本日のテーマ
  4. AutoMLを利用したモデル構築時に ヒトがケアすべきポイント ①特徴量エンジニアリング ②パーティショニング ③リーク (leakage)の対応 ビジネス上で既知の事柄を データで表現することが重要 統計的数学的な処理は可能だが、 ドメイン知識が必要な範囲では

    AutoMLの対応は限られる 未知データに対する性能を測るた め、データセットを分割すること。適 切な手法はデータによって異なる ため、完全な自動化は難しい 本来得られるはずのないデータをモ デルの学習時に使用すること 絶対的な対策はなく、ドメイン知識を 必要とするため、AutoMLでの対応も 限られる
  5. AutoMLを利用したモデル構築時に ヒトがケアすべきポイント ①特徴量エンジニアリング ②パーティショニング ③リーク (leakage)の対応 ビジネス上で既知の事柄を データで表現することが重要 統計的数学的な処理は可能だが、 ドメイン知識が必要な範囲では

    AutoMLの対応は限られる 未知データに対する性能を測るた め、データセットを分割すること。適 切な手法はデータによって異なる ため、完全な自動化は難しい 本来得られるはずのないデータをモ デルの学習時に使用すること 絶対的な対策はなく、ドメイン知識を 必要とするため、AutoMLでの対応も 限られる
  6. 特徴量エンジニアリングの例
 居住地 年齢 東京 15 大阪 28 55 福岡 居住地

    年齢 1 15 2 28 -999 55 3 33 機械的な処理はAutoMLで対応可能 前回 機種変更日 2022/3/1 2021/12/24 2017/6/2 2020/6/1 前回 機種変更 年 前回 機種変更 月 前回 機種変更 日 2022 3 1 2021 12 24 2017 6 2 2020 6 1 契約月数 累計 支払金額 13 60000 29 156440 5 20050 50 354060 累計支払金額÷契約月数 4615 5394 4010 7081 性別 利用機種 男性 iPhone 女性 iPhone 男性 ガラケー 女性 Android 性別 利用機種 1 1 2 1 1 2 2 3 カテゴリ値→数値変換 欠損値埋め 日付型の自動分割 数値列同士の計算 例:機種変更有無の予測
  7. 特徴量エンジニアリングの例
 利用プラン ミニプラン 無制限 従量性 家族シェア 利用プラン 1 10 1

    5 業務知見に基づいた処理はヒトが対応 前回 機種変更日 2022/3/1 2021/12/24 2017/6/2 2020/6/1 現機種 利用月数 3 8 60 24 利用機種 利用機種 発売開始年 iPhone 2021 iPhone 2021 ガラケー 2015 Android 2020 利用機種 世代 0 0 -3 -2 年齢 15 28 55 33 年代 学年 1 9 2 0 5 0 2.4 0 年齢から年代と学年を派生 業務知見に基づいた 重み付けの実施 経過月を表す列を作成 機種の世代を表す列を作成 例:機種変更有無の予測
  8. AutoMLを利用したモデル構築時に ヒトがケアすべきポイント ①特徴量エンジニアリング ②パーティショニング ③リーク (leakage)の対応 ビジネス上で既知の事柄を データで表現することが重要 統計的数学的な処理は可能だが、 ドメイン知識が必要な範囲では

    AutoMLの対応は限られる 未知データに対する性能を測るた め、データセットを分割すること。適 切な手法はデータによって異なる ため、完全な自動化は難しい 本来得られるはずのないデータをモ デルの学習時に使用すること 絶対的な対策はなく、ドメイン知識を 必要とするため、AutoMLでの対応も 限られる
  9. パーティショニングとは
 予測 モデル の汎化性能を高く保つため、データセットを学習 /検定/テストに分割すること 未来のデータ 予測モデル構築に利用 予測対象 過去~現在のデータ 学習

    検定 テスト 参考書の問題 過去問 模試 例: 学習 検定 テスト (hold-out) hold-out法:与えられた比率に沿ってランダム分割 k-fold法:hold-out法の手続きをk回繰り返す 学習 学習 学習 検定 学習 学習 検定 学習 学習 検定 学習 学習 検定 学習 学習 学習 fold1 fold2 fold3 fold4 考え方 基本的な手法
  10. A パーティショニングにおける注意
 予測対象の偏り 時系列性 グループ性 時間軸 学習 検定 B C

    D E 顧客IDを記憶して購買傾向を学習しな いよう、学習データと検定データに同じ IDを混在させない対応が必要 →Group-k-fold法で対応 例:新規顧客の商品購入有無 (A~Eは顧客IDを表す) ランダム分割では、学習時に本来知り得 ない未来が見えてしまうため、時系列に 沿った分割が必要 →日付パーティションで対応 検定 学習 検定 2017~2020 2021 例:店舗の売上予測 例:解約予測 95人 fold1 fold2 fold3 60人 23人 5人 40人 77人 学習 検定 解約者数 予測対象の割合に偏りがあると fold毎の 精度が安定しないため、 割合を揃えた状態での分割が必要 →Stratified-k-fold法で対応 予測する問題に応じて適切な手法を選択する必要があり 業務知見を持ったヒトが対応する範囲
  11. AutoMLを利用したモデル構築時に ヒトがケアすべきポイント ①特徴量エンジニアリング ②パーティショニング ③リーク (leakage)の対応 ビジネス上で既知の事柄を データで表現することが重要 統計的数学的な処理は可能だが、 ドメイン知識が必要な範囲では

    AutoMLの対応は限られる 未知データに対する性能を測るた め、データセットを分割すること。適 切な手法はデータによって異なる ため、完全な自動化は難しい 本来得られるはずのないデータをモ デルの学習時に使用すること 絶対的な対策はなく、ドメイン知識を 必要とするため、AutoMLでの対応も 限られる
  12. リーク (leakage)とは
 本来得られるはずのないデータをモデルの学習時に使用すること モデル構築時の精度が不当に高くなるが、実際の予測に利用すると精度は低い 日付 曜日 天気 最寄り駅 乗降客数 来店者数

    2022/7/25 月 雨 45000 200 2022/7/26 火 曇り 50000 220 2022/7/27 水 曇り 52000 235 2022/7/28 木 晴れ 60000 342 例:店舗の来店者予測 学習 学習用データ(過去 ~現在) 日付 曜日 天気 最寄り駅 乗降客数 来店者数 2022/8/1 月 2022/8/2 火 2022/8/3 水 2022/8/4 木 予測 予測用データ(未来) 本来は知り得ない情報を利用 (7/25の乗降客数は7/25以前には分からないはず) • 天気や乗降客数と来店者の 関係を学習 • モデルの予測精度は高い 未来の値のため不明 • 来店者に大きく関係していた天気 や乗降客数が分からない状態での 予測 • 現実と離れた予測値
  13. リーク (leakage)を防ぐには?
 既知の未来情報(曜日、祝日)と 予測対象より前に観測された(発生した)事柄を利用すること データの成り立ちが分かるヒトの力が必要 日付 曜日 天気 最寄り駅 乗降客数

    来店者数 2022/7/25 月 雨 45000 200 2022/7/26 火 曇り 50000 220 2022/7/27 水 曇り 52000 235 2022/7/28 木 晴れ 60000 342 日付 曜日 1週間前の天 気 1週間前の 最寄り駅 乗降客数 来店者数 2022/7/25 月 雨 43000 200 2022/7/26 火 晴れ 62100 220 2022/7/27 水 晴れ 63200 235 2022/7/28 木 晴れ 59000 342 学習用データ 学習用データ 1週間前の値を採用することで 事前に分かる情報とする 対応例
  14. 終わりに • AutoMLを利用した機械学習モデル構築時に意識することは主に3つ ◦ 特徴量エンジニアリング ◦ パーティショニング ◦ リークの対応 •

    3つとも業務知見に基づいたヒトの判断が必要 • 上記ポイントを押さえつつ、可能な限りAutoMLに任せることで 効率的に予測モデル構築を進めることが可能