

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.

# Consultas de regresión de bordes de Gremlin en Neptune ML
Regresión de bordes

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 paso `properties()` 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
Sintaxis de regresión de bordes

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
Uso de la inferencia inductiva

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]
```