ClusteringSolution - 전역
ClusteringSolution API는 저장소에서 예측 인텔리전스 사용되는 스크립팅 가능한 객체입니다.
이 API에는 플러그인(com.glide.platform_ml)이 예측 인텔리전스 필요하며 sn_ml 네임스페이스 내에서 제공됩니다.
- DatasetDefinition API를 사용하여 데이터 세트를 만듭니다.
- K-평균 클러스터링 알고리즘을 사용하는 경우 필수입니다. 인코더 API를 사용하여 인코더를 빌드합니다.
- 생성자를 사용하여 클러스터링 솔루션 개체를 만듭니다.
- ClusteringSolutionStore - add() 메서드를 사용하여 클러스터링 솔루션 저장소에 솔루션 개체를 추가합니다.
- submitTrainingJob() 메서드를 사용하여 솔루션을 교육합니다. 이렇게 하면 ClusteringSolutionVersion API를 사용하여 관리할 수 있는 객체의 버전이 생성됩니다.
- ClusteringSolutionVersion – predict() 메서드를 사용하여 예측을 가져옵니다.
사용 지침은 ML API 사용을 참조하세요.
ClusteringSolution - ClusteringSolution(객체 구성)
클러스터 솔루션을 작성합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 구성 | 객체 | 의 구성 속성을 포함하는 JavaScript 객체 용액. |
| config.algorithmConfig | 객체 | 속성을 설정하지 않는 한 필수입니다 encoder . 알고리즘 구성 속성을 포함하는 JavaScript 객체입니다. 속성 설정은 속성에 설정된 algorithm 값에 따라 달라집니다. |
| config.algorithmConfig.algorithm | 문자열 | 솔루션을 인코딩하는 방법입니다. 유효한 값은 다음과 같습니다.
일부 사용자는 클러스터링 전에 데이터에서 클러스터 수를 지정할 필요가 없기 때문에 DBSCAN을 선호합니다. 에 대한 dbscan속성
에 대한 hdbscan속성
에 대한 kmeans속성 |
| config.algorithmConfig.distanceMetric | 문자열 | DBSCAN 알고리즘만 해당됩니다. 유사한 데이터 객체를 스캔하기 위한 거리 메트릭입니다. 유효한 값: levenshteinDistance |
| config.algorithmConfig.epsilon | 번호 | DBSCAN 알고리즘만 해당됩니다. 인접 검색 반경의 크기를 나타내는 0에서 1 사이의 10진수 값입니다. |
| config.algorithmConfig.minimumNeighbours | 번호 | DBSCAN 알고리즘만 해당됩니다. 클러스터의 일부가 되기 위해 포인트에 필요한 최소 인접 항목 수입니다. 값은 1이어야 데이터셋에서 포인트가 제외되지 않기 때문입니다 levenshteinDistance . |
| config.algorithmConfig.minimumSamples | 번호 | 점이 핵심점인지 여부를 결정하는 데 필요한 인접의 최소 데이터 샘플 수입니다. 기본값: 없음 |
| config.algorithmConfig.targetCoverage | 번호 | K-means 알고리즘만 해당됩니다. 서로 덜 유사한 기록을 필터링하는 백분위수 필드입니다. |
| config.cluster개념 | 문자열 | 옵션입니다. 개념 유형입니다. 개념은 빈도의 내림차순으로 나열된 단어의 집합입니다. TFIDF 기반 클러스터 개념을 생성하려면 값을 tfidf로 설정합니다. 개념 유형은 클러스터링 정의 [ml_capability_definition_clustering] 테이블에 나열됩니다. 기본값: 주파수 기반 클러스터 개념 |
| config.clusterConceptFieldNames | 배열 | 옵션입니다. 클러스터 개념 필드 이름 목록입니다. 이러한 값은 클러스터 개념을 만들기 위한 외부 열이며 클러스터 솔루션 교육에 사용되지 않습니다. 외부 열이 제공되면 해당 열은 클러스터 개념에만 사용되며 클러스터링 솔루션 교육에는 사용되지 않습니다. 클러스터 개념 필드가 클러스터링 정의 [ml_capability_definition_clustering] 테이블에 나열됩니다. 기본값: 입력 텍스트 열은 클러스터 개념을 생성합니다. |
| config.dataset | 객체 | DatasetDefinition 개체 이름입니다. |
| config.domainName | 문자열 | 옵션입니다. 이 데이터 세트와 연결된 도메인 이름입니다. 도메인 분리 및 예측 인텔리전스를 참조하십시오. 기본값: 현재 도메인(예: |
| config.encoder | 객체 | 속성을 "levenshteinDistance"로 설정하지 않는 한 필수입니다algorithmConfig. 이 솔루션에 할당할 학습된 인코더 객체입니다. 인코더 - 인코더(객체 구성) 문서를 참조하십시오. |
| config.groupByFieldName | 문자열 | 옵션입니다. 시스템에서 기록을 하나 이상의 클러스터로 그룹화하는 기준이 되는 필드 이름입니다. 다음 설정 예에서 시스템은 각 유형을 개별 클러스터로 그룹화하여 10개의 클러스터를 렌더링합니다.
|
| config.groupUnclusteredRecords | 부울 | 결과에서 클러스터되지 않은 기록을 그룹화할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| config.inputFieldNames | 배열 | 문자열로 된 입력 필드 이름의 목록입니다. 모델은 예측에 사용되는 이러한 필드를 사용합니다. |
| config.label | 문자열 | 예측 작업을 식별합니다. |
| config.maxTimeWindowForUpdate | 번호 | 옵션입니다. 기록을 찾기 위한 모델 업데이트 지점 이전의 시간(분)입니다. 예를 들어 값이 15이면 시스템은 이전 15분 동안 생성된 기록만 검색합니다. 기본적으로 시스템은 모든 기록을 검사합니다. |
| config.minRecordsPerCluster | 번호 | 옵션입니다. 모든 클러스터에서 허용되는 최소 기록 수입니다. 값은 2보다 크거나 같아야 합니다. 기본값: 2 |
| config.minRowCount | 문자열 | 옵션입니다. 교육을 위해 데이터 세트에 필요한 최소 레코드 수입니다. 기본값: 10000 |
| config.processingLanguage | 문자열 | 두 글자 ISO 639-1 언어 코드 형식의 처리 언어입니다. |
| config.stopwords | 배열 | 옵션입니다. 속성 설정에 따라 language 시스템이 자동으로 생성하는 문자열의 사전 설정 목록입니다. 자세한 내용은 사용자 지정 중지 단어 목록 만들기를 참조하세요. 기본값: 영어 스톱 워드 |
| config.trainingFrequency | 문자열 | 모델을 재교육하는 빈도입니다.
가능한 값:
|
| config.updateFrequency | 솔루션 정의에 대한 모델을 재구축해야 하는 빈도입니다.
가능한 값:
|
다음 예제에서는 개체를 만들고 ClusteringSolution 저장소. 이 예제에서는 학습을 위해 개체를 제출하는 방법도 보여 줍니다.
try{
var myData = new sn_ml.DatasetDefinition({
'tableName' : 'incident',
'fieldNames' : ['category', 'short_description', 'state', 'description'],
'encodedQuery' : 'activeANYTHING'
});
// get a trained encoder from the store
var myEncoder = sn_ml.EncoderStore.get('<encoder_name >');
var mySolution = new sn_ml.ClusteringSolution({
'label': "clustering solution",
'dataset' : myData,
'encoder' : myEncoder,
'inputFieldNames':['short_description'],
'groupByFieldName' : 'category',
'algorithmConfig' : {
'algorithm' : 'kmeans',
'targetCoverage' : '90'
}
});
// add solution
var solutionName = sn_ml.ClusteringSolutionStore.add(mySolution);
var solutionVersion = mySolution.submitTrainingJob();
var trainingStatus = solutionVersion.getStatus();
gs.print(JSON.stringify(JSON.parse(trainingStatus), null, 2));
} catch(ex){
gs.print('Exception caught: '+ ex.getMessage());
}
출력:
{
"state": "waiting_for_training",
"percentComplete": "0",
"hasJobEnded": "false"
}
다음 예시에서는 'description' 필드를 클러스터 개념 필드로 포함하는 방법을 보여줍니다.
var myIncidentData = new sn_ml.DatasetDefinition({
'tableName' : 'incident',
'fieldNames' : ['category', 'short_description', 'description'],
});
var encodersolutionName = sn_ml.EncoderStore.get('<encoder_name >');
var mySolution = new sn_ml.ClusteringSolution({
'label': 'clustering_test',
'dataset': myIncidentData,
'inputFieldNames': ['short_description'],
'encoder': encodersolutionName,
'clusterConceptFieldNames': ['description']
});
var solutionNameFromStore = sn_ml.ClusteringSolutionStore.add(mySolution);
var myClassifier = mySolution.submitTrainingJob();
ClusteringSolution - cancelTrainingJob()
대한 작업을 취소합니다 솔루션 객체 교육을 위해 제출된
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 예제에서는 기존 학습 작업을 취소하는 방법을 보여 줍니다.
var mySolution = sn_ml.ClusteringSolutionStore.get('ml_sn_global_global_clustering');
mySolution.cancelTrainingJob();
ClusteringSolution - getActiveVersion()
활성 항목을 가져옵니다. ClusteringSolutionVersion 객체입니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 객체 | Active ClusteringSolutionVersion 객체입니다. |
방법을 보여 줍니다 클러스터링솔루션 저장소에서 활성 버전을 가져오고 학습 상태를 반환하는
var mlSolution = sn_ml.ClusteringSolutionStore.get('ml_x_snc_global_global_clustering');
gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getStatus()), null, 2));
출력:
{
"state": "solution_complete",
"percentComplete": "100",
"hasJobEnded": "true"
}
ClusteringSolution - getAllVersions()
의 모든 버전을 가져옵니다. 클러스터링 솔루션입니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 배열 | 솔루션 객체의 기존 버전입니다. 참고 항목 ClusteringSolutionVersion API를 사용합니다. |
다음 예제에서는 모든 ClusteringSolution 버전 개체를 가져오고 getVersionNumber() 및 getStatus() 솔루션 버전 메서드를 호출하는 방법을 보여 줍니다.
var mlSolution = sn_ml.ClusteringSolutionStore.get('ml_x_snc_global_global_clustering');
var mlSolutionVersions = mlSolution.getAllVersions();
for (i = 0; i < mlSolutionVersions.length; i++) {
gs.print("Version " + mlSolutionVersions[i].getVersionNumber() + " Status: " + mlSolutionVersions[i].getStatus() +"\n");
};
출력:
Version 3 Status: {"state":"solution_complete","percentComplete":"100","hasJobEnded":"true"}
Version 2 Status: {"state":"solution_complete","percentComplete":"100","hasJobEnded":"true"}
Version 1 Status: {"state":"solution_cancelled","percentComplete":"0","hasJobEnded":"true"}
클러스터링 솔루션 - getLatestVersion()
의 최신 버전을 가져옵니다. 해결책.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 객체 | ClusteringSolutionVersion 최신 버전에 해당하는 객체 a ClusteringSolution()입니다. |
다음 예제에서는 최신 버전의 솔루션을 가져오고 학습 상태를 반환하는 방법을 보여 줍니다 .
var mlSolution = sn_ml.ClusteringSolutionStore.get('ml_x_snc_global_global_clustering');
gs.print(JSON.stringify(JSON.parse(mlSolution.getLatestVersion().getStatus()), null, 2));
출력:
{
"state": "solution_complete",
"percentComplete": "100",
"hasJobEnded": "true"
}
클러스터링 솔루션 - getName()
저장소와의 상호 작용에 사용할 개체의 이름을 가져옵니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 문자열 | 솔루션 객체의 이름입니다. |
방법을 보여 줍니다 클러스터링솔루션 데이터 집합 정보를 업데이트하고 개체 이름을 인쇄하는
// Update solution
var myIncidentData = new sn_ml.DatasetDefinition({
'tableName' : 'incident',
'fieldNames' : ['category', 'short_description', 'priority'],
'encodedQuery' : 'activeANYTHING'
});
var eligibleFields = JSON.parse(myIncidentData.getEligibleFields('clustering'));
var myCluster = new sn_ml.ClusteringSolution({
'label': "my clustering solution",
'dataset' : myIncidentData,
'inputFieldNames': eligibleFields['eligibleInputFieldNames'],
'predictedFieldName': 'category'
});
// update solution
sn_ml.ClusteringSolutionStore.update('ml_x_snc_global_global_clustering_solution', myCluster);
// print solution name
gs.print('Solution Name: '+myCluster.getName());
출력:
Solution Name: ml_x_snc_global_global_clustering_solution
클러스터링 솔루션 - getProperties()
솔루션 객체 속성 가져오기.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 객체 | ClusteringSolutionStore의 Dataset 및 ClusteringSolution() 개체 세부 정보 |
| <Object>.algorithmConfig | 알고리즘 구성 속성을 포함하는 JavaScript 객체입니다. 속성 결과는 속성에 설정된 algorithm 값에 따라 달라집니다.
데이터 형식: 개체. |
| <Object>.algorithmConfig.algorithm | 솔루션을 인코딩하는 방법입니다. 에 대한 dbscan속성
에 대한 kmeans속성
데이터 형식: 문자열. |
| <Object>.algorithmConfig.distanceMetric | DBSCAN 알고리즘만 해당됩니다. 유사한 데이터 객체를 스캔하기 위한 거리 메트릭입니다. 데이터 형식: 문자열. |
| <Object>.algorithmConfig.epsilon | DBSCAN 알고리즘만 해당됩니다. 인접 검색 반경의 크기를 나타내는 0에서 1 사이의 10진수 값입니다. 데이터 형식: 숫자. |
| <Object>.algorithmConfig.minimumNeighbours | DBSCAN 알고리즘만 해당됩니다. 클러스터의 일부가 되기 위해 포인트에 필요한 최소 인접 항목 수입니다. 값은 1이어야 데이터셋에서 포인트가 제외되지 않기 때문입니다 levenshteinDistance . 데이터 형식: 숫자. |
| <Object>.algorithmConfig.targetCoverage | K-means 알고리즘만 해당됩니다. 서로 덜 유사한 기록을 필터링하는 백분위수 필드입니다. 데이터 형식: 숫자. |
| <Object>.datasetProperties | 솔루션과 연결된 DatasetDefinition() 개체의 속성을 나열합니다.
데이터 형식: 개체. |
| <Object>.datasetProperties.tableName | 데이터 세트의 테이블 이름입니다. 예: "tableName" : "Incident". 데이터 형식: 문자열. |
| <Object>.datasetProperties.fieldNames | 문자열로 지정된 테이블의 필드 이름 목록입니다. 예: "fieldNames" : ["short_description", "priority"]. 데이터 형식: 배열. |
| <Object>.datasetProperties.fieldNames.fieldDetails | 필드 속성을 지정하는 JavaScript 객체의 목록입니다.
데이터 형식: 배열. |
| <Object>.datasetProperties.fieldNames.fieldDetails.<object>. 이름 | 이 데이터 세트를 제한할 정보의 유형을 정의하는 필드의 이름입니다. 데이터 형식: 문자열. |
| <Object>.datasetProperties.fieldDetails.<object>. 형 | 머신 러닝 필드 유형입니다. 데이터 형식: 문자열. |
| <Object>.datasetProperties.fieldDetails.encodedQuery | 표준 Glide 형식으로 인코딩된 쿼리 문자열입니다. 인코딩된 쿼리 문자열을 참조하세요. 데이터 형식: 문자열. |
| <Object>.domainName | 이 데이터 세트와 연결된 도메인 이름입니다. 도메인 분리 및 예측 인텔리전스를 참조하십시오. 데이터 형식: 문자열. |
| <Object>.encoderProperties | 이 솔루션에 할당된 인코더 개체입니다. 인코더 - 인코더(객체 구성) 문서를 참조하십시오. 데이터 형식: 개체. |
| <Object>.groupByFieldName | 시스템에서 기록을 하나 이상의 클러스터로 그룹화하는 기준이 되는 필드 이름입니다. 데이터 유형: 문자열 |
| <Object>.inputFieldNames | 문자열로 된 입력 필드 이름의 목록입니다. 모델은 예측에 사용되는 이러한 필드를 사용합니다. 데이터 형식: 문자열. |
| <Object>.레이블 | 예측 작업을 식별합니다.
데이터 형식: 문자열. |
| <Object>.minRecordsPerCluster | 모든 클러스터에서 허용되는 최소 기록 수입니다. 데이터 형식: 숫자. |
| <Object>.이름 | 시스템에서 할당한 이름입니다. 데이터 형식: 문자열. |
| <Object>.predictedFieldName | 예측 가능성을 위해 교육할 필드를 식별합니다. 데이터 형식: 문자열. |
| <Object>.processingLanguage | 두 글자 ISO 639-1 언어 코드 형식의 처리 언어입니다. 데이터 형식: 문자열. |
| <Object>.범위 | 객체 범위입니다. 현재 유일하게 유효한 값은 전역입니다.데이터 유형: 문자열 |
| <Object>.stopwords | 옵션입니다. 속성 설정에 따라 language 시스템이 자동으로 생성하는 문자열의 사전 설정 목록입니다. 자세한 내용은 사용자 지정 중지 단어 목록 만들기를 참조하세요. 데이터 형식: 배열. |
| <Object>.trainingFrequency | 모델을 재교육하는 빈도입니다. 가능한 값:
데이터 형식: 문자열. |
| <Object>.updateFrequency | 솔루션 정의에 대한 모델을 재구축해야 하는 빈도입니다. 가능한 값:
데이터 유형: 문자열 |
다음 예제에서는저장소에 있는 솔루션 개체의 속성을 가져옵니다.
var myCluster = new sn_ml.ClusteringSolutionStore.get("ml_x_snc_global_global_clustering_solution");
gs.print(JSON.stringify(JSON.parse(myCluster.getProperties()), null, 2));
*** Script: {
"algorithmConfig": {
"algorithm": "kmeans",
"targetCoverage": "90"
},
"datasetProperties": {
"tableName": "incident",
"fieldNames": [
"category",
"short_description",
"state",
"description"
],
"encodedQuery": "activeANYTHING"
},
"domainName": "global",
"encoderProperties": {
"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"
},
"groupByFieldName": "category",
"inputFieldNames": [
"short_description"
],
"label": "clustering solution",
"minRecordsPerCluster": 2,
"name": "ml_x_snc_global_global_clustering_solution",
"processingLanguage": "en",
"scope": "global",
"stopwords": [
"Default English Stopwords"
],
"trainingFrequency": "run_once",
"updateFrequency": "do_not_update"
}}ClusteringSolution - getVersion(문자열 버전)
솔루션 가져오기 제공된 버전 번호로.
| 이름 | 유형 | 설명 |
|---|---|---|
| 버전 | 문자열 | 솔루션의 기존 버전 번호입니다. |
| 유형 | 설명 |
|---|---|
| 객체 | ClusteringSolutionVersion API 메서드를 호출할 수 있는 ClusteringSolution() 개체의 지정된 버전입니다. |
다음 예제에서는 버전 번호로 솔루션의 학습 상태를 가져오는 방법을 보여 줍니다.
var mlSolution = sn_ml.ClusteringSolutionStore.get('ml_x_snc_global_global_clustering');
gs.print(JSON.stringify(JSON.parse(mlSolution.getVersion('1').getStatus()), null, 2));
출력:
{
"state": "solution_complete",
"percentComplete": "100",
"hasJobEnded": "true"
}
ClusteringSolution - setActiveVersion(문자열 버전)
스토어에서 지정된 버전의 솔루션을 활성화합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 버전 | 문자열 | 활성화할 ClusteringSolution() 객체 버전의 이름입니다. 이 버전을 활성화하면 다른 버전은 비활성화됩니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 예는 저장소에서 솔루션 버전을활성화하는 방법을 보여줍니다.
sn_ml.ClusteringSolution.setActiveVersion("ml_incident_categorization");
클러스터링 솔루션 - submitTrainingJob()
교육 작업을 제출합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 객체 | ClusteringSolutionVersion 개체에 해당합니다 클러스터링 솔루션 학습 중인 |
다음 예제에서는 데이터 세트를 만들고, 솔루션에 적용하고, 솔루션에 솔루션을 추가하고, 학습 작업을 제출하는 방법을 보여 줍니다.
// Create a dataset
var myData = new sn_ml.DatasetDefinition({
'tableName' : 'incident',
'fieldNames' : ['assignment_group', 'short_description', 'description'],
'encodedQuery' : 'activeANYTHING'
});
// get a trained encoder from the store
var myEncoder = sn_ml.EncoderStore.get('ml_x_snc_global_global_encoder');
// Create a solution
var mySolution = new sn_ml.ClusteringSolution({
'label': "my solution definition",
'dataset' : myData,
'encoder' : myEncoder,
'predictedFieldName' : 'assignment_group',
'inputFieldNames':['short_description']
});
// Add the solution to the store to later be able to retrieve it.
var my_unique_name = sn_ml.ClusteringSolutionStore.add(mySolution);
// Train the solution - this is a long running job
var myClusterVersion = mySolution.submitTrainingJob();