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

SPSS Modeler Flow で儲かるAIをつくる

SPSS Modeler Flow で儲かるAIをつくる

2021年5月21日 IBM Cloud Festa  発表資料

1a818bcb46ae361694782268afd5fb21?s=128

makaishi2

May 21, 2021
Tweet

Transcript

  1. SPSS Modeler Flow で 儲かるAIをつくる IBM Cloud Festa Online2021 アクセンチュア株式会社

    ビジネス コンサルティング本部 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版はAmazon⼈⼯知能カテゴリで1位 (2021年5⽉19⽇時点)! 5⽉27⽇まで半額ポイントバックセールで⼤変お得 です︕
  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. 学習により作られる「モデル」 モデル ⼊⼒を受け付けて有⽤な結果を返すAIプログラム (数学的にいうと関数のようなブラックボックス) 学習 データに基づいて望ましい振る舞いを作ること 1. 機械学習モデルとは ػցֶश͸ "*

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

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

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

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

    ֶशͱڭࢣͳֶ͠शͰͦΕͧΕ  छྨͣͭ͋Γ·͢ɻ छྨͷॲཧύλʔϯʹ ͍ͭͯɺ ষͰ͸࣮ۀ຿Ͱ͙͢࢖͑ΔϨϕϧͷྫ୊ΛऔΓ্͛ɺॲཧύλʔϯ ʹ߹ΘͤͨϞσϧͷ࡞ΓํΛ࣮ફతʹղઆ͍͖ͯ͠·͢ɻ͜ΕΒͷྫ୊Λ௨͡ ͯɺػցֶशΛଟ༷ͳۀ຿ʹ͏·͘ద༻Ͱ͖ΔΑ͏ʹͳΔ͜ͱ͕ຊॻͷ࠷େͷ ໨తͰ͢ɻ ද ɹ छྨͷॲཧύλʔϯͷղઆͱ࣮श ֶशํࣜ ॲཧύλʔϯ  ষͷղઆ  ষͷ࣮श ڭࢣ͋Γֶश ෼ྨ   ճؼ   ࣌ܥྻ෼ੳ   ڭࢣͳֶ͠श ΞιγΤʔγϣϯ෼ੳ   ΫϥελϦϯά   ࣍ݩѹॖ  
  12. 教師あり学習の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() モデル出⼒は「確率値」 で得られることが多い。
  13. 教師あり学習の1種です。 数値を予測する。 (例) 季節、曜⽇、天気、気温などを元にその⽇の貸⾃転⾞利⽤数を予測する。 1. 処理パターン「回帰」 Δ൑ผʢଟ஋෼ྨʣ ʯͱͯ͠঺հ͍ͯ͠·͢ɻ ɹҰํɺຊॻͷதͰѻ͏෼ྨ͸ɺ͢΂ͯάϧʔϓΛೋͭʹ෼͚Δ 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    SPSS Modeler Flowによる実装 2.4 ツール⽐較まとめ
  36. 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の「クラウド簡易 版」の位置付けとご理解下さい。
  37. 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 で利⽤する ソフトウェア製品) 機能の ポーティング
  38. 2.3 SPSS Modeler Flowによる決定⽊の実装 下の図が、SPSS Modeler Flowにより決定⽊のモデルを構築した結果になります。 各部品のノードを結線した形でモデルが作られているのがわかると思います。 いわゆる「ビジュアル・プログラミング環境」の位置づけになります。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  54. (参考) 実習⽤リンク集 当プレゼンのデモは以下のコンテンツを使って再現可能です。 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
  55. (参考) SPSS Modeler Flow リンク集 より深くSPSS Modeler Flow を知りたい⽅には以下の記事があります。 (かなり古い記事もあり、画⾯などが現⾏と異なる点があることにご注意ください)

    DSXLのSPSS Modelerで異常検知 DSXLのSPSS Modelerで故障予知 「Watson Machine Learning」でSPSS Modelerみたいな「Flows」を使ってみた 製品版のSPSS Modelerのよりディープな活⽤⽅法に関しては、下記シリーズものの記事がお勧めです。 SPSS Modelerの推しノード達
  56. ビジネス コンサルティング本部 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/
  57. ご静聴ありがとうございました