

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

# 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)을(를) 참조하세요.