

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Consultas de regressão de bordas do Gremlin no Neptune ML
<a name="machine-learning-gremlin-edge-regression"></a>

A regressão de bordas é semelhante à classificação de bordas, exceto que o valor inferido do modelo de ML é numérico. Para regressão de bordas, o Neptune ML é compatível com as mesmas consultas de classificação.

Os principais pontos a serem observados são:
+ Você precisa usar o predicado de ML `"Neptune#ml.regression"` para configurar a etapa `properties()` para esse caso de uso.
+ Os predicados `"Neptune#ml.limit"` e `"Neptune#ml.threshold"` não são aplicáveis nesse caso de uso.
+ Para filtrar o valor, você precisa especificar o valor como numérico.

## Sintaxe de uma consulta de regressão de bordas do Gremlin
<a name="machine-learning-gremlin-edge-regression-syntax"></a>

Para um grafo simples em que `User` está o nó principal, `Movie` o nó final e `Rated` é a borda que os conecta, aqui está um exemplo de consulta de regressão de bordas que encontra o valor da classificação numérica, chamado de pontuação aqui, da borda `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")
```

Também é possível filtrar por um valor inferido do modelo de regressão de ML. Para as bordas `Rated` existentes (de `User` a `Movie`) identificadas por `"rating_1"`, `"rating_2"` e `"rating_3"`, em que a propriedade de borda `Score` não está presente para essas classificações, é possível usar uma consulta como a seguinte para inferir `Score` para as bordas em que ela é maior ou 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))
```

## Usar inferência indutiva em uma consulta de regressão de bordas
<a name="machine-learning-gremlin-edge-regression-inductive"></a>

Suponha que você adicione uma nova borda a um grafo existente, em um caderno Jupyter, da seguinte forma:

```
%%gremlin
g.V('1').as('fromV')
.V('2').as('toV')
.addE('eLabel1').from('fromV').to('toV').property(id, 'e101')
```

Depois, você pode usar uma consulta de inferência indutiva para obter uma pontuação que leve em conta a nova borda:

```
%%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")
```

Como a consulta não é determinística, os resultados seriam um pouco diferentes se você a executasse várias vezes, com base na vizinhança aleatória:

```
# First time
==>ep[score->96]

# Second time
==>ep[score->91]
```

Se precisar de resultados mais consistentes, você poderá tornar a consulta determinística:

```
%%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")
```

Agora, os resultados serão mais ou menos os mesmos toda vez que você executar a consulta:

```
# First time
==>ep[score->96]

# Second time
==>ep[score->96]
```