Partager via


rxOneClassSvm : OneClass SVM

Machine Learning One Class Support Vector Machines

Utilisation

  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(), ...)

Les arguments

formula

Formule comme décrit dans rxFormula. Termes d’interaction et F() ne sont actuellement pas pris en charge dans MicrosoftML.

data

Objet source de données ou chaîne de caractères spécifiant un fichier .xdf ou un objet de trame de données.

cacheSize

Taille maximale en Mo du cache qui stocke les données d’entraînement. Augmentez cette valeur pour les jeux d’entraînement volumineux. La valeur par défaut est 100 Mo.

kernel

Chaîne de caractères représentant le noyau utilisé pour l’informatique des produits internes. Pour plus d’informations, consultez maKernel. Les choix suivants sont disponibles :

  • rbfKernel(): noyau de fonction de base radiale. Son paramètre représente gamma dans le terme exp(-gamma|x-y|^2. S’il n’est pas spécifié, il est 1 divisé par défaut par le nombre de fonctionnalités utilisées. Par exemple : rbfKernel(gamma = .1). Il s’agit de la valeur par défaut.
  • linearKernel(): noyau linéaire.
  • polynomialKernel(): noyau polynomial avec des noms ade paramètres , biaset deg dans le terme (a*<x,y> + bias)^deg. La biasvaleur par défaut 0est . Degré, degvaleur par défaut 3. S’il a n’est pas spécifié, il est défini sur 1 divisé par le nombre de fonctionnalités. Par exemple : maKernelPoynomial(bias = 0, deg = `` 3).
  • sigmoidKernel(): noyau sigmoid avec des noms gamma de paramètres et coef0 dans le terme tanh(gamma*<x,y> + coef0). gamma, la valeur par défaut est 1 divisée par le nombre de fonctionnalités. Le paramètre coef0 est défini par défaut sur 0. Par exemple : sigmoidKernel(gamma = .1, coef0 = 0).

epsilon

Seuil de convergence de l’optimiseur. Si l’amélioration entre les itérations est inférieure à ce seuil, l’algorithme s’arrête et renvoie le modèle actuel. La valeur doit être supérieure ou égale à .Machine$double.eps. La valeur par défaut est 0.001.

nu

Compromis entre la fraction de valeurs hors norme et le nombre de vecteurs de support (représentés par la lettre grecque nu). Doit être compris entre 0 et 1, généralement entre 0,1 et 0,5. La valeur par défaut est 0,1.

shrink

Utilise l’heuristique de réduction si TRUE. Dans ce cas, certains exemples seront « réduits » pendant la procédure d’entraînement, ce qui peut accélérer l’entraînement. La valeur par défaut est TRUE.

normalize

Spécifie le type de normalisation automatique utilisé :

  • "auto": si la normalisation est nécessaire, elle est effectuée automatiquement. Il s’agit du choix par défaut.
  • "no": aucune normalisation n’est effectuée.
  • "yes": la normalisation est effectuée.
  • "warn": si la normalisation est nécessaire, un message d’avertissement s’affiche, mais la normalisation n’est pas effectuée.
    La normalisation met à l’échelle des plages de données disparates à une échelle standard. La mise à l’échelle des caractéristiques garantit que les distances entre les points de données sont proportionnelles et permet à diverses méthodes d’optimisation telles que la descente de dégradé de converger beaucoup plus rapidement. Si la normalisation est effectuée, un MaxMin normaliseur est utilisé. Il normalise les valeurs dans un intervalle [a, b] où -1 <= a <= 0et 0 <= b <= 1b - a = 1. Ce normaliseur conserve l’éparse en mappant zéro à zéro.

mlTransforms

Spécifie une liste des transformations MicrosoftML à effectuer sur les données avant l’entraînement ou NULL si aucune transformation n’est à effectuer. Pour connaître les transformations prises en charge, consultez featurizeText, catégorielles et catégoriellesHash. Ces transformations sont effectuées après les transformations R spécifiées. La valeur par défaut est NULL.

mlTransformVars

Spécifie un vecteur de caractères de noms de variables à utiliser mlTransforms ou NULL s’il ne doit pas être utilisé. La valeur par défaut est NULL.

rowSelection

Spécifie les lignes (observations) du jeu de données à utiliser par le modèle avec le nom d’une variable logique à partir du jeu de données (entre guillemets) ou avec une expression logique à l’aide de variables dans le jeu de données. Par exemple, rowSelection = "old" utilise uniquement les observations dans lesquelles la valeur de la variable old est TRUE. rowSelection = (age > 20) & (age < 65) & (log(income) > 10) utilise uniquement les observations dans lesquelles la valeur de la age variable est comprise entre 20 et 65 et la valeur de la logincome variable est supérieure à 10. La sélection de lignes est effectuée après le traitement des transformations de données (voir les arguments transforms ou transformFunc). Comme avec toutes les expressions, rowSelection peut être définie en dehors de l’appel de fonction à l’aide de la fonction d’expression.

transforms

Expression du formulaire list(name = expression, ``...) qui représente la première série de transformations de variables. Comme avec toutes les expressions, transforms (ou rowSelection) peut être défini en dehors de l’appel de fonction à l’aide de la fonction d’expression.

transformObjects

Liste nommée qui contient des objets qui peuvent être référencés par transforms, transformsFuncet rowSelection.

transformFunc

Fonction de transformation de variable. Pour plus d’informations, consultez rxTransform.

transformVars

Vecteur de caractères des variables de jeu de données d’entrée nécessaires pour la fonction de transformation. Pour plus d’informations, consultez rxTransform.

transformPackages

Vecteur de caractères spécifiant des packages R supplémentaires (en dehors de ceux spécifiés dans rxGetOption("transformPackages")) à rendre disponibles et préchargés pour une utilisation dans les fonctions de transformation de variable. Par exemple, celles définies explicitement dans les fonctions RevoScaleR via leurs arguments et transforms leurs transformFunc arguments ou implicitement via leurs arguments ou formula leurs rowSelection arguments. L’argument transformPackages peut également être NULL, indiquant qu’aucun package en dehors rxGetOption("transformPackages") n’est préchargé.

transformEnvir

Environnement défini par l’utilisateur pour servir de parent à tous les environnements développés en interne et utilisés pour la transformation des données variables. Si transformEnvir = NULL, un nouvel environnement de « hachage » avec parent baseenv() est utilisé à la place.

blocksPerRead

Spécifie le nombre de blocs à lire pour chaque bloc de données lu à partir de la source de données.

reportProgress

Valeur entière qui spécifie le niveau de création de rapports sur la progression du traitement des lignes :

  • 0: aucune progression n’est signalée.
  • 1: le nombre de lignes traitées est imprimé et mis à jour.
  • 2: les lignes traitées et le minutage sont signalés.
  • 3: lignes traitées et toutes les minutages sont signalées.

verbose

Valeur entière qui spécifie la quantité de sortie souhaitée. Si 0, aucune sortie détaillée n’est imprimée pendant les calculs. Valeurs entières allant de 1 à 4 fournir des quantités croissantes d’informations.

computeContext

Définit le contexte dans lequel les calculs sont exécutés, spécifiés avec un RxComputeContext valide. Actuellement, les contextes de calcul locaux et RxInSqlServer sont pris en charge.

ensemble

Paramètres de contrôle pour l’ensembling.

...

Arguments supplémentaires à passer directement au moteur de calcul Microsoft.

Détails

la détection consiste à identifier les valeurs hors norme qui n’appartiennent pas à une classe cible. Ce type de machine virtuelle SVM est une classe, car le jeu d’entraînement contient uniquement des exemples de la classe cible. Il déduit quelles propriétés sont normales pour les objets de la classe cible et à partir de ces propriétés prédit quels exemples sont contrairement aux exemples normaux. Cela est utile pour la détection d’anomalies, car la rareté des exemples d’apprentissage est le caractère définissant des anomalies : en général, il existe très peu d’exemples d’intrusion, de fraude ou d’autres types de comportement anormal.

Valeur

rxOneClassSvm: objet rxOneClassSvm avec le modèle entraîné.

OneClassSvm: objet de spécification d’apprenant de classe maml pour le formateur OneClass Svm.

Remarques

Cet algorithme est monothread et tente toujours de charger l’ensemble du jeu de données en mémoire.

Auteur(s)

Microsoft Corporation Microsoft Technical Support

références

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

Voir aussi

rbfKernel, linearKernel, polynomialKernel, sigmoidKernelrxFastTrees, rxFastForest, rxFastLinear, rxLogisticRegression, rxNeuralNet, featurizeText, categorical, categoricalHash, rxPredict.mlModel.

Exemples


 # 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)