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

SPSS Modeler Flow で儲かるAIをつくる(ワトソンカフェ版)

1a818bcb46ae361694782268afd5fb21?s=47 makaishi2
July 28, 2021

SPSS Modeler Flow で儲かるAIをつくる(ワトソンカフェ版)

2021-07-28 水曜ワトソンカフェ発表資料

1a818bcb46ae361694782268afd5fb21?s=128

makaishi2

July 28, 2021
Tweet

Transcript

  1. SPSS Modeler Flow で 儲かるAIをつくる ⽔曜ワトソンカフェ アクセンチュア株式会社 ビジネス コンサルティング本部 AIグループ

    シニア・プリンシパル ⾚⽯ 雅典
  2. 講演者プロフィール アクセンチュア株式会社 ビジネス コンサルティング本部 AIグループ シニア・プリンシパル 1987年⽇本アイ・ビー・エムに⼊社。2020年12⽉に同社を退職。直近の数年は、Watsonやデータサイエンス系製 品の技術セールスとして活動。 2021年3⽉アクセンチュア⼊社。 著書

    「Pythonで儲かるAIをつくる」「最短コースでわかるディープラーニングの数学」⽇経BP 「現場で使える!Python⾃然⾔語処理⼊⾨」(共著) 翔泳社 「Watson Studioで始める機械学習・深層学習」リックテレコム お断り 講演者は現在はアクセンチュアに所属しておりますが、本⽇お話しする内容はアクセンチュアではなく前職(IBM)で得た経験や知⾒をベースにしております。
  3. 「Pythonで儲かるAIをつくる」ご紹介 ⾒込み客、⼟⽇の需要、商品リコメンド… 営業、マーケティングが劇的に変わる 業務に本当に役⽴つ “儲かるAI”を⾃分で作る︕ 業務の課題を認識し、どう改善するかという「業務⽬線」が必要なのは従来システムと同じですが、AIの構築ではさらに 業務の課題が本当にAIで解決できるのか、AIのどの処理⽅式なら適⽤できそうかという「技術⽬線」が不可⽋なので す。 本書のPython実習で学ぶことで、「AIの⽬利きができる技術⽬線」を獲得し⾃分でもAIを作れるようになります。 1章

    業務と機械学習プロジェクト 2章 機械学習モデルの処理パターン 3章 機械学習モデルの開発⼿順 4章 機械学習モデル開発の重要ポイント 5章 業務要件と処理パターン 6章 AIプロジェクトを成功させる上流⼯程のツボ Amazon(単⾏本) https://www.amazon.co.jp/dp/4296106961 Amazon(Kindle) https://www.amazon.co.jp/dp/B08F9P726T 書籍サポートページ (全実習コードGithubでダウンロード可) https://bit.ly/2EbU3hz 当講演の1章と2.1節・2.2節は、こ の本の抜粋となっています。 Kindle版が2020年12⽉にAmazon⼈⼯知能 カテゴリで約2週間1位でした︕
  4. ⽬次 1. ⼈⼯知能・機械学習⼊⾨ 2. モデル構築デモ 2.1 前提 2.2 Pythonによる実装 2.3

    SPSS Modeler Flowによる実装 2.4 ツール⽐較まとめ ※ 当資料の2.2節までの図版はすべて「Pythonで儲かるAIをつくる」⽇経BP からの引⽤です。
  5. ⽬次 1. ⼈⼯知能・機械学習⼊⾨ 2. モデル構築デモ 2.1 前提 2.2 Pythonによる実装 2.3

    SPSS Modeler Flowによる実装 2.4 ツール⽐較まとめ
  6. ⼈⼯知能(⽇本語Wikipediaの定義): 「知能」を研究する計算機科学の1分野 機械学習: ⼈⼯知能を実現する⼿段のうち、現在最も有⼒とされている⼿法です。 ⼈⼯知能には、機械学習以外の実現⽅法も存在します。 代表的な⼿法としてはルールベースシステムと最適化システムがあります。 1. ⼈⼯知能とは

  7. 1. ディープラーニングと構造化・⾮構造化データ ディープラーニングとは機械学習の実現⽅式(アルゴリズム)の⼀つです。 複数のノードを組み合わせてモデルを作るという特徴から独⾃に進化しましたです。 画像、⾳声、テキストなど⾮構造化データと呼ばれる対象を扱うのが得意です。 ਤΛݟͳ͕Βɺࣗ෼͕ۀ຿Ͱ "* Խ͍ͨ͠෦෼͕ͲͷॲཧύλʔϯʹରԠ͢Δͷ ͔ߟ͑ͯΈ͍ͯͩ͘͞ɻ 

    σΟʔϓϥʔχϯάͱߏ଄Խɾඇߏ଄Խσʔλ ɹػցֶशͷॲཧύλʔϯΛ෼ྨͨ͠ਤ  ʹ͸ʮσΟʔϓϥʔχϯάʯͱ ͍͏ݴ༿΋ग़͖͍ͯͯ·͢ɻࡢࠓͷ "* ϒʔϜͷதͰඇৗʹΑࣖ͘ʹ͢Δͷ͕ σΟʔϓϥʔχϯάͩͱࢥ͍·͢ɻσΟʔϓϥʔχϯάͷҐஔ෇͚ʹ͍ͭͯ؆ ୯ʹઆ໌͠·͢ɻ ɹਤ  Λݟ͍ͯͩ͘͞ɻຊষͰઆ໌͍ͯ͠Δॲཧύλʔϯ͸ɺ͍Θ͹ػցֶ ػցֶशͷΞϧΰϦζϜ 9(#PPTU  ϩδεςΟοΫճؼ ܾఆ໦ ϥϯμϜϑΥϨετ σΟʔϓϥʔχϯά ଟ૚ԽͰൃల ར༻ൣғͷ֦େ ը૾ɺಈըɺςΩετɺԻ੠ͳͲ χϡʔϥϧωοτϫʔΫ $// 3// -45.ͳͲ ਤ ɹػցֶशͱσΟʔϓϥʔχϯάͷؔ܎ ɹݩʑɺ೴ͷਆܦࡉ๔ʢχϡʔϩϯʣΛ਺ֶతʹϞσϧԽͯ͠Ͱ͖ͨʮχϡʔ ϥϧωοτϫʔΫʯͱݺ͹ΕΔΞϧΰϦζϜ͕͋Γ·ͨ͠ʢਤ ʣ ɻχϡʔ ϥϧωοτϫʔΫͰ͸ɺχϡʔϩϯΛ໛ͨ͠ʮϊʔυʯΛ֊૚తʹͭͳ͍ͰϞ σϧΛ࡞Γ·͢ʢਤ ʣ ɻͦͷϊʔυؒͷ઀ଓํ๏ʹࣗ༝౓͕͋ͬͨͷͰɺ ৽͍͠छྨͷϞσϧΛ࣍ʑʹ࡞Δ͜ͱ͕Ͱ͖ಠࣗͷൃలΛ਱͛·ͨ͠ɻ ɹχϡʔϥϧωοτϫʔΫͷ͏ͪɺಛʹ֊૚͕  ૚Ҏ্ʢӅΕ૚͕  ૚Ҏ্ʣ ͷ΋ͷΛσΟʔϓϥʔχϯάͱݺΜͰ͍·͢ɻσΟʔϓϥʔχϯάͰ͸ɺϊʔ ਤ ɹχϡʔϩϯϞσϧͷ֓೦ਤ ࣠ࡧʢણҡʣ ࡉ๔ମ थঢ়ಥى ϊʔυ y x x x xN N 1 w1 w2 w w 3 2 3 ਤ ɹχϡʔϥϧωοτϫʔΫͷ֓೦ਤ ೖྗ૚ ӅΕ૚ ग़ྗ૚ ɿϊʔυ 2 ষ ػ ց ֶ श Ϟ σ ϧ ͷ ॲ ཧ ύ λ ồ ϯ
  8. 1. 構造化データAIと⾮構造化データAI Watson Cafeで主に取り上げているWatson API は⾮構造化データ AIであるのに対して、本⽇対象として いるのは、構造化データAIという違いがあります。両者の関係を整理すると下のようになります。 構造化データAI 非構造化データAI

    アルゴリズム 対象データ 利用方法 IBM Cloud上の実装 構造化データ (数値) 非構造化データ (画像、音声、テキスト等) 決定木など様々 主にディープラーニング 自分でモデルから作る 構築済みのものを APIとして利用 Watson Studio (AutoAI, SPSS Modeler Flowなど) Watson API (Assistant, Discovery, STT, TTSなど)
  9. 学習により作られる「モデル」 モデル ⼊⼒を受け付けて有⽤な結果を返すAIプログラム (数学的にいうと関数のようなブラックボックス) 学習 データに基づいて望ましい振る舞いを作ること 1. 機械学習モデルとは ػցֶश͸ "*

    Λ࣮ݱ͢ΔͨΊͷखஈͩͱઆ໌͠·ͨ͠ɻͰ͸ɺ۩ମతʹͲ͏ ͏खஈͳͷͰ͠ΐ͏͔ʁ͜ͷ͜ͱΛҰൠతʹࣔͨ͠ͷ͕ɺ࣍ͷਤ  Ͱ͢ɻ ϧʔϧ ϕʔε γεςϜ ࠷దԽ γεςϜ ػցֶश σΟʔϓ ϥʔχϯά ਤ ɹ"*ʢਓ޻஌ೳʣͱػցֶशͷؔ܎ ਤ ɹػցֶशͷఆٛ Ϟσϧ ೖྗ ग़ྗ ݪଇ ೖྗΛड͚ͯग़ྗΛฦ͢ϒϥοΫϘοΫε ʢϞσϧɿϒϥοΫϘοΫεΛ࣮ݱ͢Δ ϓϩάϥϜʣ ݪଇ Ϟσϧ͸ʮֶशʯʹΑΓ࡞ΒΕΔ ʢϩδοΫͰͳ͘σʔλʹΑΓ࡞ΒΕΔʣ 2 ষ ػ ց ֶ श Ϟ σ ϧ ͷ ॲ ཧ ύ λ ồ ϯ
  10. 機械学習は、「学習⽅式」により3つに分類されます。 1. 機械学習における「学習⽅式」 教師あり学習 正解を知った上で学習する 教師なし学習 正解を知らずに学習する (分析に近い) 強化学習 「報酬」を基に⾏動を学習

    ɹલઅͰఆٛͨ͠ػցֶश͸༷ʑͳํ͕ࣜ͋ΓɺͦΕΛʮॲཧύλʔϯʯͱݺ Ϳͱ  અͰઆ໌͠·ͨ͠ɻॲཧύλʔϯ͸େ͖͘ࡾͭͷʮֶशํࣜʯʹ෼ྨ Ͱ͖·͢ɻ ਤ ɹػցֶशͷࡾͭͷֶशํࣜ ʢਓ޻஌ೳʣ ϧʔϧ ϕʔε γεςϜ ࠷దԽ γεςϜ ػցֶश σΟʔϓ ϥʔχϯά ػցֶश ڭࢣͳֶ͠श ਖ਼ղΛ஌Βͣʹ ֶश ʢ෼ੳʹ͍ۙʣ ɾΞιγΤʔγϣϯ ෼ੳ ɾΫϥελϦϯά ॲཧύλʔϯ ॲཧύλʔϯ ɾ࣍ݩѹॖ ຊॻͷର৅ ͷֶशํࣜ ຊॻͷର৅֎ ͷֶशํࣜ ڧԽֶश ʮใुʯ Λجʹ ߦಈΛֶश σΟʔϓ ϥʔχϯά ڭࢣ͋Γֶश ਖ਼ղΛ஌ͬͨ ্Ͱֶश ɾ෼ྨ ɾճؼ ɾ࣌ܥྻ༧ଌ σΟʔϓ ϥʔχϯά
  11. 教師あり学習は「学習フェーズ」と「予測フェーズ」に分けられます。 学習フェーズは正解のわかった状態で、モデルの精度を⾼めていきます。 予測フェーズでは、正解はわからない状態です。 新しく来た未知のデータに対して、モデルが結果を予測します。 1. 教師あり学習 ڭࢣ͋Γֶश ɹػցֶशϞσϧͷೋͭΊͷಛ௃͸ʮֶशʯͱ͍͏ϓϩηεʹ͋Δͱઆ໌͠· ͨ͠ɻڭࢣ͋Γֶश͸ɺ ʮਖ਼ղʯ͕Θ͔ͬͨঢ়ଶͰֶश͢Δ͜ͱ͕ಛ௃Ͱ͢ɻڭ

    ࢣ͋ΓֶशͰ͸௨ৗɺਖ਼ղσʔλʢڭࢣσʔλͱ΋͍͍·͢ʣ͕͋Δঢ়ଶͰϞ σϧΛ࠷దԽ͢ΔʮֶशϑΣʔζʯͱɺਖ਼ղ͕Θ͔Βͳ͍ঢ়ଶͰɺֶशࡁΈϞ σϧͷग़ྗΛ༧ଌ݁Ռͱ͢Δʮ༧ଌϑΣʔζʯΛ෼͚ͯߟ͑·͢ɻ͜ͷ͏ͪɺ ʮ༧ ଌϑΣʔζʯͰ͸ʮֶशϑΣʔζʯͰଘࡏ͠ͳ͔ͬͨະ஌ͷೖྗσʔλ͕΍ͬ ͖ͯͯɺͦͷະ஌σʔλʹରͯ͠ద੾ͳ༧ଌ݁ՌΛग़͢͜ͱ͕Ϟσϧͷ໨తͰ ͢ɻ͜ͷ༷ࢠΛਤ  ʹࣔ͠·ͨ͠ɻ Ϟσϧ ೖྗ ೖྗ ೖྗ ೖྗσʔλ ਖ਼ղσʔλ ֶश Ϟσϧ ೖྗ ೖྗ ೖྗ ೖྗσʔλ ༧ଌ ग़ྗ ग़ྗ ग़ྗ ༧ଌ݁Ռ ֶशϑΣʔζ ༧ଌϑΣʔζ ਤ ɹڭࢣ͋ΓֶशͰͷֶशϑΣʔζͱ༧ଌϑΣʔζ श Ϟ σ ϧ ͷ ॲ ཧ ύ λ ồ ϯ
  12. 正解データなしに学習を⾏ないます。 「データ分析」に近い機械学習です。 1. 教師なし学習 ͳ͠Ͱֶश͢Δͷ͕ڭࢣͳֶ͠शͰ͢ɻ͜ͷ৚͔݅Β૝૾͕ͭ͘ͱࢥ͍·͕͢ɺ ڭࢣ͋Γֶशͱൺֱͯ͠೉қ౓ͷߴֶ͍शํࣜͰɺͰ͖Δ͜ͱ΋ݶఆతͰ͢ɻ ɹڭࢣͳֶ͠शͷ৔߹ɺ ڭࢣ͋ΓֶशͰઆ໌ͨ͠Α͏ͳʮֶशϑΣʔζʯͱʮ༧ ଌϑΣʔζʯͷ۠ผ͸ͳ͘ɺσʔλΛϞσϧʹ༩͑Δͱɺ͍͖ͳΓग़ྗ͕ಘΒ Ε·͢ɻڭࢣͳֶ͠श͸ɺػցֶशͷख๏ͷҰͭͰ͕͢ɺ

    ʮσʔλ෼ੳʹ͍ۙʯ ͱ΋͍͑·͢ɻਤ  ʹɺڭࢣͳֶ͠शͷॲཧΠϝʔδΛࣔ͠·ͨ͠ɻ ɹ͜͜·Ͱʹઆ໌ͨ͠ڭࢣ͋Γֶशͱڭࢣͳֶ͠शͱ͍͏ֶशํࣜͷ۠ผ͸ɺ ॲཧύλʔϯΛબ୒͢ΔࡍʹۃΊͯॏཁͰ͢ɻද  ͰվΊͯ੔ཧ͓͖ͯ͠· ͢ɻ Ϟσϧ ೖྗ ೖྗ ೖྗ ೖྗ ग़ྗ ग़ྗ ग़ྗ ग़ྗ ֶश ݁Ռ ਤ ɹڭࢣͳֶ͠शͷॲཧΠϝʔδ ֶशํࣜ ਖ਼ղσʔλ ओͳ໨త ϑΣʔζ ར༻࣌ͷೖྗσʔλ ڭࢣ͋Γֶश ඞཁ ༧ଌ ʮֶशʯͱʮ༧ଌʯ ະ஌ ڭࢣͳֶ͠श ෆཁ ෼ੳ ʮֶशʯͷΈ ط஌ ɹ͜͜·Ͱʹઆ໌ͨ͠ڭࢣ͋Γֶशͱڭࢣͳֶ͠शͱ͍͏ֶशํࣜͷ۠ผ͸ɺ ॲཧύλʔϯΛબ୒͢ΔࡍʹۃΊͯॏཁͰ͢ɻද  ͰվΊͯ੔ཧ͓͖ͯ͠· ͢ɻ Ϟσϧ ೖྗ ೖྗ ೖྗ ೖྗ ग़ྗ ग़ྗ ग़ྗ ग़ྗ ਤ ɹڭࢣͳֶ͠शͷॲཧΠϝʔδ ද ɹڭࢣ͋Γֶशͱڭࢣͳֶ͠श ֶशํࣜ ਖ਼ղσʔλ ओͳ໨త ϑΣʔζ ར༻࣌ͷೖྗσʔλ ڭࢣ͋Γֶश ඞཁ ༧ଌ ʮֶशʯͱʮ༧ଌʯ ະ஌ ڭࢣͳֶ͠श ෆཁ ෼ੳ ʮֶशʯͷΈ ط஌
  13. 機械学習でできることは、かなり限られています。 AIを使ったプロジェクトを進めるためには、実業務の中で、この限られた処理パターンに当てはめることが第⼀歩となります。 書籍の中で取り上げている処理パターンは以下のとおりです。 1. 機械学習の「処理パターン」 ɹ͔͜͜Βղઆ͢Δ  छྨͷॲཧύλʔϯΛද  ʹ·ͱΊ·ͨ͠ɻڭࢣͳ͠

    ֶशͱڭࢣͳֶ͠शͰͦΕͧΕ  छྨͣͭ͋Γ·͢ɻ छྨͷॲཧύλʔϯʹ ͍ͭͯɺ ষͰ͸࣮ۀ຿Ͱ͙͢࢖͑ΔϨϕϧͷྫ୊ΛऔΓ্͛ɺॲཧύλʔϯ ʹ߹ΘͤͨϞσϧͷ࡞ΓํΛ࣮ફతʹղઆ͍͖ͯ͠·͢ɻ͜ΕΒͷྫ୊Λ௨͡ ͯɺػցֶशΛଟ༷ͳۀ຿ʹ͏·͘ద༻Ͱ͖ΔΑ͏ʹͳΔ͜ͱ͕ຊॻͷ࠷େͷ ໨తͰ͢ɻ ද ɹ छྨͷॲཧύλʔϯͷղઆͱ࣮श ֶशํࣜ ॲཧύλʔϯ  ষͷղઆ  ষͷ࣮श ڭࢣ͋Γֶश ෼ྨ   ճؼ   ࣌ܥྻ෼ੳ   ڭࢣͳֶ͠श ΞιγΤʔγϣϯ෼ੳ   ΫϥελϦϯά   ࣍ݩѹॖ  
  14. 教師あり学習の1種です。 どのグループに属しているかを予測します。 (例) 顧客の様々な情報を⼊⼒として、営業活動が成功するか、失敗するかを予測する 1. 処理パターン「分類」 ͷಛ௃͸༧ଌ͍ͨ݁͠Ռ͕ʮͲͷάϧʔϓʹଐ͢Δ͔ʯͱͳΔ఺Ͱ͢ɻ͜Ε͔ ΒຊॻͰऔΓ͋͛Δྫ୊Λ୊ࡐʹઆ໌͠·͢ɻ ɹਤ 

    Λݟ͍ͯͩ͘͞ɻ͜ͷϞσϧͰ͸ۜߦͷి࿩Ӧۀۀ຿ʹ͓͍ͯɺސ٬ ৘ใΛೖྗσʔλͱͯ͠ɺސ٬ʹి࿩ͰӦۀΛ͔͚ͨ৔߹ɺ੒໿ͷݟࠐΈ͕͋ Δ͔Ͳ͏͔Λ༧ଌ͠·͢ɻސ٬͕ʮ੒໿͋Γʯ ʮ੒໿ͳ͠ʯͷͲͪΒͷάϧʔϓ ʹଐ͢Δ͔Λ "* ʹ൑அͤ͞ΔΘ͚Ͱ͢ɻ ʮ൑அʯΛਓؒͷ୅ΘΓʹ "* ʹ΍ͬͯ ΋Β͏ͱ͍͏ɺ࣮ۀ຿Ͱ࠷΋ར༻͞ΕΔॲཧύλʔϯʹͳΓ·͢ɻ ɹ͜ͷӦۀ੒໿༧ଌϞσϧ͸ɺ અͰղઆ͠·͢ɻͦ͜Ͱઆ໌͠·͕͢ɺ෼ྨ ͷॲཧύλʔϯͰ͸ɺϞσϧͷੑೳΛͲ͏ධՁ͢Δͷ͔͕େ͖ͳϙΠϯτͰ͢ɻ ͦ͜ͰӦۀ੒໿༧ଌϞσϧͱ͸ධՁํ๏Λม͑ͨέʔεͱͯ͠ɺຊॻͷαϙʔ ೖྗ ೥ྸ ৬ۀ  ࿈བྷճ਺ ܦա೔਺ ࠷ऴൢଅ݁Ռ ग़ྗ ੒໿͋Γ  ʢʣ PS ੒໿ͳ͠ ʢʣ Ϟσϧ ਤ ɹӦۀ੒໿༧ଌϞσϧ ίʔυ ɹ֬཰஋ͷ౓਺෼෍άϥϑͷදࣔ ᶄ ᶃ ˞ݟ΍͍͢Α͏ʹೋͭ ͷάϥϑ͸εέʔϧΛ ࣗಈௐ੔͍ͯ͠Δɻ ʮ੒ޭʯͷεέʔϧ͸ ࣮ࡍ͸΋ͬͱখ͍͞ Z@UFTUͱZ@UFTUͰσʔλ෼ׂ y0 = y_proba0[y_test==0] y1 = y_proba0[y_test==1] ࢄ෍ਤඳը plt.figure(figsize=(6,6)) plt.title(' ֬཰஋ͷ౓਺෼෍ ') sns.distplot(y1, kde=False, norm_hist=True, bins=50, color='b', label=' ੒ޭ ') sns.distplot(y0, kde=False, norm_hist=True, bins=50, color='k', label=' ࣦഊ ') plt.xlabel(' ֬཰஋ ') plt.legend() plt.show() モデル出⼒は「確率値」 で得られることが多い。
  15. 教師あり学習の1種です。 数値を予測する。 (例) 季節、曜⽇、天気、気温などを元にその⽇の貸⾃転⾞利⽤数を予測する。 1. 処理パターン「回帰」 Δ൑ผʢଟ஋෼ྨʣ ʯͱͯ͠঺հ͍ͯ͠·͢ɻ ɹҰํɺຊॻͷதͰѻ͏෼ྨ͸ɺ͢΂ͯάϧʔϓΛೋͭʹ෼͚Δ 

    ஋෼ྨͰ͢ɻ ͔͜͜Β୯ʹ෼ྨͱॻ͖·͕͢ɺ ஋෼ྨͷ͜ͱΛࢦ͠·͢ɻ  ճؼ ɹਤ  Λݟ͍ͯͩ͘͞ɻϞσϧͷೖྗͷ෦෼͸෼ྨͱ·ͬͨ͘ಉ͡Ͱ͢ɻ། ҰҟͳΔͷ͸ग़ྗͷ෦෼Ͱɺ͜ͷϞσϧͰ͸ʮͲͷάϧʔϓʹଐ͢Δ͔ʯͰͳ ͘ʮࣗసंར༻਺ʯͱ͍͏਺஋Λ༧ଌ͍ͯ͠·͢ɻ͜ͷΑ͏ʹ਺஋Λ༧ଌ͢Δ Ϟσϧ͕ʮճؼʯͰ͢ɻ ɹ ʮճؼʯͷྫ୊͸  અͰऔΓѻ͍·͢ɻਤ  Ͱࣔͨ͠ྫ͸ɺϨϯλαΠΫ ϧձࣾͷࣗసंར༻਺Λ༧ଌ͢ΔϞσϧͰɺ༵೔ɾఱؾɾ෩଎ͳͲʹΑΓɺࣗ సंར༻਺͕มಈ͢Δ͜ͱ͕༧૝͞Ε·͢ɻࣗసंར༻਺Λਖ਼֬ʹ༧ଌ͢Δ͜ Ϟσϧ ೖྗ قઅ ೥ ༵೔  ఱؾ  ࣪౓ ෩଎ ग़ྗ ࣗసंར༻਺ ਤ ɹࣗసंར༻਺༧ଌϞσϧ ػ ց ֶ श Ϟ σ ϧ ͷ ॲ ཧ ύ λ ồ ϯ ɹਤ  Ͱ͸ɺվળલͷ஋Λʮ༧ଌ݁Ռ ʯ ɺվળޙͷ஋Λʮ༧ଌ݁Ռ ʯͱ ͯ͠දࣔ͠·ͨ͠ɻಛʹ  ݄ޙ൒෼ʹؔͯ͠͸ɺվળલΑΓ࣮੷஋ʹ͍ۙͮͯ ਤ ɹνϡʔχϯάޙͷొ࿥Ϣʔβʔར༻਺༧ଌͱ࣮੷஋ͷ࣌ܥྻදࣔ ⿊線 実績値 ⻘線 モデル予測結果
  16. ⽬次 1. ⼈⼯知能・機械学習⼊⾨ 2. モデル構築デモ 2.1 前提 2.2 Pythonによる実装 2.3

    SPSS Modeler Flowによる実装 2.4 ツール⽐較まとめ
  17. ⽬次 1. ⼈⼯知能・機械学習⼊⾨ 2. モデル構築デモ 2.1 前提 2.2 Pythonによる実装 2.3

    SPSS Modeler Flowによる実装 2.4 ツール⽐較まとめ
  18. 2.1 前提 当講演では第1部で紹介した処理パターンのうち「教師あり 分類」のモデルを題材に2つのツールでモデル作成をし た結果をご説明します。前提は以下のとおりです。 対象データ︓タイタニック・データセット (書籍の4.1/4.2節で取り上げています) 処理パターン︓教師あり 分類 アルゴリズム︓決定⽊

    (書籍の4.3.6項で取り上げています) 書籍4.2節(データ前処理)ではデータ加⼯が⼀通り済んで、モデル作成の直前の状態になっています。 その状態から決定⽊のモデル作成をするコードを当講演⽤に追加しました(2.2)。 まったく同じデータから、SPSS Modeler Flowで 決定⽊モデルを作りました(2.3)。 最後に両者を⽐較した結果を考察としました(2.4)。
  19. 2.1 タイタニック・データセット タイタニック・データセットは、次のような項⽬からなる公開データセットです。 沈没した豪華客船タイタニック号の乗客・乗員名簿に⽣き残ったかどうかを⽰す項⽬を追加したデータで、機械学 習モデル構築によく⽤いられます。 フリー画像 参照元 https://publicdomainq.net/rms-titanic-ship-0004916/

  20. 2.1 決定⽊ 決定⽊とは、教師あり分類モデルを実現するアルゴリズムの⼀つです。注⽬している特定の項⽬の値により、データ をグループ分けするルールを⾃動的に作ります。 ルールが⼈間にわかりやすいため、よく⽤いられるアルゴリズムの⼀つとなります。 ܾఆ໦ܕ ɹಛఆͷ߲໨ʹᮢ஋ΛఆΊɺͦͷ஋ΑΓେ͖͍͔খ͍͔͞Ͱάϧʔϓ෼͚Λ͢ ΔํࣜͰ͢ʢਤ ʣ ɻ

    ೖྗʢՖห௕ɺՖห෯ʣ Ֆห෯ DN Ֆห௕ DN ͋΍Ί ͋΍Ί ͔͖ͭ͹ͨ ػ ց ֶ श Ϟ σ ϧ 4 ষ
  21. 2.1 機械学習モデル構築⼿順 機械学習モデル構築の標準的なフローは、右の図のようになります。 このプロセスは、実装⼿段がPythonであれ、SPSS Modeler Flow であれ共通です。 このうち、ポイントになるのは、「(3)データ前処理」と「(8)評価」のプ ロセスです。 (1)

    データ読み込み (3) データ前処理 (5) アルゴリズム選定 (7) 予測 (9) チューニング モデル開発フロー (2) データ確認 (4) データ分割 (6) 学習 (8) 評価
  22. ⽬次 1. ⼈⼯知能・機械学習⼊⾨ 2. モデル構築デモ 2.1 前提 2.2 Pythonによる実装 2.3

    SPSS Modeler Flowによる実装 2.4 ツール⽐較まとめ
  23. 2.2 Pythonの不都合な真実 (scikit-learnで決定⽊を作るときにつらい点) (3) データ前処理フェーズの課題 • 「決定⽊」のアルゴリズムは本来⼊⼒に⽋損値があっても構築可能ですが、 scikit-learnだとそれができません。 前処理として⽋損値対応が必要です。 •

    ⼊⼒にカテゴリ変数がある場合、One Hot Encodingによるダミー変数化の前処理が必要です。 どちらも本来の「決定⽊」では考えなくていいことですが、Python(scikit-learn)で実装する場合は対応の必 要があります。 (8) 評価フェーズの課題 • 項⽬名に⽇本語が含まれていると、決定⽊のツリー表⽰が⽂字化けします。 決定⽊モデルの最⼤の特徴であるツリー表⽰ができないことは、分析観点で⼤きなデメリットです。 唯⼀の回避策は項⽬名を英語にすることですが、標準的⽇本⼈からするとつらい。。。
  24. 2.2 ⽋損値対応とは データを読み込んだ直後の「タイタニック・データセット」 欠損値は「NaN」 で示される

  25. 2.2 ⽋損値対応の⼿順(状況確認) ⽋損値対応とは、具体的にどのような⼿順で⾏われるのでしょうか︖ 書籍の4.2節の内容を順に説明します。 最初に次のような関数により、項⽬ごとの⽋損値の状況を確認します。 項⽬「デッキ」に関しては、value_counts関数で現在の項⽬値ごとの個数も調べました。

  26. 2.2 ⽋損値対応の⼿順(対応⽅針決定) ⽋損値が⾒つかった3つの項⽬それぞれに、対応⽅針を決定します。

  27. 2.2 ⽋損値対応の⼿順(実装) 対応⽅針に応じて項⽬ごとに関数を使い分け、⽋損値対応をします。

  28. 2.2 ⽋損値対応の⼿順(結果確認) 最後に最終的な結果であるdf6に対して⽋損値チェックを⾏い、⽬的を達成できたことを確認します。

  29. 2.2 2値ラベルの数値化 項⽬値が"yes" or "no" や"male" or "famale"のように2つの値しかとらない場合を2値ラベルと呼びます。 この場合、2つの項⽬値を 1と0に割り当てる処理をします。

    タイタニック・データセットでは次の3つの項⽬があります。 male / female True / False
  30. 2.2 2値ラベルの数値化 2値ラベルの数値化は変換⽤の辞書を⽤意した上で、map関数により⾏います。 下の画⾯では「性別」を数値化しています。同じやりかたで「成⼈男⼦」「独⾝」も数値化します。 (参考) 変換前

  31. 2.2 多値ラベルの数値化 次の前処理は、多値ラベルの数値化です。 値が 2値でなく多値の場合は、下の図に⽰されるような One Hot Encodingの⼿法を⽤います。 ⼀⾒すると、3値の場合も0, 1,

    2を割り当てればよさそうに思えます。しかし、この場合、「ネズミ」「ゾウ」「キリン」にど の値を割り当てたらいいか、考えてみて下さい(数値にした瞬間、⼤⼩関係が意味を持つようになります)。
  32. 2.2 多値ラベルの数値化 One Hot Encodingには、get_dummies関数を利⽤します。書籍では、下のコードのようにenc関数を⼀度定 義して、この関数呼び出しを項⽬単位に⾏うことで対応しています。 元の項⽬「男⼥⼦供」が3項⽬ に分割され、値はすべて1か0に なっている

  33. 2.2 モデル構築(データ分割) 以上、書籍4.2節の実装の流れを⼀通り説明してきました。書籍の中ではこの後で「正規化」をしていますが、今回 の実習のように⽬的のモデルのアルゴリズムが決定⽊の場合、この処理は不要です。 講演⽤に、この段階のデータを⽤いて決定⽊(分類を実現するアルゴリズムの⼀つ)によるモデル構築を⾏ってみました。 モデル構築プロセスのうち「(4)データ分割」の実装は下記になります。 データ分割の実装イメージ

  34. 2.2 モデル構築(アルゴリズム選定・学習) モデル構築プロセスの次のステップである「(5)アルゴリズム選定」「(6)学習」の実装は下記になります。 (5) アルゴリズムとして「決定⽊」を 選定 (6) 学習の実施

  35. 2.2 モデル構築 (予測・評価) 作ったモデルで、検証データに対して「(7)予測」、「(8)評価」した結果は下記になります。 適合率・再現率ともに約70%の結果となりました。 (7)予測はpredict関数で⾏う (8)評価の結果 (8)評価の1⼿法として 「混同⾏列表⽰」がある

  36. 2.2 モデル構築 (評価) 決定⽊モデルでは、数値による評価以外に、判定基準のツリー表⽰があり、データ分析で⾮常に重要な機能です。 以下に作ったモデルから決定⽊のツリー表⽰をするPython実装と、結果の⼀部を⽰します。 しかし、肝⼼の項⽬名が化けてしまっているため、どの項⽬で判断がされているのかがわかりません。。。。現在のところ、 項⽬名をすべて英字表記する回避策しかありません。 項⽬名が⽂字化けして読めない

  37. ⽬次 1. ⼈⼯知能・機械学習⼊⾨ 2. モデル構築デモ 2.1 前提 2.2 Pythonによる実装 2.3

    SPSS Modeler Flowによる実装 2.4 ツール⽐較まとめ
  38. 2.3 SPSS Modeler Flow 以上、Pythonの実習で「不都合な真実」の状況がわかったかと思います。 では、まったく同じデータを使い、SPSS Modeler Flowを使った場合どのような実装の流れになるのか、⾒ていきま しょう。 その前に、IBM

    CloudにおけるSPSS Modeler Flowの位置づけを説明します。 IBM Cloud内には数百ものサービスがあるのですが、その1機能としてWatson Studioがあります。 Watson Studio⾃体が多くのツールの集合体です。その⼀つとしてこれからご紹介するSPSS Modeler Flowが あります。SPSS Modeler FlowはIBM社が元々持っているデータ分析ツールSPSS Modelerの「クラウド簡易 版」の位置付けとご理解下さい。
  39. 2.3 SPSS Modeler Flow 下の図が、IBM社の製品体系の中でのSPSS Modeler Flowの位置づけになります。 IBM CloudにはLite Acountという、クレジットカード登録なしに無期限で利⽤可能なライセンスがあり、⼀定時間

    内であれば、これからご紹介するSPSS Modeler Flowも無料で利⽤可能です。 IBM Cloud (Public) Watson Studio SPSS Modeler Flow SPSS Modeler (PC で利⽤する ソフトウェア製品) 機能の ポーティング
  40. 2.3 SPSS Modeler Flowによる決定⽊の実装 下の図が、SPSS Modeler Flowにより決定⽊のモデルを構築した結果になります。 各部品のノードを結線した形でモデルが作られているのがわかると思います。 いわゆる「ビジュアル・プログラミング環境」の位置づけになります。

  41. 2.3 検査ノードによるデータ検査 書籍 4.1 節で説明しているような「データ確認」は、検査ノードにより⾏います。 その結果例を以下に⽰します。 検査ノード

  42. 2.3 タイプノードの設定(1) SPSSによるモデル構築で⼀番肝になるのが、左から2つめの「タイプノード」の設定です。 この設定を⾏うことでPythonの実装で必要だった前処理などが簡単になる仕掛けです。 設定項⽬の「指標」と「ロール」について、別スライドで詳しく説明します。

  43. 2.3 タイプノードの設定(2) 設定項⽬をスクロールダウンした2ページ⽬です。

  44. 2.3 タイプノードの設定(3) 指標 該当項⽬が、どのような性質のデータかを指定するものです。 統計学で⽤いられる「尺度」の概念とほぼ同じと理解して下さい。 ⾃動認識結果がセットされていますが、誤っている部分は⼈間が⼿で修正をかけます。 よく使われるのが、連続型、フラグ型、名義型、順序型で、それぞれの意味は次のとおりです。 連続型︓ 年齢や、料⾦のように数値を取る項⽬です。値は整数値または浮動⼩数点値です。 フラグ型︓yes

    no や male/famale 、True/Falseのように2値の値を取る項⽬です。 名義型︓ child/man/woman のように3値以上の値を取る項⽬です。 順序型︓ 名義型のうち順番が決まっている項⽬(例 First/Second/Third)は順序型で定義します。
  45. 2.3 タイプノードの設定(4) ロール 個々の項⽬が、モデルでどのような役割を持つのかを指定します。 ⼊⼒︓モデルの⼊⼒となる項⽬(説明変数)に対して設定します。 デフォルトの状態ではすべて「⼊⼒」となっています。 ターゲット︓モデルの出⼒となる項⽬(⽬的変数)に対して設定します。 ターゲットとなる項⽬は、教師あり学習の場合1項⽬のみです。 なし︓モデルの⼊⼒にも出⼒にも利⽤しない項⽬は、「なし」に設定します。 Pythonで予測に使わない項⽬は学習前にdrop関数で落としますが、それに対応する設定です。

  46. 2.3 タイプノードの設定(5) ロール(続き) 今回、「⽣存」「等室」「乗船港コード」のロールを「なし」にしているのは、それぞれ 「⽣存可否」「等室名」「乗船港」というまったく同じ情報の項⽬が他にあるからです。 書籍4.2節「前処理」の冒頭では、drop関数で「⽣存可否」「等室名」「乗船港」の3つの項⽬を落としており、 それと同じ⽬的になります。 「儲かるAI」のPython実装では、One Hot Encodingを

    省くため「等室名」(First, Second, Third) を落として、 「等室」(1, 2, 3)を残しました。今の実習では「等室 名」が正しく「順序型指標」として認識されていた ので、人間にわかりやすい「等室名」を残していま す。
  47. 2.3 パーティションノードの設定 下記は、「パーティションノード」の設定画⾯です。 訓練70%、検証30%の⽐率を指定しました。 参考までに該当するPython実装を右に再掲しました。 Pythonでの実装

  48. 2.3 学習 以上の準備が終われば、⽋損値が残った状態で学習が可能です。 学習する時は、画⾯上部の「実⾏」ボタンをクリックします。 決定⽊モデル 学習済みモデル

  49. 2.3 決定⽊のツリー表⽰(1) 学習が終わると、次のようにモデルのツリー表⽰ができます。

  50. 2.3 決定木のツリー表示(2) 「分岐のラベル表示」オプションを指定した上で、図を拡大した結果です。 ※処理に乱数を使っている関係で一回ごとに多少結果は変わります。 ②男性の場合、次の 要因は「成人男子」 (男性では子供が優先 された) ①生死を分けた最大の 要因は性別

    (女性優先で救出された)
  51. 2.3 決定⽊ 精度評価結果 検証データに対する混同⾏列の評価結果も確認できます。 ※処理に乱数を使っている関係で一回ごとに多少結果は変わります。 「出⼒およびバージョン」のアイコンを クリック 「精度分析」の⽬のアイコンをクリック

  52. 2.3 デモ 一連の操作を動画にしました。 https://youtu.be/kXwiGfYqjOc

  53. ⽬次 1. ⼈⼯知能・機械学習⼊⾨ 2. モデル構築デモ 2.1 前提 2.2 Pythonによる実装 2.3

    SPSS Modeler Flowによる実装 2.4 ツール⽐較まとめ
  54. 2.4 ツール⽐較まとめ 同じデータから、同じアルゴリズム(決定⽊)でPythonとSPSS Modeler Flowの⽐較を実施しました。 モデルを作るまでの⼿間、使いやすさ、わかりやすさの観点で、SPSS Modeler Flowが便利です。 →特にプログラミングの経験のない初⼼者にはSPSS Modeler

    Flowがお勧めです。 Pythonを普段使いしている経験者は「味⾒」フェーズ※で活⽤可能です。 →試⾏錯誤が簡単に⾏えるという点で、SPSS Modeler Flow(あるいは有償のSPSS Modeler)を利⽤するのが よりよい選択と考えられます。 ※本番⽤モデルのチューニングの前に、⼊⼿したデータで本当に予測ができるのか確認するフェーズ。 SPSS Modeler Flowは、scikit-learnで実装できていない、アソシエーション分析や、時系列分析なども利⽤可 能です(次ページ参照)。是⾮、皆さんもお試しいただければと思います。
  55. (参考) SPSS Modeler Flow 利⽤可能モデル 以下のようなモデルが利⽤可能です。※ ※ 2021年4⽉29⽇現在 今後変更の可能性もあります

  56. (参考) 実習⽤リンク集 当プレゼンのデモは以下のコンテンツを使って再現可能です。 2.2節 notebook (Google Colabで動作確認済み) https://github.com/makaishi2/sample-data/blob/master/notebooks/タイタニック・デモ.ipynb 2.3節 IBM

    Cloud / Watson Studio サインアップ⼿順. https://qiita.com/makaishi2/items/b666f847a98c2e42dfbb タイタニック・データセット https://raw.githubusercontent.com/makaishi2/sample-data/master/data/titanic_j.csv SPSS Modeler Flowで決定⽊をつくる(Modeler Flowの完全な⼿順) https://qiita.com/makaishi2/items/629e3739bfa274392019 実習⽤flowファイル https://github.com/makaishi2/sample-data/blob/master/spss/決定⽊分析(タイタニック).str
  57. (参考) SPSS Modeler Flow リンク集 より深くSPSS Modeler Flow を知りたい⽅には以下の記事があります。 (かなり古い記事もあり、画⾯などが現⾏と異なる点があることにご注意ください)

    DSXLのSPSS Modelerで異常検知 DSXLのSPSS Modelerで故障予知 「Watson Machine Learning」でSPSS Modelerみたいな「Flows」を使ってみた 製品版のSPSS Modelerのよりディープな活⽤⽅法に関しては、下記シリーズものの記事がお勧めです。 SPSS Modelerの推しノード達
  58. ビジネス コンサルティング本部 AIグループ ご紹介 Data Scientist データサイエンティスト • コンピューターサイエンスや機械学習などの先端 技術を武器に、お客様のビジネスの変⾰や成⻑

    をデザインし、その実現を担当 • ⼈⼯知能やアナリティクス(⾃然⾔語、処理⾳ 声処理、画像処理、機械学習、情報検索、統 計モデリングなど)の深い理解を背景に、ビジネス の変⾰や成⻑に貢献 Data Driven Consultant データドリブンコンサルタント (アナリティクス・コンサルタント) • 業界専⾨知識とデータ分析能⼒を駆使して業 界向けのデータ主導コンサルティングサービスをク ライアント企業へ提供 • デジタル化が⽣むディスラプションに対する本質的 な理解に基づいた環境分析を⾏うとともに、デジタ ル時代において顧客企業がとるべき事業ドメイン・ 主要戦略の⽅針の策定を⽀援 • AI(Artificial Intelligence)を武器に、お客 様のビジネスの変⾰や成⻑をデザインし、その実 現を担当 • ToBeビジネス・システムのデザイン、現⾏データの 評価やAIモデルの選定、AIモデルの構築(学習と テスト)、継続的なAI学習計画の⽴案を担当し、 あらゆる業界・ソリューション・サービスに対するAI Powered Serviceによる変⾰を創出 Artificial Intelligence Engineer AIアーキテクト S&C Applied Intelligence ビジネス コンサルティング本部AIグループ • ⼈⼯知能(AI)やアナリティクスのテクノロジーと知⾒を駆使し、⽇々イノベーションを創出し、デジタル 技術や先端テクノロジーをビジネスの最前線へ適⽤し、データサイエンスとの融合により⼤企業が注⽬する ソリューションをデザインし、実装を⽀援 アクセンチュアでは現在AI・データサイエンス系のエンジニアを 絶賛募集中です︕ 関⼼ある⽅は、⾚⽯LinkedInまでご⼀報下さい︕ https://www.linkedin.com/in/makaishi2/
  59. ご静聴ありがとうございました