Aracılığıyla paylaş


rxFastForest: Hızlı Orman

Machine Learning Hızlı Ormanı

Kullanım

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

Tartışmalar

formula

rxFormula'da açıklandığı gibi formül. Etkileşim terimleri ve F() şu anda MicrosoftML'de desteklenmiyor.

data

Bir veri kaynağı nesnesi veya .xdf dosyası veya veri çerçevesi nesnesi belirten bir karakter dizesi.

type

Hızlı Ağaç türünü belirten bir karakter dizesi:

  • "binary" varsayılan Hızlı Ağaç İkili Sınıflandırması için veya
  • "regression" Hızlı Ağaç Regresyonu için.

numTrees

Toplulukta oluşturulacak karar ağaçlarının toplam sayısını belirtir. Daha fazla karar ağacı oluşturarak daha iyi bir kapsam elde edebilirsiniz, ancak eğitim süresi artar. Varsayılan değer 100 şeklindedir.

numLeaves

Herhangi bir ağaçta oluşturulabilecek en fazla yaprak sayısı (terminal düğümleri). Daha yüksek değerler büyük olasılıkla ağacın boyutunu artırır ve daha iyi duyarlık elde eder, ancak fazla uygunluk riski ve daha uzun eğitim süreleri gerektirir. Varsayılan değer 20'dir.

minSplit

Yaprak oluşturmak için gereken en az eğitim örneği sayısı. Başka bir ifadeyle, alt örneklenmiş verilerin dışında bir regresyon ağacının yaprağında izin verilen en az sayıda belge. 'Bölme', ağacın (düğüm) her düzeyindeki özelliklerin rastgele bölündüğü anlamına gelir. Varsayılan değer 10'dur.

exampleFraction

Her ağaç için kullanılacak rastgele seçilen örneklerin kesri. Varsayılan değer 0,7'dir.

featureFraction

Her ağaç için kullanılacak rastgele seçilen özelliklerin kesri. Varsayılan değer 0,7'dir.

splitFraction

Her bölmede kullanılacak rastgele seçilen özelliklerin kesri. Varsayılan değer 0,7'dir.

numBins

Özellik başına en fazla ayrı değer (bölme) sayısı. Varsayılan değer 255'tir.

firstUsePenalty

Özellik ilk olarak ceza katsayısını kullanır. Varsayılan değer 0'dır.

gainConfLevel

Ağaç uydurma kazanç güven gereksinimi ([0,1) aralığında olmalıdır). Varsayılan değer 0'dır.

trainThreads

Eğitimde kullanılacak iş parçacığı sayısı. belirtilirse NULL , kullanılacak iş parçacığı sayısı dahili olarak belirlenir. Varsayılan değer şudur: NULL.

randomSeed

Rastgele tohumu belirtir. Varsayılan değer şudur: NULL.

mlTransforms

Eğitimden önce veya NULL hiçbir dönüşüm gerçekleştirilmeden önce veriler üzerinde gerçekleştirilecek MicrosoftML dönüşümlerinin listesini belirtir. Desteklenen dönüştürmeler için bkz. featurizeText, categorical ve categoricalHash. Bu dönüştürmeler, belirtilen R dönüştürmelerinden sonra gerçekleştirilir. Varsayılan değer şudur: NULL.

mlTransformVars

Içinde kullanılacak mlTransforms değişken adlarının karakter vektörünün veya NULL bunların hiçbirinin kullanılmayacağı bir karakter vektörünün belirtir. Varsayılan değer şudur: NULL.

rowSelection

Model tarafından veri kümesindeki bir mantıksal değişkenin adıyla (tırnak içinde) veya veri kümesindeki değişkenleri kullanan bir mantıksal ifadeyle kullanılacak satırları (gözlemleri) belirtir. Örneğin, rowSelection = "old" yalnızca değişkeninin oldTRUEdeğerinin olduğu gözlemleri kullanır. rowSelection = (age > 20) & (age < 65) & (log(income) > 10) yalnızca değişkenin değerinin age 20 ile 65 arasında olduğu ve değişkenin değerinin logincome 10'dan büyük olduğu gözlemleri kullanır. Satır seçimi, veri dönüştürmeleri işlendikten sonra gerçekleştirilir (veya bağımsız değişkenlerine transformstransformFuncbakın). Tüm ifadelerde olduğu gibi, rowSelection ifade işlevi kullanılarak işlev çağrısının dışında tanımlanabilir.

transforms

Değişken dönüşümlerinin ilk turunu temsil eden formun list(name = expression, ``...) ifadesi. Tüm ifadelerde olduğu gibi , transforms (veya rowSelection) ifade işlevi kullanılarak işlev çağrısı dışında tanımlanabilir.

transformObjects

, transformsve transformsFunctarafından rowSelectionbaşvurulabilen nesneler içeren adlandırılmış liste.

transformFunc

Değişken dönüştürme işlevi. Ayrıntılar için bkz. rxTransform.

transformVars

Dönüştürme işlevi için gereken giriş veri kümesi değişkenlerinin karakter vektörleri. Ayrıntılar için bkz. rxTransform.

transformPackages

Değişken dönüştürme işlevlerinde kullanılmak üzere kullanıma sunulacak ve önceden yüklenecek ek R paketlerini (içinde rxGetOption("transformPackages")belirtilenlerin dışında) belirten bir karakter vektör. Örneğin, RevoScaleR işlevlerinde ve bağımsız değişkenleri aracılığıyla transformstransformFunc açıkça tanımlananlar veya veya bağımsız değişkenleri aracılığıyla formularowSelection örtük olarak tanımlananlar. Bağımsız transformPackages değişken, NULLdışında rxGetOption("transformPackages") hiçbir paketin önceden yüklenmediğini belirten olabilir.

transformEnvir

Dahili olarak geliştirilen ve değişken veri dönüşümü için kullanılan tüm ortamların üst öğesi olarak görev yapmak için kullanıcı tanımlı bir ortam. ise transformEnvir = NULL, bunun yerine üst öğeye baseenv() sahip yeni bir "karma" ortam kullanılır.

blocksPerRead

Veri kaynağından okunan her veri öbekleri için okunacak blok sayısını belirtir.

reportProgress

Satır işleme ilerleme durumuyla ilgili raporlama düzeyini belirten bir tamsayı değeri:

  • 0: herhangi bir ilerleme bildirilmemiştir.
  • 1: işlenen satır sayısı yazdırılır ve güncelleştirilir.
  • 2: işlenen satırlar ve zamanlamalar bildirilir.
  • 3: işlenen satırlar ve tüm zamanlamalar bildirilir.

verbose

İstenen çıkış miktarını belirten bir tamsayı değeri. ise 0, hesaplamalar sırasında ayrıntılı çıktı yazdırılmaz. Artan miktarda bilgi sağlamak için 1 olan 4 tamsayı değerleri.

computeContext

Geçerli bir RxComputeContext ile belirtilen hesaplamaların yürütülme bağlamını ayarlar. Şu anda yerel ve RxInSqlServer işlem bağlamları desteklenmektedir.

ensemble

Benzerliği için denetim parametreleri.

...

Doğrudan Microsoft İşlem Altyapısı'na geçirilecek ek bağımsız değişkenler.

Ayrıntılar

Karar ağaçları, bir dizi gerçekleştiren parametrik olmayan modellerdir
girişlerdeki basit testlerin. Bu karar yordamı bunları eğitim veri kümesinde bulunan ve girişleri işlenen örneğe benzeyen çıkışlarla eşler. İkili ağaç veri yapısının her düğümünde, uygun yaprak düğümüne ulaşılana ve çıkış kararı döndürülene kadar her örneği ağacın dalları üzerinden özyinelemeli olarak eşleyen bir benzerlik ölçüsüne dayalı olarak bir karar verilir.

Karar ağaçlarının çeşitli avantajları vardır:

Eğitim ve tahmin sırasında hem hesaplama hem de bellek kullanımı açısından verimlidir.

Doğrusal olmayan karar sınırlarını temsil edebilir.

Tümleşik özellik seçimi ve sınıflandırması gerçekleştirir.

Gürültülü özelliklerin varlığında dayanıklıdırlar.

Hızlı orman regresyonu , rxFastTrees'te regresyon ağacı öğrenicisini kullanan rastgele bir orman ve nicel regresyon ormanı uygulamasıdır. Model, karar ağaçlarının bir topluluğundan oluşur. Karar ormanındaki her ağaç, tahmin yoluyla bir Gauss dağılımı oluşturur. Modeldeki tüm ağaçlar için birleşik dağılıma en yakın Gauss dağılımını bulmak için ağaç topluluğu üzerinde bir toplama gerçekleştirilir.

Bu karar ormanı sınıflandırıcısı, karar ağaçlarının bir topluluğundan oluşur. Genel olarak, topluluk modelleri tek karar ağaçlarından daha iyi kapsama ve doğruluk sağlar. Karar ormanındaki her ağaç, tahmin yoluyla bir Gauss dağılımı oluşturur. Modeldeki tüm ağaçlar için birleşik dağılıma en yakın Gauss dağılımını bulmak için ağaç topluluğu üzerinde bir toplama gerçekleştirilir.

Değer

rxFastForest rxFastForest: Eğitilmiş modele sahip bir nesne.

FastForest: Hızlı Orman eğitmeni için sınıfın maml öğrenci belirtimi nesnesi.

Notlar

Bu algoritma çok iş parçacıklıdır ve her zaman veri kümesinin tamamını belleğe yüklemeyi dener.

Yazar(lar)

Microsoft Corporation Microsoft Technical Support

Kaynaklar

Wikipedia: Random forest

Quantile regression forest

From Stumps to Trees to Forests

Ayrıca bakınız

rxFastTrees, rxFastLinear, rxLogisticRegression, rxNeuralNet, rxOneClassSvm, featurizeText, categorical, categoricalHash, rxPredict.mlModel.

Örnekler


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