

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.

# El campo features en neptune\$1ml
<a name="machine-learning-neptune_ml-features"></a>

Los valores de las propiedades y los literales de RDF están disponibles en diferentes formatos y tipos de datos. Para lograr un buen rendimiento en el machine learning, es fundamental convertir esos valores en codificaciones numéricas conocidas como *características.*

Neptune ML realiza la extracción y codificación de características como parte de los pasos de exportación y procesamiento de datos, tal y como se describe en [Codificación de características en Neptune ML](machine-learning-feature-encoding.md).

En el caso de los conjuntos de datos de gráficos de propiedades, el proceso de exportación infiere automáticamente las características `auto` de las propiedades de cadenas y de las propiedades numéricas que incluyen varios valores. En el caso de las propiedades numéricas que incluyen valores únicos, infiere las características `numerical`. En el caso de las propiedades de fecha, infiere las características `datetime`.

Si desea anular una especificación de entidad inferida automáticamente o añadir una especificación numérica de segmento, TF-IDF o SBERT para una propiedad FastText, puede controlar la codificación de la entidad mediante el campo de características.

**nota**  
Solo puede usar el campo `features` para controlar las especificaciones de las características de los datos del gráfico de propiedades, no de los datos de RDF.

En el caso de textos de formato libre, Neptune ML puede utilizar varios modelos diferentes para convertir la secuencia de tokens de un valor de propiedad de cadena en un vector de valor real de tamaño fijo:
+ [`text_fasttext`](machine-learning-feature-encoding.md#machine-learning-fasttext-features): utiliza la codificación [fastText](https://fasttext.cc/). Esta es la codificación recomendada para las características que utilizan solo uno de los cinco idiomas que admite FastText.
+ [`text_sbert`](machine-learning-feature-encoding.md#machine-learning-sbert-features): utiliza los modelos de codificación [Sentence BERT](https://www.sbert.net/docs/pretrained_models.html#sentence-embedding-models) (SBERT). Esta es la codificación recomendada para el texto que no admite `text_fasttext`.
+ [`text_word2vec`](machine-learning-feature-encoding.md#machine-learning-word2vec-features): utiliza los algoritmos [Word2Vec](https://wikipedia.org/wiki/Word2vec) publicados originalmente por [Google](https://code.google.com/archive/p/word2vec/) para codificar texto. Word2Vec solo admite inglés.
+ [`text_tfidf`](machine-learning-feature-encoding.md#machine-learning-tfidf-features): utiliza un vectorizador de [frecuencia de términos - frecuencia inversa de documentos](https://wikipedia.org/wiki/Tf-idf) (TF-IDF) para codificar texto. La codificación TF-IDF admite características estadísticas que las demás codificaciones no admiten.

El campo `features` incluye una matriz de JSON de características de propiedades de nodos. Los objetos de la matriz pueden incluir los siguientes campos:

**Contents**
+ [nodo](#machine-learning-neptune_ml-features-node)
+ [límite](#machine-learning-neptune_ml-features-edge)
+ [propiedad](#machine-learning-neptune_ml-features-property)
+ [type](#machine-learning-neptune_ml-feature-types)
+ [norm](#machine-learning-neptune_ml-features-norm)
+ [idioma](#machine-learning-neptune_ml-features-language)
+ [max\$1length](#machine-learning-neptune_ml-features-max_length)
+ [separator](#machine-learning-neptune_ml-features-separator)
+ [rango](#machine-learning-neptune_ml-features-range)
+ [bucket\$1cnt](#machine-learning-neptune_ml-features-bucket_cnt)
+ [slide\$1window\$1size](#machine-learning-neptune_ml-features-slide_window_size)
+ [imputer](#machine-learning-neptune_ml-features-imputer)
+ [max\$1features](#machine-learning-neptune_ml-features-max_features)
+ [min\$1df](#machine-learning-neptune_ml-features-min_df)
+ [ngram\$1range](#machine-learning-neptune_ml-features-ngram_range)
+ [datetime\$1parts](#machine-learning-neptune_ml-features-datetime_parts)

## El campo node en las características
<a name="machine-learning-neptune_ml-features-node"></a>

El campo `node` especifica una etiqueta de gráfico de propiedades de un vértice de característica. Por ejemplo:

```
  "node": "Person"
```

Si un vértice tiene varias etiquetas, utilice una matriz para incluir todas ellas. Por ejemplo:

```
  "node": ["Admin", "Person"]
```

## El campo edge en las características
<a name="machine-learning-neptune_ml-features-edge"></a>

El campo `edge` especifica el tipo de borde del borde de una característica. Un tipo de borde consiste en una matriz que incluye las etiquetas del gráfico de propiedades del vértice de origen, la etiqueta del gráfico de propiedades del borde y las etiquetas del gráfico de propiedades del vértice de destino. Debe proporcionar los tres valores al especificar una característica de borde. Por ejemplo:

```
  "edge": ["User", "reviewed", "Movie"]
```

Si un vértice de origen o destino de un tipo de borde tiene varias etiquetas, utilice otra matriz para incluir todas ellas. Por ejemplo:

```
  "edge": [["Admin", "Person"]. "edited", "Post"]
```

## El campo property en las características
<a name="machine-learning-neptune_ml-features-property"></a>

Utilice el parámetro de propiedad para especificar una propiedad del vértice identificado por el parámetro `node`. Por ejemplo:

```
  "property" : "age"
```

## Valores posibles del campo type para las características
<a name="machine-learning-neptune_ml-feature-types"></a>

El parámetro `type` especifica el tipo de característica que se está definiendo. Por ejemplo:

```
  "type": "bucket_numerical"
```

**Valores posibles del parámetro `type`**
+ **`"auto"`**: especifica que Neptune ML debe detectar automáticamente el tipo de propiedad y aplicar una codificación de característica adecuada. Una característica `auto` también puede tener un campo opcional `separator`.

  Consulte [Codificación automática de características en Neptune ML](machine-learning-feature-encoding.md#machine-learning-auto-encoding).
+ **`"category"`**: esta codificación de característica representa el valor de una propiedad como una de varias categorías. Dicho de otro modo, la característica puede tomar uno o varios valores discretos. Una característica `category` también puede tener un campo opcional `separator`.

  Consulte [Características categóricas de Neptune ML](machine-learning-feature-encoding.md#machine-learning-categorical-features).
+ **`"numerical"`**: esta codificación de característica representa los valores de propiedades numéricas como números en un intervalo continuo en el que los valores “mayor que” y “menor que” tienen relevancia.

   Una característica `numerical` también puede tener los campos opcionales `norm`, `imputer` y `separator`.

  Consulte [Características numéricas de Neptune ML](machine-learning-feature-encoding.md#machine-learning-numerical-features).
+ **`"bucket_numerical"`**: esta codificación de característica divide los valores de propiedades numéricas en un conjunto de *buckets* o categorías.

  Por ejemplo, podrías codificar las edades de las personas en cuatro grupos: niños (0-20), adultos jóvenes (20-40), personas de mediana edad (40-60) y personas mayores (más de 60 años).

  Una `bucket_numerical` función requiere un campo `range` y un `bucket_cnt` campo y, de forma opcional, también puede incluir un campo. `imputer` and/or `slide_window_size`

  Consulte [Características numéricas por bucket de Neptune ML](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features).
+ **`"datetime"`**: esta codificación de característica representa el valor de una propiedad de fecha y hora como una matriz de estas características categóricas: año, mes, día de la semana y hora.

  Se pueden eliminar una o varias de estas cuatro categorías mediante el parámetro `datetime_parts`.

  Consulte [Características de fecha y hora de Neptune ML](machine-learning-feature-encoding.md#machine-learning-datetime-features).
+ **`"text_fasttext"`**: esta codificación de característica convierte los valores de propiedad que constan de frases o texto de formato libre en vectores numéricos mediante modelos [fastText](https://fasttext.cc/). Es compatible con cinco idiomas: inglés (`en`), chino (`zh`), hindi (`hi`), español (`es`) y francés (`fr`). En el caso de los valores de propiedades de texto en cualquiera de esos cinco idiomas, se recomienda la codificación `text_fasttext`. Sin embargo, no admite casos en los que la misma frase incluya palabras en más de un idioma.

  Para otros idiomas distintos de los que admite fastText, utilice la codificación `text_sbert`.

  Si tiene muchas cadenas de texto de valor de propiedad de más de, por ejemplo, 120 caracteres, utilice el campo `max_length` para limitar el número de tokens en cada cadena que `"text_fasttext"` codifique.

  Consulte [Codificación *fastText* de valores de propiedades de texto en Neptune ML](machine-learning-feature-encoding.md#machine-learning-fasttext-features).
+ **`"text_sbert"`**: esta codificación convierte los valores de las propiedades de texto en vectores numéricos mediante los modelos [Sentence BERT](https://www.sbert.net/docs/pretrained_models.html#sentence-embedding-models) (SBERT). Neptune admite dos métodos SBERT, es decir `text_sbert128`, que es el predeterminado si solo se especifica `text_sbert` y. `text_sbert512`. La diferencia entre ellos es el número máximo de tokens de una propiedad de texto que se codifica. La codificación `text_sbert128` solo codifica los primeros 128 tokens, mientras que `text_sbert512` codifica hasta 512 tokens. Como resultado, el uso de `text_sbert512` puede requerir más tiempo de procesamiento que `text_sbert128`. Ambos métodos son más lentos que `text_fasttext`.

  Los métodos `text_sbert*` admiten muchos idiomas y pueden codificar una frase que incluya más de un idioma.

  Consulte [Codificación de frases BERT (SBERT) de características de texto en Neptune ML](machine-learning-feature-encoding.md#machine-learning-sbert-features).
+ **`"text_word2vec"`**: esta codificación convierte los valores de las propiedades de texto en vectores numéricos mediante los algoritmos [Word2Vec](https://wikipedia.org/wiki/Word2vec). Solo es compatible con el inglés.

  Consulte [Codificación Word2Vec de características de texto en Neptune ML](machine-learning-feature-encoding.md#machine-learning-word2vec-features).
+ **`"text_tfidf"`**: esta codificación convierte los valores de las propiedades de texto en vectores numéricos mediante un vectorizador de [frecuencia de términos - frecuencia inversa de documentos](https://wikipedia.org/wiki/Tf-idf) (TF-IDF).

  Los parámetros de un codificación de característica `text_tfidf` se definen mediante el campo `ngram_range`, el campo `min_df` y el campo `max_features`.

  Consulte [Codificación TF-IDF de características de texto en Neptune ML](machine-learning-feature-encoding.md#machine-learning-tfidf-features).
+ **`"none"`**: el uso del tipo `none` provoca que no se produzca ninguna codificación de características. En cambio, los valores de las propiedades sin procesar se analizan y se guardan.

  Utilice `none` solo si tiene previsto realizar su propia codificación personalizada de características como parte del entrenamiento con modelos personalizados.

## El campo norm
<a name="machine-learning-neptune_ml-features-norm"></a>

Este campo es obligatorio para las características numéricas. Especifica un método de normalización para usar en valores numéricos:

```
"norm": "min-max"
```

Se admiten los siguientes métodos de normalización:
+ **“min-max”**: normaliza cada valor restándole el valor mínimo y dividiéndolo por la diferencia entre el valor máximo y el mínimo.
+ **“standard”**: normaliza cada valor dividiéndolo entre la suma de todos los valores.
+ **“none”**: no normaliza los valores numéricos durante la codificación.

Consulte [Características numéricas de Neptune ML](machine-learning-feature-encoding.md#machine-learning-numerical-features).

## El campo language
<a name="machine-learning-neptune_ml-features-language"></a>

El campo de idioma especifica el idioma utilizado en los valores de las propiedades de texto. Su uso depende del método de codificación del texto:
+ En el caso de la codificación [`text_fasttext`](machine-learning-feature-encoding.md#machine-learning-fasttext-features), este campo es obligatorio y debe especificar uno de los siguientes idiomas:
  + `en` (inglés)
  + `zh` (chino)
  + `hi` (hindi)
  + `es` (español)
  + `fr` (francés)
+ En el caso de la codificación [`text_sbert`](machine-learning-feature-encoding.md#machine-learning-fasttext-features), este campo no se utiliza, ya que la codificación SBERT es multilingüe.
+ En el caso de la codificación [`text_word2vec`](machine-learning-feature-encoding.md#machine-learning-word2vec-features), este campo es opcional, ya que `text_word2vec` solo admite el inglés. Si está presente, debe especificar el nombre del modelo en inglés:

  ```
  "language" : "en_core_web_lg"
  ```
+ En el caso de la codificación [`text_tfidf`](machine-learning-feature-encoding.md#machine-learning-tfidf-features), este campo no se utiliza.

## El campo max\$1length
<a name="machine-learning-neptune_ml-features-max_length"></a>

El campo `max_length` es opcional para las características `text_fasttext`, ya que especifica el número máximo de tokens que se codificarán en una característica de texto de entrada. Se truncará el texto de entrada que supere `max_length`. Por ejemplo, si se establece max\$1length en 128, se ignorará cualquier token situado después del 128 en una secuencia de texto:

```
"max_length": 128
```

## El campo separator
<a name="machine-learning-neptune_ml-features-separator"></a>

Este campo se usa de forma opcional con las características `category`, `numerical` y `auto`. Especifica un carácter que se puede utilizar para dividir el valor de una propiedad en varios valores categóricos o numéricos:

```
"separator": ";"
```

Utilice el campo `separator` únicamente cuando la propiedad almacene varios valores delimitados en una única cadena, como, por ejemplo, `"Actor;Director"` o `"0.1;0.2"`.

Consulte [Características categóricas](machine-learning-feature-encoding.md#machine-learning-categorical-features), [Características numéricas](machine-learning-feature-encoding.md#machine-learning-numerical-features) y [Codificación automática](machine-learning-feature-encoding.md#machine-learning-auto-encoding).

## El campo range
<a name="machine-learning-neptune_ml-features-range"></a>

Este campo es obligatorio para las características `bucket_numerical`. Especifica el rango de valores numéricos que se van a dividir en buckets, en el formato`[lower-bound, upper-bound]`:

```
"range" : [20, 100]
```

Si el valor de una propiedad es menor que el límite inferior, se asigna al primer bucket, o si es mayor que el límite superior, se asigna al último bucket.

Consulte [Características numéricas por bucket de Neptune ML](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features).

## El campo bucket\$1cnt
<a name="machine-learning-neptune_ml-features-bucket_cnt"></a>

Este campo es obligatorio para las características `bucket_numerical`. Especifica el número de buckets en los que debe dividirse el rango numérico definido por el parámetro `range`:

```
"bucket_cnt": 10
```

Consulte [Características numéricas por bucket de Neptune ML](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features).

## El campo slide\$1window\$1size
<a name="machine-learning-neptune_ml-features-slide_window_size"></a>

Este campo se usa de forma opcional con características `bucket_numerical` para asignar valores a más de un bucket:

```
"slide_window_size": 5
```

El funcionamiento de una ventana deslizante consiste en que Neptune ML toma el tamaño de la ventana **`s`** y transforma cada valor numérico **`v`** de una propiedad en un rango de ` v - s/2 ` a ` v + s/2 `. A continuación, el valor se asigna a cada bucket en el que se superpone el rango.

Consulte [Características numéricas por bucket de Neptune ML](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features).

## El campo imputer
<a name="machine-learning-neptune_ml-features-imputer"></a>

Este campo se utiliza de forma opcional con las características `numerical` y `bucket_numerical` para proporcionar una técnica de imputación y rellenar los valores que faltan:

```
"imputer": "mean"
```

Las técnicas de imputación admitidas son:
+ `"mean"`
+ `"median"`
+ `"most-frequent"`

Si no incluye el parámetro de imputación, el preprocesamiento de datos se detiene y finaliza cuando se encuentra con un valor que falta.

Consulte [Características numéricas de Neptune ML](machine-learning-feature-encoding.md#machine-learning-numerical-features) y [Características numéricas por bucket de Neptune ML](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features).

## El campo max\$1features
<a name="machine-learning-neptune_ml-features-max_features"></a>

Las características `text_tfidf` utilizan este campo de forma opcional para especificar el número máximo de términos que se van a codificar:

```
"max_features": 100
```

Un valor de 100 hace que el vectorizador de TF-IDF codifique solo los 100 términos más comunes. El valor predeterminado, si no se incluye `max_features`, es 5000.

Consulte [Codificación TF-IDF de características de texto en Neptune ML](machine-learning-feature-encoding.md#machine-learning-tfidf-features).

## El campo min\$1df
<a name="machine-learning-neptune_ml-features-min_df"></a>

Las características `text_tfidf` utilizan este campo de forma opcional para especificar la frecuencia mínima de documentos de los términos que se van a codificar:

```
"min_df": 5
```

Un valor de 5 indica que un término debe aparecer en al menos 5 valores de propiedad diferentes para codificarse.

El valor predeterminado, si no se incluye el parámetro `min_df`, es `2`.

Consulte [Codificación TF-IDF de características de texto en Neptune ML](machine-learning-feature-encoding.md#machine-learning-tfidf-features).

## El campo ngram\$1range
<a name="machine-learning-neptune_ml-features-ngram_range"></a>

Las características `text_tfidf` utilizan este campo de forma opcional para especificar qué tamaño de las secuencias de palabras o tokens debe considerarse como posibles términos individuales para codificar:

```
"ngram_range": [2, 4]
```

El valor `[2, 4]` especifica que las secuencias de 2, 3 y 4 palabras deben considerarse posibles términos individuales.

El valor predeterminado, si no establece de forma explícita `ngram_range`, es `[1, 1]`, lo que significa que solo las palabras o tokens únicos se consideran términos que se van a codificar.

Consulte [Codificación TF-IDF de características de texto en Neptune ML](machine-learning-feature-encoding.md#machine-learning-tfidf-features).

## El campo datetime\$1parts
<a name="machine-learning-neptune_ml-features-datetime_parts"></a>

Las características `datetime` utilizan este campo de forma opcional para especificar qué partes del valor de fecha y hora deben codificarse categóricamente: 

```
"datetime_parts": ["weekday", "hour"]
```

Si no incluye `datetime_parts`, Neptune ML codifica de forma predeterminada las partes de año, mes, día de la semana y hora del valor de fecha y hora. El valor `["weekday", "hour"]` indica que solo los valores de fecha y hora del día de la semana y hora deben codificarse categóricamente en la característica.

Si una de las partes no tiene más de un valor único en el conjunto de entrenamiento, no se ha codificado.

Consulte [Características de fecha y hora de Neptune ML](machine-learning-feature-encoding.md#machine-learning-datetime-features).