Salesforce Developers Japan Blog

Einstein DiscoveryのモデルをGoodからGreat!へ

小見一平、Salesforce、Einstien Analytics Specialist.

前回のブログでは、Einstein Discoveryのモデルの良し悪しを見る方法を学びました。今回は更に一歩突っ込んでモデルを良くする方法を学びます。スコアを良くすると言ってもただ単に数値を上げる(前回習ったRスクエアやMAEですね!)だけではなく、解釈しやすい説明を提供できているかなどビジネスユーザーの視点まで考慮したチューニングが必要になってきます。内容的には高度な統計的用語などが出てきて難解かもしれませんが、一つ上のEinstein Discoveryマスターを目指すあなたに是非読んでいただきたく今回Olfaの記事第2弾を超訳させていただきました。

原題:Take your Einstein Discovery model from Good to Great
原題著者:Olfa Kharrat, Senior Solution Engineer, Einstein Analytics and AI (Linkedin)

Einstein Discoveryにより、ビジネスユーザーは業務で使う環境にAIやダッシュボードなどの拡張分析を組み込めるようになります。予測モデルは「コーディングを伴わないAIによるアプローチ」を用いてSalesforceプラットフォーム上に作成され、モデルを訓練するためのアルゴリズムはEinstein Discoveryにより自動的に生成されるので、上級開発者やデータサイエンティストがコーディングする必要はありません。このプラットフォームを最大限に活用するためには、データの理解を深め、モデルの結果を解釈し、トレーニングデータセットを適切な方法で構成する必要があります。したがって、ビジネス知識とデータ分析は、適切な予測を行うために適切な入力データを選択するだけでなく、最適な品質を持つモデルを作成するための鍵となります。
このブログの目的は、よりよいモデルを作るためのいくつかの実践方法を解説し、以下のような関連する質問に答えることです。

  1. 正しい機能の選択 :機械学習は他のIT分野と何ら変わりません、正しいソリューションの構築は常に深いビジネス理解から始まります。
  2. 分割:データを異なるモデルに分割することで、結果を改善することができます。例えば、解約の確率を予測していて、フランスとアメリカでは顧客行動が全く異なることが分かっている場合、これら2つの異なる国のために異なるモデルを持つことは理にかなっています。しかし、いつそれを行うべきでしょうか?
  3. バケット化: 前回のブログで見たように、Einstein Discoveryでは入力したセグメントごとに最適な予測値を計算しています。しかし、このユースケースに最適なバケット化方法は何でしょうか?
  4. 多重共線性:直線的に相互に依存する複数の入力は、モデルの品質を低下させる可能性があります(訳者注:重回帰分析において似たような傾向を持つ説明変数が複数存在し、互いに依存関係がある場合のことを指しています)。この依存性を検出して解決するには?
  5. サイジング:Einstein Discoveryでは、1つの説明変数につき100種類の値しか持つことができません。より多様な入力がある場合はどうすればいいのでしょうか?(訳者注:一つの説明変数に100以上の値が存在する場合、数量が多い99までの値が採用され、その他の数値は”その他”として丸められます。
  6. 外れ値:極端な外れ値が存在する場合、モデルの品質を低下します。どのようにそれらを検出し、いつそれらを取り出すのでしょうか?
  7. 明示的な相互作用を持つ変数の追加: Einstein Discoveryは第2レベルの相互作用(訳者注:第2レベルとは、説明変数同士のコンビネーションによる、目的変数への作用を2つの組み合わせで見ているということです)しか見ていません。この制限を克服するにはどうすればよいでしょうか?

この記事では、予測モデルの品質を評価する指標を十分に理解していることを前提としています。その知識をブラッシュアップする必要がある場合は、私の以前のブログをお読みください。

適した機能を選ぶ

正しいモデル構築への第一歩は、正しいビジネスの質問をすることです。以下の事をお尋ねすることをお勧めします。

質問1: 出力(目的)変数の主な予測因子は?
例えば、商談が成約するまでの確率を予測するには、商談に関わる活動を見てみるのも面白いかもしれません。しかし、特徴量としての活動数だけではなく、どのような行動をしたのかという詳細も含めて記載したほうがいいのでしょうか。電話よりも対面での会議の方が成約予測に深い影響を与える場合、2つの入力変数を持ったほうが良いでしょう。データセットの中では、すべての活動を一つの列にまとめるのではなく、’電話の数’と’対面でのミーティングの数’を2つの異なる入力列として使用してください。また、派生したカラムを使ってよりよいモデルを作りこともできます。派生特徴量とは、他のデータから計算または変換によって派生した入力列です。例えば、商談が成約するかどうかの可能性を予測する場合、取引先ごとの商談成約数を反映したスコアを計算したり、対応する業界の製品セグメントごとの勝利率を計算したりするのは面白いかもしれません。より強力な予測因子が質の高い予測と信頼できる(分かりやすい)説明をしてくれます。

質問2: モデルの出力(=予測)として必要なビジネスに立脚した説明とは?
考えられる要因を変数としてモデルに含めることが重要です。引き続き、商談成約の予測例を見ていきましょう。企業が、差別化要因を反映した製品を提供するために、アドオンに関する推奨ガイダンスを必要としているとします。入力変数としてアドオンの種類を追加すれば、その推奨を提言することができます。この入力変数は、有力な製品とベストな組み合わせを商談に提供します。他の製品やソリューションと同様に、Einstein Discoveryを導入するには、企業のビジネスを深く理解する必要があります。

セグメント化

序文で述べたように、異なるデータセグメントに対して異なるモデルを持つことで、予測品質を向上させることができます。しかし、この改善の可能性を探るべき時期はいつでしょうか?この問いにはジレンマが隠されています。1つのモデルを持つことで、より多くのデータを持つことができるので、あるデータセグメントを他のデータセグメントの振る舞いから学習させることができます。例えば、ある商品のドイツでの売上数量を知ることで、フランスでのデータポイントが不足している場合に、フランスでの推定に役立ちます。しかし、データセグメント(つまり、ドイツとフランス)間で非常に異なる行動が取られる場合、不必要な複雑さを生み出す可能性があります。セグメンテーションをスコアの改善に提要するためには3つのステップが必要です。

ステップ1 – 最初のステップは概念的なものです。データセットをビジネス的に理解することで、非常に異なる行動をとるセグメントを分離するのに役立ちます。例えば、商談の勝率を予測しているのであれば、エンタープライズビジネスセグメントの商談モデルと、中小企業セグメントの商談モデルを別々に持つことは理にかなっているかもしれません。

実際、ビジネス知識によって、商談モデルは全く異なる方法で活用されます。

  • 異なる入力値(目的変数)なのに同じ出力値(予測スコア):80%の確率で商談が成約するとした場合、大企業では10~15回のミーティングを行っていても、中小企業では1~3回のミーティングしか行っていない場合がほとんどです。
  • データの区分ごとに強い予測因子が異なる:特定のケースでは、意思決定者との関係の深さは、中小企業では良い予測因子であるが、大企業ではあまり重要ではないと仮定してみましょう。 しかし、その業界にある顧客のリファレンスケースは非常に重要です。モデルを分解するとき、Einstein Disocveryはこれらの変数に正しい重要性を属性化することができます。“RelationWithDecisionMaker(意思決定者との関係)”列は中小企業モデルでは強く相関します。一方、“NumberOfReferences(リファレンス数)”列は大企業モデルにおいて強く相関します。上記の2つのケースでは、モデルを分割することが理にかなっています。

ステップ2 – さて、あなたが上記のステップ1思考プロセスを行ったと仮定してみましょう。しかし、複数のモデルに分解する方法を決定するために、すべてのデータの謎を解き明かしたかどうかはまだよくわかりません。

ステップ2では、入力変数の分布を把握して次のことを検出します。

  • 優勢な値が少ない列:例えば、あなたがリードコンバージョンを予測している場合、あなたはリードソース列に3つの値“Web”,“Event”,“Phone”を持っていることでしょう。その場合、これら3つの値に応じてモデルを分割してみることは理にかなっています。
  • 変数間の二次相互作用の違い(カラムの値を変更すると他のカラムの挙動が劇的に変化する): 続きまして、リードコンバージョンの例を見てみましょう。リードソースを変更すると、劇的にいくつかの国でリードを変換する比率を変更されます。ドイツはフランスよりもリードがウェブから来ているときの方がはるかに成功しています。それは、リードソースによって分割するための別の良い理由です。

ステップ3 – 最後のステップは、まずは一つモデルを構築し、然る後適切なモデル数で終わるようにしていくことです。モデルを作るたびに以下のことを考慮しましょう。

  • 異なるカテゴリーごとの「なぜそうなったのか」画面の中で最も大きな因子を見てみましょう。実際に、その画面は選択したセグメント内の最も重要なドライバーを表示しますが、データセグメントによって異なる場合は、モデルを分割してみる価値があります。例。リードソース「Web」の「なぜそれが起こったのか」を見ることで、国「ドイツ」が最大の予測因子であり、「Web」リードのスコアに29を追加していることがわかります。

  • 一方、リードソースの “イベント “を見てみると、”業界の種類”が最大の予測因子であり、40のスコアを追加しています。そして、異なるリード・ソース・カテゴリーの説明が全く異なるので、モデルを分割することは理にかなっています。異なるモデルに分割することで予測変数の相関が変化するか、モデルのRスクエアがより良くなるならば、分割することは良いアイデアかもしれません。予測変数は、最初のモデルが作成された後、モデルの’ストーリーを編集’アイコンでランク付けされる。

セグメンテーションを行うことで、短期間で成果を上げることができます。しっかりとしたビジネス理解に基づいて行うと、より効率的です。セグメンテーションは、Einstein Discoveryのサイジング制限のためにも必要であり、これは次のセクションで見ていくことになります。

サイジング

Einstein Discoveryでモデルを構築する際に考えなければならない重要な制限が2つあります。

  1. Einstein Discoveryは、最大50個の説明変数/特徴量(列)を持つデータセットを入力とすることができます。
  2. 各特徴量は最大100個の値を持つことができます。実際、Einstein Discoveryでは各特徴量値は別の変数として扱われます。Einstein Discoveryは入力カラムの値ごとに1つの「ダミー変数」を作成します。列に100以上の値がある場合、Einstein Discoveryは最も頻度の高い値最初の99個の値に対して99個のダミー変数を作成しますが、残りはすべて100個目の変数にグループ化されます。つまり、「残り」のカテゴリの近似は、多くの異なる列の値をグループ化した場合に精度が低くなるため、変数全体が出力の計算に与える影響が小さくなるということです。
    (訳者注:これはAutoMLの技術で、One Hot Encodingと呼ばれる技法です。文字列のままでは機械学習にかけることはできないので、文字列を数値列に換える必要がありますが、このときに列の値をそのまま列として横持ちさせます。例えば、US州という列があった場合、列値はMAやCAなどが予想されますが、それぞれの州を例えば、IsMAやIsCAといった列に変換するのがOne Hot Encodingです。全米は約50州ですのですべて列として導出されますが、100を越えるような列の場合は頻度が多い99の値が列に変換され、残りは纏められその他列として変換されます。)

では、解決策は何でしょうか?もしそれらすべての異なる値を持つ必要がある場合、多くの異なる値を持つ変数が再び100以下の異なる値を含むことを確認するために、より低い粒度レベルを持つ変数の値に基づいて、異なるモデルにセグメント化することを助言します。ここに例を示します。

ユースケースの目的:SKUや店舗ごとの売上数量値を予測する。
データセットの説明:異なるSKUセグメントとそのSKUに対し、週と店舗ごとの売上数量値を持っています。14種類のSKUセグメントがあり、それぞれのセグメントは20種類前後のSKUを持っています。まず、すべてのSKUに対してモデルを作成・実行しました。その結果、以下のような評価指標値を持つモデルができました。

行の27%が “その他 “カテゴリに移動しました。また、下のオレンジ色のボックスで見ることができるように、SKUの出力変数との相関は50%です。


その後、SKUファミリーを入力(SKU列なし)にして試してみましたが、品質が落ちてしまったので、SKUレベルまで取り込む必要があります。

その後、1つのSKUファミリーと80SKUだけを含むデータからなるサブセットを使ってモデルを構築しました。これにより、学習データセットのサイズが260kレコードのデータセットから30kレコードだけに縮小されたにもかかわらず、モデルの指標値は大幅に改善されました。

  1. Rスクエアは0.67から0.82に改善しました!
  2. SKUの変数と従属(目的)変数の相関関係は53%になりました。これは、Einstein Discoveryが正確にそれらの80 SKUの売上数量を予測することができますが、200 以上のSKU以上を持つ(当初の)単一モデルの場合、最大99 SKUは正確で残りのSKUの間の均一に纏められます。


上記の例は、サイジングはEinstein Discoveryによる予測を理解する上で重要な考慮事項であることをうまく説明しています。データセットのサイズを十分に調査することで、この限界に対応するために異なるモデルに分割する必要があるかどうかについて、最初から適切な選択をすることができます。
(訳者注:将来的には、この列値が頻度の大きい99値までしか考慮されないという制限は緩和される方向で計画されています。)

多重共線性

多重共線性とは、従属した説明変数同士が互いに予測できる場合に起こりえます。例えば、商談の成約の可能性を予測していて、入力として “営業 “と “国 “があり、すべての営業が1つの国でしか働いていないとします。この場合、営業を知っていれば、常に国も知ることができます。「営業」でグループ化し、「unique of 国」という数値項目として表示することで、これを検出することができます。この場合、「営業」には常に1つのユニークな「国」を設定することになります。多重共線性が発生すると、線形回帰が解析的に解けなくなる技術的な問題が発生します。
詳しくは、「線形回帰の分析的解法」記事を御覧ください。
最終的な式は行列の反転を必要としますが、もし多重共線性があるならば、線形に関連した列を持つことになり、この行列は非反転になります。線形回帰の解き方は、その後、(より長いプロセスを使用して)異なりますが、この場合、結果は、奇妙なものになり、モデルの質を低下させることさえあります。


ディスカバリーは、推薦セクション中の「DUPLICATES」でこの問題を強調します。次の例では、上で使用したのと同じデータセットを使用します。しかし、この例では、全く同じ意味を持つ2つのカラムがあります。SKU (番号) と SKU_Name です。それでは、次の「なぜそうなったのか(Why It Happened)」のチャートを見てみましょう。


ご覧のように(青い囲み部分)、Einstein Discoveryはこれら2つの変数の相関関係を理解しようとしていますが、実際には同じものであり、どちらに効果を帰属させるべきかはわかりません。

余談:SKUとSKU_Nameの両方を持つモデルの第1階層の相関を見ることによって(モデルの「ストーリーの編集」のスナップショットである下のチャート)、SKU_Nameが目的変数と6.2%相関していることがわかります、したがって、それがより正確さをもたらすと期待するでしょうが、しかし、そうではありません! 実際、モデル全体のRスクエアは、必ずしも各入力変数の相関係数の合計ではありません。


多重共線性を取り除く必要があります。多重共線性が存在するかどうかを確かめるヒントは以下の通りです。

  1. 予想以上に時間がかかるストーリー作成
  2. 冗長な洞察
  3. 大きな条件付き度数(その他に分類されるSKU_name100%が1つのセグメントに該当する場合)

多重共線性はモデルを劣化させる可能性があることを知っておいてください。入力変数のビジネス上の関係を理解し、データセットを適切に調査することは、多重共線性を回避するのに役立ちます。Einstein Discoveryはまた、改善のセクションで多重共線性を検出するためのガイドを提供します。

外れ値

外れ値は結果を劣化させるかもしれません。外れ値を含む実測値を使った予測モデルで予測を行うことは正確性を欠きます。なぜなら、外れ値は例外的に他の実績値から離れていたり,簡単にカテゴリに入れられなかったりするからです。もちろん,外れ値を除去することは,目的変数のノイズを除去し,結果として精度を向上させます。

  • 緑線は、予測線を表します。
  • 赤星は外れ値です。
  • 外れ値を含めてしまうと、モデルは大多数の実測ちから離れ、それらをカバーしようします。そのため誤差は実測値の大部分で増加します.

 

 

Einstein Discoveryは外れ値を検出し、下の図のように「OUTLIERS」セクションに表示します。

以下の例を見てみましょう。

異なる要因(都市、割引、プロモーション…)ごとの売上数量を持つデータセットを使います。データセットのすべての行を含めて最初のモデルを作成したところ、以下の評価指標値を取得しました。


しかし、目的変数(DailyQuantity)の分布を示す度数ヒストグラムを見てみると、2000を超える値がまばらに存在することがよくわかりました。分布を得るために、次のようにしました。

  1. ストーリーを編集
  2. 売上数量(DailyQuantity)変数を目的変数として選択
  3. 可視化に使用するビンの数を増やし(ハイライトボックスを参照)、より詳細な分布を見ることができるようになりました。

高い値を示しているDailyQuantityを取り除いたのもEinstein Discoveryの推奨です。

外れ値のないモデル

次のステップでは、DailyQuantityが2000よりも高いデータセットの行(外れ値)をデータフローを通して削除しました。
結果として得られたデータセットで訓練されたモデルの評価指標値は以下の図のようになりました。


外れ値を除去すると、2つのことがわかります。

  1. Rスクエアは0.78から0.75に低下しましたが、これは驚くべきことではなく、モデル予測の質が低下したことを意味するものではありません。これについては、私の以前のブログを御覧ください。
  2. 外れ値を除去するとMAEとMSEが減少したことは、予測値は実績値に近づいています。

一般的には、外れ値を含むモデルがより高い値の予測を出す傾向にあります。そして、それは売上数量の高値を考慮した方法となります。これは下のグラフで見ることができます:外れ値のあるモデルを使用した予測値はY軸にあり、外れ値のないモデルを使用した予測値はX軸にあります。同一直線は赤で示されています。外れ値があるモデルの予測値が同一直線よりも高いことがはっきりとわかりますが、これは、外れ値を持つ予測値が一般的に高いことを意味します。

つまり、これは大多数の売上数量だけに当てはまるのではなく、外れ値がモデルを歪めて、少量の売上数量を過大に予測しているのです。

以前のブログでもご紹介しましたが、Rスクエアのような古典的な評価指標は、データに多数の外れ値がある場合には信頼できません。結果的に、モデルの改善の一環としてモデルを構築する際に、外れ値を調査し、ビジネスとの合意が得られれば、それらを取り除くことが非常に重要になります。

バケット化

Einstein Discoveryはすべての数値変数をバケツに分割します。同じバケツに属している実測値は、すべて同じ予測をします。
したがって、モデルの精度を決定するためには、正しいバケット化を行うことが鍵となります。

  • 数量によるバケット化: 1バケットあたりのデータポイント数は同じです。これはEinstein Discoveryで使用されるデフォルトの方法で、変数が非一様分布で明確なクラスタを持たない場合にうまく機能します。例えば、薬局への訪問回数を使って医療系の営業担当者の商談成約を予測する場合、訪問回数は非常に一様に分布しており、可能な訪問回数ごとに複数回の訪問があり、それに応じてコンバージョンの可能性がある程度高まります。ここでは、明確な平均がないので、カウントごとの訪問数の変数を分割することは理にかなっています。
  • 手動バケット化: 独自のバケット範囲を指定することができます。 変数のカテゴライズをコントロールして、結果をより分かりやすくビジネス上の説明をしたい場合に使うことをお勧めします。例えば、あなたが商談の勝率を予測している場合、ビジネス的に$100万よりも大きい商談を対象にして、それ以下は小さい商談として見ている場合には、別の小さなサブカテゴリにいくつかの説明変数を分割すると、説明が複雑になり、営業のために無意味なものになります。また、小数点単位でのバケットを避けて整数のバケットを使用したほうが良いでしょう。もちろん、モデルの品質への影響が少ない場合に限ります。
  • 幅でバケット化: バケットごとに同じ数値範囲を使用します。これは、変数が一様に分布している場合に効率的です。 マニュアルバケットと同じように、説明のしやすさのために精度を犠牲にしてもいいと思っているのであれば、それをすることをお勧めします。
  • Einstein Discoveryのおすすめバケット: クラスタリング技術を使用した適切なバケットを推奨するメソッド。この方法は、モデルの評価指標値を重視している場合には良いのですが、ビジネス的な観点ではバケット化が不明確な場合があります。また、推奨されるバケットは、モデルの品質を向上させるために無理にでも適用したいと思うバケット数より少ないバケットになることがあります。

デフォルトでは、Einstein Discoveryはデータを10個づつのバケットに分割します。Einstein Discoveryはセグメントごとに(バケットごとに)線形回帰を実行するために常にデータをバケット化します。また必要に応じて、他のバケットオプションを選択することもできます。’ストーリーを編集’ インターフェイスで、変数を選択することで、データバケットの数を増やすことができ、その分布、ビンの数、選択したバケット方法が表示されます。 しかし、バケットの数を増やしたからといって、必ずしも成果が上がるとは限りません。実際には、変数を非常に小さなセグメントに分割すると、過学習の問題にぶつかることがあり、つまり、訓練データとは別のデータでの結果が悪くなることを意味します。
下のスクリーンショットを見るとわかるように、推奨バケットは選択肢として用意されていません。推奨バケットは、最初のストーリー作成後に使用することができます。

引き続き、上の例で売上数量を予測しているところから見ていきましょう。 最も強力な予測因子の一つは、直近の期間の平均売上高の一つである「MovingAverage」です。最初のストーリー作成で、Einstein Discoveryはカウントに基づいてバケット化を行い、Rスクエアは0.82でした。しかし、レコメンデーションでは12の範囲にバケット化することを提案しています。
Einstein Discoveryの提案に従うと、Rスクエアが0.84に向上したのでモデルの質が上がったが、レンジが増えたので複雑な説明になってしまいました。これがビジネスの観点から問題ないのであれば、Einstein Discoveryの推奨するバケットを使用した方がモデルの品質のためには良いでしょう。


モデルの品質と説明しやすさはバケッティングが鍵を握ります。最適な評価指標値と明確な説明可能性の間の適切なバランスは、ビジネス的な観点を考慮して決定する必要があります。

明示的に第2レベルの変数を加える

Einstein Discoveryは、入力(説明)変数と出力(目的)変数の間の相関関係を利用して予測を導き出しますが、その際に、2次相互作用と呼ばれる、2つの変数が一緒になって結果を説明する方法も考慮します。これは、異なる特徴/変数からの2つの値の共起について、明示的な回帰係数が推定されることを意味します。例えば、次のような入力変数で商談の勝率を予測している場合、Einstein Discovery は 2 つの値の組み合わせに対して明示的な重みを持たせます。(例: 国 x 産業の組み合わせまたは国 x 製品の組み合わせ)。”国”、”産業”、”製品 “の場合、Discoveryは2つの値の組み合わせ(例:国×産業の組み合わせまたは国×製品)に対しては明示的な重みを持ちますが、3つの値の組み合わせに対しては同時に重みを持たせません。だから、例えば、Einstein Discoveryは、ドイツの製薬業界は平均よりも優れていますが、より具体的に見てみると製薬業界の製品Aは、ドイツの特定の法律のためにあまりよろしくないことがわかる、というような2変数のコンビネーションによる相関を見ることができます。場合によっては、モデルの精度を向上させるには、変数間の相互作用の第3レベルまで見たいときがあるでしょう。モデルの精度は、別のレベルの相互作用を追加することで改善されることがありますが、この場合は、組み合わせたい2つの列から3つの列のすべての組み合わせの可能性を表す別の変数を作成する必要があります。そこで、例に照らし合わせると、国 X 産業のすべての可能性を表す列を作成する必要があります。
新しい列と既存の列の間の2次の相互作用は、3次の相互作用を生成します。

従って、上記のケースでは、国X製品とセグメントの組み合わせは、明示的に3つの変数、国、製品、セグメントの間の相関のための回帰係数または重みを推定することができます。しかし、このタイプの変数を追加する際には、いくつかの配慮が必要です。

  1. 組み合わせの可能性は100を超えてはいけません。
  2. データは、新たに作成された列に可能なすべての組み合わせを反映させるために、十分に多様なものでなければなりません。上記の例に戻りますが、少し変更して以下のようにします。

ご覧のように、国 フランス x 製品 A は、唯一の組み合わせであり、Einstein Discoveryがセグメント変数と相関する唯一のものです。このモデルでは、France,ProductCやFrance,ProductBの列を単独で作成することができないため、3段階の相関関係を他の製品に外挿することができません。

まとめ

今回のブログでは、モデルの精度を高めるために使える改善方法を見てきました。これらすべての背後にある基本的なルールは、機械学習によって作られる予測モデルに従い、改善し、受け入れることは、データアナリスト/データサイエンティストとビジネスユーザーの共同作業であるということです。データの挙動と変動をビジネス的に理解することは、許容される評価指標値(MAEのような)を決定する上で重要であるだけでなく、バケット化とモデル分割の決定のような結果と説明可能性を向上させる方法を見つけることです。一方で、データサイエンティストは、Rスクエアや改善手法のような意味の根底にある評価指標を深く理解しているため、モデルの品質についてすぐに結論に飛びつくことはしないので、モデルの継続的な改善を促すことにも役立ちます。そこで私からのアドバイスは、モデル開発や評価の初期段階でビジネスユーザーを巻き込むことです。このようなコラボレーションは、2つの異なるコンピテンシー、最終的には機械と人間の間のギャップを埋めるのに役立ちます。

記事を読み終えて

皆様、OlfaのEinstein Discovery記事第2弾いかがだったでしょうか?より良い予測モデルを作るためのいくつかの手法を通してEinstein Discoveryの深遠な世界の一端を理解していただけたかと思います。予測モデルのチューニングは単にスコアを上げるだけではなく、ビジネスユーザーの利便性を第一に考える必要があります。Einstein Discoveryは、ビジネスユーザーにとっても解釈がしやすい説明を提供できるAIツールです。なので、この説明という部分を損ねないようにかつスコアを上げていくというOlfaのチューニング技法はためになったのではないでしょうか?最後に、記事中何回かOlfaは言及していますが、予測モデルのチューニングにはデータの変換が必要になる場合があります。そのときに重要になるのはデータのビジネス的な理解です。ぜひともその視点が抜けないように留意してチューニングをしていただくようお願いします。
この記事を通して、ますます皆様がEinstein Discoveryを好きになってくれることを願いつつ(小見一平)

コメント

Einstein DiscoveryのモデルをGoodからGreat!へ