予測モデルの理解

予測モデルの理解

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

Info
AI モデルは大幅に刷新され、現在はAI Modelerと名称が変更されています。AI Modeler を使用すると、アプリ全体で利用できるモデルを構築・トレーニング・公開できます。刷新前にモデルを作成している場合は、詳細についてこちらをクリックしてください。

Notes
メモ:
Creator アプリケーション内で AI モデルが実行されるたびに、AI コールが消費されます。予測フィールドの場合:
  1. すべての予測子フィールドに必要な入力が設定されると、ターゲットフィールドに予測結果を生成するための AI コールがトリガーされます。この AI コールは、利用中のAI コール上限数およびCreator プランから差し引かれます。
  2. ターゲットフィールドに予測結果が表示される前後を問わず、いずれかの予測子フィールドが変更されると、モデルは更新された入力を使用して結果を再計算します。このとき追加の AI コールがトリガーされ、このコールもAI コール上限数にカウントされます。
残りの AI コール上限数は、請求セクションから確認できます。
AI モデルの概要、作成方法、および消費方法の詳細については、このページを参照してください。
予測モデルは、過去データのさまざまなパターンを分析して、将来の出来事や結果を予測します。十分な履歴データを提供すると、予測モデルはデータパターンを分析し、それらのパターンと過去の結果との関連付けを学習し始めます。予測モデルは人工知能(AI) の機能を利用して、新しいデータ内のパターンを学習・認識し、一定の精度で起こりうる結果を予測します。予測モデリングのプロセスには、次の作業が含まれます。
  • 履歴データの投入
  • モデルのトレーニング
  • 将来の結果の判定
  • 新しいデータで定期的にモデルを再トレーニングし、ビジネスニーズに最も適したモデルに更新すること

予測モデルの前提条件

ビジネスニーズに合わせた結果を予測するために、カスタム予測モデルを構築してトレーニングできます。

必要なスキル

  • 管理者/スーパー管理者は予測モデルを作成して利用できますが、開発者や一般ユーザーは、作成済みモデルの利用のみ可能です。
  • モデルのトレーニングに使用するデータセットを決定できるよう、ビジネス要件全体について十分に把握していることが推奨されます。
  • 予測モデルのトレーニング用データを収集する際には、探索的データ分析(EDA)を行うことが望ましいです。.
  • Creator はローコードプラットフォームのため、予測モデルを作成・利用する際に、あなたやユーザーに事前のコーディングスキルは不要です。また、機械学習(ML)アルゴリズムについて理解している必要もありません。Creator には ML 機能を備えた AI Modeler が用意されています。

必要なデータ

  • トレーニングデータセットには最低でも50~100件のレコードが必要ですが、最良の結果を得るには、少なくとも10000件のレコードを用意することを推奨します。

必要な料金プラン

  • AI モデルは、Zoho Creator の有料プランで利用できます。詳細は料金ページを参照してください。

必要な Creator のバージョン

  • カスタム AI モデルを作成するには、Zoho Creator 6(C6)を使用する必要があります。一方、すぐに使える AI モデルは、C6 と C5 の両方で利用できます。

必要なスキルとデータの種類を把握したら、次のステップは、トレーニングデータに投入する値をどのように絞り込んで選択するかを理解することです。


Creator を使用して、ジルカー保険というアプリケーションを作成したとします。そこに、顧客が保険金請求を送信するためのInsurance Claimというフォームを追加しています。ここで、顧客から送信された保険金請求が正当なものかどうかを判定したいとします。このように、これは二値予測結果モデルの一種です。


次に、予測モデルにどのような結果を出させたいか、その結果に影響する要因を考えてみましょう。たとえば、「保険金請求が正当かどうか?」という問いに対して、次のような質問を検討します。

  • 報告された事故の重大度はどの程度か?
  • その顧客はどのくらいの期間(何か月/何年)信頼できる顧客であり続けているか?
  • 請求されている保険金の総額はいくらか?
  • 不明な値が含まれており、不確実性の原因となる列はないか?

    

上記の情報を基に、トレーニングに使用するデータを選定できます。


Info
このページの末尾にあるサンプルデータを使う場合、「自分が指定した年の車の価格を予測できるか?」というのが課題になります。したがって、車の予測価格は過去の結果であり、この情報が空になっているところで予測モデルが予測に役立ちます。この例では、次のような要素などを考慮できます。
  1. 車のメーカーとモデル
  2. 製造年
  3. トランスミッションと走行距離


 



モデルで考慮すべき要素が分かったところで、上記の例で予測モデルをどのように利用するかを説明します。

1. 次の手順でモデルを作成します。
    1. 予測したい値を特定します。この例では、顧客から提出された保険金請求が正当どうかを予測します。
    2. 予測に使用するデータを特定します。トレーニング/履歴/過去データセットには、次の要素が含まれている必要があります。
      1. 信頼できる顧客としての月数
      2. 事故の重大度
      3. 見積もられた請求総額
  • Insurance Claimフォームに、できるだけ多くのレコードがあることを確認します。モデルのトレーニングにはすべてのレコードを使用することも、条件を指定して特定のレコードのみを使用することもできます。たとえば、特定の期間のレコードだけを抽出できます。
Notes
メモ: トレーニングデータをすべて CSV ファイルに保存している場合は、可能な限り多くのデータ列を含めてください。
2. モデルをトレーニングします。
3. 次の手順でモデルをデプロイします。
  1. まず、先ほど選択したベース項目と従属項目を、フォーム内の対応するフィールドにマッピングします。予測項目(ベース項目)がフォームに追加されます。
  2. 次に、アプリケーションにアクセスし、入力した値に基づいて予測値が予測項目に表示されるようにします。
Notes
メモ:
  1. CSV ファイルからトレーニングデータを追加する場合は、項目のマッピングが必須です。
  2. アプリケーションのレコードを使用してトレーニングデータを追加した場合、そのフォームのデータ(フィールド)を使って構築した予測モデルを同じフォームにデプロイする際は、項目のマッピングを行う必要はありません。この場合、フィールドは自動的にマッピングされます。

予測モデルのフロー




トレーニングデータの追加

トレーニングデータは、モデルがパターンを見つけ、解釈を行い、予測を導き出すために使用する初期データセットですモデルに投入するデータを確定したら、次の 2 通りの方法でデータを追加できます。アプリケーションのフォームフィールドから追加する方法と、CSV ファイルから追加する方法です。予測モデルでは、前者の方法ではトレーニングデータはベース項目と従属項目で構成され、後者の方法ではベース列と従属列で構成されます。


Info
  1. モデルの結果は常に正確とは限りません。これは、あらゆる AI に共通する点です。
  2. モデルの結果は動的です。トレーニングによってモデルがどれだけ学習したかに応じて、同じ入力でも異なるタイミングで異なる結果が得られる場合があります。つまり、モデルを継続的に再トレーニングすると、その分モデルも継続的に学習していることになります。


どの方法でトレーニングデータを追加すべきか迷うことがあるかもしれません。アプリケーション内にトレーニングデータとして使用できる十分なレコードがある場合は、フォームのフィールドを追加し、そのレコードをトレーニングデータとして使用する方法を選択できます。逆に、アプリケーション内のレコードが十分でないものの、ファイルとしてデータを保存している場合は、CSV ファイルからデータを追加する後者の方法を選択できます。


Notes

メモ:

  1. アプリケーションから選択したフィールドは、トレーニング用のベースフィールドと従属フィールドとして機能します。
  2. この CSV から選択した列は、トレーニング用のベース列と従属列として機能します。

ここで最も重要なのは、履歴の結果列ではないデータ/列が、その結果の影響を間接的に受けていないかどうかを確認することです。

たとえば、注文が遅延するかどうかを予測したいとします。データには実際の納品日が含まれているかもしれません。この日付は、注文が納品された後にのみ存在します。この列を含めると、モデルの精度はほぼ 100% になります。しかし、納品日を予測したい注文については、まだ納品されていないため、納品日列には値が入りません。正確な結果を得るには、このような列はトレーニング前に選択解除する必要があります。

フォームフィールドからのデータ

アプリケーションのフィールドに保存されているデータを選択し、トレーニングデータとしてモデルに投入できます。


項目の選択

Info

予測モデルでは、ベースフィールドおよび従属フィールドとして追加できるフィールドタイプは、以下のタイプのみサポートされます。サポートされていないフィールドタイプがデータ内に含まれている場合、それらはフィールド選択ページには表示されません。


  1. 数値 
  2. 小数
  3. パーセント
  4. 通貨
  5. ドロップダウン
  6. ラジオボタン
  7. 日付
  8. 日時

ベースフィールドと従属フィールド

トレーニングデータとしてアプリケーションのフィールドを選択する際には、次の2種類のフィールドデータが必要です。

  • ベースフィールドは、結果を予測したい対象のフィールドです。
  • 従属フィールドは、予測モデルが予測処理に使用するフィールドです。


上記のでは、ベースフィールドは「Is this a Fraud Claim」であり、従属フィールドは「Months as Customer」「Incident Severity」「Total Claim Amount」フィールドになります。

データの選択

トレーニングデータとして使用するレコードを選択すると、デフォルトでは、すべてのレコードのデータが対象になります。ただし、特定のレコードセットに絞って学習および予測を行いたい場合もあります。そのような場合は、特定のレコードセット のみを予測モデルのトレーニングに使用するよう、条件を組み合わせて絞り込み条件(条件式)を定義できます。トレーニングに使用するレコードに不要な情報が含まれているとわかっている場合は、このステップでデータをフィルタリングしてください。


たとえば、ある保険会社が Creator を使用して、保険金請求が不正かどうかを予測するアプリケーションを作成しているとします。これを正確に予測するには、アプリケーションフォームにあるすべてのレコードでモデルをトレーニングし、モデルの理解度を高める必要があります。


さらに、この保険会社が「事故日が 2018 年以前の請求は処理しない」と宣言したとします。この条件を絞り込み条件として設定すると、2018 年以降に発生した事故に対する請求のみが不正請求の判定対象として考慮されます。このように条件を使用して、対象レコードを絞り込むことができます。


すべてのレコード

フォーム内のすべてのレコードを使用します。

たとえば、ある保険会社が Creator を使用して、保険金請求が不正かどうかを予測するアプリケーションを作成しているとします。これを正確に予測するには、アプリケーションフォームにあるすべてのレコードでモデルをトレーニングし、モデルの理解度を高める必要があります。

特定のレコード

フィールド、演算子、値を選択して 1 つ以上の条件を定義し、その条件に一致する特定のレコードのみをモデルのトレーニングに使用します。

保険会社が「事故日が 2018 年以前の請求は処理しない」と宣言している場合、この条件を絞り込み条件として設定すると、2018 年以降に発生した事故に対する請求のみが不正請求の判定対象として考慮されます。

CSV ファイルからのデータ

トレーニングデータを選択するもう 1 つの方法は、CSV形式のファイルに保存されているデータを使用することです。サポートされていないフィールドタイプの列がデータ内に含まれている場合、それらは列選択ページには表示されません。


列の選択


予測モデルでは、CSV のトレーニングデータとして、次のデータ型をサポートします:数値テキスト、日付日時。これらの型のデータは、ベース列および従属列として追加できます。


これらのデータ型に当てはまらない不要なデータを含む列は、CSV 予測ではサポートされません。サポートされていないフィールドタイプの列がデータ内に含まれている場合、それらはフィールド選択ページには表示されません。

ベース列と従属列

この CSV から選択した列は、学習用のベース列と従属列として扱われます。

  • ベース列は、結果を予測したい対象の列です。
  • 従属列は、予測モデルが予測処理に使用する列です。


上記のでは、ベース列は「Fraud Claim」であり、従属列は「Months as Customer」「Incident Severity」「Total Claim Amount」フィールドになります。

モデルのガイドライン

  • 結果を予測するには、ベースフィールド/列が必須です。
  • 予測モデルに追加できる従属フィールド/列は最大20個です。
  • 1つの予測モデルにつき、20個まで条件を追加できます。
  • 4MBは、CSV ファイルの最大ファイルサイズ制限です。
  • モデルを学習させるには、最低50件のレコードが必要です。より高い精度を得るには、10000件を超えるレコードを追加して、データをより充実させてください。

モデルサマリー

学習データを追加した後、モデル名、ベースフィールド/列従属フィールド/列などのモデルの詳細を確認できます。必要に応じて、戻ってモデル名ベースフィールド/列従属フィールド/列を変更できます。変更が不要な場合は、そのままモデルの学習に進みます。

モデルを学習させる

アプリケーションで予測モデルを実際に使用する前に、期待どおりの結果を出せるように学習させる必要があります。データフィールド/列を選択して確認したら、Trainをクリックしてモデルを学習させます。

Notes
メモ: 学習には時間がかかる場合があります。同じページで待機することも、ページを閉じて後で戻ることもできます。学習時間は、モデルのサイズとキュー内の学習モデル数によって異なります。

モデルの詳細を表示・管理する

モデルのトレーニングが完了すると、モデルの詳細モデルのバージョン、および(存在する場合は)デプロイの詳細を表示できます。モデルはアプリケーションに公開およびデプロイする準備が整っています。


Notes
メモ:
  1. 再トレーニングオプションは、フォームフィールドからトレーニングデータを追加した場合にのみ利用できます。これは、アプリケーションに新しいレコードが継続的に追加されるタイミングで、その都度モデルをトレーニングできるためです。
  2. CSVファイルでデータを追加する場合は、モデルを削除して新しいファイルをアップロードし、再度モデルをトレーニングできます。


モデルは、次の方法で管理できます。

  • 再トレーニング - モデルの再トレーニングとは、デプロイ済みのAIモデルを新しいデータで更新することを指します。新しいデータは常に生成されるため、定期的にモデルを再トレーニングすることを推奨します。これにより、予測モデルの信頼性と精度が向上します。
  • 再トレーニングをクリックすると、モデルが再トレーニングされます。
  • 各再トレーニングの完了後に、新しいバージョンのモデルが作成されます。必要に応じて、異なるバージョンを切り替えて使用できます。
  • 現在使用中のバージョンを削除する場合は、その前に別のバージョンに切り替えてから、現在のバージョンを削除する必要があります。
  • モデルのトレーニングに失敗した場合は、直前まで正常に動作していたモデルが予測に使用されます。
  • 名前の変更 - 必要に応じて、モデル名を変更できます。
  • 削除 - データの不整合や誤ったデータの追加が原因でモデルを削除したい場合は、削除オプションを使用します。

モデルをテストする

Info
モデルをアプリケーションで公開およびデプロイする前に、モデルをテストすることを推奨します。

トレーニング後、アプリケーションにデプロイする前に、モデルがどのように動作するか、トレーニング結果が十分かどうかを確認するために、モデルをテストできます。テストデータをアップロードしてモデルをテストすると、予測結果とともに精度スコアが表示されます。

  • 精度スコア(%)が高い(85〜97)の場合は、モデルを公開して問題ありません。
  • 精度スコア(%)が良好(70〜84)または普通(51〜69)の場合は、新しい値でモデルを再トレーニングすることができます。
  • 精度スコア(%)が低い(50未満)の場合は、データの不整合を確認して修正し、再度モデルをトレーニングする必要があります。

精度スコア

予測モデルは、テストデータセットの予測結果に基づいて、トレーニング済みモデルの精度スコアを算出します。たとえば、データセットに500件のレコードがあり、そのうち492件をモデルが正しく予測した場合、精度スコアは96%と表示されます。


Info
  1. モデルの結果は、他のAIと同様に、常に正確であるとは限りません。結果をより理想に近づけるため、継続的にモデルをトレーニングしています。
  2. モデルの結果は動的です。同じ入力であっても、マシンの学習状況に応じて、異なるタイミングで異なる結果が生成される場合があります。これは、継続的にトレーニングが行われ、モデルが常に学習し続けていることを意味します。

予測モデルの精度を向上させる

モデルのトレーニング、テスト、評価が完了した後、結果が期待どおりでない場合は、モデルを編集して(任意)パフォーマンスを改善できます。以下は、モデルの精度スコア向上に役立ついくつかの方法です。

エラーや問題点を確認する

  • モデルのトレーニングが失敗した場合は、モデルの詳細を確認し、再度トレーニングを実行してください。
  • エラーはないものの精度が低い場合は、モデルのトレーニング設定の詳細を確認してください。
  • 可能な限り多くの問題に対処してから、モデルを再トレーニングしてください。次のような理由で問題が発生している可能性があります。
  • アプリケーションレコードからトレーニングデータを追加する場合、対応する基準フィールドと従属フィールドがフォームに存在しないと、モデルのトレーニングが失敗することがあります。この場合は、まずフォームにこれらのフィールドを作成してから、モデルをトレーニングしてください。


データに基づく修正
  • モデルをトレーニングするには、最低でも50~100件のデータレコードが必要です。高い精度を持つ予測モデルをトレーニングするには、正しくラベル付けされたレコードが 10,000 件以上あることが望ましいです。
  • 正しくラベル付けされたトレーニングデータが大量にあっても、必要な予測に無関係なフィールド/列を選択していると、モデルがうまく機能しない場合があります。予測したい結果に影響を与える関連列のみを選択し、無関係な列は選択解除してください。
  • データには、予測結果として想定される選択肢の範囲に概ね対応する、さまざまなパターンを含めることを推奨します。たとえば、履歴の結果がSuccess(成功)Failure(失敗)の 2 種類あるにもかかわらず、ほとんどのデータレコードがこの列でSuccess(成功)のみを持つ場合、このような不均衡なデータ分布からモデルが学習するのは困難です。
  • 欠損値の割合が高くならないようにしてください。欠損値にはデフォルト値を入力するか、モデルのトレーニング対象データから除外します。
  • あるフィールド/列が予測結果と強い相関を持つ場合は、そのフィールド/列を削除してからモデルをトレーニングしてください。


データクレンジング

データクレンジングとは、トレーニングデータセットから不正確、不適切な形式、重複、不十分な情報を削除するプロセスです。2 つ以上のデータソースを結合すると、データの重複やラベル付けの誤りが発生するリスクが高まります。予測結果が一見正確に見えても、データの誤りがあると結果の信頼性は損なわれます。


トレーニングデータをモデルに入力する前にデータをクレンジングすることは、モデルのパフォーマンス向上のために非常に重要です。誤字脱字、数値の欠損、スペルミス、その他のエラーがないか、各行のデータを丁寧に確認することが、誤ったデータをクレンジングする最も効果的な方法です。これにより、モデルのトレーニングに明らかに不適切なデータを取り除くことができます。

モデルを公開して利用する

モデルのトレーニングが完了したら、モデルを公開してユーザーが利用できるようにし、予測を開始できます。操作方法を見る

Info
モデルを公開できるのは 1 回のみです。ユーザーにモデルを利用させたくない場合は、モデルを削除できます。

環境が有効になっている Creator アプリケーションで予測モデルを使用するには、そのアプリケーションの少なくとも 1 つのバージョンが本番環境に公開されている必要があります。アプリケーションにモデルをデプロイした後は、モデルがどのステージにデプロイされているかを確認するために、さまざまな環境ステージを切り替えて確認できます。操作方法を見る


サンプルデータで始める

予測機能をすぐに使い始められるよう、Creator アプリケーションですぐに利用できるサンプルデータを提供しています。以下の添付ファイルをダウンロードして、予測モデルの作成を開始してください。