

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# neptune-export 도구 또는 Neptune-Export 서비스를 사용하여 Neptune ML용 Neptune에서 데이터 내보내기
<a name="machine-learning-data-export"></a>

Neptune ML에서는 모델을 만들고 평가하기 위해 [딥 그래프 라이브러리(DGL)](https://www.dgl.ai/)에 대한 훈련 데이터를 제공하도록 요구합니다.

[Neptune-Export 서비스](export-service.md) 또는 [`neptune-export` 유틸리티](export-utility.md)를 사용하여 Neptune에서 데이터를 내보낼 수 있습니다. 서비스와 명령줄 도구는 Amazon S3 서버 측 암호화(`SSE-S3`)를 사용하여 암호화된 데이터를 Amazon Simple Storage Service(S3)에 CSV 형식으로 게시합니다. [Neptune-Export 및 `neptune-export`에서 내보낸 파일](exported-files.md)을(를) 참조하세요.

또한 Neptune ML용 훈련 데이터 내보내기를 구성하면 내보내기 작업에서 내보낸 데이터와 함께 암호화된 모델 훈련 구성 파일을 만들어 게시합니다. 기본적으로 이 파일은 `training-data-configuration.json`으로 이름이 지정됩니다.

# Neptune-Export 서비스를 사용하여 Neptune ML용 훈련 데이터를 내보내는 예제
<a name="machine-learning-export-examples"></a>

이 요청은 노드 분류 작업을 위한 속성 그래프 훈련 데이터를 내보냅니다.

```
curl \
  (your NeptuneExportApiUri) \
  -X POST \
  -H 'Content-Type: application/json' \
  -d '{
        "command": "export-pg",
        "outputS3Path": "s3://(your Amazon S3 bucket)/neptune-export",
        "params": {
          "endpoint": "(your Neptune endpoint DNS name)",
          "profile": "neptune_ml"
        },
        "additionalParams": {
          "neptune_ml": {
            "version": "v2.0",
            "targets": [
              {
                "node": "Movie",
                "property": "genre",
                "type": "classification"
              }
            ]
          }
        }
      }'
```

이 요청은 노드 분류 작업을 위한 RDF 훈련 데이터를 내보냅니다.

```
curl \
  (your NeptuneExportApiUri) \
  -X POST \
  -H 'Content-Type: application/json' \
  -d '{
        "command": "export-rdf",
        "outputS3Path": "s3://(your Amazon S3 bucket)/neptune-export",
        "params": {
          "endpoint": "(your Neptune endpoint DNS name)",
          "profile": "neptune_ml"
        },
        "additionalParams": {
          "neptune_ml": {
            "version": "v2.0",
            "targets": [
              {
                "node": "http://aws.amazon.com/neptune/csv2rdf/class/Movie",
                "predicate": "http://aws.amazon.com/neptune/csv2rdf/datatypeProperty/genre",
                "type": "classification"
              }
            ]
          }
        }
      }'
```

# 훈련 데이터를 내보낼 때 파라미터 객체에 설정할 필드
<a name="machine-learning-params"></a>

내보내기 요청의 `params` 객체에는 [`params` 설명서](export-params-fields.md)에 나와 있는 대로 다양한 필드가 포함될 수 있습니다. 다음과 같은 필드가 기계 학습 훈련 데이터를 내보내는 데 가장 적합합니다.

****
+ **`endpoint`**   –   `endpoint`를 사용하여 내보내기 프로세스가 데이터를 추출하기 위해 쿼리할 수 있는 DB 클러스터의 Neptune 인스턴스 엔드포인트를 지정합니다.
+ **`profile`**   –   `params` 객체의 `profile` 필드를 **`neptune-ml`**로 설정해야 합니다.

  따라서 내보내기 프로세스에서는 내보낸 데이터 형식을 Neptune ML 모델 훈련에 적합하도록 속성 그래프 데이터는 CSV 형식으로, RDF 데이터는 N-Triples 형식으로 지정합니다. 또한 `training-data-configuration.json` 파일이 생성되어 내보낸 훈련 데이터와 동일한 Amazon S3 위치에 기록됩니다.
+ **`cloneCluster`**   –   `true`로 설정하면 내보내기 프로세스가 DB 클러스터를 복제하고 복제본에서 내보낸 후 완료 시 복제본을 삭제합니다.
+ **`useIamAuth`**   –   DB 클러스터에 [IAM 인증](iam-auth-enable.md)이 활성화되어 있는 경우 이 필드를 `true`로 설정해서 포함해야 합니다.

내보내기 프로세스에서는 내보내는 데이터를 필터링하는 여러 방법도 제공합니다([이 예제](export-filtering-examples.md) 참조).

# additionalParams 객체를 사용하여 모델 훈련 정보 내보내기 조정
<a name="machine-learning-additionalParams"></a>

`additionalParams` 객체에는 훈련 목적으로 기계 학습 클래스 레이블 및 특성을 지정하고 훈련 데이터 구성 파일 생성을 안내하는 데 사용할 수 있는 필드가 포함되어 있습니다.

내보내기 프로세스에서는 훈련 목적상 예제로 사용할 기계 학습 클래스 레이블이 되어야 하는 노드 및 엣지 속성을 자동으로 유추할 수 없습니다. 또한 숫자, 범주 및 텍스트 속성에 가장 적합한 특성 인코딩을 자동으로 유추할 수 없으므로, `additionalParams` 객체의 필드를 통해 힌트를 제공하여 해당 항목을 지정하거나 기본 인코딩을 재정의해야 합니다.

속성 그래프 데이터의 경우 내보내기 요청의 `additionalParams` 최상위 구조는 다음과 같을 수 있습니다.

```
{
  "command": "export-pg",
  "outputS3Path": "s3://(your Amazon S3 bucket)/neptune-export",
  "params": {
    "endpoint": "(your Neptune endpoint DNS name)",
    "profile": "neptune_ml"
  },
  "additionalParams": {
      "neptune_ml": {
        "version": "v2.0",
        "targets": [ (an array of node and edge class label targets) ],
        "features": [ (an array of node feature hints) ]
    }
  }
}
```

RDF 데이터의 경우 최상위 구조는 다음과 같을 수 있습니다.

```
{
  "command": "export-rdf",
  "outputS3Path": "s3://(your Amazon S3 bucket)/neptune-export",
  "params": {
    "endpoint": "(your Neptune endpoint DNS name)",
    "profile": "neptune_ml"
  },
  "additionalParams": {
      "neptune_ml": {
        "version": "v2.0",
        "targets": [ (an array of node and edge class label targets) ]
    }
  }
}
```

다음 `jobs` 필드를 사용하여 여러 내보내기 구성을 제공할 수도 있습니다.

```
{
  "command": "export-pg",
  "outputS3Path": "s3://(your Amazon S3 bucket)/neptune-export",
  "params": {
    "endpoint": "(your Neptune endpoint DNS name)",
    "profile": "neptune_ml"
  },
  "additionalParams" : {
    "neptune_ml" : {
      "version": "v2.0",
      "jobs": [
        {
          "name" : "(training data configuration name)",
          "targets": [ (an array of node and edge class label targets) ],
          "features": [ (an array of node feature hints) ]
        },
        {
          "name" : "(another training data configuration name)",
          "targets": [ (an array of node and edge class label targets) ],
          "features": [ (an array of node feature hints) ]
        }
      ]
    }
  }
}
```

# additionalParams의 neptune\$1ml 필드의 최상위 요소
<a name="machine-learning-neptune_ml-top-level"></a>

## neptune\$1ml의 버전 요소
<a name="machine-learning-neptune_ml-version"></a>

생성할 훈련 데이터 구성의 버전을 지정합니다.

(*선택 사항*), *유형*: 문자열, *기본값*: "v2.0".

`version`을 포함하는 경우 `v2.0`으로 설정하세요.

## neptune\$1ml의 작업 필드
<a name="machine-learning-neptune_ml-jobs"></a>

각각 데이터 처리 작업을 정의하는 훈련 데이터 구성 객체 배열을 포함하며, 다음을 포함합니다.
+ **`name`**   –   생성할 훈련 데이터 구성의 이름입니다.

   예를 들어, 이름이 "job-number-1"인 훈련 데이터 구성을 사용하면 이름이 `job-number-1.json`으로 지정된 훈련 데이터 구성 파일이 생성됩니다.
+ **`targets`**   –   훈련용 기계 학습 클래스 레이블을 나타내는 노드 및 엣지 클래스 레이블 대상으로 구성된 JSON 배열입니다. [neptune\$1ml 객체의 targets 필드](machine-learning-neptune_ml-targets.md)을(를) 참조하세요.
+ **`features`**   –   노드 속성 특성으로 구성된 JSON 배열입니다. [neptune\$1ml의 특성 필드](machine-learning-neptune_ml-features.md)을(를) 참조하세요.

# neptune\$1ml 객체의 targets 필드
<a name="machine-learning-neptune_ml-targets"></a>

JSON 훈련 데이터 내보내기 구성의 `targets` 필드에는 훈련 작업을 지정하는 대상 객체 배열과 이 작업을 훈련하기 위한 기계 학습 클래스 레이블이 포함됩니다. 대상 객체의 콘텐츠는 훈련 대상이 속성 그래프 데이터인지 RDF 데이터인지에 따라 달라집니다.

속성 그래프 노드 분류 및 회귀 작업의 경우 배열의 대상 객체는 다음과 같을 수 있습니다.

```
{
  "node": "(node property-graph label)",
  "property": "(property name)",
  "type" : "(used to specify classification or regression)",
  "split_rate": [0.8,0.2,0.0],
  "separator": ","
}
```

속성 그래프 엣지 분류, 회귀 또는 연결 예측 작업의 경우 다음과 같을 수 있습니다.

```
{
  "edge": "(edge property-graph label)",
  "property": "(property name)",
  "type" : "(used to specify classification, regression or link_prediction)",
  "split_rate": [0.8,0.2,0.0],
  "separator": ","
}
```

RDF 분류 및 회귀 작업의 경우 배열의 대상 객체는 다음과 같을 수 있습니다.

```
{
  "node": "(node type of an RDF node)",
  "predicate": "(predicate IRI)",
  "type" : "(used to specify classification or regression)",
  "split_rate": [0.8,0.2,0.0]
}
```

RDF 연결 예측 작업의 경우 배열의 대상 객체는 다음과 같을 수 있습니다.

```
{
  "subject": "(source node type of an edge)",
  "predicate": "(relation type of an edge)",
  "object": "(destination node type of an edge)",
  "type" : "link_prediction",
  "split_rate": [0.8,0.2,0.0]
}
```

대상 객체에는 다음과 같은 필드가 포함될 수 있습니다.

**Contents**
+ [속성 그래프 대상 필드](#machine-learning-property-graph-neptune_ml-targets)
  + [노드](#machine-learning-property-graph-neptune_ml-targets-node)
  + [엣지](#machine-learning-property-graph-neptune_ml-targets-edge)
  + [속성](#machine-learning-property-graph-neptune_ml-targets-property)
  + [type](#machine-learning-property-graph-neptune_ml-targets-type)
  + [split\$1rate](#machine-learning-property-graph-neptune_ml-targets-split_rate)
  + [separator](#machine-learning-property-graph-neptune_ml-targets-separator)
+ [RDF 대상 필드](#machine-learning-RDF-neptune_ml-targets)
  + [노드](#machine-learning-RDF-neptune_ml-targets-node)
  + [subject](#machine-learning-RDF-neptune_ml-targets-subject)
  + [조건자](#machine-learning-RDF-neptune_ml-targets-predicate)
  + [객체](#machine-learning-RDF-neptune_ml-targets-object)
  + [type](#machine-learning-RDF-neptune_ml-targets-type)
  + [split\$1rate](#machine-learning-RDF-neptune_ml-targets-split_rate)

## 속성 그래프 대상 객체의 필드
<a name="machine-learning-property-graph-neptune_ml-targets"></a>

### 대상 객체의 node (버텍스) 필드
<a name="machine-learning-property-graph-neptune_ml-targets-node"></a>

대상 노드(버텍스)의 속성 그래프 레이블. 대상 객체는 `node` 요소 또는 `edge` 요소를 포함해야 하지만, 둘 다 포함해서는 안 됩니다.

`node`는 다음과 같이 단일 값을 취할 수 있습니다.

```
  "node": "Movie"
```

또는 레이블이 여러 개인 버텍스의 경우 다음과 같이 값 배열을 사용할 수 있습니다.

```
  "node": ["Content", "Movie"]
```

### 속성 그래프 대상 객체의 edge 필드
<a name="machine-learning-property-graph-neptune_ml-targets-edge"></a>

시작 노드 레이블, 자체 레이블, 끝 노드 레이블로 대상 엣지를 지정합니다. 대상 객체는 `edge` 요소 또는 `node` 요소를 포함해야 하지만, 둘 다 포함해서는 안 됩니다.

`edge` 필드 값은 다음과 같이 시작 노드의 속성 그래프 레이블, 엣지 자체의 속성 그래프 레이블, 끝 노드의 속성 그래프 레이블을 나타내는 3개의 문자열로 구성된 JSON 배열입니다.

```
  "edge": ["Person_A", "knows", "Person_B"]
```

시작 노드 및/또는 끝 노드에 레이블이 여러 개 있는 경우 다음과 같이 레이블을 배열로 묶습니다.

```
  "edge": [ ["Admin", Person_A"], "knows", ["Admin", "Person_B"] ]
```

### 속성 그래프 대상 객체의 property 필드
<a name="machine-learning-property-graph-neptune_ml-targets-property"></a>

다음과 같이 대상 버텍스 또는 엣지의 속성을 지정합니다.

```
  "property" : "rating"
```

이 필드는 필수 필드입니다. 단, 대상 작업이 연결 예측인 경우는 예외입니다.

### 속성 그래프 대상 객체의 type 필드
<a name="machine-learning-property-graph-neptune_ml-targets-type"></a>

`node` 또는 `edge`에서 수행할 대상 작업의 유형을 다음과 같이 나타냅니다.

```
  "type" : "regression"
```

노드에 지원되는 작업 유형은 다음과 같습니다.
+ `classification`
+ `regression`

엣지에 지원되는 작업 유형은 다음과 같습니다.
+ `classification`
+ `regression`
+ `link_prediction`

이 필드는 필수 항목입니다.

### 속성 그래프 대상 객체의 split\$1rate 필드
<a name="machine-learning-property-graph-neptune_ml-targets-split_rate"></a>

(*선택 사항*) 훈련 단계, 검증 단계, 테스트 단계에서 각각 사용할 노드 또는 엣지의 비율 추정치입니다. 이 비율은 0과 1 사이의 숫자 3개로 구성된 JSON 배열로 표현됩니다. 이 숫자 3개를 더하면 1이 됩니다.

```
"split_rate": [0.7, 0.1, 0.2]
```

선택적 `split_rate` 필드를 제공하지 않는 경우 분류 및 회귀 태스크에 대한 기본 예상 값은 `[0.9, 0.1, 0.0]`이고 링크 예측 태스크의 경우 `[0.9,0.05, 0.05]`입니다.

### 속성 그래프 대상 객체의 separator 필드
<a name="machine-learning-property-graph-neptune_ml-targets-separator"></a>

(*선택 사항*) 분류 작업과 함께 사용됩니다.

이 `separator` 필드는 문자열에 여러 범주 값을 저장하는 데 사용 시 대상 속성값을 여러 범주 값으로 분할하는 데 사용되는 문자를 지정합니다. 예제:

```
"separator": "|"
```

`separator` 필드가 있으면 해당 작업이 다중 대상 분류 작업임을 나타냅니다.

## RDF 대상 객체의 필드
<a name="machine-learning-RDF-neptune_ml-targets"></a>

### RDF 대상 객체의 node 필드
<a name="machine-learning-RDF-neptune_ml-targets-node"></a>

대상 노드의 노드 유형을 정의합니다. 노드 분류 작업 또는 노드 회귀 작업에 사용됩니다. RDF에 있는 노드의 노드 유형은 다음과 같이 정의됩니다.

```
  node_id, <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>, node_type
```

RDF `node`는 다음과 같이 단일 값만 취할 수 있습니다.

```
  "node": "http://aws.amazon.com/neptune/csv2rdf/class/Movie"
```

### RDF 대상 객체의 subject 필드
<a name="machine-learning-RDF-neptune_ml-targets-subject"></a>

연결 예측 작업의 경우 `subject`에서는 대상 엣지의 소스 노드 유형을 정의합니다.

```
  "subject": "http://aws.amazon.com/neptune/csv2rdf/class/Director"
```

**참고**  
연결 예측 작업의 경우 `subject`는 `predicate` 및 `object`와 함께 사용해야 합니다. 이 3가지 중 하나라도 제공되지 않으면 모든 엣지가 훈련 대상으로 취급됩니다.

### RDF 대상 객체의 predicate 필드
<a name="machine-learning-RDF-neptune_ml-targets-predicate"></a>

노드 분류 및 노드 회귀 작업의 경우 `predicate`에서는 대상 노드의 대상 노드 기능으로 사용되는 리터럴 데이터를 정의합니다.

```
  "predicate": "http://aws.amazon.com/neptune/csv2rdf/datatypeProperty/genre"
```

**참고**  
대상 노드에 대상 노드 기능을 정의하는 조건자가 하나뿐인 경우 `predicate` 필드를 생략할 수 있습니다.

연결 예측 작업의 경우 `predicate`에서는 대상 엣지의 관계 유형을 정의합니다.

```
"predicate": "http://aws.amazon.com/neptune/csv2rdf/datatypeProperty/direct"
```

**참고**  
연결 예측 작업의 경우 `predicate`는 `subject` 및 `object`와 함께 사용해야 합니다. 이 3가지 중 하나라도 제공되지 않으면 모든 엣지가 훈련 대상으로 취급됩니다.

### RDF 대상 객체의 object 필드
<a name="machine-learning-RDF-neptune_ml-targets-object"></a>

연결 예측 작업의 경우 `object`에서는 대상 엣지의 대상 노드 유형을 정의합니다.

```
  "object": "http://aws.amazon.com/neptune/csv2rdf/class/Movie"
```

**참고**  
연결 예측 작업의 경우 `object`는 `subject` 및 `predicate`와 함께 사용해야 합니다. 이 3가지 중 하나라도 제공되지 않으면 모든 엣지가 훈련 대상으로 취급됩니다.

### RDF 대상 객체의 type 필드
<a name="machine-learning-RDF-neptune_ml-targets-type"></a>

수행할 대상 작업의 유형을 다음과 같이 나타냅니다.

```
  "type" : "regression"
```

RDF 데이터에 지원되는 작업 유형은 다음과 같습니다.
+ `link_prediction`
+ `classification`
+ `regression`

이 필드는 필수 항목입니다.

### 속성 그래프 대상 객체의 `split_rate` 필드
<a name="machine-learning-RDF-neptune_ml-targets-split_rate"></a>

(*선택 사항*) 훈련 단계, 검증 단계, 테스트 단계에서 각각 사용할 노드 또는 엣지의 비율 추정치입니다. 이 비율은 0과 1 사이의 숫자 3개로 구성된 JSON 배열로 표현됩니다. 이 숫자 3개를 더하면 1이 됩니다.

```
"split_rate": [0.7, 0.1, 0.2]
```

옵션 `split_rate` 필드를 제공하지 않는 경우 기본 예상 값은 `[0.9, 0.1, 0.0]`입니다.

# neptune\$1ml의 특성 필드
<a name="machine-learning-neptune_ml-features"></a>

속성값과 RDF 리터럴은 다양한 형식과 데이터 유형으로 제공됩니다. 기계 학습에서 우수한 성능을 달성하려면 이러한 값을 *특성*이라고 하는 수치 인코딩으로 변환해야 합니다.

Neptune ML은 [Neptune ML의 특성 인코딩](machine-learning-feature-encoding.md)에 설명된 대로 데이터 내보내기 및 데이터 처리 단계의 일부로 특성 추출 및 인코딩을 수행합니다.

속성 그래프 데이터 세트의 경우 내보내기 프로세스는 문자열 속성과 여러 값이 포함된 숫자 속성에 대한 `auto` 특성을 자동으로 유추합니다. 단일 값을 포함하는 숫자 속성의 경우 `numerical` 특성을 유추합니다. 날짜 속성의 경우 `datetime` 특성을 유추합니다.

자동 유추된 특성 사양을 재정의하거나 속성에 대한 버킷 숫자, TF-IDF, FastText 또는 SBERT 사양을 추가하려는 경우 특성 필드를 사용하여 특성 인코딩을 제어할 수 있습니다.

**참고**  
이 `features` 필드를 사용하여 RDF 데이터가 아닌 속성 그래프 데이터에 대한 특성 사양을 제어할 수 있습니다.

자유 형식 텍스트의 경우 Neptune ML은 여러 가지 모델을 사용하여 문자열 속성값의 토큰 시퀀스를 고정 크기의 실수 값 벡터로 변환할 수 있습니다.
+ [`text_fasttext`](machine-learning-feature-encoding.md#machine-learning-fasttext-features)   –   [fastText](https://fasttext.cc/) 인코딩을 사용합니다. fastText에서 지원하는 5가지 언어 중 하나만 사용하는 특성에 권장되는 인코딩입니다.
+ [`text_sbert`](machine-learning-feature-encoding.md#machine-learning-sbert-features)   –   [Sentence BERT](https://www.sbert.net/docs/pretrained_models.html#sentence-embedding-models)(SBERT) 인코딩 모델을 사용합니다. `text_fasttext`에서 지원하지 않는 텍스트의 경우 이 인코딩을 사용하는 것이 좋습니다.
+ [`text_word2vec`](machine-learning-feature-encoding.md#machine-learning-word2vec-features)   –   [Google](https://code.google.com/archive/p/word2vec/)에서 처음 게시한 [Word2Vec](https://wikipedia.org/wiki/Word2vec) 알고리즘을 사용하여 텍스트를 인코딩합니다. Word2Vec는 영어만 지원합니다.
+ [`text_tfidf`](machine-learning-feature-encoding.md#machine-learning-tfidf-features)   –   [Term Frequency-Inverse Document Frequency](https://wikipedia.org/wiki/Tf-idf)(TF-IDF) 벡터라이저를 사용하여 텍스트를 인코딩합니다. TF-IDF 인코딩은 다른 인코딩에서는 지원하지 않는 통계적 특성을 지원합니다.

`features` 필드에는 노드 속성 특성의 JSON 배열이 포함됩니다. 배열의 객체에는 다음과 같은 필드가 포함될 수 있습니다.

**Contents**
+ [노드](#machine-learning-neptune_ml-features-node)
+ [엣지](#machine-learning-neptune_ml-features-edge)
+ [속성](#machine-learning-neptune_ml-features-property)
+ [type](#machine-learning-neptune_ml-feature-types)
+ [규범](#machine-learning-neptune_ml-features-norm)
+ [language](#machine-learning-neptune_ml-features-language)
+ [max\$1length](#machine-learning-neptune_ml-features-max_length)
+ [separator](#machine-learning-neptune_ml-features-separator)
+ [range](#machine-learning-neptune_ml-features-range)
+ [bucket\$1cnt](#machine-learning-neptune_ml-features-bucket_cnt)
+ [slide\$1window\$1size](#machine-learning-neptune_ml-features-slide_window_size)
+ [imputer](#machine-learning-neptune_ml-features-imputer)
+ [max\$1features](#machine-learning-neptune_ml-features-max_features)
+ [min\$1df](#machine-learning-neptune_ml-features-min_df)
+ [ngram\$1range](#machine-learning-neptune_ml-features-ngram_range)
+ [datetime\$1parts](#machine-learning-neptune_ml-features-datetime_parts)

## 특성의 node 필드
<a name="machine-learning-neptune_ml-features-node"></a>

`node` 필드는 특성 버텍스의 속성 그래프 레이블을 지정합니다. 예제:

```
  "node": "Person"
```

버텍스에 레이블이 여러 개 있는 경우 배열을 사용하여 레이블을 포함하세요. 예제:

```
  "node": ["Admin", "Person"]
```

## 특성의 edge 필드
<a name="machine-learning-neptune_ml-features-edge"></a>

`edge` 필드는 특성 엣지의 엣지 유형을 지정합니다. 엣지 유형은 소스 버텍스의 속성 그래프 레이블, 엣지의 속성 그래프 레이블, 대상 버텍스의 속성 그래프 레이블을 포함하는 배열로 구성됩니다. 엣지 특성을 지정할 때는 세 값을 모두 제공해야 합니다. 예제:

```
  "edge": ["User", "reviewed", "Movie"]
```

엣지 유형의 소스 또는 대상 버텍스에 레이블이 여러 개 있는 경우 다른 배열을 사용하여 레이블을 포함하세요. 예제:

```
  "edge": [["Admin", "Person"]. "edited", "Post"]
```

## 특성의 property 필드
<a name="machine-learning-neptune_ml-features-property"></a>

속성 파라미터를 사용하여 `node` 파라미터로 식별되는 버텍스의 속성을 지정합니다. 예제:

```
  "property" : "age"
```

## 특성에 사용할 수 있는 type 필드 값
<a name="machine-learning-neptune_ml-feature-types"></a>

`type` 파라미터는 정의되는 특성 유형을 지정합니다. 예제:

```
  "type": "bucket_numerical"
```

**사용할 수 있는 `type` 파라미터 값**
+ **`"auto"`**   –   Neptune ML이 속성 유형을 자동으로 감지하고 적절한 특성 인코딩을 적용하도록 지정합니다. `auto` 특성에 옵션 `separator` 필드가 있을 수도 있습니다.

  [Neptune ML의 자동 특성 인코딩](machine-learning-feature-encoding.md#machine-learning-auto-encoding)을(를) 참조하세요.
+ **`"category"`**   –   이 특성 인코딩은 속성값을 여러 범주 중 하나로 나타냅니다. 즉, 특성은 하나 이상의 이산 값을 가질 수 있습니다. `category` 특성에 옵션 `separator` 필드가 있을 수도 있습니다.

  [Neptune ML의 범주별 특성](machine-learning-feature-encoding.md#machine-learning-categorical-features)을(를) 참조하세요.
+ **`"numerical"`**   –   이 특성 인코딩은 '초과'와 '미만'이 의미하는 연속 간격의 숫자 속성값을 숫자로 나타냅니다.

   `numerical` 특성에 옵션 `norm`, `imputer`, `separator` 필드가 있을 수도 있습니다.

  [Neptune ML의 수치적 특성](machine-learning-feature-encoding.md#machine-learning-numerical-features)을(를) 참조하세요.
+ **`"bucket_numerical"`**   –   이 특성 인코딩은 숫자 속성값을 *버킷* 또는 범주 세트로 나눕니다.

  예를 들어, 어린이(0\$120세), 청년(20\$140세), 중년(40\$160세), 노인(60세 이상)의 4가지 버킷으로 사용자의 나이를 인코딩할 수 있습니다.

  `bucket_numerical` 특성에는 `range` 및 `bucket_cnt` 필드가 필요하며, 필요에 따라 `imputer` 및/또는 `slide_window_size` 필드를 포함할 수도 있습니다.

  [Neptune ML의 버킷 수치 특성](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features)을(를) 참조하세요.
+ **`"datetime"`**   –   이 특성 인코딩은 날짜/시간 속성값을 년, 월, 요일, 시간과 같은 범주형 특성의 배열로 나타냅니다.

  이 네 범주 중 하나 이상을 `datetime_parts` 파라미터를 사용하여 제거할 수 있습니다.

  [Neptune ML의 날짜/시간 특성](machine-learning-feature-encoding.md#machine-learning-datetime-features)을(를) 참조하세요.
+ **`"text_fasttext"`**   –   이 특성 인코딩은 [fastText](https://fasttext.cc/) 모델을 사용하여 문장이나 자유 형식 텍스트로 구성된 속성값을 숫자형 벡터로 변환합니다. 5가지 언어, 즉 영어(`en`), 중국어(`zh`), 힌디어(`hi`), 스페인어(`es`), 프랑스어(`fr`)를 지원합니다. 5개 언어 중 하나로 된 텍스트 속성값의 경우 `text_fasttext` 인코딩을 사용하는 것이 좋습니다. 하지만 같은 문장에 2개 이상의 언어로 된 단어가 포함된 경우에는 처리할 수 없습니다.

  fastText가 지원하는 언어가 아닌 다른 언어의 경우 `text_sbert` 인코딩을 사용하세요.

  120개 토큰보다 긴 속성값 텍스트 문자열이 많은 경우 이 `max_length` 필드를 사용하여 `"text_fasttext"`에서 인코딩하는 각 문자열의 토큰 수를 제한하세요.

  [Neptune ML의 텍스트 속성값에 대한 *fastText* 인코딩](machine-learning-feature-encoding.md#machine-learning-fasttext-features)을(를) 참조하세요.
+ **`"text_sbert"`**   –   이 인코딩은 [Sentence BERT](https://www.sbert.net/docs/pretrained_models.html#sentence-embedding-models)(SBERT) 모델을 사용하여 텍스트 속성값을 숫자형 벡터로 변환합니다. Neptune은 2개의 SBERT 메서드를 지원합니다. `text_sbert`를 지정한 경우 기본값은 `text_sbert128`이며, 다른 메서드 하나는 `text_sbert512`입니다. 둘 사이의 차이는 인코딩되는 텍스트 속성의 최대 토큰 수입니다. `text_sbert128` 인코딩은 처음 128개 토큰만 인코딩하고, `text_sbert512`는 최대 512개 토큰을 인코딩합니다. 따라서 `text_sbert512`를 사용하려면 `text_sbert128`보다 많은 처리 시간이 소요될 수 있습니다. 두 메서드 모두 `text_fasttext`보다 느립니다.

  `text_sbert*` 메서드는 여러 언어를 지원하며 2개 이상의 언어를 포함하는 문장을 인코딩할 수 있습니다.

  [Neptune ML의 텍스트 특성에 대한 Sentence BERT(SBERT) 인코딩](machine-learning-feature-encoding.md#machine-learning-sbert-features)을(를) 참조하세요.
+ **`"text_word2vec"`**   –   이 인코딩은 [Word2Vec](https://wikipedia.org/wiki/Word2vec) 알고리즘을 사용하여 텍스트 속성값을 숫자형 벡터로 변환합니다. 영어만 지원합니다.

  [Neptune ML의 텍스트 특성에 대한 Word2Vec 인코딩](machine-learning-feature-encoding.md#machine-learning-word2vec-features)을(를) 참조하세요.
+ **`"text_tfidf"`**   –   이 인코딩은 [Term Frequency-Inverse Document Frequency](https://wikipedia.org/wiki/Tf-idf)(TF-IDF) 벡터라이저를 사용하여 텍스트 속성값을 숫자형 벡터로 변환합니다.

  `ngram_range` 필드, `min_df` 필드 및 `max_features` 필드를 사용하여 `text_tfidf` 특성 인코딩의 파라미터를 정의합니다.

  [Neptune ML의 텍스트 특성에 대한 TF-IDF 인코딩](machine-learning-feature-encoding.md#machine-learning-tfidf-features)을(를) 참조하세요.
+ **`"none"`**   –   `none` 유형을 사용하면 특성 인코딩이 발생하지 않습니다. 원시 속성값이 구문 분석되어 대신 저장됩니다.

  사용자 지정 모델 훈련의 일환으로 사용자 지정 특성 인코딩을 수행하려는 경우에만 `none`을 사용하세요.

## norm 필드
<a name="machine-learning-neptune_ml-features-norm"></a>

이 필드는 숫자 특성에 필요합니다. 숫자 값에 사용할 정규화 메서드를 지정합니다.

```
"norm": "min-max"
```

다음과 같은 정규화 메서드가 지원됩니다.
+ **"min-max"**   –   각 값에서 최소값을 뺀 다음 최대값과 최소값 간의 차이로 나누어 각 값을 정규화합니다.
+ **“standard”**   –   각 값을 모든 값의 합계로 나누어 정규화합니다.
+ **“none”**   –   인코딩 중에 숫자 값을 정규화하지 마세요.

[Neptune ML의 수치적 특성](machine-learning-feature-encoding.md#machine-learning-numerical-features)을(를) 참조하세요.

## language 필드
<a name="machine-learning-neptune_ml-features-language"></a>

언어 필드는 텍스트 속성값에 사용되는 언어를 지정합니다. 사용법은 텍스트 인코딩 메서드에 따라 달라집니다.
+ [`text_fasttext`](machine-learning-feature-encoding.md#machine-learning-fasttext-features) 인코딩의 경우 이 필드는 필수이며, 다음 언어 중 하나를 지정해야 합니다.
  + `en`(영어)
  + `zh`(중국어)
  + `hi`(힌디어)
  + `es`(스페인어)
  + `fr`(프랑스어)
+ SBERT 인코딩은 다국어이므로, [`text_sbert`](machine-learning-feature-encoding.md#machine-learning-fasttext-features) 인코딩의 경우 이 필드는 사용되지 않습니다.
+ `text_word2vec`에서는 영어만 지원하므로, [`text_word2vec`](machine-learning-feature-encoding.md#machine-learning-word2vec-features) 인코딩의 경우 이 필드는 선택 사항입니다. 있는 경우 영어 언어 모델 이름을 지정해야 합니다.

  ```
  "language" : "en_core_web_lg"
  ```
+ [`text_tfidf`](machine-learning-feature-encoding.md#machine-learning-tfidf-features) 인코딩의 경우 이 필드는 사용되지 않습니다.

## max\$1length 필드
<a name="machine-learning-neptune_ml-features-max_length"></a>

`max_length` 필드는 `text_fasttext` 특성의 경우 선택 사항이며, 입력 텍스트 특성에서 인코딩될 최대 토큰 수를 지정합니다. `max_length`보다 긴 입력 텍스트는 잘립니다. 예를 들어, max\$1length를 128로 설정하면 텍스트 시퀀스에서 128번째 이후의 모든 토큰은 무시됩니다.

```
"max_length": 128
```

## separator 필드
<a name="machine-learning-neptune_ml-features-separator"></a>

이 필드는 `category`, `numerical` 및 `auto` 특성과 함께 필요에 따라 사용됩니다. 속성값을 여러 범주형 값 또는 숫자 값으로 분할하는 데 사용할 수 있는 문자를 지정합니다.

```
"separator": ";"
```

속성이 단일 문자열에 구분된 여러 값(예: `"Actor;Director"` 또는 `"0.1;0.2"`)을 저장하는 경우에만 `separator` 필드를 사용하세요.

[범주별 특성](machine-learning-feature-encoding.md#machine-learning-categorical-features), [수치적 특성](machine-learning-feature-encoding.md#machine-learning-numerical-features) 및 [자동 인코딩](machine-learning-feature-encoding.md#machine-learning-auto-encoding) 섹션을 참조하세요.

## range 필드
<a name="machine-learning-neptune_ml-features-range"></a>

이 필드는 `bucket_numerical` 특성에 필요합니다. 버킷으로 나눌 숫자 값의 범위를 다음과 같은 `[lower-bound, upper-bound]` 형식으로 지정합니다.

```
"range" : [20, 100]
```

속성값이 하한값보다 작으면 첫 번째 버킷에 할당되고, 상한값보다 크면 마지막 버킷에 할당됩니다.

[Neptune ML의 버킷 수치 특성](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features)을(를) 참조하세요.

## bucket\$1cnt 필드
<a name="machine-learning-neptune_ml-features-bucket_cnt"></a>

이 필드는 `bucket_numerical` 특성에 필요합니다. `range` 파라미터로 정의된 숫자 범위를 다음과 같이 나누어야 하는 버킷 수를 지정합니다.

```
"bucket_cnt": 10
```

[Neptune ML의 버킷 수치 특성](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features)을(를) 참조하세요.

## slide\$1window\$1size 필드
<a name="machine-learning-neptune_ml-features-slide_window_size"></a>

이 필드는 `bucket_numerical` 특성과 함께 필요에 따라 사용되어 2개 이상의 버킷에 값을 할당합니다.

```
"slide_window_size": 5
```

슬라이드 창은 Neptune ML이 창 크기(**`s`**)를 가져와 속성의 각 숫자 값 **`v`**를 ` v - s/2 `\$1` v + s/2 `까지의 범위로 변환하며 작동합니다. 그런 다음 범위가 겹치는 모든 버킷에 값이 할당됩니다.

[Neptune ML의 버킷 수치 특성](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features)을(를) 참조하세요.

## imputer 필드
<a name="machine-learning-neptune_ml-features-imputer"></a>

이 필드는 `numerical` 및 `bucket_numerical` 특성과 함께 필요에 따라 사용되어 누락된 값을 채우기 위한 대체 기법을 제공합니다.

```
"imputer": "mean"
```

지원되는 대체 기법은 다음과 같습니다.
+ `"mean"`
+ `"median"`
+ `"most-frequent"`

Imputer 파라미터를 포함하지 않는 경우 누락된 값이 발견되면 데이터 사전 처리가 중단되고 종료됩니다.

[Neptune ML의 수치적 특성](machine-learning-feature-encoding.md#machine-learning-numerical-features) 및 [Neptune ML의 버킷 수치 특성](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features) 섹션을 참조하세요.

## max\$1features 필드
<a name="machine-learning-neptune_ml-features-max_features"></a>

이 필드는 `text_tfidf` 특성별로 필요에 따라 사용되어 인코딩할 용어의 최대 개수를 지정합니다.

```
"max_features": 100
```

100으로 설정하면 TF-IDF 벡터라이저가 가장 많이 사용되는 100개의 용어만 인코딩합니다. `max_features`를 포함하지 않는 경우의 기본값은 5,000입니다.

[Neptune ML의 텍스트 특성에 대한 TF-IDF 인코딩](machine-learning-feature-encoding.md#machine-learning-tfidf-features)을(를) 참조하세요.

## min\$1df 필드
<a name="machine-learning-neptune_ml-features-min_df"></a>

이 필드는 `text_tfidf` 특성별로 필요에 따라 사용되어 인코딩할 용어의 최소 문서 빈도를 지정합니다.

```
"min_df": 5
```

5로 설정한 경우 용어가 인코딩되려면 5개 이상의 서로 다른 속성값에 나타나야 합니다.

`min_df` 파라미터를 포함하지 않는 경우의 기본값은 `2`입니다.

[Neptune ML의 텍스트 특성에 대한 TF-IDF 인코딩](machine-learning-feature-encoding.md#machine-learning-tfidf-features)을(를) 참조하세요.

## ngram\$1range 필드
<a name="machine-learning-neptune_ml-features-ngram_range"></a>

이 필드는 `text_tfidf` 특성별로 필요에 따라 사용되어 인코딩할 수 있는 개별 용어로 간주해야 하는 단어 또는 토큰의 크기 시퀀스를 지정합니다.

```
"ngram_range": [2, 4]
```

`[2, 4]` 값은 2, 3, 4단어 시퀀스를 잠재적 개별 용어로 간주하도록 지정합니다.

`ngram_range`를 명시적으로 설정하지 않으면 기본값은 `[1, 1]`이며, 이는 단일 단어나 토큰만 인코딩할 용어로 간주된다는 것을 의미합니다.

[Neptune ML의 텍스트 특성에 대한 TF-IDF 인코딩](machine-learning-feature-encoding.md#machine-learning-tfidf-features)을(를) 참조하세요.

## datetime\$1parts 필드
<a name="machine-learning-neptune_ml-features-datetime_parts"></a>

이 필드는 `datetime` 특성에서 필요에 따라 날짜/시간 값 중 범주별로 인코딩할 부분을 지정하는 데 사용됩니다.

```
"datetime_parts": ["weekday", "hour"]
```

`datetime_parts`를 포함하지 않는 경우 기본적으로 Neptune ML은 날짜/시간 값의 연도, 월, 요일 및 시간 부분을 인코딩합니다. `["weekday", "hour"]` 값은 날짜/시간 값의 요일 및 시간만 특성에서 범주별로 인코딩해야 함을 나타냅니다.

훈련 세트에서 부분 중 하나에 고유 값이 2개 이상 없는 경우 인코딩되지 않습니다.

[Neptune ML의 날짜/시간 특성](machine-learning-feature-encoding.md#machine-learning-datetime-features)을(를) 참조하세요.

# 모델 훈련 구성 조정을 위한 additionalParams 내 파라미터 사용 예제
<a name="machine-learning-data-export-additionalParams-examples"></a>

 다음 예제에서는 속성 그래프 및 RDF 데이터 모델에서 "additionalParams" 기능을 활용하여 Neptune ML 애플리케이션에 대한 모델 훈련 프로세스의 다양한 측면을 구성하는 방법을 보여줍니다. 이 예제에서는 training/validation/test 데이터에 대한 기본 분할 비율 지정, 노드 분류, 회귀 및 링크 예측 작업 정의, 숫자 버킷, 텍스트 임베딩, 날짜/시간 및 범주형 데이터와 같은 다양한 기능 유형 구성 등 다양한 기능을 다룹니다. 이러한 세부 구성을 통해 기계 학습 파이프라인을 특정 데이터 및 모델링 요구 사항에 맞게 조정하여 Neptune ML 기능의 잠재력을 최대로 활용할 수 있습니다.

**Contents**
+ [additionalParams를 사용한 속성 그래프 예제](#machine-learning-property-graph-additionalParams-examples)
  + [모델 훈련 구성을 위한 기본 분할 비율 지정](#machine-learning-property-graph-additionalParams-default-split-rate-example)
  + [모델 훈련 구성을 위한 노드 분류 작업 지정](#machine-learning-property-graph-additionalParams-node-classification-example)
  + [모델 훈련 구성을 위한 다중 클래스 노드 분류 작업 지정](#machine-learning-property-graph-additionalParams-multi-class-example)
  + [모델 훈련 구성을 위한 노드 회귀 작업 지정](#machine-learning-property-graph-additionalParams-node-regression-example)
  + [모델 훈련 구성을 위한 엣지 분류 작업 지정](#machine-learning-property-graph-additionalParams-edge-classification-example)
  + [모델 훈련 구성을 위한 다중 클래스 엣지 분류 작업 지정](#machine-learning-property-graph-additionalParams-multi-edge-classification-example)
  + [모델 훈련 구성을 위한 엣지 회귀 지정](#machine-learning-property-graph-additionalParams-edge-regression-example)
  + [모델 훈련 구성을 위한 연결 예측 작업 지정](#machine-learning-property-graph-additionalParams-link-prediction-example)
  + [숫자형 버킷 특성 지정](#machine-learning-property-graph-additionalParams-numeric-bucket-example)
  + [`Word2Vec` 특성 지정](#machine-learning-property-graph-additionalParams-word2vec-example)
  + [`FastText` 특성 지정](#machine-learning-property-graph-additionalParams-fasttext-example)
  + [`Sentence BERT` 특성 지정](#machine-learning-property-graph-additionalParams-sbert-example)
  + [`TF-IDF` 특성 지정](#machine-learning-property-graph-additionalParams-tf-idf-example)
  + [`datetime` 특성 지정](#machine-learning-property-graph-additionalParams-datetime-example)
  + [`category` 특성 지정](#machine-learning-property-graph-additionalParams-category-example)
  + [`numerical` 특성 지정](#machine-learning-property-graph-additionalParams-numerical-example)
  + [`auto` 특성 지정](#machine-learning-property-graph-additionalParams-auto-example)
+ [`additionalParams`를 사용한 RDF 예제](#machine-learning-RDF-additionalParams-examples)
  + [모델 훈련 구성을 위한 기본 분할 비율 지정](#machine-learning-RDF-additionalParams-default-split-rate-example)
  + [모델 훈련 구성을 위한 노드 분류 작업 지정](#machine-learning-RDF-additionalParams-node-classification-example)
  + [모델 훈련 구성을 위한 노드 회귀 작업 지정](#machine-learning-RDF-additionalParams-node-regression-example)
  + [특정 엣지에 대한 연결 예측 작업 지정](#machine-learning-RDF-additionalParams-link-prediction-example)
  + [모든 엣지에 대한 연결 예측 작업 지정](#machine-learning-RDF-additionalParams-link-prediction-example)

## additionalParams를 사용한 속성 그래프 예제
<a name="machine-learning-property-graph-additionalParams-examples"></a>

### 모델 훈련 구성을 위한 기본 분할 비율 지정
<a name="machine-learning-property-graph-additionalParams-default-split-rate-example"></a>

다음 예제에서 `split_rate` 파라미터는 모델 훈련의 기본 분할 비율을 설정합니다. 기본 분할 비율을 지정하지 않은 경우 훈련은 [0.9, 0.1, 0.0] 값을 사용합니다. 각 대상에 `split_rate`를 지정하여 대상별로 기본값을 재정의할 수 있습니다.

다음 예제에서 `default split_rate` 필드는 대상별로 재정의하지 않는 한 `[0.7,0.1,0.2]`의 분할 비율을 사용해야 함을 나타냅니다.”

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "split_rate": [0.7,0.1,0.2],
    "targets": [
      (...)
    ],
    "features": [
      (...)
    ]
  }
}
```

### 모델 훈련 구성을 위한 노드 분류 작업 지정
<a name="machine-learning-property-graph-additionalParams-node-classification-example"></a>

훈련용으로 레이블이 지정된 예제가 포함된 노드 속성을 나타내려면 `"type" : "classification"`을 사용하여 `targets` 배열에 노드 분류 요소를 추가하세요. 기본 분할 비율을 재정의하려면 `split_rate` 필드를 추가합니다.

다음 예제에서 `node` 대상은 각 `Movie` 노드의 `genre` 속성을 노드 클래스 레이블로 취급해야 함을 나타냅니다. 이 `split_rate` 값은 기본 분할 비율을 재정의합니다.

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      {
        "node": "Movie",
        "property": "genre",
        "type": "classification",
        "split_rate": [0.7,0.1,0.2]
      }
    ],
    "features": [
      (...)
    ]
  }
}
```

### 모델 훈련 구성을 위한 다중 클래스 노드 분류 작업 지정
<a name="machine-learning-property-graph-additionalParams-multi-class-example"></a>

훈련용으로 레이블이 지정된 여러 예제가 포함된 노드 속성을 나타내려면 `"type" : "classification"` 및 `separator`를 통해 대상 배열에 노드 분류 요소를 추가하여 대상 속성값을 여러 범주형 값으로 분할하는 데 사용할 수 있는 문자를 지정하세요. 기본 분할 비율을 재정의하려면 `split_rate` 필드를 추가합니다.

다음 예제에서 `node` 대상은 각 `Movie` 노드의 `genre` 속성을 노드 클래스 레이블로 취급해야 함을 나타냅니다. 이 `separator` 필드는 각 장르 속성에 세미콜론으로 구분된 여러 값이 포함되어 있음을 나타냅니다.

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      {
        "node": "Movie",
        "property": "genre",
        "type": "classification",
        "separator": ";"
      }
    ],
    "features": [
      (...)
    ]
  }
}
```

### 모델 훈련 구성을 위한 노드 회귀 작업 지정
<a name="machine-learning-property-graph-additionalParams-node-regression-example"></a>

훈련용으로 레이블이 지정된 회귀가 포함된 노드 속성을 나타내려면 `"type" : "regression"`을 사용하여 대상 배열에 노드 회귀 요소를 추가하세요. 기본 분할 비율을 재정의하려면 split\$1rate 필드를 추가합니다.

다음 `node` 대상은 각 `Movie` 노드의 `rating` 속성을 노드 회귀 레이블로 취급해야 함을 나타냅니다.

```
    "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      {
        "node": "Movie",
        "property": "rating",
        "type" : "regression",
        "split_rate": [0.7,0.1,0.2]
      }
    ],
    "features": [
      ...
    ]
  }
}
```

### 모델 훈련 구성을 위한 엣지 분류 작업 지정
<a name="machine-learning-property-graph-additionalParams-edge-classification-example"></a>

훈련용으로 레이블이 지정된 예제가 포함된 엣지 속성을 나타내려면 `"type" : "regression"`을 사용하여 `targets` 배열에 엣지 요소를 추가하세요. 기본 분할 비율을 재정의하려면 split\$1rate 필드를 추가합니다.

다음 `edge` 대상은 각 `knows` 엣지의 `metAtLocation` 속성을 엣지 클래스 레이블로 취급해야 함을 나타냅니다.

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      {
        "edge": ["Person", "knows", "Person"],
        "property": "metAtLocation",
        "type": "classification"
      }
    ],
    "features": [
      (...)
    ]
  }
}
```

### 모델 훈련 구성을 위한 다중 클래스 엣지 분류 작업 지정
<a name="machine-learning-property-graph-additionalParams-multi-edge-classification-example"></a>

훈련용으로 레이블이 지정된 여러 예제가 포함된 엣지 속성을 나타내려면 `"type" : "classification"` 및 `separator` 필드를 통해 `targets` 배열에 엣지 요소를 추가하여 대상 속성값을 여러 범주형 값으로 분할하는 데 사용되는 문자를 지정하세요. 기본 분할 비율을 재정의하려면 `split_rate` 필드를 추가합니다.

다음 `edge` 대상은 각 `repliedTo` 엣지의 `sentiment` 속성을 엣지 클래스 레이블로 취급해야 함을 나타냅니다. 구분자 필드는 각 센티멘트 속성에 여러 개의 쉼표로 구분된 값이 포함되어 있음을 나타냅니다.

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      {
        "edge": ["Person", "repliedTo", "Message"],
        "property": "sentiment",
        "type": "classification",
        "separator": ","
      }
    ],
    "features": [
      (...)
    ]
  }
}
```

### 모델 훈련 구성을 위한 엣지 회귀 지정
<a name="machine-learning-property-graph-additionalParams-edge-regression-example"></a>

훈련용으로 레이블이 지정된 회귀 예제가 포함된 엣지 속성을 나타내려면 `"type" : "regression"`을 사용하여 `targets` 배열에 `edge` 요소를 추가하세요. 기본 분할 비율을 재정의하려면 `split_rate` 필드를 추가합니다.

다음 `edge` 대상은 각 `reviewed` 엣지의 `rating` 속성을 엣지 회귀로 취급해야 함을 나타냅니다.

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      {
        "edge": ["Person", "reviewed", "Movie"],
        "property": "rating",
        "type" : "regression"
      }
    ],
    "features": [
      (...)
    ]
  }
}
```

### 모델 훈련 구성을 위한 연결 예측 작업 지정
<a name="machine-learning-property-graph-additionalParams-link-prediction-example"></a>

연결 예측 훈련용으로 사용해야 하는 엣지를 나타내려면 `"type" : "link_prediction"`을 사용하여 대상 배열에 엣지 요소를 추가하세요. 기본 분할 비율을 재정의하려면 `split_rate` 필드를 추가합니다.

다음 `edge` 대상은 연결 예측에 `cites` 엣지를 사용해야 함을 나타냅니다.

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      {
        "edge": ["Article", "cites", "Article"],
        "type" : "link_prediction"
      }
    ],
    "features": [
      (...)
    ]
  }
}
```

### 숫자형 버킷 특성 지정
<a name="machine-learning-property-graph-additionalParams-numeric-bucket-example"></a>

`features` 배열에 `"type": "bucket_numerical"`을 추가하여 노드 속성에 대한 수치 데이터 특성을 지정할 수 있습니다.

다음 `node` 특성은 각 `Person` 노드의 `age` 속성을 숫자형 버킷 특성으로 취급해야 함을 나타냅니다.

```
  "additionalParams": {
  "neptune_ml": {
    "targets": [
      ...
    ],
    "features": [
      {
        "node": "Person",
        "property": "age",
        "type": "bucket_numerical",
        "range": [1, 100],
        "bucket_cnt": 5,
        "slide_window_size": 3,
        "imputer": "median"
      }
    ]
  }
}
```

### `Word2Vec` 특성 지정
<a name="machine-learning-property-graph-additionalParams-word2vec-example"></a>

`features` 배열에 `"type": "text_word2vec"`를 추가하여 노드 속성의 `Word2Vec` 특성을 지정할 수 있습니다.

다음 `node` 특성은 각 `Movie` 노드의 `description` 속성을 `Word2Vec` 특성으로 취급해야 함을 나타냅니다.

```
"additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      ...
    ],
    "features": [
      {
        "node": "Movie",
        "property": "description",
        "type": "text_word2vec",
        "language": "en_core_web_lg"
      }
    ]
  }
}
```

### `FastText` 특성 지정
<a name="machine-learning-property-graph-additionalParams-fasttext-example"></a>

`features` 배열에 `"type": "text_fasttext"`를 추가하여 노드 속성의 `FastText` 특성을 지정할 수 있습니다. `language` 필드는 필수이며, 다음 언어 코드 중 하나를 지정해야 합니다.
+ `en`(영어)
+ `zh`(중국어)
+ `hi`(힌디어)
+ `es`(스페인어)
+ `fr`(프랑스어)

단, `text_fasttext` 인코딩은 특성에서 한 번에 2개 이상의 언어를 처리할 수 없습니다.

다음 `node` 특성은 각 `Movie` 노드의 프랑스어 `description` 속성을 `FastText` 특성으로 취급해야 함을 나타냅니다.

```
"additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      ...
    ],
    "features": [
      {
        "node": "Movie",
        "property": "description",
        "type": "text_fasttext",
        "language": "fr",
        "max_length": 1024
      }
    ]
  }
}
```

### `Sentence BERT` 특성 지정
<a name="machine-learning-property-graph-additionalParams-sbert-example"></a>

`features` 배열에 `"type": "text_sbert"`를 추가하여 노드 속성의 `Sentence BERT` 특성을 지정할 수 있습니다. 메서드는 다국어 언어 모델을 사용하여 텍스트 특성을 자동으로 인코딩하므로, 언어를 지정할 필요가 없습니다.

다음 `node` 특성은 각 `Movie` 노드의 `description` 속성을 `Sentence BERT` 특성으로 취급해야 함을 나타냅니다.

```
"additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      ...
    ],
    "features": [
      {
        "node": "Movie",
        "property": "description",
        "type": "text_sbert128",
      }
    ]
  }
}
```

### `TF-IDF` 특성 지정
<a name="machine-learning-property-graph-additionalParams-tf-idf-example"></a>

`features` 배열에 `"type": "text_tfidf"`를 추가하여 노드 속성의 `TF-IDF` 특성을 지정할 수 있습니다.

다음 `node` 특성은 각 `Person` 노드의 `bio` 속성을 `TF-IDF` 특성으로 취급해야 함을 나타냅니다.

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      ...
    ],
    "features": [
      {
        "node": "Movie",
        "property": "bio",
        "type": "text_tfidf",
        "ngram_range": [1, 2],
        "min_df": 5,
        "max_features": 1000
      }
    ]
  }
}
```

### `datetime` 특성 지정
<a name="machine-learning-property-graph-additionalParams-datetime-example"></a>

내보내기 프로세스는 날짜 속성의 `datetime` 특성을 자동으로 유추합니다. 그러나 `datetime` 특성에 사용되는 `datetime_parts`를 제한하거나 보통 `auto` 특성으로 처리되는 속성을 `datetime` 특성으로 명시적으로 취급하도록 특성 사양을 재정의하려면 특성 배열에 `"type": "datetime"`을 추가하면 됩니다.

다음 `node` 특성은 각 `Post` 노드의 `createdAt` 속성을 `datetime` 특성으로 취급해야 함을 나타냅니다.

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      ...
    ],
    "features": [
      {
        "node": "Post",
        "property": "createdAt",
        "type": "datetime",
        "datetime_parts": ["month", "weekday", "hour"]
      }
    ]
  }
}
```

### `category` 특성 지정
<a name="machine-learning-property-graph-additionalParams-category-example"></a>

내보내기 프로세스는 문자열 속성과 여러 값이 포함된 숫자 속성에 대한 `auto` 특성을 자동으로 유추합니다. 단일 값을 포함하는 숫자 속성의 경우 `numerical` 특성을 유추합니다. 날짜 속성의 경우 `datetime` 특성을 유추합니다.

속성이 범주형 특성으로 취급되도록 특성 사양을 재정의하려면 특성 배열에 `"type": "category"`를 추가하세요. 속성에 여러 값이 포함된 경우 `separator` 필드를 포함하면 됩니다. 예제:

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      ...
    ],
    "features": [
      {
        "node": "Post",
        "property": "tag",
        "type": "category",
        "separator": "|"
      }
    ]
  }
}
```

### `numerical` 특성 지정
<a name="machine-learning-property-graph-additionalParams-numerical-example"></a>

내보내기 프로세스는 문자열 속성과 여러 값이 포함된 숫자 속성에 대한 `auto` 특성을 자동으로 유추합니다. 단일 값을 포함하는 숫자 속성의 경우 `numerical` 특성을 유추합니다. 날짜 속성의 경우 `datetime` 특성을 유추합니다.

속성이 `numerical` 특성으로 취급되도록 특성 사양을 재정의하려면 특성 배열에 `"type": "numerical"`을 추가하세요. 속성에 여러 값이 포함된 경우 `separator` 필드를 포함하면 됩니다. 예제:

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      ...
    ],
    "features": [
      {
        "node": "Recording",
        "property": "duration",
        "type": "numerical",
        "separator": ","
      }
    ]
  }
}
```

### `auto` 특성 지정
<a name="machine-learning-property-graph-additionalParams-auto-example"></a>

내보내기 프로세스는 문자열 속성과 여러 값이 포함된 숫자 속성에 대한 `auto` 특성을 자동으로 유추합니다. 단일 값을 포함하는 숫자 속성의 경우 `numerical` 특성을 유추합니다. 날짜 속성의 경우 `datetime` 특성을 유추합니다.

속성이 `auto` 특성으로 취급되도록 특성 사양을 재정의하려면 특성 배열에 `"type": "auto"`을 추가하세요. 속성에 여러 값이 포함된 경우 `separator` 필드를 포함하면 됩니다. 예제:

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      ...
    ],
    "features": [
      {
        "node": "User",
        "property": "role",
        "type": "auto",
        "separator": ","
      }
    ]
  }
}
```

## `additionalParams`를 사용한 RDF 예제
<a name="machine-learning-RDF-additionalParams-examples"></a>

### 모델 훈련 구성을 위한 기본 분할 비율 지정
<a name="machine-learning-RDF-additionalParams-default-split-rate-example"></a>

다음 예제에서 `split_rate` 파라미터는 모델 훈련의 기본 분할 비율을 설정합니다. 기본 분할 비율을 지정하지 않은 경우 훈련은 [0.9, 0.1, 0.0] 값을 사용합니다. 각 대상에 `split_rate`를 지정하여 대상별로 기본값을 재정의할 수 있습니다.

다음 예제에서 `default split_rate` 필드는 대상별로 재정의하지 않는 한 `[0.7,0.1,0.2]`의 분할 비율을 사용해야 함을 나타냅니다.”

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "split_rate": [0.7,0.1,0.2],
    "targets": [
      (...)
    ]
  }
}
```

### 모델 훈련 구성을 위한 노드 분류 작업 지정
<a name="machine-learning-RDF-additionalParams-node-classification-example"></a>

훈련용으로 레이블이 지정된 예제가 포함된 노드 속성을 나타내려면 `"type" : "classification"`을 사용하여 `targets` 배열에 노드 분류 요소를 추가하세요. 대상 노드의 노드 유형을 나타내려면 노드 필드를 추가합니다. 대상 노드의 대상 노드 특성으로 사용할 리터럴 데이터를 정의하려면 `predicate` 필드를 추가합니다. 기본 분할 비율을 재정의하려면 `split_rate` 필드를 추가합니다.

다음 예제에서 `node` 대상은 각 `Movie` 노드의 `genre` 속성을 노드 클래스 레이블로 취급해야 함을 나타냅니다. 이 `split_rate` 값은 기본 분할 비율을 재정의합니다.

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      {
        "node": "http://aws.amazon.com/neptune/csv2rdf/class/Movie",
        "predicate": "http://aws.amazon.com/neptune/csv2rdf/datatypeProperty/genre",
        "type": "classification",
        "split_rate": [0.7,0.1,0.2]
      }
    ]
  }
}
```

### 모델 훈련 구성을 위한 노드 회귀 작업 지정
<a name="machine-learning-RDF-additionalParams-node-regression-example"></a>

훈련용으로 레이블이 지정된 회귀가 포함된 노드 속성을 나타내려면 `"type" : "regression"`을 사용하여 대상 배열에 노드 회귀 요소를 추가하세요. 대상 노드의 노드 유형을 나타내려면 `node` 필드를 추가합니다. 대상 노드의 대상 노드 특성으로 사용할 리터럴 데이터를 정의하려면 `predicate` 필드를 추가합니다. 기본 분할 비율을 재정의하려면 `split_rate` 필드를 추가합니다.

다음 `node` 대상은 각 `Movie` 노드의 `rating` 속성을 노드 회귀 레이블로 취급해야 함을 나타냅니다.

```
    "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      {
        "node": "http://aws.amazon.com/neptune/csv2rdf/class/Movie",
        "predicate": "http://aws.amazon.com/neptune/csv2rdf/datatypeProperty/rating",
        "type": "regression",
        "split_rate": [0.7,0.1,0.2]
      }
    ]
  }
}
```

### 특정 엣지에 대한 연결 예측 작업 지정
<a name="machine-learning-RDF-additionalParams-link-prediction-example"></a>

연결 예측 훈련용으로 사용해야 하는 엣지를 나타내려면 `"type" : "link_prediction"`을 사용하여 대상 배열에 엣지 요소를 추가하세요. 엣지 유형을 지정하려면 `subject`, `predicate` 및 `object` 필드를 추가합니다. 기본 분할 비율을 재정의하려면 `split_rate` 필드를 추가합니다.

다음 `edge` 대상은 `Movies`에 `Directors`를 연결하는 `directed` 엣지를 연결 예측에 사용해야 함을 나타냅니다.

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      {
        "subject": "http://aws.amazon.com/neptune/csv2rdf/class/Director",
        "predicate": "http://aws.amazon.com/neptune/csv2rdf/datatypeProperty/directed",
        "object": "http://aws.amazon.com/neptune/csv2rdf/class/Movie",
        "type" : "link_prediction"
      }
    ]
  }
}
```

### 모든 엣지에 대한 연결 예측 작업 지정
<a name="machine-learning-RDF-additionalParams-link-prediction-example"></a>

연결 예측 훈련용으로 사용해야 하는 모든 엣지를 나타내려면 `"type" : "link_prediction"`을 사용하여 대상 배열에 `edge` 요소를 추가하세요. `subject`, `predicate` 또는 `object` 필드를 추가하지 마세요. 기본 분할 비율을 재정의하려면 `split_rate` 필드를 추가합니다.

```
  "additionalParams": {
  "neptune_ml": {
    "version": "v2.0",
    "targets": [
      {
        "type" : "link_prediction"
      }
    ]
  }
}
```