ClusteringSolution - 전역
ClusteringSolution API는 저장소에서 예측 인텔리전스 사용되는 스크립트 가능한 개체입니다.
이것 API에는 플러그인(com.glide.platform_ml)이 필요 예측 인텔리전스 하며 sn_ml 네임스페이스 내에서 제공됩니다.
- DatasetDefinition API를 사용하여 데이터 세트를 만듭니다.
- 생성자를 사용하여 클러스터링 솔루션 개체를 만듭니다.
- ClusteringSolutionStore - add() 메서드를 사용하여 솔루션 개체를 클러스터링 솔루션 저장소에 추가합니다.
- submitTrainingJob() 메서드를 사용하여 솔루션을 교육합니다. 이렇게 하면 ClusteringSolutionVersion API를 사용하여 관리할 수 있는 개체 버전이 만들어집니다.
사용 지침은 ML API 사용을 참조하세요.
ClusteringSolution - ClusteringSolution(객체 구성)
클러스터 솔루션을 작성합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 구성 | 객체 | 의 구성 속성을 포함하는 JavaScript 객체 해결책. |
| config.algorithmConfig | 객체 | 필수 알고리즘 구성 속성을 포함하는 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 알고리즘만 사용할 수 있습니다. 클러스터의 일부가 되기 위해 포인트에 필요한 최소 인접 항목 수입니다. levenshteinDistance 데이터 세트에서 포인트가 제외되지 않도록 값이 1이어야 합니다. |
| 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.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'
});
var mySolution = new sn_ml.ClusteringSolution({
'label': "clustering solution",
'dataset' : myData,
'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"
}
다음 예는 '설명' 필드를 클러스터 개념 필드로 포함하는 방법을 보여줍니다.
var myIncidentData = new sn_ml.DatasetDefinition({
'tableName' : 'incident',
'fieldNames' : ['category', 'short_description', 'description'],
});
var mySolution = new sn_ml.ClusteringSolution({
'label': 'clustering_test',
'dataset': myIncidentData,
'inputFieldNames': ['short_description'],
'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 객체입니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 안 함 |
| 유형 | 설명 |
|---|---|
| 객체 | 활성 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"}
ClusteringSolution - 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"
}
ClusteringSolution - 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
ClusteringSolution - getProperties()
솔루션 객체 속성 가져오기.
| 이름 | 유형 | 설명 |
|---|---|---|
| 안 함 |
| 유형 | 설명 |
|---|---|
| 객체 | ClusteringSolutionStore의 데이터 세트 및 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 알고리즘만 사용할 수 있습니다. 클러스터의 일부가 되기 위해 포인트에 필요한 최소 인접 항목 수입니다. levenshteinDistance 데이터 세트에서 포인트가 제외되지 않도록 값이 1이어야 합니다. 데이터 유형: 숫자. |
| <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>.groupByFieldName | 시스템이 기록을 하나 이상의 클러스터로 그룹화하는 데 사용할 필드 이름입니다. 데이터 유형: 문자열 |
| <Object>.inputFieldNames | 문자열로 된 입력 필드 이름 목록입니다. 모델은 예측에 사용되는 이러한 필드를 사용합니다. 데이터 유형: 문자열. |
| <Object>.label | 예측 작업을 식별합니다.
데이터 유형: 문자열. |
| <Object>.minRecordsPerCluster | 클러스터에서 허용하는 최소 기록 수입니다. 데이터 유형: 숫자. |
| <Object>.name | 시스템에서 할당한 이름입니다. 데이터 유형: 문자열. |
| <Object>.predictedFieldName | 예측 가능성을 학습시킬 필드를 식별합니다. 데이터 유형: 문자열. |
| <Object>.processingLanguage | 두 글자 ISO 639-1 언어 코드 형식의 처리 언어입니다. 데이터 유형: 문자열. |
| <Object>.scope | 객체 범위입니다. 현재 유효한 값은 전역입니다.데이터 유형: 문자열 |
| <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",
"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");
ClusteringSolution - submitTrainingJob()
교육 작업을 제출합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 안 함 |
| 유형 | 설명 |
|---|---|
| 객체 | ClusteringSolutionVersion 객체에 해당하는 객체입니다. ClusteringSolution 학습 중인 |
다음 예제에서는 데이터 세트를 만들고, 솔루션에 적용하고, 솔루션을 스토어에 추가하고, 교육 작업을 제출하는 방법을 보여 줍니다.
// Create a dataset
var myData = new sn_ml.DatasetDefinition({
'tableName' : 'incident',
'fieldNames' : ['assignment_group', 'short_description', 'description'],
'encodedQuery' : 'activeANYTHING'
});
// Create a solution
var mySolution = new sn_ml.ClusteringSolution({
'label': "my solution definition",
'dataset' : myData,
'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();