Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Быстрый лес машинного обучения
Использование
rxFastForest(formula = NULL, data, type = c("binary", "regression"),
numTrees = 100, numLeaves = 20, minSplit = 10, exampleFraction = 0.7,
featureFraction = 0.7, splitFraction = 0.7, numBins = 255,
firstUsePenalty = 0, gainConfLevel = 0, trainThreads = 8,
randomSeed = NULL, mlTransforms = NULL, mlTransformVars = NULL,
rowSelection = NULL, transforms = NULL, transformObjects = NULL,
transformFunc = NULL, transformVars = NULL, transformPackages = NULL,
transformEnvir = NULL, blocksPerRead = rxGetOption("blocksPerRead"),
reportProgress = rxGetOption("reportProgress"), verbose = 2,
computeContext = rxGetOption("computeContext"),
ensemble = ensembleControl(), ...)
Аргументы
formula
Формула, как описано в rxFormula. Термины взаимодействия и F()
в настоящее время не поддерживаются в MicrosoftML.
data
Объект источника данных или символьная строка, указывающая XDF-файл или объект кадра данных.
type
Символьная строка, обозначающая тип быстрого дерева:
-
"binary"
для двоичной классификации быстрого дерева по умолчанию или -
"regression"
для быстрой регрессии дерева.
numTrees
Указывает общее количество деревьев принятия решений для создания в ансамбле. Создавая больше деревьев принятия решений, вы можете получить лучшее покрытие, но время обучения увеличивается. Значение по умолчанию — 100.
numLeaves
Максимальное количество листьев (узлов терминала), которые можно создать в любом дереве. Более высокие значения потенциально увеличивают размер дерева и получают лучшую точность, но рискуют перенаправляться и требовать больше времени обучения. Значение по умолчанию — 20.
minSplit
Минимальное количество экземпляров обучения, необходимых для формирования конечной части. То есть минимальное количество документов, разрешенных в листе дерева регрессии, из вложенных данных. Разделение означает, что функции на каждом уровне дерева (узла) делятся случайным образом. Значение по умолчанию — 10.
exampleFraction
Доля случайных выбранных экземпляров, используемых для каждого дерева. Значение по умолчанию — 0,7.
featureFraction
Доля случайных выбранных признаков, используемых для каждого дерева. Значение по умолчанию — 0,7.
splitFraction
Доля случайных выбранных функций для каждого разделения. Значение по умолчанию — 0,7.
numBins
Максимальное количество отдельных значений (bins) для каждой функции. Значение по умолчанию — 255.
firstUsePenalty
Функция сначала использует коэффициент штрафа. Значение по умолчанию — 0.
gainConfLevel
Требование достоверности при установке дерева (должно находиться в диапазоне [0,1)). Значение по умолчанию — 0.
trainThreads
Количество потоков, используемых в обучении. Если NULL
задано, количество используемых потоков определяется внутренне. Значение по умолчанию — NULL
.
randomSeed
Указывает случайное начальное значение. Значение по умолчанию — NULL
.
mlTransforms
Указывает список преобразований MicrosoftML, которые необходимо выполнить для данных перед обучением или NULL
если преобразования не выполняются. Сведения о поддерживаемых преобразованиях см. в описании признаковtext, категориальных и категориальныхHash. Эти преобразования выполняются после любых указанных преобразований R. Значение по умолчанию — NULL
.
mlTransformVars
Указывает вектор символов имен переменных, используемых mlTransforms
или NULL
если они не используются. Значение по умолчанию — NULL
.
rowSelection
Указывает строки (наблюдения) из набора данных, которые должны использоваться моделью с именем логической переменной из набора данных (в кавычках) или логическим выражением с помощью переменных в наборе данных. Например, будут использоваться только наблюдения, rowSelection = "old"
в которых значение переменной old
равно TRUE
.
rowSelection = (age > 20) & (age < 65) & (log(income) > 10)
Использует только наблюдения, в которых значение age
переменной составляет от 20 до 65, а значение log
переменной income
больше 10. Выбор строки выполняется после обработки любых преобразований данных (см. аргументы transforms
или transformFunc
). Как и во всех выражениях, rowSelection
можно определить вне вызова функции с помощью функции.
transforms
Выражение формы list(name = expression, ``...)
, представляющей первый раунд преобразований переменных. Как и во всех выражениях, transforms
(или rowSelection
) можно определить вне вызова функции с помощью функции.
transformObjects
Именованный список, содержащий объекты, на которые можно ссылаться, transforms
transformsFunc
и rowSelection
.
transformFunc
Функция преобразования переменной. Дополнительные сведения см. в разделе rxTransform.
transformVars
Символьный вектор входных переменных набора данных, необходимых для функции преобразования. Дополнительные сведения см. в разделе rxTransform.
transformPackages
Вектор символов, указывающий дополнительные пакеты R (за пределами указанных в rxGetOption("transformPackages")
) для обеспечения доступности и предварительной загрузки для использования в функциях преобразования переменных. Например, те, которые явно определены в функциях RevoScaleR через их transforms
и transformFunc
аргументы или те, которые определены неявно через их formula
или rowSelection
аргументы. Аргумент transformPackages
может быть NULL
также указан, указывая, что пакеты за пределами rxGetOption("transformPackages")
предварительно загружены.
transformEnvir
Определяемая пользователем среда, которая служит родительской средой для всех сред, разработанных внутренне и используется для преобразования данных переменных. Если transformEnvir = NULL
вместо этого используется новая хэш-среда с родительским элементом baseenv()
.
blocksPerRead
Указывает количество блоков для чтения для каждого блока данных, считываемого из источника данных.
reportProgress
Целочисленное значение, указывающее уровень отчетов о ходе обработки строк:
-
0
: не сообщается о ходе выполнения. -
1
: количество обработанных строк печатается и обновляется. -
2
: отображаются строки, обрабатываемые и сроки. -
3
: обрабатываются строки и сообщаются все сроки.
verbose
Целочисленное значение, указывающее количество нужных выходных данных. Если 0
подробные выходные данные не печатаются во время вычислений. Целые значения от 1
того, чтобы 4
обеспечить увеличение объема информации.
computeContext
Задает контекст, в котором выполняются вычисления, указанные с допустимым RxComputeContext. В настоящее время поддерживаются локальные и вычислительные контексты RxInSqlServer.
ensemble
Управление параметрами для ensembling.
...
Дополнительные аргументы, передаваемые непосредственно в подсистему вычислений Майкрософт.
Сведения
Деревья принятия решений — это непараметрические модели, которые выполняют последовательность
простые тесты для входных данных. Эта процедура принятия решений сопоставляет их с выходными данными, найденными в обучаемом наборе данных, входные данные которых были похожи на обрабатываемый экземпляр. Решение принимается на каждом узле структуры данных двоичного дерева на основе меры сходства, которая сопоставляет каждый экземпляр рекурсивно по ветвям дерева до достижения соответствующего конечного узла и возвращаемого выходного решения.
Деревья принятия решений имеют несколько преимуществ:
Они эффективны как в вычислениях, так и в памяти во время обучения и прогнозирования.
Они могут представлять нелинейные границы принятия решений.
Они выполняют интегрированный выбор компонентов и классификацию.
Они устойчивы в присутствии шумных признаков.
Быстрая регрессия леса — это случайный лес и реализация леса квантилейной регрессии с помощью обучающегося дерева регрессии в rxFastTrees. Модель состоит из ансамбля деревьев принятия решений. Каждое дерево в лесу принятия решений выводит распределение Gaussian путем прогнозирования. По совокупностям деревьев выполняется агрегирование с целью найти распределение по Гауссу, ближайшее к объединенному распределению для всех деревьев модели.
Этот классификатор леса принятия решений состоит из ансамбля деревьев принятия решений. Как правило, модели ансамбля обеспечивают лучшее покрытие и точность, чем одно дерево принятия решений. Каждое дерево в лесу принятия решений выводит распределение Gaussian путем прогнозирования. По совокупностям деревьев выполняется агрегирование с целью найти распределение по Гауссу, ближайшее к объединенному распределению для всех деревьев модели.
Ценность
rxFastForest
rxFastForest
: объект с обученной моделью.
FastForest
: объект спецификации учащегося класса maml
для тренера Fast Forest.
Примечания.
Этот алгоритм является многопотокным и всегда пытается загрузить весь набор данных в память.
Авторы
Корпорация Майкрософт Microsoft Technical Support
Ссылки
From Stumps to Trees to Forests
См. также
rxFastTrees, rxFastLinear, rxLogisticRegression, rxNeuralNet, rxOneClassSvm, featuresizeText, категориальный, категориальныйHash, rxPredict.mlModel.
Примеры
# Estimate a binary classification forest
infert1 <- infert
infert1$isCase = (infert1$case == 1)
forestModel <- rxFastForest(formula = isCase ~ age + parity + education + spontaneous + induced,
data = infert1)
# Create text file with per-instance results using rxPredict
txtOutFile <- tempfile(pattern = "scoreOut", fileext = ".txt")
txtOutDS <- RxTextData(file = txtOutFile)
scoreDS <- rxPredict(forestModel, data = infert1,
extraVarsToWrite = c("isCase", "Score"), outData = txtOutDS)
# Print the fist ten rows
rxDataStep(scoreDS, numRows = 10)
# Clean-up
file.remove(txtOutFile)
######################################################################
# Estimate a regression fast forest
# Use the built-in data set 'airquality' to create test and train data
DF <- airquality[!is.na(airquality$Ozone), ]
DF$Ozone <- as.numeric(DF$Ozone)
randomSplit <- rnorm(nrow(DF))
trainAir <- DF[randomSplit >= 0,]
testAir <- DF[randomSplit < 0,]
airFormula <- Ozone ~ Solar.R + Wind + Temp
# Regression Fast Forest for train data
rxFastForestReg <- rxFastForest(airFormula, type = "regression",
data = trainAir)
# Put score and model variables in data frame
rxFastForestScoreDF <- rxPredict(rxFastForestReg, data = testAir,
writeModelVars = TRUE)
# Plot actual versus predicted values with smoothed line
rxLinePlot(Score ~ Ozone, type = c("p", "smooth"), data = rxFastForestScoreDF)