共用方式為


rxFastForest:快速樹系

Machine Learning Fast Forest

用法

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

論點

formula

如 rxFormula 中所述的公式。 MicrosoftML 目前不支援互動字詞和 F()

data

指定 .xdf 檔案或資料框架物件的數據源物件或字元字串。

type

字元字串,表示快速樹狀結構類型:

  • "binary" 預設的快速樹狀結構二元分類或
  • "regression" 適用於快速樹狀結構回歸。

numTrees

指定要在合奏中建立的判定樹總數。 藉由建立更多判定樹,您可能會獲得更好的涵蓋範圍,但定型時間會增加。 預設值是 100。

numLeaves

可在任何樹狀結構中建立的葉數上限(終端節點)。 較高的值可能會增加樹狀結構的大小,並取得較佳的精確度,但風險過度學習,而且需要較長的定型時間。 預設值為 20。

minSplit

形成分葉所需的定型實例數目下限。 也就是說,回歸樹狀結構分葉允許的最小檔數目,超出子取樣的數據。 「分割」表示樹狀結構(節點)每個層級的功能都會隨機分割。 預設值為 10。

exampleFraction

要用於每個樹狀結構的隨機選擇實例的分數。 預設值為 0.7。

featureFraction

要用於每個樹狀結構的隨機選擇特徵分數。 預設值為 0.7。

splitFraction

要在每個分割上使用之隨機選擇特徵的分數。 預設值為 0.7。

numBins

每個功能相異值 (bins) 的最大數目。 預設值為 255。

firstUsePenalty

特徵會先使用懲罰係數。 預設值為 0。

gainConfLevel

樹形調整獲得信賴需求(應介於 [0,1) 範圍內)。 預設值為 0。

trainThreads

定型中使用的線程數目。 如果 NULL 已指定,則會在內部決定要使用的線程數目。 預設值是 NULL

randomSeed

指定隨機種子。 預設值是 NULL

mlTransforms

指定要在定型之前對資料執行的 MicrosoftML 轉換清單,或 NULL 如果未執行任何轉換,則為 。 如需支持的轉換,請參閱 featurizeText類別類別Hash。 這些轉換會在任何指定的 R 轉換之後執行。 預設值是 NULL

mlTransformVars

指定要用於 mlTransforms 中之變數名稱的字元向量,如果未 NULL 使用任何名稱,則為 。 預設值是 NULL

rowSelection

指定數據集中的數據列(觀察值),該數據集將由模型使用數據集名稱的邏輯變數名稱(以引號括住),或使用數據集中的變數搭配邏輯表達式使用。 例如,rowSelection = "old"只會使用變數oldTRUE值為的觀察。 rowSelection = (age > 20) & (age < 65) & (log(income) > 10)只會使用值,其中變數的值age介於 20 到 65 之間,而變數的值logincome大於 10。 數據列選取會在處理任何資料轉換之後執行(請參閱自變數 transformstransformFunc)。 如同所有表達式, rowSelection 可以使用表達式函數在函數調用外部定義。

transforms

表示第一輪變數轉換之窗體 list(name = expression, ``...) 的表達式。 如同所有表示式, transforms 可以使用表示式函數在函數呼叫外部定義 (或 rowSelection) 。

transformObjects

具名清單,其中包含 可由、 transformstransformsFunc參考的物件rowSelection

transformFunc

變數轉換函式。 如需詳細資訊,請參閱 rxTransform。

transformVars

轉換函式所需的輸入數據集變數字元向量。 如需詳細資訊,請參閱 rxTransform。

transformPackages

字元向量,指定要用於變數轉換函式的其他 R 套件(在 中所 rxGetOption("transformPackages")指定套件之外), 並預先載入。 例如, 在 RevoScaleR 函式中明確定義這些函式的 函式是透過 和 自變數,或是透過 或 transformstransformFuncformularowSelection 自變數隱含定義的函式。 自 transformPackages 變數也可能是 NULL,表示外部 rxGetOption("transformPackages") 未預先載入任何套件。

transformEnvir

使用者定義的環境,做為內部開發之所有環境的父系,並用於變數數據轉換。 如果 transformEnvir = NULL為 ,則會改用具有父 baseenv() 代的新「哈希」環境。

blocksPerRead

指定要針對從數據源讀取的每個數據區塊讀取的區塊數目。

reportProgress

整數值,指定數據列處理進度的報告層級:

  • 0:不會報告任何進度。
  • 1:列印和更新已處理的數據列數目。
  • 2:已處理的數據列和計時報告。
  • 3:已處理的數據列和報告所有計時。

verbose

指定所需輸出量的整數值。 如果 0為 ,則計算期間不會列印任何詳細信息輸出。 從 14 提供增加資訊量的整數值。

computeContext

設定執行計算的內容,以有效的 RxComputeContext 指定。 目前支援本機和 RxInSqlServer 計算內容。

ensemble

用於合奏的控制參數。

...

要直接傳遞至Microsoft計算引擎的其他自變數。

詳細資訊

判定樹是執行序列的非參數模型
輸入的簡單測試。 此決策程式會將它們對應至定型數據集中找到的輸出,其輸入與正在處理的實例類似。 根據相似度量值,在二進位樹狀結構的每個節點上做出決策,以遞歸方式對應樹狀結構的分支,直到到達適當的分葉節點並傳回輸出決策為止。

判定樹有幾個優點:

在定型和預測期間,執行運算和記憶體使用都很有效率。

可以代表非線性決策界限。

它們會執行整合式特徵選取和分類。

它們可彈性呈現雜訊特徵。

快速樹系回歸是使用 rxFastTrees 中回歸樹狀結構學習模組的隨機樹系和分位數回歸樹系實作。 此模型是由判定樹的合奏所組成。 判定樹系中的每個樹狀結構都會透過預測方式輸出 Gaussian 分佈。 系統會對樹狀結構整體執行彙總,以找出最接近模型中所有樹狀結構合併分佈的高斯分佈。

這個判定樹分類器是由判定樹的合奏所組成。 一般而言,集團模型比單一決策樹的涵蓋範圍更廣、精確度更高。 判定樹系中的每個樹狀結構都會透過預測方式輸出 Gaussian 分佈。 系統會對樹狀結構整體執行彙總,以找出最接近模型中所有樹狀結構合併分佈的高斯分佈。

價值觀

rxFastForest rxFastForest:具有定型模型的 物件。

FastForest:Fast Forest 定型器類別 maml 的學習模組規格物件。

註釋

此演算法是多線程的,而且一律會嘗試將整個數據集載入記憶體中。

作者(秒)

Microsoft公司 Microsoft Technical Support

參考資料

Wikipedia: Random forest

Quantile regression forest

From Stumps to Trees to Forests

另請參閱

rxFastTreesrxFastLinearrxLogisticRegressionrxNeuralNetrxOneClassSvmfeaturizeTextcategoricalHashrxPredict.mlModel

範例


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