rxOneClassSvm: OneClass SVM
Mesin Vektor Dukungan Machine Learning One Class
Penggunaan
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(), ...)
Argumen
formula
Rumus seperti yang dijelaskan dalam rxFormula. Istilah interaksi dan F()
saat ini tidak didukung di MicrosoftML.
data
Objek sumber data atau string karakter yang menentukan file .xdf atau objek bingkai data.
cacheSize
Ukuran maksimal dalam MB cache yang menyimpan data pelatihan. Tingkatkan ini untuk set pelatihan besar. Nilai defaultnya adalah 100 MB.
kernel
String karakter yang mewakili kernel yang digunakan untuk menghitung produk dalam. Untuk informasi selengkapnya, lihat maKernel. Pilihan berikut tersedia:
rbfKernel()
: Kernel fungsi dasar radial. Parameternya mewakiligamma
dalam istilahexp(-gamma|x-y|^2
. Jika tidak ditentukan, defaultnya1
dibagi dengan jumlah fitur yang digunakan. Contohnya,rbfKernel(gamma = .1)
. Ini adalah nilai default.linearKernel()
: Kernel linier.polynomialKernel()
: Kernel polinomial dengan namaa
parameter , ,bias
dandeg
dalam istilah(a*<x,y> + bias)^deg
.bias
, default ke0
. Derajat,deg
, default ke3
. Jikaa
tidak ditentukan, itu diatur untuk1
dibagi dengan jumlah fitur. Contohnya,maKernelPoynomial(bias = 0, deg = `` 3)
.sigmoidKernel()
: Kernel Sigmoid dengan namagamma
parameter dancoef0
dalam istilahtanh(gamma*<x,y> + coef0)
.gamma
, default untuk1
dibagi dengan jumlah fitur. Parametercoef0
default ke0
. Contohnya,sigmoidKernel(gamma = .1, coef0 = 0)
.
epsilon
Ambang batas untuk konvergensi pengoptimal. Jika perbaikan antara perulangan kurang dari ambang batas, algoritma akan berhenti dan mengembalikan model saat ini. Nilai harus lebih besar dari atau sama dengan .Machine$double.eps
. Nilai defaultnya adalah 0,001.
nu
Trade-off antara pecahan outlier dan jumlah vektor dukungan (diwakili oleh huruf Yunani nu). Harus antara 0 dan 1, biasanya antara 0,1 dan 0,5. Nilai defaultnya adalah 0,1.
shrink
Menggunakan heuristik penyusutan jika TRUE
. Dalam hal ini, beberapa sampel akan "menyusut" selama prosedur pelatihan, yang dapat mempercepat pelatihan. Nilai defaultnya adalah TRUE
.
normalize
Menentukan jenis normalisasi otomatis yang digunakan:
"auto"
: jika normalisasi diperlukan, itu dilakukan secara otomatis. Ini adalah pilihan default."no"
: tidak ada normalisasi yang dilakukan."yes"
: normalisasi dilakukan."warn"
: jika normalisasi diperlukan, pesan peringatan ditampilkan, tetapi normalisasi tidak dilakukan.
Normalisasi menskalakan ulang rentang data yang berbeda dengan skala standar. Penskalaan fitur memastikan jarak antara titik data proporsional dan memungkinkan berbagai metode pengoptimalan seperti penurunan gradien untuk berkonversi jauh lebih cepat. Jika normalisasi dilakukan,MaxMin
normalizer akan digunakan. Ini menormalkan nilai dalam interval [a, b] di mana-1 <= a <= 0
danb - a = 1
0 <= b <= 1
. Normalizer ini mempertahankan sparsitas dengan memetakan nol ke nol.
mlTransforms
Menentukan daftar transformasi MicrosoftML yang akan dilakukan pada data sebelum pelatihan atau NULL
jika tidak ada transformasi yang harus dilakukan. Lihat featurizeText, categorical, dan categoricalHash, untuk transformasi yang didukung. Transformasi ini dilakukan setelah transformasi R yang ditentukan. Nilai defaultnya adalah NULL
.
mlTransformVars
Menentukan vektor karakter nama variabel yang akan digunakan di mlTransforms
atau NULL
jika tidak ada yang akan digunakan. Nilai defaultnya adalah NULL
.
rowSelection
Menentukan baris (pengamatan) dari himpunan data yang akan digunakan oleh model dengan nama variabel logis dari himpunan data (dalam tanda kutip) atau dengan ekspresi logis menggunakan variabel dalam himpunan data. Misalnya, rowSelection = "old"
hanya akan menggunakan pengamatan di mana nilai variabel old
adalah TRUE
. rowSelection = (age > 20) & (age < 65) & (log(income) > 10)
hanya menggunakan pengamatan di mana nilai age
variabel adalah antara 20 dan 65 dan nilai log
income
variabel lebih besar dari 10. Pemilihan baris dilakukan setelah memproses transformasi data apa pun (lihat argumen transforms
atau transformFunc
). Seperti semua ekspresi, rowSelection
dapat didefinisikan di luar panggilan fungsi menggunakan fungsi ekspresi.
transforms
Ekspresi formulir list(name = expression, ``...)
yang mewakili putaran pertama transformasi variabel. Seperti semua ekspresi, transforms
(atau rowSelection
) dapat ditentukan di luar panggilan fungsi menggunakan fungsi ekspresi.
transformObjects
Daftar bernama yang berisi objek yang dapat dirujuk oleh transforms
, transformsFunc
, dan rowSelection
.
transformFunc
Fungsi transformasi variabel. Lihat rxTransform untuk detailnya.
transformVars
Vektor karakter variabel himpunan data input yang diperlukan untuk fungsi transformasi. Lihat rxTransform untuk detailnya.
transformPackages
Vektor karakter yang menentukan paket R tambahan (di luar yang ditentukan dalam rxGetOption("transformPackages")
) yang akan disediakan dan dimuat sebelumnya untuk digunakan dalam fungsi transformasi variabel. Misalnya, yang secara eksplisit didefinisikan dalam fungsi RevoScaleR melalui argumen dan transformFunc
atau transforms
yang ditentukan secara implisit melalui argumen atau rowSelection
merekaformula
. Argumen transformPackages
mungkin juga NULL
, menunjukkan bahwa tidak ada paket di luar rxGetOption("transformPackages")
yang dimuat sebelumnya.
transformEnvir
Lingkungan yang ditentukan pengguna untuk berfungsi sebagai induk untuk semua lingkungan yang dikembangkan secara internal dan digunakan untuk transformasi data variabel. Jika transformEnvir = NULL
, lingkungan "hash" baru dengan induk baseenv()
digunakan sebagai gantinya.
blocksPerRead
Menentukan jumlah blok yang akan dibaca untuk setiap potongan data yang dibaca dari sumber data.
reportProgress
Nilai bilangan bulat yang menentukan tingkat pelaporan pada kemajuan pemrosesan baris:
0
: tidak ada kemajuan yang dilaporkan.1
: jumlah baris yang diproses dicetak dan diperbarui.2
: baris yang diproses dan waktu dilaporkan.3
: baris yang diproses dan semua waktu dilaporkan.
verbose
Nilai bilangan bulat yang menentukan jumlah output yang diinginkan. Jika 0
, tidak ada output verbose yang dicetak selama perhitungan. Nilai bilangan bulat dari 1
untuk 4
memberikan peningkatan jumlah informasi.
computeContext
Mengatur konteks di mana komputasi dijalankan, ditentukan dengan RxComputeContext yang valid. Saat ini konteks komputasi lokal dan RxInSqlServer didukung.
ensemble
Parameter kontrol untuk ansambel.
...
Argumen tambahan yang akan diteruskan langsung ke Microsoft Compute Engine.
Detail
deteksi adalah mengidentifikasi outlier yang bukan milik beberapa kelas target. Jenis SVM ini adalah satu kelas karena set pelatihan hanya berisi contoh dari kelas target. Ini menyimpulkan properti apa yang normal untuk objek di kelas target dan dari properti ini memprediksi contoh mana yang tidak seperti contoh normal. Ini berguna untuk deteksi anomali karena kelangkaan contoh pelatihan adalah karakter anomali yang menentukan: biasanya ada sangat sedikit contoh gangguan jaringan, penipuan, atau jenis perilaku anomali lainnya.
Nilai
rxOneClassSvm
: Objek rxOneClassSvm
dengan model terlatih.
OneClassSvm
: Objek spesifikasi pelajar kelas maml
untuk pelatih OneClass Svm.
Catatan
Algoritma ini berutas tunggal dan akan selalu mencoba memuat seluruh himpunan data ke dalam memori.
Penulis
Microsoft Corporation Microsoft Technical Support
Referensi
Azure Machine Learning Studio (classic): One-Class Support Vector Machine
Support of a High-Dimensional Distribution
Lihat juga
rbfKernel, linearKernel, polynomialKernel, sigmoidKernelrxFastTrees, rxFastForest, rxFastLinear, rxLogisticRegression, rxNeuralNet, featurizeText, categorical, categoricalHash, rxPredict.mlModel.
Contoh
# 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)