Campo features in neptune_ml - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Campo features in neptune_ml

I valori delle proprietà e i valori letterali RDF sono disponibili in formati e tipi di dati diversi. Per ottenere prestazioni ottimali nel machine learning, è essenziale convertire tali valori in codifiche numeriche note come funzionalità.

Neptune ML esegue l'estrazione e la codifica delle funzionalità come parte dei passaggi di esportazione ed elaborazione dei dati, come descritto in Codifica delle funzionalità in Neptune ML.

Per i set di dati con grafi di proprietà, il processo di esportazione deduce automaticamente le funzionalità auto delle proprietà stringa e delle proprietà numeriche contenenti più valori. Per le proprietà numeriche contenenti valori singoli, deduce funzionalità numerical. Per le proprietà data deduce funzionalità datetime.

Se desideri sovrascrivere una specifica di funzionalità dedotta automaticamente o aggiungere una specifica numerica del bucket, TF-IDF, fastText o SBERT per una proprietà, puoi controllare la codifica della funzionalità utilizzando il campo features.

Nota

È possibile utilizzare il campo features solo per controllare le specifiche delle funzionalità per i dati dei grafi di proprietà, non per i dati RDF.

Per il testo in formato libero, Neptune ML può utilizzare diversi modelli per convertire la sequenza di token in un valore della proprietà stringa in un vettore di valori reali a dimensione fissa:

  • text_fasttext: usa la codifica fastText. Si tratta della codifica consigliata per le funzionalità che utilizzano una e solo una delle cinque lingue supportate da fastText.

  • text_sbert: usa i modelli di codifica Sentence BERT (SBERT). Si tratta della codifica consigliata per il testo non supportato da text_fasttext.

  • text_word2vec: usa gli algoritmi Word2Vec originariamente pubblicati da Google per codificare il testo. Word2Vec supporta solo la lingua inglese.

  • text_tfidf: usa un vettorizzatore TF-IDF (Term Frequency—Inverse Document Frequency) per la codifica del testo. La codifica TF-IDF supporta funzionalità statistiche non supportate da altre codifiche.

Il campo features contiene un array JSON di funzionalità delle proprietà dei nodi. Gli oggetti nell'array possono contenere i seguenti campi:

Campo node in features

Il campo node specifica l'etichetta del grafo delle proprietà di un vertice della funzionalità. Ad esempio:

"node": "Person"

Se un vertice ha più etichette, racchiudile in un array. Ad esempio:

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

Campo edge in features

Il campo edge specifica il tipo di arco di un arco della funzionalità. Un tipo di arco è costituito da un array contenente le etichette del grafo delle proprietà del vertice di origine, l'etichetta del grafo delle proprietà dell'arco e le etichette del grafo delle proprietà del vertice di destinazione. È necessario fornire tutti e tre i valori quando si specifica una funzionalità dell'arco. Ad esempio:

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

Se un vertice di origine o di destinazione di un tipo di arco ha più etichette, racchiudile in un altro array. Ad esempio:

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

Campo property in features

Usa il parametro property per specificare una proprietà del vertice identificato dal parametro node. Ad esempio:

"property" : "age"

Valori possibili del campo type per le funzionalità

Il parametro type specifica il tipo di funzionalità da definire. Ad esempio:

"type": "bucket_numerical"
Valori possibili del parametro type
  • "auto": specifica che Neptune ML deve rilevare automaticamente il tipo di proprietà e applicare una codifica delle funzionalità appropriata. Una funzionalità auto può anche avere un campo separator facoltativo.

    Per informazioni, consultare Codifica delle funzionalità auto in Neptune ML.

  • "category": questa codifica della funzionalità rappresenta il valore di una proprietà come una di varie categorie. In altre parole, la funzionalità può accettare uno o più valori discreti. Una funzionalità category può anche avere un campo separator facoltativo.

    Per informazioni, consultare Funzionalità categoriali in Neptune ML.

  • "numerical": questa codifica di funzionalità rappresenta i valori delle proprietà numeriche come numeri in un intervallo continuo in cui "maggiore di" e "minore di" hanno un significato.

    Una funzionalità numerical può anche avere campi norm, imputer e separator.

    Per informazioni, consultare Funzionalità numeriche in Neptune ML.

  • "bucket_numerical": questa codifica della funzionalità divide i valori delle proprietà numeriche in un set di bucket o categorie.

    Ad esempio, puoi codificare l'età delle persone in 4 bucket: bambini (0-20), giovani adulti (20-40), persone di mezza età (40-60 anni) e anziani (dai 60 anni in su).

    Una funzionalità bucket_numerical richiede un elemento range e un campo bucket_cnt e può facoltativamente includere anche un campo imputer e/o slide_window_size.

    Per informazioni, consultare Funzionalità numeriche per bucket in Neptune ML.

  • "datetime": questa codifica di funzionalità rappresenta il valore di una proprietà datetime come array di queste funzionalità categoriali: anno, mese, giorno della settimana e ora.

    Una o più di queste quattro categorie possono essere eliminate utilizzando il parametro datetime_parts.

    Per informazioni, consultare Funzionalità datetime in Neptune ML.

  • "text_fasttext": questa codifica di funzionalità converte i valori delle proprietà costituiti da frasi o testo in formato libero in vettori numerici usando modelli fastText. Supporta cinque lingue, ovvero inglese (en), cinese (zh), hindi (hi), spagnolo (es) e francese (fr). Per i valori delle proprietà di testo in ognuna di queste cinque lingue, text_fasttext è la codifica consigliata. Tuttavia, non è in grado di gestire i casi in cui la stessa frase contiene parole in più di una lingua.

    Per lingue diverse da quelle supportate da fastText, usa la codifica text_sbert.

    Se sono presenti molte stringhe di testo con valori delle proprietà più lunghe, ad esempio, di 120 token, usa il campo max_length per limitare il numero di token in ogni stringa codificata tramite "text_fasttext".

    Per informazioni, consultare Codifica fastText dei valori delle proprietà di testo in Neptune ML.

  • "text_sbert": questa codifica converte i valori delle proprietà del testo in vettori numerici utilizzando i modelli Sentence BERT (SBERT). Neptune supporta due metodi SBERT, ovvero text_sbert128, che è il metodo predefinito se si specifica solo text_sbert e text_sbert512. La differenza tra i due sta nel numero massimo di token che vengono codificati in una proprietà del testo. La codifica text_sbert128 codifica solo i primi 128 token, mentre text_sbert512 codifica fino a 512 token. Di conseguenza, l'utilizzo di text_sbert512 può richiedere tempi di elaborazione superiori rispetto a text_sbert128. Entrambi i metodi sono più lenti di text_fasttext.

    I metodi text_sbert* supportano molte lingue e possono codificare una frase che contiene più di una lingua.

    Per informazioni, consultare Codifica Sentence BERT (SBERT) delle funzionalità di testo in Neptune ML.

  • "text_word2vec": questa codifica converte i valori delle proprietà del testo in vettori numerici utilizzando gli algoritmi Word2Vec. Supporta solo la lingua inglese.

    Per informazioni, consultare Codifica Word2Vec delle funzionalità di testo in Neptune ML.

  • "text_tfidf": questa codifica converte i valori delle proprietà del testo in vettori numerici utilizzando un vettorizzatore TF-IDF (Term Frequency—Inverse Document Frequency).

    È possibile definire i parametri della codifica di una funzionalità text_tfidf utilizzando il campo ngram_range, il campo min_df e il campo max_features.

    Per informazioni, consultare Codifica TF-IDF delle funzionalità di testo in Neptune ML.

  • "none": usando il tipo none non avviene alcuna codifica delle funzionalità. I valori della proprietà non elaborati vengono invece analizzati e salvati.

    Usa none solo se intendi eseguire una codifica personalizzata delle funzionalità come parte dell'addestramento personalizzato del modello.

Campo norm

Questo campo è obbligatorio per le funzioni numeriche. Specifica un metodo di normalizzazione da utilizzare sui valori numerici:

"norm": "min-max"

Sono supportati i seguenti metodi di normalizzazione:

  • "min-max": normalizza ogni valore sottraendo da esso il valore minimo e poi dividendolo per la differenza tra il valore massimo e il valore minimo.

  • "standard": normalizza ogni valore dividendolo per la somma di tutti i valori.

  • "none": non normalizza i valori numerici durante la codifica.

Per informazioni, consultare Funzionalità numeriche in Neptune ML.

Campo language

Il campo della lingua specifica la lingua utilizzata nei valori delle proprietà del testo. Il suo utilizzo dipende dal metodo di codifica del testo:

  • Per la codifica text_fasttext questo campo è obbligatorio e deve specificare una delle seguenti lingue:

    • en   (inglese)

    • zh   (cinese)

    • hi   (hindi)

    • es   (spagnolo)

    • fr   (francese)

  • Per la codifica text_sbert questo campo non viene utilizzato, poiché la codifica SBERT è multilingue.

  • Per la codifica text_word2vec questo campo è facoltativo, poiché text_word2vec supporta solo la lingua inglese. Se presente, deve specificare il nome del modello linguistico inglese:

    "language" : "en_core_web_lg"
  • Per la codifica text_tfidf questo campo non viene utilizzato.

Campo max_length

Il campo max_length è facoltativo per le funzionalità text_fasttext, in quanto specifica il numero massimo di token in una funzionalità di testo di input che verranno codificati. Il testo di input più lungo di max_length viene troncato. Ad esempio, l'impostazione di max_length su 128 indica che tutti i token successivi al 128° in una sequenza di testo verranno ignorati:

"max_length": 128

Campo separator

Questo campo viene utilizzato facoltativamente con le funzionalità category, numerical e auto. Specifica un carattere che può essere utilizzato per suddividere il valore di una proprietà in più valori categoriali o valori numerici:

"separator": ";"

Utilizza il campo separator solo quando la proprietà archivia più valori delimitati in una singola stringa, ad esempio "Actor;Director" o "0.1;0.2".

Consulta le sezioni Funzionalità categoriali, Funzionalità numeriche e Codifica auto.

Campo range

Questo campo è obbligatorio per le funzionalità bucket_numerical. Specifica l'intervallo di valori numerici che devono essere suddivisi in bucket, nel formato: [lower-bound, upper-bound].

"range" : [20, 100]

Se il valore di una proprietà è minore del limite inferiore, viene assegnato al primo bucket o, se è maggiore del limite superiore, viene assegnato all'ultimo bucket.

Per informazioni, consultare Funzionalità numeriche per bucket in Neptune ML.

Campo bucket_cnt

Questo campo è obbligatorio per le funzionalità bucket_numerical. Specifica il numero di bucket in cui deve essere suddiviso l'intervallo numerico definito dal parametro range:

"bucket_cnt": 10

Per informazioni, consultare Funzionalità numeriche per bucket in Neptune ML.

Campo slide_window_size

Questo campo viene usato facoltativamente con le funzionalità bucket_numerical per assegnare valori a più di un bucket:

"slide_window_size": 5

Per le finestre scorrevoli, Neptune ML prende le dimensioni della finestra s e trasforma ogni valore v numerico di una proprietà in un intervallo da v - s/2 a v + s/2 . Il valore viene quindi assegnato a ogni bucket a cui si sovrappone l'intervallo.

Per informazioni, consultare Funzionalità numeriche per bucket in Neptune ML.

Campo imputer

Questo campo viene utilizzato facoltativamente con le funzionalità numerical e bucket_numerical per fornire una tecnica di imputazione per inserire i valori mancanti:

"imputer": "mean"

Le tecniche di imputazione supportate sono:

  • "mean"

  • "median"

  • "most-frequent"

Se non si include il parametro imputer, la pre-elaborazione dei dati si interrompe e termina quando viene rilevato un valore mancante.

Consultare Funzionalità numeriche in Neptune ML e Funzionalità numeriche per bucket in Neptune ML.

Campo max_features

Questo campo viene utilizzato facoltativamente dalle funzionalità text_tfidf per specificare il numero massimo di termini da codificare:

"max_features": 100

Se viene ad esempio impostato su 100, il vettorizzatore TF-IDF codificherà solo i 100 termini più comuni. Il valore predefinito, se si include max_features, è 5.000.

Per informazioni, consultare Codifica TF-IDF delle funzionalità di testo in Neptune ML.

Campo min_df

Questo campo viene utilizzato facoltativamente dalle funzionalità text_tfidf per specificare la frequenza minima nel documento dei termini da codificare:

"min_df": 5

Se viene ad esempio impostato su 5, indica che un termine deve comparire in almeno 5 valori di proprietà diversi per poter essere codificato.

Il valore predefinito, se non si include il parametro min_df è 2.

Per informazioni, consultare Codifica TF-IDF delle funzionalità di testo in Neptune ML.

Campo ngram_range

Questo campo viene utilizzato facoltativamente dalle funzionalità text_tfidf per specificare le dimensioni delle sequenze di parole o token da considerare come potenziali termini individuali da codificare:

"ngram_range": [2, 4]

Il valore [2, 4] specifica che le sequenze di 2, 3 e 4 parole devono essere considerate come potenziali termini individuali.

L'impostazione predefinita, se non si imposta ngram_range in modo esplicito è [1, 1], ovvero solo singole parole o token vengono considerati come termini da codificare.

Per informazioni, consultare Codifica TF-IDF delle funzionalità di testo in Neptune ML.

Campo datetime_parts

Questo campo viene utilizzato facoltativamente dalle funzionalità datetime per specificare quali parti del valore datetime codificare in modo categoriale:

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

Se non si include datetime_parts, per impostazione predefinita Neptune ML codifica le parti relative all'anno, al mese, al giorno della settimana e all'ora del valore datetime. Il valore ["weekday", "hour"] indica che solo i valori di data/ora del giorno della settimana e dell'ora devono essere codificati in modo categoriale nella funzionalità.

Se una delle parti non ha più di un valore univoco nel set di addestramento, non viene codificata.

Per informazioni, consultare Funzionalità datetime in Neptune ML.