

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 nós do Gremlin no Neptune ML
<a name="machine-learning-gremlin-vertex-regression-queries"></a>

A regressão de nós é semelhante à classificação de nós, exceto que o valor inferido do modelo de regressão para cada nó é numérico. É possível usar as mesmas consultas do Gremlin para regressão e classificação de nós, exceto pelas seguintes diferenças:
+ Novamente, no Neptune ML, os nós se referem a vértices.
+ A etapa `properties()` assume a forma `properties().with("Neptune#ml.regression")` em vez de `properties().with("Neptune#ml.classification")`.
+ Os predicados `"Neptune#ml.limit` e `"Neptune#ml.threshold"` não são aplicáveis.
+ Ao filtrar o valor, você precisa especificar um valor numérico.

Veja a seguir um exemplo de consulta de classificação de vértices:

```
g.with("Neptune#ml.endpoint","node-regression-movie-lens-endpoint")
 .with("Neptune#ml.iamRoleArn", "arn:aws:iam::0123456789:role/sagemaker-role")
 .V("movie_1","movie_2","movie_3")
 .properties("revenue").with("Neptune#ml.regression")
```

Você pode filtrar o valor inferido usando um modelo de regressão, conforme ilustrado nos seguintes exemplos:

```
g.with("Neptune#ml.endpoint","node-regression-movie-lens-endpoint")
 .with("Neptune#ml.iamRoleArn","arn:aws:iam::0123456789:role/sagemaker-role")
 .V("movie_1","movie_2","movie_3")
 .properties("revenue").with("Neptune#ml.regression")
 .value().is(P.gte(1600000))

g.with("Neptune#ml.endpoint","node-regression-movie-lens-endpoint")
 .with("Neptune#ml.iamRoleArn","arn:aws:iam::0123456789:role/sagemaker-role")
 .V("movie_1","movie_2","movie_3")
 .properties("revenue").with("Neptune#ml.regression")
 .hasValue(P.lte(1600000D))
```

## Usar inferência indutiva em uma consulta de regressão de nós
<a name="machine-learning-gremlin-node-regress-inductive"></a>

Suponha que você adicione um novo nó a um grafo existente, em um caderno Jupyter, da seguinte forma:

```
%%gremlin
g.addV('label1').property(id,'101').as('newV')
 .V('1').as('oldV1')
 .V('2').as('oldV2')
 .addE('eLabel1').from('newV').to('oldV1')
 .addE('eLabel2').from('oldV2').to('newV')
```

Depois, você pode usar uma consulta de inferência indutiva para obter uma classificação que leve em conta o novo nó:

```
%%gremlin
g.with("Neptune#ml.endpoint", "nr-ep")
 .with("Neptune#ml.iamRoleArn", "arn:aws:iam::123456789012:role/NeptuneMLRole")
 .V('101').properties("rating")
 .with("Neptune#ml.regression")
 .with("Neptune#ml.inductiveInference")
```

Como a consulta não é determinística, ela poderá gerar resultados um pouco diferentes se você a executar várias vezes, com base na vizinhança:

```
# First time
==>vp[rating->9.1]

# Second time
==>vp[rating->8.9]
```

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

```
%%gremlin
g.with("Neptune#ml.endpoint", "nc-ep")
 .with("Neptune#ml.iamRoleArn", "arn:aws:iam::123456789012:role/NeptuneMLRole")
 .V('101').properties("rating")
 .with("Neptune#ml.regression")
 .with("Neptune#ml.inductiveInference")
 .with("Neptune#ml.deterministic")
```

Agora, os resultados serão praticamente os mesmos todas as vezes:

```
# First time
==>vp[rating->9.1]

# Second time
==>vp[rating->9.1]
```