Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Машинное обучение одного класса поддерживает векторные компьютеры
Использование
rxOneClassSvm(formula = NULL, data, cacheSize = 100, kernel = rbfKernel(),
epsilon = 0.001, nu = 0.1, shrink = TRUE, normalize = "auto",
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 = 1,
computeContext = rxGetOption("computeContext"),
ensemble = ensembleControl(), ...)
Аргументы
formula
Формула, как описано в rxFormula. Термины взаимодействия и F() в настоящее время не поддерживаются в MicrosoftML.
data
Объект источника данных или символьная строка, указывающая XDF-файл или объект кадра данных.
cacheSize
Максимальный размер в МБ кэша, в который хранятся данные обучения. Увеличьте это для больших наборов обучения. Значение по умолчанию — 100 МБ.
kernel
Символьная строка, представляющая ядро, используемое для вычислений внутренних продуктов. Дополнительные сведения см. в статье maKernel. Доступны следующие варианты:
-
rbfKernel(): радиальное ядро функции. Его параметр представляетсяgammaв терминеexp(-gamma|x-y|^2. Если он не указан, по умолчанию он делится1на количество используемых функций. Например:rbfKernel(gamma = .1). Это значение по умолчанию. -
linearKernel(): линейное ядро. -
polynomialKernel(): многономиальное ядро с именамиaпараметров,biasа такжеdegв термине(a*<x,y> + bias)^deg. Значениеbiasпо умолчанию0. Степень,degзначение по умолчанию3. Еслиaзначение не указано, оно делится1на количество функций. Например:maKernelPoynomial(bias = 0, deg = `` 3). -
sigmoidKernel(): Сигмоидное ядро с именамиgammaпараметров иcoef0в терминеtanh(gamma*<x,y> + coef0).gammaзначение по умолчанию, разделенное1на количество функций.coef0Параметр по умолчанию0. Например:sigmoidKernel(gamma = .1, coef0 = 0).
epsilon
Пороговое значение для конвергенции оптимизатора. Если улучшение между итерациями меньше, чем пороговое значение, алгоритм прекращает работу и возвращает текущую модель. Значение должно быть больше или равно .Machine$double.eps. Значение по умолчанию — 0.001.
nu
Компромисс между долями выскользов и числом векторов поддержки (представлено греческой буквой nu). Должно быть от 0 до 1, обычно от 0,1 до 0,5. Значение по умолчанию — 0,1.
shrink
Использует эвристические методы сжатия, если TRUE. В этом случае некоторые примеры будут "сократиться" во время процедуры обучения, что может ускорить обучение. Значение по умолчанию — TRUE.
normalize
Указывает тип используемой автоматической нормализации:
-
"auto": если требуется нормализация, она выполняется автоматически. Это выбор по умолчанию. -
"no": нормализация не выполняется. -
"yes": выполняется нормализация. -
"warn": если требуется нормализация, отображается предупреждение, но нормализация не выполняется.
Нормализация перемасштабирует разнородные диапазоны данных до стандартного масштаба. Масштабирование функций обеспечивает пропорциональность расстояний между точками данных и позволяет различным методам оптимизации, таким как градиентный спуск, быстрее сходиться. Если нормализация выполняется,MaxMinиспользуется нормализатор. Он нормализует значения в интервале [a, b] где-1 <= a <= 0и0 <= b <= 1b - a = 1. Этот нормализатор сохраняет разреженность, сопоставляя ноль с нулем.
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
Именованный список, содержащий объекты, на которые можно ссылаться, transformstransformsFuncи 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.
...
Дополнительные аргументы, передаваемые непосредственно в подсистему вычислений Майкрософт.
Сведения
обнаружение заключается в выявлении выпадающих, которые не относятся к определенному целевому классу. Этот тип SVM является одним классом, так как обучающий набор содержит только примеры из целевого класса. Он определяет, какие свойства являются нормальными для объектов в целевом классе и из этих свойств предсказывает, какие примеры не являются обычными примерами. Это полезно для обнаружения аномалий, так как нехватка примеров обучения является определяющим характером аномалий: как правило, существует очень мало примеров сетевого вторжения, мошенничества или других типов аномального поведения.
Ценность
rxOneClassSvm
rxOneClassSvm: объект с обученной моделью.
OneClassSvm: объект спецификации учащегося класса maml для тренера OneClass Svm.
Примечания.
Этот алгоритм является однопоточным и всегда пытается загрузить весь набор данных в память.
Авторы
Корпорация Майкрософт Microsoft Technical Support
Ссылки
Azure Machine Learning Studio (classic): One-Class Support Vector Machine
Support of a High-Dimensional Distribution
См. также
rbfKernel, linearKernel, polynomialKernel, sigmoidKernelrxFastTrees, rxFastForest, rxFastLinear, rxLogisticRegression, rxNeuralNet, featuresizeText, категориальныеHash, rxPredict.mlModel.
Примеры
# Estimate a One-Class SVM model
trainRows <- c(1:30, 51:80, 101:130)
testRows = !(1:150 %in% trainRows)
trainIris <- iris[trainRows,]
testIris <- iris[testRows,]
svmModel <- rxOneClassSvm(
formula = ~Sepal.Length + Sepal.Width + Petal.Length + Petal.Width,
data = trainIris)
# Add additional non-iris data to the test data set
testIris$isIris <- 1
notIris <- data.frame(
Sepal.Length = c(2.5, 2.6),
Sepal.Width = c(.75, .9),
Petal.Length = c(2.5, 2.5),
Petal.Width = c(.8, .7),
Species = c("not iris", "not iris"),
isIris = 0)
testIris <- rbind(testIris, notIris)
scoreDF <- rxPredict(svmModel,
data = testIris, extraVarsToWrite = "isIris")
# Look at the last few observations
tail(scoreDF)
# Look at average scores conditioned by 'isIris'
rxCube(Score ~ F(isIris), data = scoreDF)