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


rxOneClassSvm: OneClass SVM

Машинное обучение одного класса поддерживает векторные компьютеры

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

  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

Ссылки

Anomaly detection

Azure Machine Learning Studio (classic): One-Class Support Vector Machine

Support of a High-Dimensional Distribution

Support Vector Algorithms

for Support Vector Machines

См. также

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)