Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Query di regressione degli archi Gremlin in Neptune ML
La regressione degli archi è simile alla classificazione degli archi, tranne per il fatto che il valore dedotto dal modello di machine learning è numerico. Per la regressione degli archi, Neptune ML supporta le stesse query utilizzate per la classificazione.
Gli aspetti principali da notare sono:
È necessario usare il predicato ML
"Neptune#ml.regression"
per configurare il passaggioproperties()
per questo caso d'uso.I predicati
"Neptune#ml.limit"
e"Neptune#ml.threshold"
non sono applicabili in questo caso d'uso.Per filtrare in base al valore, è necessario specificare il valore come numerico.
Sintassi di una query di regressione degli archi Gremlin
Per un grafo semplice in cui User
è il nodo di testa, Movie
è il nodo di coda e Rated
è l'arco che li collega, ecco un esempio di query di regressione degli archi che trova il valore di valutazione numerico, qui denominato punteggio, per l'arco Rated
:
g.with("Neptune#ml.endpoint","edge-regression-movie-lens-endpoint") .with("Neptune#ml.iamRoleArn","arn:aws:iam::0123456789:role/sagemaker-role") .E("rating_1","rating_2","rating_3") .properties("score").with("Neptune#ml.regression")
Puoi anche filtrare in base a un valore dedotto dal modello di regressione ML. Per gli archi Rated
esistenti (da User
a Movie
) identificati da "rating_1"
, "rating_2"
e "rating_3"
, dove la proprietà dell'arco Score
sia presente per queste classificazioni, è possibile usare una query come la seguente per dedurre Score
per gli archi in cui è maggiore o uguale a 9:
g.with("Neptune#ml.endpoint","edge-regression-movie-lens-endpoint") .with("Neptune#ml.iamRoleArn","arn:aws:iam::0123456789:role/sagemaker-role") .E("rating_1","rating_2","rating_3") .properties("score").with("Neptune#ml.regression") .value().is(P.gte(9))
Utilizzo dell'inferenza induttiva in una query di regressione degli archi
Si supponga di dover aggiungere un nuovo arco a un grafo esistente in un notebook Jupyter, in questo modo:
%%gremlin g.V('1').as('fromV') .V('2').as('toV') .addE('eLabel1').from('fromV').to('toV').property(id, 'e101')
È quindi possibile utilizzare una query di inferenza induttiva per ottenere un punteggio che tenga conto del nuovo arco:
%%gremlin g.with("Neptune#ml.endpoint", "er-ep") .with("Neptune#ml.iamRoleArn", "arn:aws:iam::123456789012:role/NeptuneMLRole") .E('e101').properties("score") .with("Neptune#ml.regression") .with("Neptune#ml.inductiveInference")
Poiché la query è non deterministica, potrebbe restituire risultati leggermente diversi se la si esegue più volte, in base al neighborhood casuale:
# First time ==>ep[score->96] # Second time ==>ep[score->91]
Se sono necessari risultati più coerenti, puoi rendere la query deterministica:
%%gremlin g.with("Neptune#ml.endpoint", "er-ep") .with("Neptune#ml.iamRoleArn", "arn:aws:iam::123456789012:role/NeptuneMLRole") .E('e101').properties("score") .with("Neptune#ml.regression") .with("Neptune#ml.inductiveInference") .with("Neptune#ml.deterministic")
Ora i risultati saranno più o meno gli stessi ogni volta che si esegue la query:
# First time ==>ep[score->96] # Second time ==>ep[score->96]