MLSolution - グローバル

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む14読むのに数分
  • 予測インテリジェンス の予測を処理し、すべての機能 (類似性、分類、クラスタリング) のソリューションオブジェクトを取得するためのメソッドを提供します。

    MLSolution API は、すべてのソリューション機能で共通して使用されるメソッドと、分類およびクラスタリングのソリューションに固有のメソッドを提供します。
    • すべてのソリューションオブジェクトに使用される共通メソッド:
      • getCapability()
      • getVersion()
      • isActive()
      • predict()
    • 分類および回帰ソリューションにのみ使用されるメソッド:
      • applyPrediction()
    • クラスタリングソリューションにのみ使用されるメソッド:
      • getClusterAssignments()
      • getClusterForRecord()
      • getClusterInfo()

    MLSolution API には 予測インテリジェンス プラグイン (com.glide.platform_ml) が必要です。この API は sn_ml 名前空間内で提供されます。

    このオブジェクトのメソッドは、 MLSolutionFactory を使用してインスタンス化されます。

    MLSolution - applyPrediction(GlideRecord now_GR)

    信頼性の値がしきい値より大きい場合に、分類ソリューションの予測結果を取得し、それを入力 GlideRecord に適用します。

    表 : 1. パラメーター
    名前 タイプ 説明
    now_GR GlideRecord 予測を実行して結果を適用する対象の値を含む GlideRecord オブジェクト。
    表 : 2. 返される内容
    タイプ 説明
    ブーリアン

    予測が適用されたかどうかを示すフラグ。

    • true:予測が適用された
    • false:予測が却下された
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("ml_incident_categorization");
    
    var inputGR = new GlideRecord("incident");
    inputGR.get("0ef47232db801300864adfea5e961912");
    
    mlSolution.applyPrediction(inputGR);

    MLSolution - getCapability()

    トレーニング済みソリューションの機能情報を取得します。

    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 返される内容
    タイプ 説明
    文字列 トレーニング済みソリューションのタイプ。
    可能な値:
    • 類似性
    • 分類
    • クラスターリング
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("ml_x_global_clustering");
    
    // configure optional parameters
    var options = {};
    options.group_by = 'network';
    options.cluster_id = 1;
    options.top_n_per_cluster = 3;
    
    if (mlSolution.getCapability() == 'clustering') {
    	var results = mlSolution.getClusterAssignments(options);
    	// pretty print JSON results
    	gs.print(JSON.stringify(JSON.parse(results), null, 2));
    }

    MLSolution - getClusterAssignments(オブジェクト options)

    クラスタリングソリューションの割り当てを取得します。

    表 : 5. パラメーター
    名前 タイプ 説明
    オプション オブジェクト オプション。返された結果を、クラスタリングソリューション内のグループとレベルで絞り込むために使用する値。

    デフォルト:すべてのクラスターのクラスターメンバーシップを返します。

    options.group_by 文字列 オプション。クラスターメンバーシップ (assignment_group など) を取得するセグメンテーションフィールドを識別します。

    このフィールドは、[クラスタリング定義] フォームの [グループ化] チェックボックスで提供されるオプションと同じグループ化を提供します。表示される情報は、[テーブル] フィールドで選択したテーブルによって異なります。詳細については、「 クラスタリングソリューションの作成とトレーニング 」を参照してください。

    options.cluster_id 文字列 オプション。クラスターサマリー [ml_cluster_summary] テーブルのトレーニング済みソリューションのクラスター ID。
    options.top_n_per_cluster 番号 クラスターごとに受信する上位の結果の数。
    表 : 6. 返される内容
    タイプ 説明
    オブジェクト クラスター情報を含む JSON のアレイ (cluster_id の昇順)。
    • cluster_id:文字列。クラスターのソリューション内の一意のクラスター番号。
    • rec_display_id:文字列。レコードのタイプと番号。
    • rec_sys_id:文字列。レコード sys_id。
    • group_by: グループ化されている場合、このクラスターに関連付けられているセグメンテーションフィールドの名前。
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("ml_x_global_clustering");
    
    // configure optional parameters
    var options = {};
    options.group_by = 'network';
    options.cluster_id = '1';
    // returns top 3 results per cluster
    options.top_n_per_cluster = 3;
    
    var results = mlSolution.getClusterAssignments(options);
    
    

    出力:

    [{"cluster_id":"1","rec_display_id":"Incident: INC0014483","rec_sys_id":"04e33e7adb401300864adfea5e961900","group_by":"network"},
     {"cluster_id":"1","rec_display_id":"Incident: INC0011133","rec_sys_id":"5bd23af2db401300864adfea5e96194d","group_by":"network"}]

    MLSolution - getClusterForRecord(GlideRecord now_GR)

    クラスタリングソリューションのクラスター情報を取得します。

    表 : 7. パラメーター
    名前 タイプ 説明
    now_GR GlideRecord 入力 GlideRecord の名前。
    表 : 8. 返される内容
    タイプ 説明
    文字列 レコードがクラスターに属する場合は、クラスターサマリー [ml_cluster_summary] テーブルの cluster_id。レコードがクラスターに属していない場合は、空の文字列が返されます。
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("solution_name");
    var now_GR = new GlideRecord('incident');
    if (mlSolution.getCapability() == 'clustering') {
    var clusterId = mlSolution.getClusterForRecord(now_GR);
    }

    MLSolution - getClusterInfo(オブジェクト options)

    指定されたクラスタリングソリューションの情報を取得します。

    表 : 9. パラメーター
    名前 タイプ 説明
    オプション オブジェクト オプション。返された結果を、クラスタリングソリューション内のグループとレベルで絞り込みます。

    デフォルト:すべてのクラスターのクラスターメンバーシップを返します。

    options.group_by 文字列 オプション。クラスターメンバーシップ (assignment_group など) を取得するセグメンテーションフィールドを識別します。

    このフィールドは、[クラスタリング定義] フォームの [グループ化] チェックボックスで提供されるオプションと同じグループ化を提供します。表示される情報は、[テーブル] フィールドで選択したテーブルによって異なります。詳細については、「 クラスタリングソリューションの作成とトレーニング 」を参照してください。

    options.cluster_id 文字列 オプション。クラスターサマリー [ml_cluster_summary] テーブルのトレーニング済みソリューションのクラスター ID。
    表 : 10. 返される内容
    タイプ 説明
    オブジェクト クラスター情報を含む JSON のアレイ (cluster_id の昇順)。
    • cluster_id:文字列。クラスターのソリューション内の一意のクラスター番号。
    • cluster_quality:文字列。0 ~ 100 の数値。数値が大きいほどクラスター密度が高いことを示します。
    • cluster_size:文字列。クラスター内のレコードの数。
    • group_by: グループ化されている場合、このクラスターに関連付けられているセグメンテーションフィールドの名前。
    • cluster_concept:文字列。頻度の降順によるクラスターを説明する単語のセット。
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("ml_x_global_clustering");
    
    // configure optional parameters
    var options = {};
    options.group_by = 'network';
    options.cluster_id = 1;
    
    var results = mlSolution.getClusterInfo(options);

    出力:

    [ {"cluster_id":"1","cluster_quality":"56.6","cluster_size":"46","group_by":"SLA","cluster_concept":"issue occur capacity ..."},
      {"cluster_id":"2","cluster_quality":"55.47","cluster_size":"75","group_by":"SLA","cluster_concept":"clone instance request ..."},
    ... ]

    MLSolution - getVersion()

    アクティブなソリューションのバージョンを取得します。

    表 : 11. パラメーター
    名前 タイプ 説明
    なし
    表 : 12. 返される内容
    タイプ 説明
    文字列 アクティブなソリューションのバージョン。
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("solution_name");
    
    var solutionVersion = mlSolution.getVersion();

    MLSolution - isActive()

    ソリューションがアクティブかどうかを判断します。

    表 : 13. パラメーター
    名前 タイプ 説明
    なし
    表 : 14. 返される内容
    タイプ 説明
    ブーリアン ソリューションがアクティブかどうかを示すフラグ。
    • true:ソリューションはアクティブである
    • false:ソリューションは非アクティブである
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("solution_name");
    
    var isActive = mlSolution.isActive();

    MLSolution - predict(オブジェクト input, オブジェクト options)

    GlideRecord またはキーと値のペアのアレイを指定して、予測サーバーから予測結果を取得します。

    GlideRecord は反復子であるため、このメソッドを使用して複数の入力レコードを含む予測を呼び出すことができます。

    表 : 15. パラメーター
    名前 タイプ 説明
    入力 オブジェクト GlideRecord または、キーと値のペアとしてフィールド名と値を含む JSON オブジェクトのアレイ。
    オプション オブジェクト オプション。次のプロパティを持つ、 JSON のキーと値のペア。
    • top_n:数値。指定されている場合、指定された予測の数までの上位の結果を返します
    • apply_threshold:ブール。ソリューションのしきい値をチェックして結果セットに適用します。しきい値は、類似性のソリューションしきい値または分類のクラスレベルのしきい値です。デフォルト値は true です。
    • custom_results_filter:文字列。類似性ソリューションのみ。エンコードされたクエリを使用して結果が返される元になる許可されたセットを指定します。
    表 : 16. 返される内容
    タイプ 説明
    オブジェクト sys_id または record_number でソートされた予測結果を含む JSON オブジェクト。
    • predictedValue:文字列。予測結果を表す値。
    • predictedSysId:文字列。予測値の sys_id。結果は、情報が予測されている任意のテーブルから取得できます。
    • confidence:数値。予測に関連付けられた信頼性の値。例:53.84。
    • threshold:数値。予測に関連付けられた構成済みのしきい値の値。
    • detailedResults:オブジェクト。類似性ソリューションのみ。一致するテキストインデックスに関する詳細を含む JSON のキーと値のペア。
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("ml_incident_categorization");
    
    // single GlideRecord input
    var input = new GlideRecord("incident");
    input.get("0ef47232db801300864adfea5e961912");
    
    // configure optional parameters
    var options = {};
    options.top_n = 3;
    options.apply_threshold = false;
    
    var results = mlSolution.predict(input, options);
    // pretty print JSON results
    gs.print(JSON.stringify(JSON.parse(results), null, 2));
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("ml_incident_categorization");
    
    // multiple GlideRecord input
    var input = new GlideRecord("incident");
    input.addQuery("sys_created_onONLast week@javascript:gs.beginningOfLastWeek()@javascript:gs.endOfLastWeek()");
    input.query();
    
    // configure optional parameters
    var options = {};
    options.top_n = 3;
    options.apply_threshold = false;
    
    var results = mlSolution.predict(input, options);
    // pretty print JSON results
    gs.print(JSON.stringify(JSON.parse(results), null, 2));

    出力:

    {
        input_gr_sys_id1: [
                    {
                        predictedValue : xxx,
                        predictedSysId : xx0,
                        confidence : xxx,
                        threshold : xxx,
                        detailedResults : [.....]
    
                    }, 
                    {
                        predictedValue : yyy,
                        predictedSysId : xx1,
                        confidence : xxx,
                        threshold : xxx,
                        detailedResults : [.....]
                    }
            ],
        input_gr_sys_id2 : [
                    {
                        predictedValue : xxx,
                        predictedSysId : xx0,
                        confidence : xxx,
                        threshold : xxx,
                        detailedResults : [.....]
    
                    }, 
                ...
            ]
    }
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("ml_incident_categorization");
    
    // key-value pairs input
    var input = [{"short_description":"my email is not working"}, 
    			{short_description:"need help with password"}];
    
    // configure optional parameters
    var options = {};
    options.top_n = 3;
    options.apply_threshold = false;
    
    var results = mlSolution.predict(input, options);
    // pretty print JSON results
    gs.print(JSON.stringify(JSON.parse(results), null, 2));