Compartir a través de


categoricalHash: transformación de HashData de categoría de Machine Learning

Transformación de hash de categoría que se puede realizar en los datos antes de entrenar un modelo.

Uso

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

Argumentos

vars

Vector de caracteres o lista de nombres de variables que se transformarán. Si tiene nombre, los nombres representan los nombres de las nuevas variables que se crearán.

hashBits

Entero que especifica el número de bits en los que se aplica un código hash. Debe estar entre 1 y 30, ambos inclusive. El valor predeterminado es 16.

seed

Entero que especifica la inicialización de hash. El valor predeterminado es 314489979.

ordered

TRUE para incluir la posición de cada término en el hash. En caso contrario, es FALSE. El valor predeterminado es TRUE.

invertHash

Entero que especifica el límite en el número de claves que se pueden usar para generar el nombre de la ranura. 0 significa que no se invierte el hash, -1 que no hay límite. Aunque un valor cero proporciona un mejor rendimiento, se necesita un valor distinto de cero para obtener nombres de coeficiente significativos. El valor predeterminado es 0.

outputKind

Cadena de caracteres que especifica el tipo de salida.

  • "ind": genera un vector de indicador. La columna de entrada es un vector de categorías y la salida contiene un vector de indicador por cada ranura en la columna de entrada.
  • "bag": genera un vector de conjunto múltiple. Si la columna de entrada es un vector de categorías, la salida contiene un vector, donde el valor de cada ranura es el número de apariciones de la categoría en el vector de entrada. Si la columna de entrada contiene una sola categoría, el vector de indicador y el vector de bolsa son equivalentes
  • "key": genera un índice. La salida es un identificador entero (entre 1 y el número de categorías del diccionario) de la categoría.
    El valor predeterminado es "Bag".

...

Argumentos adicionales que se envían al motor de proceso.

Detalles

categoricalHash convierte un valor de categoría en una matriz indicadora al crear un hash a partir del valor y usarlo como un índice en la bolsa. Si la columna de entrada es un vector, se le devuelve una única bolsa de indicadores.

Actualmente, categoricalHash no admite el control de datos de factor.

Value

un objeto maml que define la transformación.

Autor(es)

Microsoft Corporation Microsoft Technical Support

Consulte también

rxFastTrees, rxFastForest, rxNeuralNet, rxOneClassSvm, rxLogisticRegression.

Ejemplos


 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