Поделиться через


categoricalHash: преобразование хэша в категории в данных для Машинного обучения

Преобразование хэша в категории может выполняться в данных перед обучением модели.

Использование

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

Аргументы

vars

Вектор символов или список имен переменных для преобразования. Примененные имена представляют имена новых переменных, которые будут созданы.

hashBits

Целое число, указывающее количество битов для хэша. Должно находиться в диапазоне от 1 до 30 включительно. Значение по умолчанию — 16.

seed

Целое число, указывающее начальное значение хэширования. Значение по умолчанию — 314489979.

ordered

TRUE для включения позиции каждого термина в хэш. В противном случае — значение FALSE. Значение по умолчанию — TRUE.

invertHash

Целое число, задающее ограничение на количество ключей, которые могут быть использованы для создания имени слота. Значение 0 означает отсутствие инверсии хэширования, а значение -1 — отсутствие ограничения. Хотя нулевое значение обеспечивает лучшую производительность, для получения осмысленных названий коэффициентов необходимо указать ненулевое значение. Значение по умолчанию — 0.

outputKind

Символьная строка, указывающая тип выходных данных.

  • "ind": выводит вектор индикаторов. Входной столбец является вектором категорий, а выходные данные содержат один вектор индикаторов для каждого слота во входном столбце.
  • "bag": выводит вектор с несколькими множествами. Если входной столбец является вектором категорий, то выходные данные содержат один вектор, в котором значение в каждом слоте равно количеству вхождений категории во входном векторе. Если входной столбец содержит одну категорию, то вектор индикаторов и вектор контейнеров эквивалентны
  • "key": выводит индекс. Выходным значением является целочисленный идентификатор категории (в диапазоне от 1 до числа категорий в словаре).
    Значение по умолчанию — "Bag".

...

Дополнительные аргументы, отправляемые в подсистему вычислений.

Сведения

categoricalHash преобразует значение категории в массив индикаторов путем хэширования значения и использования хэша в качестве индекса в контейнере. Если входной столбец является вектором, для него возвращается один контейнер индикатора.

categoricalHash сейчас не поддерживает хэширование данных факторов.

Значение

Объект maml, определяющий преобразование.

Авторы

Корпорация Майкрософт Microsoft Technical Support

См. также

rxFastTrees, rxFastForest, rxNeuralNet, rxOneClassSvm, rxLogisticRegression.

Примеры


 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