本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
下列範例示範如何在 屬性圖形和 RDF 資料模型中使用「additionalParams」功能,為 Neptune ML 應用程式設定模型訓練程序的各個層面。這些範例涵蓋各種功能,包括指定training/validation/test資料的預設分割率、定義節點分類、迴歸和連結預測任務,以及設定不同的特徵類型,例如數值儲存貯體、文字內嵌、日期時間和分類資料。這些詳細組態可讓您根據特定資料和建模需求自訂機器學習管道,釋放 Neptune ML 功能的完整潛力。
內容
使用 additionalParams 的屬性圖範例
為模型訓練組態指定預設分割率
在下列範例中,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": [(...)
] } }
為模型訓練組態指定節點分類任務
若要指示哪個節點屬性包含標記的範例可供訓練用途,請使用 "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": [
(...)
] } }
為模型訓練組態指定多類別節點分類任務
若要指示哪個節點屬性包含多個標記的範例可供訓練用途,請使用 "type" :
"classification"
和 separator
將節點分類元素新增至目標陣列,來指定可以用來將目標屬性值分割為多個類別值的字元。如果想要覆寫預設分割率,請新增 split_rate
欄位。
在下列範例中,node
目標會指示應將每個 Movie
節點的 genre
屬性視為節點類別標籤。separator
欄位指示每個類型屬性包含多個分號分隔值:
"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "node": "Movie", "property": "genre", "type": "classification", "separator": ";" } ], "features": [
(...)
] } }
為模型訓練組態指定節點迴歸任務
若要指示哪個節點屬性包含用於訓練用途的標記迴歸,請使用 "type" : "regression"
將節點迴歸元素新增至陣列。如果想要覆寫預設分割率,請新增 split_rate 欄位。
下列 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": [
...
]
}
}
為模型訓練組態指定 edge-classification 任務
若要指示哪個邊緣屬性包含用於訓練用途的標記範例,請使用 "type" : "regression"
將邊緣元素新增至 targets
陣列。如果想要覆寫預設分割率,請新增 split_rate 欄位。
下列 edge
目標指示應將每個 knows
邊緣的 metAtLocation
屬性視為迴歸類別標籤:
"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "edge": ["Person", "knows", "Person"], "property": "metAtLocation", "type": "classification" } ], "features": [
(...)
] } }
為模型訓練組態指定多類別邊緣分類任務
若要指示哪個邊緣屬性包含多個用於訓練用途的標記範例,請使用 "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": [
(...)
] } }
為模型訓練組態指定邊緣迴歸
若要指示哪個邊緣屬性包含用於訓練用途的標記迴歸範例,請使用 "type" : "regression"
將 edge
元素新增至 targets
陣列。如果想要覆寫預設分割率,請新增 split_rate
欄位。
下列 edge
目標指示應將每個 reviewed
邊緣的 rating
屬性視為邊緣迴歸:
"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "edge": ["Person", "reviewed", "Movie"], "property": "rating", "type" : "regression" } ], "features": [
(...)
] } }
為模型訓練組態指定連結預測任務
若要指示應將哪些邊緣用於連結預測訓練用途,請使用 "type" : "link_prediction"
將邊緣元素新增至目標陣列。如果想要覆寫預設分割率,請新增 split_rate
欄位。
下列 edge
目標指示應該使用 cites
邊緣進行連結預測:
"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "edge": ["Article", "cites", "Article"], "type" : "link_prediction" } ], "features": [
(...)
] } }
指定數值儲存貯體特徵
您可以透過將 "type": "bucket_numerical"
新增至 features
陣列來為節點屬性指定數值資料特徵。
下列 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
特徵
您可以透過將 "type": "text_word2vec"
新增至 features
陣列來為節點屬性指定 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
特徵
您可以透過將 "type": "text_fasttext"
新增至 features
陣列來為節點屬性指定 FastText
特徵。language
欄位為必要的,且必須指定下列其中一個語言代碼:
en
(英文)zh
(中文)hi
(北印度文)es
(西班牙文)fr
(法文)
請注意,text_fasttext
編碼無法在特徵中一次處理多種語言。
下列 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
特徵
您可以透過將 "type": "text_sbert"
新增至 features
陣列來為節點屬性指定 Sentence BERT
特徵。您不需要指定語言,因為方法會使用多語系模型自動編碼文字特徵。
下列 node
特徵指示應將每個 Movie
節點的 description
屬性視為 Sentence BERT
特徵:
"additionalParams": {
"neptune_ml": {
"version": "v2.0",
"targets": [
...
],
"features": [
{
"node": "Movie",
"property": "description",
"type": "text_sbert128",
}
]
}
}
指定 TF-IDF
特徵
您可以透過將 "type": "text_tfidf"
新增至 features
陣列來為節點屬性指定 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
特徵
匯出程序會自動推斷日期屬性的 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
特徵
匯出程序會自動針對字串屬性和包含多個值的數值屬性推斷 auto
特徵。對於包含單一值的數值屬性,它會推斷 numerical
特徵。對於日期屬性,它會推斷 datetime
特徵。
如果您想要覆寫特徵規格,以便將屬性視為類別特徵,請將 "type": "category"
新增至特徵陣列。如果屬性包含多個值,請包括一個 separator
欄位。例如:
"additionalParams": {
"neptune_ml": {
"version": "v2.0",
"targets": [
...
],
"features": [
{
"node": "Post",
"property": "tag",
"type": "category",
"separator": "|"
}
]
}
}
指定 numerical
特徵
匯出程序會自動針對字串屬性和包含多個值的數值屬性推斷 auto
特徵。對於包含單一值的數值屬性,它會推斷 numerical
特徵。對於日期屬性,它會推斷 datetime
特徵。
如果您想要覆寫特徵規格,以便將屬性視為 numerical
特徵,請將 "type": "numerical"
新增至特徵陣列。如果屬性包含多個值,請包括一個 separator
欄位。例如:
"additionalParams": {
"neptune_ml": {
"version": "v2.0",
"targets": [
...
],
"features": [
{
"node": "Recording",
"property": "duration",
"type": "numerical",
"separator": ","
}
]
}
}
指定 auto
特徵
匯出程序會自動針對字串屬性和包含多個值的數值屬性推斷 auto
特徵。對於包含單一值的數值屬性,它會推斷 numerical
特徵。對於日期屬性,它會推斷 datetime
特徵。
如果您想要覆寫特徵規格,以便將屬性視為 auto
特徵,請將 "type": "auto"
新增至特徵陣列。如果屬性包含多個值,請包括一個 separator
欄位。例如:
"additionalParams": {
"neptune_ml": {
"version": "v2.0",
"targets": [
...
],
"features": [
{
"node": "User",
"property": "role",
"type": "auto",
"separator": ","
}
]
}
}
使用 additionalParams
的 RDF 範例
為模型訓練組態指定預設分割率
在下列範例中,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": [
(...)
] } }
為模型訓練組態指定節點分類任務
若要指示哪個節點屬性包含訓練用途的標記範例,請使用 "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] } ] } }
為模型訓練組態指定節點迴歸任務
若要指示哪個節點屬性包含用於訓練用途的標記迴歸,請使用 "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]
}
]
}
}
為特定邊緣指定連結預測任務
若要指示應將哪些邊緣用於連結預測訓練用途,請使用 "type" : "link_prediction"
將邊緣元素新增至目標陣列。新增 subject
、predicate
和 object
欄位以指定邊緣類型。如果想要覆寫預設分割率,請新增 split_rate
欄位。
下列 edge
目標指示將 Directors
連線至 Movies
的 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" } ] } }
為所有邊緣指定連結預測任務
若要指示應將所有邊緣用於連結預測訓練用途,請使用 "type" :
"link_prediction"
將 edge
元素新增至目標陣列。請不要新增 subject
、predicate
或 object
欄位。如果想要覆寫預設分割率,請新增 split_rate
欄位。
"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "type" : "link_prediction" } ] } }