rxEnsemble: Ensembles
Melatih ansambel model
Penggunaan
rxEnsemble(formula = NULL, data, trainers, type = c("binary", "regression",
"multiClass", "anomaly"), randomSeed = NULL,
modelCount = length(trainers), replace = FALSE, sampRate = NULL,
splitData = FALSE, combineMethod = c("median", "average", "vote"),
maxCalibration = 1e+05, 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"), ...)
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 .xdffile atau objek bingkai data. Atau, ini bisa menjadi daftar sumber data yang menunjukkan setiap model harus dilatih menggunakan salah satu sumber data dalam daftar. Dalam hal ini, panjang daftar data harus sama dengan modelCount
.
trainers
Daftar pelatih dengan argumen mereka. Pelatih dibuat dengan menggunakan fastTrees, fastForest, fastLinear, logisticRegression atau neuralNet.
type
String karakter yang menentukan jenis ansambel: "binary"
untuk Klasifikasi Biner atau "regression"
untuk Regresi.
randomSeed
Menentukan nilai awal acak. Nilai defaultnya adalah NULL
.
modelCount
Menentukan jumlah model yang akan dilatih. Jika jumlah ini lebih besar dari panjang daftar pelatih, daftar pelatih diduplikasi untuk mencocokkan modelCount
.
replace
Nilai logis yang menentukan apakah pengambilan sampel pengamatan harus dilakukan dengan atau tanpa penggantian. Nilai defaultnya adalah /codeFALSE.
sampRate
skalar nilai positif yang menentukan persentase pengamatan yang akan diambil sampelnya untuk setiap pelatih. Defaultnya adalah 1,0 untuk pengambilan sampel dengan penggantian (yaitu, replace=TRUE) dan 0,632 untuk pengambilan sampel tanpa penggantian (yaitu, replace=FALSE). Ketika splitData TRUE, default sampRate adalah 1.0 (tidak ada pengambilan sampel yang dilakukan sebelum memisahkan).
splitData
Nilai logis yang menentukan apakah akan melatih model dasar pada partisi yang tidak tumpang tindih atau tidak. Default adalah FALSE
. Ini hanya tersedia untuk RxSpark
konteks komputasi dan diabaikan untuk orang lain.
combineMethod
Menentukan metode yang digunakan untuk menggabungkan model:
median
untuk menghitung median output model individual,average
untuk menghitung rata-rata output model individu danvote
untuk menghitung (pos-neg) / jumlah total model, di mana 'pos' adalah jumlah output positif dan 'neg' adalah jumlah output negatif.
maxCalibration
Menentukan jumlah maksimum contoh yang akan digunakan untuk kalibrasi. Argumen ini diabaikan untuk semua tugas selain klasifikasi biner.
mlTransforms
Menentukan daftar transformasi MicrosoftML yang akan dilakukan pada data sebelum pelatihan atau NULL
jika tidak ada transformasi yang harus dilakukan. Transformasi yang memerlukan passover tambahan atas data (seperti featurizeText, kategoris) tidak diizinkan. 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. Nilai defaultnya adalah NULL
.
transformObjects
Daftar bernama yang berisi objek yang dapat dirujuk oleh transforms
, transformsFunc
, dan rowSelection
. Nilai defaultnya adalah NULL
.
transformFunc
Fungsi transformasi variabel. Lihat rxTransform untuk detailnya. Nilai defaultnya adalah NULL
.
transformVars
Vektor karakter variabel himpunan data input yang diperlukan untuk fungsi transformasi. Lihat rxTransform untuk detailnya. Nilai defaultnya adalah NULL
.
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. Nilai defaultnya adalah NULL
.
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. Nilai defaultnya adalah NULL
.
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. Nilai defaultnya adalah 1
.
computeContext
Mengatur konteks di mana komputasi dijalankan, ditentukan dengan RxComputeContext yang valid. Saat ini konteks komputasi lokal dan RxSpark didukung. Ketika RxSpark ditentukan, pelatihan model dilakukan dengan cara terdistribusi, dan ansambel dilakukan secara lokal. Perhatikan bahwa konteks komputasi tidak boleh tidak menunggu.
...
Argumen tambahan yang akan diteruskan langsung ke Microsoft Compute Engine.
Detail
/coderxEnsemble adalah fungsi yang melatih sejumlah model dari berbagai jenis untuk mendapatkan performa prediktif yang lebih baik daripada yang dapat diperoleh dari satu model.
Nilai
Objek rxEnsemble
dengan model ansambel terlatih.
Contoh
# Create an ensemble of regression rxFastTrees models
# use xdf data source
dataFile <- file.path(rxGetOption("sampleDataDir"), "claims4blocks.xdf")
rxGetInfo(dataFile, getVarInfo = TRUE, getBlockSizes = TRUE)
form <- cost ~ age + type + number
rxSetComputeContext("localpar")
rxGetComputeContext()
# build an ensemble model that contains three 'rxFastTrees' models with different parameters
ensemble <- rxEnsemble(
formula = form,
data = dataFile,
type = "regression",
trainers = list(fastTrees(), fastTrees(numTrees = 60), fastTrees(learningRate = 0.1)), #a list of trainers with their arguments.
replace = TRUE # Indicates using a bootstrap sample for each trainer
)
# use text data source
colInfo <- list(DayOfWeek = list(type = "factor", levels = c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")))
source <- system.file("SampleData/AirlineDemoSmall.csv", package = "RevoScaleR")
data <- RxTextData(source, missingValueString = "M", colInfo = colInfo)
# When 'distributed' is TRUE distributed data source is created
distributed <- FALSE
if (distributed) {
bigDataDirRoot <- "/share"
inputDir <- file.path(bigDataDirRoot, "AirlineDemoSmall")
rxHadoopMakeDir(inputDir)
rxHadoopCopyFromLocal(source, inputDir)
hdfsFS <- RxHdfsFileSystem()
data <- RxTextData(file = inputDir, missingValueString = "M", colInfo = colInfo, fileSystem = hdfsFS)
}
# When 'distributed' is TRUE training is distributed
if (distributed) {
cc <- rxSetComputeContext(RxSpark())
} else {
cc <- rxGetComputeContext()
}
ensemble <- rxEnsemble(
formula = ArrDelay ~ DayOfWeek,
data = data,
type = "regression",
trainers = list(fastTrees(), fastTrees(numTrees = 60), fastTrees(learningRate = 0.1)), # The ensemble will contain three 'rxFastTrees' models
replace = TRUE # Indicates using a bootstrap sample for each trainer
)
# Change the compute context back to previous for scoring
rxSetComputeContext(cc)
# Put score and model variables in data frame
scores <- rxPredict(ensemble, data = data, writeModelVars = TRUE)
# Plot actual versus predicted values with smoothed line
rxLinePlot(Score ~ ArrDelay, type = c("p", "smooth"), data = scores)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk