Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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ésentegammadans le termeexp(-gamma|x-y|^2. S’il n’est pas spécifié, il est1divisé 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 nomsade paramètres ,biasetdegdans le terme(a*<x,y> + bias)^deg. Labiasvaleur par défaut0est . Degré,degvaleur par défaut3. S’ilan’est pas spécifié, il est défini sur1divisé par le nombre de fonctionnalités. Par exemple :maKernelPoynomial(bias = 0, deg = `` 3). -
sigmoidKernel(): noyau sigmoid avec des nomsgammade paramètres etcoef0dans le termetanh(gamma*<x,y> + coef0).gamma, la valeur par défaut est1divisée par le nombre de fonctionnalités. Le paramètrecoef0est défini par défaut sur0. 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, unMaxMinnormaliseur est utilisé. Il normalise les valeurs dans un intervalle [a, b] où-1 <= a <= 0et0 <= 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
Azure Machine Learning Studio (classic): One-Class Support Vector Machine
Support of a High-Dimensional Distribution
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)