

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# neptune\_ml 物件中的目標欄位
<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\_rate](#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)
  + [object](#machine-learning-RDF-neptune_ml-targets-object)
  + [type](#machine-learning-RDF-neptune_ml-targets-type)
  + [split\_rate](#machine-learning-RDF-neptune_ml-targets-split_rate)

## 屬性圖目標物件中的欄位
<a name="machine-learning-property-graph-neptune_ml-targets"></a>

### 目標物件中的節點 （頂點） 欄位
<a name="machine-learning-property-graph-neptune_ml-targets-node"></a>

目標節點 (頂點) 的屬性圖標籤。目標物件必須包含 `node` 元素或 `edge` 元素，但不能同時包含兩者。

`node` 可以採取單一值，如下所示：

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

或者，在多標籤頂點的情況下，它可以採取值陣列，如下所示：

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

### 屬性圖目標物件中的邊緣欄位
<a name="machine-learning-property-graph-neptune_ml-targets-edge"></a>

透過其起始節點標籤、自己的標籤及其結束節點標籤來指定目標邊緣。目標物件必須包含 `edge` 元素或 `node` 元素，但不能同時包含兩者。

`edge` 欄位的值是一個 JSON 陣列，由三個字串組成，這些字串代表起始節點的屬性圖標籤、邊緣本身的屬性圖標籤，以及結束節點的屬性圖標籤，如下所示：

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

如果起始節點和/或結束節點有多個標籤，請以陣列括住它們，如下所示：

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

### 屬性圖目標物件中的屬性欄位
<a name="machine-learning-property-graph-neptune_ml-targets-property"></a>

指定目標頂點或邊緣的屬性，如下所示：

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

除了目標任務為連結預測時，此欄位都為必要的。

### 屬性圖目標物件中的類型欄位
<a name="machine-learning-property-graph-neptune_ml-targets-type"></a>

指出要在 `node` 或 `edge` 上執行的目標任務類型，如下所示：

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

節點支援的任務類型如下：
+ `classification`
+ `regression`

邊緣支援的任務類型如下：
+ `classification`
+ `regression`
+ `link_prediction`

此欄位為必填。

### 屬性圖目標物件中的 split\_rate 欄位
<a name="machine-learning-property-graph-neptune_ml-targets-split_rate"></a>

(*選用*) 訓練、驗證和測試階段將分別使用的節點或邊緣比例估計。這些比例是以 JSON 陣列表示，該陣列由介於零與一之間的三個數字組成，加起來最多為 1：

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

如果您不提供選用`split_rate`欄位，預設的預估值是`[0.9, 0.1, 0.0]`用於分類和迴歸任務，以及`[0.9,0.05, 0.05]`用於連結預測任務。

### 屬性圖目標物件中的分隔符號欄位
<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 目標物件中的節點欄位
<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 目標物件中的主旨欄位
<a name="machine-learning-RDF-neptune_ml-targets-subject"></a>

對於連結預測任務，`subject` 定義目標邊緣的來源節點類型。

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

**注意**  
對於連結預測任務，`subject` 應同時與 `predicate` 和 `object` 搭配使用。如果未提供這三個的任一個，則會將所有邊緣視為訓練目標。

### RDF 目標物件中的述詞欄位
<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` 搭配使用。如果未提供這三個的任一個，則會將所有邊緣視為訓練目標。

### RDF 目標物件中的物件欄位
<a name="machine-learning-RDF-neptune_ml-targets-object"></a>

對於連結預測任務，`object` 定義目標邊緣的目的地節點類型：

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

**注意**  
對於連結預測任務，`object` 應同時與 `subject` 和 `predicate` 搭配使用。如果未提供這三個的任一個，則會將所有邊緣視為訓練目標。

### RDF 目標物件中的類型欄位
<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>

(*選用*) 訓練、驗證和測試階段將分別使用的節點或邊緣比例估計。這些比例是以 JSON 陣列表示，該陣列由介於零與一之間的三個數字組成，加起來最多為 1：

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

如果您未提供選用 `split_rate` 欄位，則預設估計值為 `[0.9, 0.1, 0.0]`。