Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Forest Cepat Pembelajaran Mesin
Penggunaan
rxFastForest(formula = NULL, data, type = c("binary", "regression"),
numTrees = 100, numLeaves = 20, minSplit = 10, exampleFraction = 0.7,
featureFraction = 0.7, splitFraction = 0.7, numBins = 255,
firstUsePenalty = 0, gainConfLevel = 0, trainThreads = 8,
randomSeed = NULL, 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 = 2,
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.
type
String karakter yang menunjukkan jenis Pohon Cepat:
-
"binary"untuk Klasifikasi Biner Pohon Cepat default atau -
"regression"untuk Regresi Pohon Cepat.
numTrees
Menentukan jumlah total pohon keputusan yang akan dibuat dalam ansambel. Dengan membuat lebih banyak pohon keputusan, Anda berpotensi mendapatkan cakupan yang lebih baik, tetapi waktu pelatihan meningkat. Nilai default adalah 100.
numLeaves
Jumlah maksimum daun (simpul terminal) yang dapat dibuat di pohon apa pun. Nilai yang lebih tinggi berpotensi meningkatkan ukuran pohon dan mendapatkan presisi yang lebih baik, tetapi berisiko overfitting dan membutuhkan waktu pelatihan yang lebih lama. Nilai default adalah 20.
minSplit
Jumlah minimum instans pelatihan yang diperlukan untuk membentuk daun. Artinya, jumlah minimal dokumen yang diizinkan dalam daun pohon regresi, dari data sub-sampel. 'Pemisahan' berarti bahwa fitur di setiap tingkat pohon (simpul) dibagi secara acak. Nilai defaultnya adalah 10.
exampleFraction
Pecahan instans yang dipilih secara acak untuk digunakan untuk setiap pohon. Nilai defaultnya adalah 0,7.
featureFraction
Pecahan fitur yang dipilih secara acak untuk digunakan untuk setiap pohon. Nilai defaultnya adalah 0,7.
splitFraction
Pecahan fitur yang dipilih secara acak untuk digunakan pada setiap pemisahan. Nilai defaultnya adalah 0,7.
numBins
Jumlah maksimum nilai yang berbeda (bin) per fitur. Nilai defaultnya adalah 255.
firstUsePenalty
Fitur ini pertama-tama menggunakan koefisien penalti. Nilai defaultnya adalah 0.
gainConfLevel
Persyaratan kepercayaan perolehan tree fitting (harus dalam kisaran [0,1)). Nilai defaultnya adalah 0.
trainThreads
Jumlah utas yang akan digunakan dalam pelatihan. Jika NULL ditentukan, jumlah utas yang akan digunakan ditentukan secara internal. Nilai defaultnya adalah NULL.
randomSeed
Menentukan seed acak. Nilai defaultnya adalah NULL.
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 tertentu. 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 antara 20 dan 65 dan nilai logincome 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 didefinisikan di luar panggilan fungsi menggunakan fungsi ekspresi.
transformObjects
Daftar bernama yang berisi objek yang dapat dirujuk oleh transforms, , transformsFuncdan 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")) untuk disediakan dan dimuat sebelumnya untuk digunakan dalam fungsi transformasi variabel. Misalnya, mereka yang secara eksplisit didefinisikan dalam fungsi RevoScaleR melalui argumen dan transforms mereka transformFunc atau yang ditentukan secara implisit melalui argumen atau formula merekarowSelection. Argumen transformPackages mungkin NULLjuga , 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 waktunya 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 lebih lanjut
Pohon keputusan adalah model non-parametrik yang melakukan urutan
tes sederhana pada input. Prosedur keputusan ini memetakannya ke output yang ditemukan dalam himpunan data pelatihan yang inputnya mirip dengan instans yang sedang diproses. Keputusan dibuat pada setiap simpul struktur data pohon biner berdasarkan ukuran kesamaan yang memetakan setiap instans secara rekursif melalui cabang pohon sampai node daun yang sesuai tercapai dan keputusan output dikembalikan.
Pohon keputusan memiliki beberapa keuntungan:
Pohon keputusan efisien dalam komputasi dan penggunaan memori selama pelatihan dan prediksi.
Pohon keputusan dapat mewakili batas keputusan non-linier.
Pohon keputusan melakukan pemilihan dan klasifikasi fitur terintegrasi.
Pohon keputusan tangguh di hadapan fitur yang ramai.
Regresi hutan cepat adalah implementasi forest acak dan hutan regresi kuantil menggunakan pelajar pohon regresi di rxFastTrees. Model ini terdiri dari ansambel pohon keputusan. Setiap pohon dalam hutan keputusan menghasilkan distribusi Gaussia dengan cara prediksi. Agregasi dilakukan di atas ansambel pohon untuk menemukan distribusi Gaussian yang paling dekat dengan distribusi gabungan untuk semua pohon dalam model.
Pengklasifikasi hutan keputusan ini terdiri dari ansambel pohon keputusan. Umumnya, model ensemble memberikan cakupan dan akurasi yang lebih baik daripada pohon keputusan tunggal. Setiap pohon dalam hutan keputusan menghasilkan distribusi Gaussia dengan cara prediksi. Agregasi dilakukan di atas ansambel pohon untuk menemukan distribusi Gaussian yang paling dekat dengan distribusi gabungan untuk semua pohon dalam model.
Nilai
rxFastForest: Objek rxFastForest dengan model terlatih.
FastForest: Objek spesifikasi pelajar kelas maml untuk pelatih Fast Forest.
Catatan
Algoritma ini multi-utas dan akan selalu mencoba memuat seluruh himpunan data ke dalam memori.
Penulis
Microsoft Corporation Microsoft Technical Support
Referensi
From Stumps to Trees to Forests
Lihat juga
rxFastTrees, rxFastLinear, rxLogisticRegression, rxNeuralNet, rxOneClassSvm, featurizeText, categorical, categoricalHash, rxPredict.mlModel.
Contoh
# Estimate a binary classification forest
infert1 <- infert
infert1$isCase = (infert1$case == 1)
forestModel <- rxFastForest(formula = isCase ~ age + parity + education + spontaneous + induced,
data = infert1)
# Create text file with per-instance results using rxPredict
txtOutFile <- tempfile(pattern = "scoreOut", fileext = ".txt")
txtOutDS <- RxTextData(file = txtOutFile)
scoreDS <- rxPredict(forestModel, data = infert1,
extraVarsToWrite = c("isCase", "Score"), outData = txtOutDS)
# Print the fist ten rows
rxDataStep(scoreDS, numRows = 10)
# Clean-up
file.remove(txtOutFile)
######################################################################
# Estimate a regression fast forest
# Use the built-in data set 'airquality' to create test and train data
DF <- airquality[!is.na(airquality$Ozone), ]
DF$Ozone <- as.numeric(DF$Ozone)
randomSplit <- rnorm(nrow(DF))
trainAir <- DF[randomSplit >= 0,]
testAir <- DF[randomSplit < 0,]
airFormula <- Ozone ~ Solar.R + Wind + Temp
# Regression Fast Forest for train data
rxFastForestReg <- rxFastForest(airFormula, type = "regression",
data = trainAir)
# Put score and model variables in data frame
rxFastForestScoreDF <- rxPredict(rxFastForestReg, data = testAir,
writeModelVars = TRUE)
# Plot actual versus predicted values with smoothed line
rxLinePlot(Score ~ Ozone, type = c("p", "smooth"), data = rxFastForestScoreDF)