Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
La regresión de bordes es similar a la clasificación de bordes, excepto el valor inferido del modelo de ML que es numérico. En el caso de la regresión de bordes, Neptune ML admite las mismas consultas que para la clasificación.
Los puntos clave a tener en cuenta son:
Debe usar el predicado
"Neptune#ml.regression"
de ML para configurar el pasoproperties()
para este caso de uso.Los predicados
"Neptune#ml.limit"
y"Neptune#ml.threshold"
no son aplicables en este caso de uso.Para filtrar el valor, debe especificarlo como numérico.
Sintaxis de una consulta de regresión de bordes de Gremlin
En el caso de un gráfico sencillo en el que User
es el nodo principal, Movie
es el nodo final y Rated
es el borde que los conecta: a continuación se muestra un ejemplo de consulta de regresión de bordes que encuentra el valor de clasificación numérica, denominado puntuación, para el borde 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")
También puede filtrar un valor inferido del modelo de regresión de ML. En el caso de los bordes Rated
existentes (de User
a Movie
) identificadas por "rating_1"
, "rating_2"
y "rating_3"
, donde la propiedad de borde Score
esté presente para estas clasificaciones, puede utilizar una consulta como la siguiente para inferir Score
para los bordes en los que es mayor o igual 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))
Uso de la inferencia inductiva en una consulta de regresión de bordes
Supongamos que tuviera que añadir un nuevo borde a un gráfico existente, en un cuaderno de Jupyter, de la siguiente manera:
%%gremlin g.V('1').as('fromV') .V('2').as('toV') .addE('eLabel1').from('fromV').to('toV').property(id, 'e101')
A continuación, podría usar una consulta de inferencia inductiva para obtener una puntuación que tuviera en cuenta el nuevo borde:
%%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")
Dado que la consulta no es determinista, los resultados variarían algo si se ejecutara varias veces, en función de la vecindad aleatoria:
# First time ==>ep[score->96] # Second time ==>ep[score->91]
Si necesitara resultados más coherentes, podría hacer que la consulta fuera determinista:
%%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")
Ahora los resultados serán más o menos los mismos cada vez que ejecute la consulta:
# First time ==>ep[score->96] # Second time ==>ep[score->96]