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

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

makaishi2
July 28, 2021

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

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

makaishi2

July 28, 2021
Tweet

More Decks by makaishi2

Other Decks in Business

Transcript

  1. 「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位でした︕
  2. ⽬次 1. ⼈⼯知能・機械学習⼊⾨ 2. モデル構築デモ 2.1 前提 2.2 Pythonによる実装 2.3

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

    σΟʔϓϥʔχϯάͱߏ଄Խɾඇߏ଄Խσʔλ ɹػցֶशͷॲཧύλʔϯΛ෼ྨͨ͠ਤ  ʹ͸ʮσΟʔϓϥʔχϯάʯͱ ͍͏ݴ༿΋ग़͖͍ͯͯ·͢ɻࡢࠓͷ "* ϒʔϜͷதͰඇৗʹΑࣖ͘ʹ͢Δͷ͕ σΟʔϓϥʔχϯάͩͱࢥ͍·͢ɻσΟʔϓϥʔχϯάͷҐஔ෇͚ʹ͍ͭͯ؆ ୯ʹઆ໌͠·͢ɻ ɹਤ  Λݟ͍ͯͩ͘͞ɻຊষͰઆ໌͍ͯ͠Δॲཧύλʔϯ͸ɺ͍Θ͹ػցֶ ػցֶशͷΞϧΰϦζϜ 9(#PPTU  ϩδεςΟοΫճؼ ܾఆ໦ ϥϯμϜϑΥϨετ σΟʔϓϥʔχϯά ଟ૚ԽͰൃల ར༻ൣғͷ֦େ ը૾ɺಈըɺςΩετɺԻ੠ͳͲ χϡʔϥϧωοτϫʔΫ $// 3// -45.ͳͲ ਤ ɹػցֶशͱσΟʔϓϥʔχϯάͷؔ܎ ɹݩʑɺ೴ͷਆܦࡉ๔ʢχϡʔϩϯʣΛ਺ֶతʹϞσϧԽͯ͠Ͱ͖ͨʮχϡʔ ϥϧωοτϫʔΫʯͱݺ͹ΕΔΞϧΰϦζϜ͕͋Γ·ͨ͠ʢਤ ʣ ɻχϡʔ ϥϧωοτϫʔΫͰ͸ɺχϡʔϩϯΛ໛ͨ͠ʮϊʔυʯΛ֊૚తʹͭͳ͍ͰϞ σϧΛ࡞Γ·͢ʢਤ ʣ ɻͦͷϊʔυؒͷ઀ଓํ๏ʹࣗ༝౓͕͋ͬͨͷͰɺ ৽͍͠छྨͷϞσϧΛ࣍ʑʹ࡞Δ͜ͱ͕Ͱ͖ಠࣗͷൃలΛ਱͛·ͨ͠ɻ ɹχϡʔϥϧωοτϫʔΫͷ͏ͪɺಛʹ֊૚͕  ૚Ҏ্ʢӅΕ૚͕  ૚Ҏ্ʣ ͷ΋ͷΛσΟʔϓϥʔχϯάͱݺΜͰ͍·͢ɻσΟʔϓϥʔχϯάͰ͸ɺϊʔ ਤ ɹχϡʔϩϯϞσϧͷ֓೦ਤ ࣠ࡧʢણҡʣ ࡉ๔ମ थঢ়ಥى ϊʔυ y x x x xN N 1 w1 w2 w w 3 2 3 ਤ ɹχϡʔϥϧωοτϫʔΫͷ֓೦ਤ ೖྗ૚ ӅΕ૚ ग़ྗ૚ ɿϊʔυ 2 ষ ػ ց ֶ श Ϟ σ ϧ ͷ ॲ ཧ ύ λ ồ ϯ 追加分
  4. 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 など) 追加分
  5. 学習により作られる「モデル」 モデル ⼊⼒を受け付けて有⽤な結果を返すAIプログラム (数学的にいうと関数のようなブラックボックス) 学習 データに基づいて望ましい振る舞いを作ること 1. 機械学習モデルとは ػցֶश͸ "*

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

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

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

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

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

    ஋෼ྨͰ͢ɻ ͔͜͜Β୯ʹ෼ྨͱॻ͖·͕͢ɺ ஋෼ྨͷ͜ͱΛࢦ͠·͢ɻ  ճؼ ɹਤ  Λݟ͍ͯͩ͘͞ɻϞσϧͷೖྗͷ෦෼͸෼ྨͱ·ͬͨ͘ಉ͡Ͱ͢ɻ། ҰҟͳΔͷ͸ग़ྗͷ෦෼Ͱɺ͜ͷϞσϧͰ͸ʮͲͷάϧʔϓʹଐ͢Δ͔ʯͰͳ ͘ʮࣗసंར༻਺ʯͱ͍͏਺஋Λ༧ଌ͍ͯ͠·͢ɻ͜ͷΑ͏ʹ਺஋Λ༧ଌ͢Δ Ϟσϧ͕ʮճؼʯͰ͢ɻ ɹ ʮճؼʯͷྫ୊͸  અͰऔΓѻ͍·͢ɻਤ  Ͱࣔͨ͠ྫ͸ɺϨϯλαΠΫ ϧձࣾͷࣗసंར༻਺Λ༧ଌ͢ΔϞσϧͰɺ༵೔ɾఱؾɾ෩଎ͳͲʹΑΓɺࣗ సंར༻਺͕มಈ͢Δ͜ͱ͕༧૝͞Ε·͢ɻࣗసंར༻਺Λਖ਼֬ʹ༧ଌ͢Δ͜ Ϟσϧ ೖྗ قઅ ೥ ༵೔  ఱؾ  ࣪౓ ෩଎ ग़ྗ ࣗసंར༻਺ ਤ ɹࣗసंར༻਺༧ଌϞσϧ ػ ց ֶ श Ϟ σ ϧ ͷ ॲ ཧ ύ λ ồ ϯ ɹਤ  Ͱ͸ɺվળલͷ஋Λʮ༧ଌ݁Ռ ʯ ɺվળޙͷ஋Λʮ༧ଌ݁Ռ ʯͱ ͯ͠දࣔ͠·ͨ͠ɻಛʹ  ݄ޙ൒෼ʹؔͯ͠͸ɺվળલΑΓ࣮੷஋ʹ͍ۙͮͯ ਤ ɹνϡʔχϯάޙͷొ࿥Ϣʔβʔར༻਺༧ଌͱ࣮੷஋ͷ࣌ܥྻදࣔ ⿊線 実績値 ⻘線 モデル予測結果
  12. 2.1 前提 当講演では第1部で紹介した処理パターンのうち「教師あり 分類」のモデルを題材に2つのツールでモデル作成をし た結果をご説明します。前提は以下のとおりです。 対象データ︓タイタニック・データセット (書籍の4.1/4.2節で取り上げています) 処理パターン︓教師あり 分類 アルゴリズム︓決定⽊

    (書籍の4.3.6項で取り上げています) 書籍4.2節(データ前処理)ではデータ加⼯が⼀通り済んで、モデル作成の直前の状態になっています。 その状態から決定⽊のモデル作成をするコードを当講演⽤に追加しました(2.2)。 まったく同じデータから、SPSS Modeler Flowで 決定⽊モデルを作りました(2.3)。 最後に両者を⽐較した結果を考察としました(2.4)。
  13. 2.2 Pythonの不都合な真実 (scikit-learnで決定⽊を作るときにつらい点) (3) データ前処理フェーズの課題 • 「決定⽊」のアルゴリズムは本来⼊⼒に⽋損値があっても構築可能ですが、 scikit-learnだとそれができません。 前処理として⽋損値対応が必要です。 •

    ⼊⼒にカテゴリ変数がある場合、One Hot Encodingによるダミー変数化の前処理が必要です。 どちらも本来の「決定⽊」では考えなくていいことですが、Python(scikit-learn)で実装する場合は対応の必 要があります。 (8) 評価フェーズの課題 • 項⽬名に⽇本語が含まれていると、決定⽊のツリー表⽰が⽂字化けします。 決定⽊モデルの最⼤の特徴であるツリー表⽰ができないことは、分析観点で⼤きなデメリットです。 唯⼀の回避策は項⽬名を英語にすることですが、標準的⽇本⼈からするとつらい。。。
  14. 2.2 多値ラベルの数値化 次の前処理は、多値ラベルの数値化です。 値が 2値でなく多値の場合は、下の図に⽰されるような One Hot Encodingの⼿法を⽤います。 ⼀⾒すると、3値の場合も0, 1,

    2を割り当てればよさそうに思えます。しかし、この場合、「ネズミ」「ゾウ」「キリン」にど の値を割り当てたらいいか、考えてみて下さい(数値にした瞬間、⼤⼩関係が意味を持つようになります)。
  15. 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の「クラウド簡易 版」の位置付けとご理解下さい。
  16. 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 で利⽤する ソフトウェア製品) 機能の ポーティング
  17. 2.4 ツール⽐較まとめ 同じデータから、同じアルゴリズム(決定⽊)でPythonとSPSS Modeler Flowの⽐較を実施しました。 モデルを作るまでの⼿間、使いやすさ、わかりやすさの観点で、SPSS Modeler Flowが便利です。 →特にプログラミングの経験のない初⼼者にはSPSS Modeler

    Flowがお勧めです。 Pythonを普段使いしている経験者は「味⾒」フェーズ※で活⽤可能です。 →試⾏錯誤が簡単に⾏えるという点で、SPSS Modeler Flow(あるいは有償のSPSS Modeler)を利⽤するのが よりよい選択と考えられます。 ※本番⽤モデルのチューニングの前に、⼊⼿したデータで本当に予測ができるのか確認するフェーズ。 SPSS Modeler Flowは、scikit-learnで実装できていない、アソシエーション分析や、時系列分析なども利⽤可 能です(次ページ参照)。是⾮、皆さんもお試しいただければと思います。
  18. (参考) 実習⽤リンク集 当プレゼンのデモは以下のコンテンツを使って再現可能です。 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
  19. (参考) SPSS Modeler Flow リンク集 より深くSPSS Modeler Flow を知りたい⽅には以下の記事があります。 (かなり古い記事もあり、画⾯などが現⾏と異なる点があることにご注意ください)

    DSXLのSPSS Modelerで異常検知 DSXLのSPSS Modelerで故障予知 「Watson Machine Learning」でSPSS Modelerみたいな「Flows」を使ってみた 製品版のSPSS Modelerのよりディープな活⽤⽅法に関しては、下記シリーズものの記事がお勧めです。 SPSS Modelerの推しノード達