エンコーダー - グローバル
エンコーダー API は、予測インテリジェンス ストアで使用されるスクリプト可能なオブジェクトを提供します。このオブジェクトは、エンコーダー固有の目標と構成に基づいて、入力データを数値のベクトルに変換します。エンコーダーは、エンコーディングを実行するために個別に使用することも、テキスト列をエンコードするソリューションの一部として構成することもできます。
この API には 予測インテリジェンス プラグイン (com.glide.platform_ml) が必要で、 sn_ml 名前空間内で提供されます。
エンコーダーは、事前にトレーニングされたテキスト処理オブジェクト、または提供された言語データセットに基づいてトレーニングされたテキスト処理オブジェクトです。システムがテキストフィールドをどのように解釈して処理するかを決定するエンコーダーをトレーニングできます。テキストを含む ML ソリューションの場合、エンコーダーをトレーニングして、テキストの処理方法を指定し、トレーニング済みエンコーダーをソリューションで使用できます。
エンコーダには構成とバージョンがあり、独自の再トレーニング頻度で個別にトレーニングできます。API 定義エンコーダーは、UI 定義エンコーダーの再トレーニングがそれらを使用するソリューションによって制御されるため、UI 定義エンコーダーとは異なります。
- DatasetDefinition API を使用して 1 つ以上のデータセットを作成します。
- コンストラクターを使用して、エンコーダー オブジェクトを作成します。
- EncoderStore - add() メソッドを使用して、エンコーダー オブジェクトをエンコーダー ストアに追加します。
- submitTrainingJob() メソッドを使用してエンコーダーをトレーニングします。これにより、 EncoderVersion API を使用して管理できるオブジェクトのバージョンが作成されます。
- 分類ソリューション
- ClusteringSolution (レーベンシュタイン距離アルゴリズムを使用しない限り必要)
- 回帰ソリューション
- SimilaritySolution (必須)
使用上のガイドラインについては、「 ML API の使用」を参照してください。
エンコーダー - エンコーダー (オブジェクト構成)
エンコーダーを作成します。
1 つ以上のデータセットのエンコーダーを取得するには、このコンストラクターを使用して、一意の名前で新しいエンコーダー オブジェクトを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 構成 | オブジェクト | の構成プロパティを含む JavaScript オブジェクト エンコーダー。 |
| config.algorithmConfig | オブジェクト | オプション。 アルゴリズム構成プロパティを含む JavaScript オブジェクト。 |
| config.algorithmConfig.algorithm | 文字列 | このエンコーダーをトレーニングするためのアルゴリズムの名前。
可能な値:
|
| config.datasets | アレイ | DatasetDefinition オブジェクト名のリスト。 |
| config.domainName | 文字列 | オプション。このデータセットに関連付けられたドメイン名。「 ドメインセパレーション」および 予測インテリジェンスを参照してください。 デフォルト:現在のドメイン ( |
| config.label | 文字列 | 予測タスクを識別します。 |
| config.minRowCount | 文字列 | オプション。トレーニングのためにデータセットに必要なレコードの最小数。 デフォルト:10000 |
| config.processingLanguage | 文字列 | オプション。2 文字の ISO 639-1 言語コード形式の処理言語。 デフォルト:「en」 |
| config.stopwords | アレイ | オプション。languageプロパティ設定に基づいてシステムが自動的に生成する文字列のプリセットリスト。詳細については、「 カスタムストップワードリストの作成」を参照してください。 デフォルト:英語のストップワード |
| config.trainingFrequency | 文字列 | モデルを再トレーニングする頻度。
可能な値:
|
次の例は、エンコーダー ジョブを作成してエンコーダー ストアに追加する方法を示しています。
var myPrbData = new sn_ml.DatasetDefinition({
'tableName' : 'problem',
'fieldNames' : ['short_description'],
'encodedQuery' : 'activeANYTHING'
});
var myIncidentData = new sn_ml.DatasetDefinition({
'tableName' : 'incident',
'fieldNames' : ['short_description', 'description'],
'encodedQuery' : 'activeANYTHING'
});
var myEncoder = new sn_ml.Encoder({
'label': "encoder",
'datasets' : [myPrbData, myIncidentData],
'algorithmConfig' : {
'algorithm' : 'tf-idf'
}
});
var myEncoderName = sn_ml.EncoderStore.add(myEncoder);
エンコーダー:cancelTrainingJob()
のジョブをキャンセル エンコーダーオブジェクト トレーニングのために送信された
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、既存のトレーニングジョブをキャンセルする方法を示しています。
var myEncoder = sn_ml.EncoderStore.get('ml_sn_global_global_encoder');
myEncoder.cancelTrainingJob();
エンコーダー:getActiveVersion()
アクティブを取得します EncoderVersion オブジェクト。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | アクティブ EncoderVersion オブジェクト。 |
次の例は エンコーダー ストアからアクティブなバージョンを取得し、そのトレーニングステータスを返す
var mlEncoder = sn_ml.EncoderStore.get('ml_x_snc_global_global_encoder');
gs.print(JSON.stringify(JSON.parse(mlEncoder.getActiveVersion().getStatus()), null, 2));
出力:
{
"state": "encoder_complete",
"percentComplete": "100",
"hasJobEnded": "true"
}
エンコーダー:getAllVersions()
のすべてのバージョンを取得します エンコーダー。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| アレイ | エンコーダーオブジェクトの既存のバージョン。「EncoderVersion API」も参照してください。 |
次の例は、すべての エンコーダー バージョンオブジェクトを取得し、それらに対して getVersionNumber() および getStatus() エンコーダーバージョンメソッドを呼び出す方法を示しています。
var mlEncoder = sn_ml.EncoderStore.get('ml_x_snc_global_global_encoder');
var mlEncoderVersions = mlEncoder.getAllVersions();
for (i = 0; i < mlEncoderVersions.length; i++) {
gs.print("Version " + mlEncoderVersions[i].getVersionNumber() + " Status: " + mlEncoderVersions[i].getStatus() +"\n");
};
出力:
Version 3 Status: {"state":"encoder_complete","percentComplete":"100","hasJobEnded":"true"}
Version 2 Status: {"state":"encoder_complete","percentComplete":"100","hasJobEnded":"true"}
Version 1 Status: {"state":"encoder_cancelled","percentComplete":"0","hasJobEnded":"true"}
エンコーダー:getLatestVersion()
の最新バージョンを取得します エンコーダー。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | EncoderVersion の最新バージョンに対応するオブジェクト を Encoder() に置き換えます。 |
次の例は、ソリューションの最新バージョンを取得し エンコーダーで、そのトレーニングステータスを返します。
var mlEncoder = sn_ml.EncoderStore.get('ml_x_snc_global_global_encoder');
gs.print(JSON.stringify(JSON.parse(mlEncoder.getLatestVersion().getStatus()), null, 2));
出力:
{
"state": "encoder_complete",
"percentComplete": "100",
"hasJobEnded": "true"
}
エンコーダー:getName()
ストアとのインタラクションに使用するオブジェクトの名前を取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | エンコーダーオブジェクトの名前。 |
次の例は、 エンコーダー データセット情報を更新し、オブジェクトの名前を出力
// Update encoder
var myIncidentData = new sn_ml.DatasetDefinition({
'tableName' : 'incident',
'fieldNames' : ['category', 'short_description', 'priority'],
'encodedQuery' : 'activeANYTHING'
});
var eligibleFields = JSON.parse(myIncidentData.getEligibleFields(encoder));
var myEncoder = new sn_ml.Encoder({
'label': "my encoder",
'datasets' : [myIncidentData],
'inputFieldNames': eligibleFields['eligibleInputFieldNames'],
'predictedFieldName': 'category'
});
// update encoder
sn_ml.EncoderStore.update('ml_x_snc_global_global_my_definition_4', myEncoder);
// print encoder name
gs.print('Encoder Name: '+myEncoder.getName());
出力:
Encoder Name: ml_x_snc_global_global_my_definition_4
エンコーダー:getProperties()
ソリューションオブジェクトプロパティを取得しますに展開したカスタムモバイルアプリケーションを使用して管理しました。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | EncoderStore 内の Dataset と Encoder() オブジェクトの詳細の内容。 |
| <Object>.algorithmConfig.algorithm | このエンコーダーをトレーニングするためのアルゴリズムの名前。 可能な値:
データタイプ:文字列。 |
| <Object>.algorithmConfig | オプション。 アルゴリズム構成プロパティを含む JavaScript オブジェクト。
データタイプ:オブジェクト。 |
| <Object>.datasetsProperties | エンコーダーに関連付けられている DatasetDefinition() プロパティのリスト。
データタイプ:アレイ。 |
| <Object>.datasetsProperties.tableName | データセットのテーブルの名前。たとえば、「 tableName」:「インシデント」です。 データタイプ:文字列。 |
| <Object>.datasetsProperties.fieldNames | 指定されたテーブルのフィールド名を文字列としてリストします。例:"fieldNames" : ["short_description", "priority"]。 データタイプ:アレイ。 |
| <Object>.datasetsProperties.fieldNames.fieldDetails | フィールドのプロパティを指定する JavaScript オブジェクトのリスト。
データタイプ:アレイ。 |
| <Object>.datasetsProperties.fieldNames.fieldDetails.<object>.名前 | このデータセットを制限する情報のタイプを定義するフィールドの名前。 データタイプ:文字列。 |
| <Object>.datasetsProperties.fieldDetails.<object>。タイプ | 機械学習フィールドタイプ。 データタイプ:文字列。 |
| <Object>.datasetsProperties.fieldDetails.encodedQuery | 標準の Glide 形式でエンコードされたクエリ文字列。「 エンコードされたクエリ文字列」を参照してください。 データタイプ:文字列。 |
| <Object>.domainName | このデータセットに関連付けられたドメイン名。「 ドメインセパレーション」および 予測インテリジェンスを参照してください。 データタイプ:文字列。 |
| <Object>.label | 予測タスクを識別します。
データタイプ:文字列。 |
| <Object>.name | システムによって割り当てられた名前。 データタイプ:文字列。 |
| <Object>.predictedFieldName | 予測可能性のためにトレーニングするフィールドを識別します。 データタイプ:文字列。 |
| <Object>.processingLanguage | 2 文字の ISO 639-1 言語コード形式の処理言語。 データタイプ:文字列。 |
| <Object>.scope | オブジェクトスコープ。現時点で有効な値は グローバル値のみです。データタイプ:文字列 |
| <Object>.stopwords | オプション。languageプロパティ設定に基づいてシステムが自動的に生成する文字列のプリセットリスト。詳細については、「 カスタムストップワードリストの作成」を参照してください。 データタイプ:アレイ。 |
| <Object>.trainingFrequency | モデルを再トレーニングする頻度。 可能な値:
データタイプ:文字列。 |
次の例では、 エンコーダーオブジェクト ます。
var myEncoder = sn_ml.EncoderStore.get('ml_sn_global_global_encoder');
gs.print(JSON.stringify(JSON.parse(myEncoder.getProperties()), null, 2));
*** Script: {
"datasetsProperties": [
{
"tableName": "incident",
"fieldNames": [
"assignment_group",
"short_description",
"description"
],
"encodedQuery": "activeANYTHING"
}
],
"domainName": "global",
"label": "my encoder definition",
"name": "ml_x_snc_global_global_my_encoder_definition",
"processingLanguage": "en",
"scope": "global",
"stopwords": [
"Default English Stopwords"
],
"trainingFrequency": "run_once"
}エンコーダー:getVersion(文字列バージョン)
エンコーダーを取得します 指定されたバージョン番号で。
| 名前 | タイプ | 説明 |
|---|---|---|
| バージョン | 文字列 | の既存のバージョン番号 エンコーダー。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | EncoderVersion API メソッドを呼び出すことができる Encoder() オブジェクトの指定されたバージョン。 |
次の例は、バージョン番号でソリューションのトレーニングステータスを取得する方法を示しています バージョン番号によるエンコーダー。
var mlEncoder = sn_ml.EncoderStore.get('ml_x_snc_global_global_encoder');
gs.print(JSON.stringify(JSON.parse(mlEncoder.getVersion('1').getStatus()), null, 2));
出力:
{
"state": "encoder_complete",
"percentComplete": "100",
"hasJobEnded": "true"
}
エンコーダー:setActiveVersion(String version)
ストア内の指定されたバージョンのエンコーダーをアクティブ化します。
| 名前 | タイプ | 説明 |
|---|---|---|
| バージョン | 文字列 | アクティブ化する Encoder() オブジェクトバージョンの名前。 このバージョンをアクティブ化すると、他のバージョンはすべて非アクティブ化されます。 |
| タイプ | 説明 |
|---|---|
| なし |
アクティブ化する方法を示しています エンコーダー ストアでソリューションバージョン
sn_ml.Encoder.setActiveVersion("ml_incident_categorization");
エンコーダー:submitTrainingJob()
トレーニングジョブを送信します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | EncoderVersion に対応するオブジェクト エンコーダー トレーニング対象 |
次の例は、データセットを作成し、 エンコーダー、追加 ストアに追加して、トレーニングジョブを送信する
// Create a dataset
var myData = new sn_ml.DatasetDefinition({
'tableName' : 'incident',
'fieldNames' : ['assignment_group', 'short_description', 'description'],
'encodedQuery' : 'activeANYTHING'
});
// Create an encoder
var myEncoder = new sn_ml.Encoder({
'label': "my encoder definition",
'datasets' : [myData],
'predictedFieldName' : 'assignment_group',
'inputFieldNames':['short_description']
});
// Add the encoder to the store to later be able to retrieve it.
var my_unique_name = sn_ml.EncoderStore.add(myEncoder);
// Train the encoder - this is a long running job
var myEncoderVersion = myEncoder.submitTrainingJob();