Condividi tramite


categoricalHash: trasformazione HashData categorica di Machine Learning

Trasformazione hash categorica che può essere eseguita sui dati prima di eseguire il training di un modello.

Utilizzo

  categoricalHash(vars, hashBits = 16, seed = 314489979, ordered = TRUE,
    invertHash = 0, outputKind = "Bag", ...)

Arguments

vars

Vettore di caratteri o elenco di nomi di variabili da trasformare. Se è denominato, i nomi rappresentano i nomi delle nuove variabili da creare.

hashBits

Numero intero che specifica il numero di bit in cui eseguire l'hash. Deve essere compreso tra 1 e 30 inclusi. Il valore predefinito è 16.

seed

Numero intero che specifica il seeding dell'hashing. Il valore predefinito è 314489979.

ordered

TRUE per includere la posizione di ogni termine nell'hash. In caso contrario, FALSE. Il valore predefinito è TRUE.

invertHash

Numero intero che specifica il limite per il numero di chiavi che è possibile usare per generare il nome dello slot. 0 significa che non viene invertito l'hashing. -1 significa che non è previsto alcun limite. Mentre un valore pari a zero offre prestazioni migliori, è necessario un valore diverso da zero per ottenere nomi di coefficiente significativi. Il valore predefinito è 0.

outputKind

Stringa di caratteri che specifica il tipo di output.

  • "ind": restituisce un vettore indicatore. La colonna di input è un vettore di categorie e l'output contiene un vettore indicatore per ogni slot nella colonna di input.
  • "bag": restituisce un vettore multi-set. Se la colonna di input è un vettore di categorie, l'output contiene un vettore, dove il valore in ogni slot è il numero di occorrenze della categoria nel vettore di input. Se la colonna di input contiene una singola categoria, il vettore indicatore e il vettore contenitore sono equivalenti
  • "key": restituisce un indice. L'output è un ID intero della categoria, compreso tra 1 e il numero di categorie nel dizionario.
    Il valore predefinito è "Bag".

...

Argomenti aggiuntivi inviati al motore di calcolo.

Dettagli

categoricalHash converte un valore categorico in una matrice indicatore eseguendo l'hashing dei valori e usando l'hash come indice nel contenitore. Se la colonna di input è un vettore, viene restituito un singolo contenitore di indicatori.

categoricalHash non supporta attualmente la gestione dei dati dei fattori.

Valore

Oggetto maml che definisce la trasformazione.

Autore/i

Microsoft Corporation Microsoft Technical Support

Vedi anche

rxFastTrees, rxFastForest, rxNeuralNet, rxOneClassSvm, rxLogisticRegression.

Esempi


 trainReviews <- data.frame(review = c( 
         "This is great",
         "I hate it",
         "Love it",
         "Do not like it",
         "Really like it",
         "I hate it",
         "I like it a lot",
         "I kind of hate it",
         "I do like it",
         "I really hate it",
         "It is very good",
         "I hate it a bunch",
         "I love it a bunch",
         "I hate it",
         "I like it very much",
         "I hate it very much.",
         "I really do love it",
         "I really do hate it",
         "Love it!",
         "Hate it!",
         "I love it",
         "I hate it",
         "I love it",
         "I hate it",
         "I love it"),
      like = c(TRUE, FALSE, TRUE, FALSE, TRUE,
         FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE,
         FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, 
         FALSE, TRUE, FALSE, TRUE), stringsAsFactors = FALSE
     )

     testReviews <- data.frame(review = c(
         "This is great",
         "I hate it",
         "Love it",
         "Really like it",
         "I hate it",
         "I like it a lot",
         "I love it",
         "I do like it",
         "I really hate it",
         "I love it"), stringsAsFactors = FALSE)


 # Use a categorical hash transform
 outModel2 <- rxLogisticRegression(like~reviewCatHash, data = trainReviews, 
     mlTransforms = list(categoricalHash(vars = c(reviewCatHash = "review"))))
 # Weights are similar to categorical
 summary(outModel2)

 # Use the model to score
 scoreOutDF2 <- rxPredict(outModel2, data = testReviews, 
     extraVarsToWrite = "review")
 scoreOutDF2