다음을 통해 공유


rxEnsemble: Ensemble

모델의 앙상블을 학습시킵니다.

사용

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

인수

formula

rxFormula에서 설명된 수식입니다. 상호 작용 용어와 F()는 현재 MicrosoftML에서 지원되지 않습니다.

data

.xdffile 또는 데이터 프레임 개체를 지정하는 데이터 원본 개체 또는 문자열입니다. 또는 목록의 데이터 원본 중 하나를 사용하여 각 모델을 학습시켜야 함을 나타내는 데이터 원본 목록일 수 있습니다. 이 경우 데이터 목록의 길이는 modelCount와 같아야 합니다.

trainers

해당 인수가 포함된 트레이너 목록입니다. 트레이너는 fastTrees, fastForest, fastLinear, logisticRegression 또는 neuralNet을 사용하여 만듭니다.

type

Ensemble의 형식을 지정하는 문자열입니다. 이진 분류의 경우 "binary"이고, 회귀의 경우 "regression"입니다.

randomSeed

임의의 시드를 지정합니다. 기본값은 NULL입니다.

modelCount

학습시킬 모델의 수를 지정합니다. 이 숫자가 트레이너 목록의 길이보다 크면 트레이너 목록이 modelCount와 일치하도록 중복됩니다.

replace

대체를 사용하거나 사용하지 않고 관찰의 샘플링을 수행해야 하는지 여부를 지정하는 논리 값입니다. 기본값은 /codeFALSE입니다.

sampRate

각 트레이너에 대해 샘플링할 관찰의 비율을 지정하는 양수 값의 스칼라입니다. 기본값은 대체를 사용한 샘플링의 경우 1.0(즉, replace=TRUE)이고, 대체를 사용하지 않는 샘플링의 경우 0.632(즉, replace=FALSE)입니다. splitData가 TRUE이면 , sampRate의 기본값은 1.0입니다(분할 전에 샘플링이 수행되지 않음).

splitData

겹치지 않는 파티션에서 기본 모델을 학습시킬지 여부를 지정하는 논리 값입니다. 기본값은 FALSE입니다. RxSpark 컴퓨팅 컨텍스트에서만 사용할 수 있으며 다른 컨텍스트에서는 무시됩니다.

combineMethod

모델을 결합하는 데 사용되는 방법을 지정합니다.

  • median - 개별 모델 출력의 중앙값을 계산합니다.
  • average - 개별 모델 출력의 평균을 계산합니다.
  • vote: (pos-neg)/총 모델 수를 계산합니다. 여기서 ‘pos’는 양수 출력 수이고 ‘neg’는 음수 출력 수입니다.

maxCalibration

보정에 사용할 최대 예제 수를 지정합니다. 이 인수는 이진 분류 이외의 모든 작업에서 무시됩니다.

mlTransforms

학습 전에 데이터에서 수행할 MicrosoftML 변환 목록을 지정하거나 수행할 변환이 없는 경우 NULL을 지정합니다. 데이터에 대한 추가 전달이 필요한 변환(예: featurizeText, categorical)이 허용되지 않습니다. 이러한 변환은 지정된 R 변환 후에 수행됩니다. 기본값은 NULL입니다.

mlTransformVars

mlTransforms에 사용할 변수 이름의 문자 벡터를 지정하거나 사용할 변수가 없는 경우 NULL을 지정합니다. 기본값은 NULL입니다.

rowSelection

데이터 세트의 논리 변수 이름(따옴표) 또는 데이터 세트의 변수를 사용하는 논리 식으로 모델에서 사용할 데이터 세트의 행(관찰)을 지정합니다. 예를 들어, rowSelection = "old"old 변수의 값이 TRUE인 관찰만 사용합니다. rowSelection = (age > 20) & (age < 65) & (log(income) > 10)age 변수의 값이 20에서 65 사이이고 income 변수의 log 값이 10보다 큰 관찰만 사용합니다. 행 선택은 데이터 변환을 처리한 후 수행됩니다(인수 transforms 또는 transformFunc 참조). 모든 식과 마찬가지로 expression 함수를 사용하여 함수 호출 외부에서 rowSelection을 정의할 수 있습니다.

transforms

변수 변환의 첫 번째 반올림을 나타내는 list(name = expression, ``...) 양식의 식입니다. 모든 식과 마찬가지로 expression 함수를 사용하여 함수 호출 외부에서 transforms(또는 rowSelection)를 정의할 수 있습니다. 기본값은 NULL입니다.

transformObjects

transforms, transformsFunc, rowSelection에서 참조할 수 있는 개체를 포함하는 명명된 목록입니다. 기본값은 NULL입니다.

transformFunc

변수 변환 함수입니다. 자세한 내용은 rxTransform을 참조하세요. 기본값은 NULL입니다.

transformVars

변환 함수에 필요한 입력 데이터 세트 변수의 문자 벡터입니다. 자세한 내용은 rxTransform을 참조하세요. 기본값은 NULL입니다.

transformPackages

사용 가능하게 하고 변수 변환 함수에서 사용하도록 미리 로드할 추가 R 패키지(rxGetOption("transformPackages")에 지정된 패키지 외부)를 지정하는 문자 벡터입니다. 예를 들어, transformstransformFunc 인수를 통해 RevoScaleR 함수에 명시적으로 정의되거나 formula 또는 rowSelection 인수를 통해 암시적으로 정의됩니다. transformPackages 인수는 NULL일 수도 있으며, 이는 rxGetOption("transformPackages") 외부의 패키지가 미리 로드되지 않음을 나타냅니다. 기본값은 NULL입니다.

transformEnvir

내부적으로 개발되어 변수 데이터 변환에 사용되는 모든 환경의 부모 역할을 하는 사용자 정의 환경입니다. transformEnvir = NULL인 경우 부모 baseenv()가 있는 새 “해시” 환경이 대신 사용됩니다. 기본값은 NULL입니다.

blocksPerRead

데이터 원본에서 읽은 데이터의 각 청크에 대해 읽을 블록 수를 지정합니다.

reportProgress

행 처리 진행률에 대한 보고 수준을 지정하는 정수 값입니다.

  • 0: 진행률을 보고하지 않습니다.
  • 1: 처리된 행 수가 출력되고 업데이트됩니다.
  • 2: 처리된 행 및 타이밍이 보고됩니다.
  • 3: 처리된 행 및 모든 타이밍이 보고됩니다.

verbose

원하는 출력의 양을 지정하는 정수 값입니다. 0이면 계산 중에 자세한 정보가 출력되지 않습니다. 1에서 4 사이의 정수 값은 더 많은 양의 정보를 제공합니다. 기본값은 1입니다.

computeContext

유효한 RxComputeContext로 지정되었으며 계산이 실행되는 컨텍스트를 설정합니다. 현재 로컬 및 RxSpark 컴퓨팅 컨텍스트가 지원됩니다. RxSpark를 지정하면 모델의 학습이 분산된 방식으로 수행되고 ensemble은 로컬에서 수행됩니다. 컴퓨팅 컨텍스트는 대기 중이어야 합니다.

...

Microsoft 컴퓨팅 엔진에 직접 전달할 추가 인수입니다.

세부 정보

/coderxEnsemble은 단일 모델에서 얻을 수 있는 것보다 더 나은 예측 성능을 얻기 위해 다양한 종류의 모델을 학습시키는 함수입니다.

학습된 앙상블 모델이 있는 rxEnsemble 개체입니다.


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