

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 つの言語のうちの 1 つだけを使用するフィーチャに推奨されるエンコーディングです。
+ [`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)
+ [property](#machine-learning-neptune_ml-features-property)
+ [型](#machine-learning-neptune_ml-feature-types)
+ [norm](#machine-learning-neptune_ml-features-norm)
+ [言語](#machine-learning-neptune_ml-features-language)
+ [max\$1length](#machine-learning-neptune_ml-features-max_length)
+ [separator](#machine-learning-neptune_ml-features-separator)
+ [範囲](#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)
+ [maxfeatures](#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)

## 機能のノードフィールド
<a name="machine-learning-neptune_ml-features-node"></a>

`node` フィールドは、特徴頂点のプロパティグラフラベルを指定します。例: 

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

頂点に複数のラベルがある場合は、配列を使用してそれらを含めます。例えば、次のようになります。

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

## 機能のエッジフィールド
<a name="machine-learning-neptune_ml-features-edge"></a>

`edge` フィールドは、特徴エッジのエッジタイプを指定します。エッジタイプは、始点頂点のプロパティグラフラベル、エッジのプロパティグラフラベル、および終点頂点のプロパティグラフラベルを含む配列で構成されます。エッジ特徴を指定するときは、3 つの値すべてを指定する必要があります。例: 

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

エッジタイプの始点または終点頂点に複数のラベルがある場合は、別の配列を使用してラベルを格納します。例えば、次のようになります。

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

## 機能のプロパティフィールド
<a name="machine-learning-neptune_ml-features-property"></a>

プロパティパラメータを使用して、`node` パラメータで識別される頂点のプロパティを指定します。例えば、次のようになります。

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

## 特徴のタイプフィールドで使用できる値
<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"`** — この特徴エンコーディングは、プロパティ値をいくつかのカテゴリの 1 つとして表します。つまり、特徴は 1 つ以上の離散値を取ることができます。`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 ～20 歳)、若年大人 (20 ～ 40 歳)、中年 (40 ～ 60 歳)、および高齢者 (60歳以上) の 4 つのバケットで符号化できます。

  `bucket_numerical` 特徴には `range` と `bucket_cnt` フィールドが必須で、オプションで、`imputer` および/または `slide_window_size` フィールドを使用できます。

  「[Neptune MLの Bucket-numerical 特徴](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features)」を参照してください。
+ **`"datetime"`** — この特徴エンコーディングは、datetime プロパティ値を、年、月、曜日、および時間の分類的特徴の配列として表します。

  これら 4 つのカテゴリのうち 1 つ以上は、`datetime_parts` パラメータを使って排除できます。

  「[Neptune ML のDatetime 特徴](machine-learning-feature-encoding.md#machine-learning-datetime-features)」を参照してください。
+ **`"text_fasttext"`** — この特徴エンコーディングは、[fastText](https://fasttext.cc/) モデルを使用して、文または自由形式のテキストで構成されるプロパティ値を数値ベクトルに変換します。英語 (`en`)、中国語 (`zh`)、ヒンディー語 (`hi`)、スペイン語 (`es`)、フランス語 (`fr`) の 5 つの言語をサポートしています。この 5 つの言語のいずれかのテキストプロパティ値の場合、`text_fasttext`が推奨されるエンコーディングです。ただし、同じ文に複数の言語の単語が含まれている場合は処理できません。

  fastText がサポートする言語以外の言語では、`text_sbert` エンコーディングを使用してください。

  例えば、120 トークンを超えるプロパティ値のテキスト文字列が多数ある場合は、`max_length` フィールドを使用して、`"text_fasttext"` がエンコードする各文字列のトークンの数を制限します。

  「[Neptune ML でのテキストプロパティ値の *fastText* エンコーディング](machine-learning-feature-encoding.md#machine-learning-fasttext-features)」を参照してください。
+ **`"text_sbert"`** — このエンコーディングは、[Sententh BERT](https://www.sbert.net/docs/pretrained_models.html#sentence-embedding-models) (SBERT) モデルを使用してテキストプロパティ値を数値ベクトルに変換します。Neptune は 2 つの SBERT メソッドをサポートしています。すなわち、`text_sbert128` (`text_sbert` とだけ指定した場合のデフォルト) と `text_sbert512` です。両者の違いは、エンコードされるテキストプロパティ内のトークンの最大数です。`text_sbert128` エンコーディングでは最初の 128 トークンのみがエンコードされるのに対し、`text_sbert512` は最大 512 トークンをエンコードします。その結果、`text_sbert512` を使用する場合は、`text_sbert128` よりも処理時間が長くなる可能性があります。どちらの方法も、`text_fasttext` より遅くなります。

  `text_sbert*` の方法は、多くの言語をサポートしており、複数の言語を含む文をエンコードできます。

  「[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) ベクタライザーを使用して、テキストプロパティ値を数値ベクトルに変換します。

  `text_tfidf` 機能エンコーディングのパラメータは、`ngram_range` フィールド、`min_df` フィールド、および `max_features` フィールドを使用して定義します。

  「[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`   (フランス語)
+ [`text_sbert`](machine-learning-feature-encoding.md#machine-learning-fasttext-features) エンコーディングの場合、SBERT エンコーディングは多言語であるため、このフィールドは使用されません。
+ [`text_word2vec`](machine-learning-feature-encoding.md#machine-learning-word2vec-features) エンコーディングの場合、`text_word2vec` は英語のみをサポートするため、このフィールドはオプションです。存在する場合は、英語言語モデルの名前を指定する必要があります。

  ```
  "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"`といった、プロパティが複数の区切り値を 1 つの文字列に格納する場合にのみ、この `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の Bucket-numerical 特徴](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の Bucket-numerical 特徴](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` 特徴と使用して複数のバケットに値を割り当てます。

```
"slide_window_size": 5
```

スライドウィンドウの仕組みでは、Neptune ML はウィンドウサイズ **`s`** を取り、プロパティの各数値 **`v`** を ` v - s/2 ` から ` v + s/2 ` の範囲内へ変換します。この値は、範囲が重なるすべてのバケットに割り当てられます。

「[Neptune MLの Bucket-numerical 特徴](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の Bucket-numerical 特徴](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 値のどの部分をカテゴリ別に符号化するかを指定します。

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

`datetime_parts` を含めない場合、デフォルトでは、Neptune ML は datetime 値の年、月、曜日、および時間の部分を符号化します。値 `["weekday", "hour"]` は、datetime 値の曜日と時間のみを特徴内でカテゴリ的に符号化する必要があることを示します。

パートの 1 つがトレーニングセットに複数の固有値を持たない場合、そのパートは符号化されません。

「[Neptune ML のDatetime 特徴](machine-learning-feature-encoding.md#machine-learning-datetime-features)」を参照してください。