Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Szybki las uczenia maszynowego
Zastosowanie
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(), ...)
Argumenty (w programowaniu)
formula
Formuła opisana w rxFormula. Terminy interakcji i F() nie są obecnie obsługiwane w języku MicrosoftML.
data
Obiekt źródła danych lub ciąg znaków określający plik xdf lub obiekt ramki danych.
type
Ciąg znaków oznaczający typ szybkiego drzewa:
-
"binary"dla domyślnej klasyfikacji binarnej szybkiego drzewa lub -
"regression"w przypadku regresji szybkiego drzewa.
numTrees
Określa łączną liczbę drzew decyzyjnych do utworzenia w zespole. Tworząc więcej drzew decyzyjnych, możesz potencjalnie uzyskać lepsze pokrycie, ale czas trenowania wzrasta. Wartość domyślna to 100.
numLeaves
Maksymalna liczba liści (węzłów terminalu), które można utworzyć w dowolnym drzewie. Wyższe wartości mogą potencjalnie zwiększyć rozmiar drzewa i uzyskać lepszą precyzję, ale ryzykować nadmierne dopasowanie i wymagać dłuższych czasów trenowania. Wartość domyślna to 20.
minSplit
Minimalna liczba wystąpień szkoleniowych wymaganych do utworzenia liścia. Oznacza to, że minimalna liczba dokumentów dozwolonych w liściu drzewa regresji z danych podrzędnych. Podział oznacza, że funkcje na każdym poziomie drzewa (węzła) są losowo podzielone. Wartość domyślna to 10.
exampleFraction
Ułamek losowo wybranych wystąpień do użycia dla każdego drzewa. Wartość domyślna to 0,7.
featureFraction
Ułamek losowo wybranych cech do użycia dla każdego drzewa. Wartość domyślna to 0,7.
splitFraction
Ułamek losowo wybranych funkcji do użycia w każdym podziale. Wartość domyślna to 0,7.
numBins
Maksymalna liczba unikatowych wartości (pojemników) na funkcję. Wartość domyślna to 255.
firstUsePenalty
Funkcja najpierw używa współczynnika kary. Wartość domyślna to 0.
gainConfLevel
Wymaganie ufności dopasowania drzewa (powinno znajdować się w zakresie [0,1)). Wartość domyślna to 0.
trainThreads
Liczba wątków do użycia w trenowaniu. Jeśli NULL zostanie określona, liczba wątków do użycia jest określana wewnętrznie. Wartość domyślna to NULL.
randomSeed
Określa losowe inicjatora. Wartość domyślna to NULL.
mlTransforms
Określa listę przekształceń MicrosoftML, które mają być wykonywane na danych przed trenowanie lub NULL jeśli nie mają być wykonywane żadne przekształcenia. Zobacz featurizeText, kategoryczne i podzielone na kategorieHash, aby zapoznać się z obsługiwanymi przekształceniami. Te przekształcenia są wykonywane po wszelkich określonych przekształceniach języka R. Wartość domyślna to NULL.
mlTransformVars
Określa wektor znaków nazw zmiennych, które mają być używane lub mlTransformsNULL jeśli nie mają być używane. Wartość domyślna to NULL.
rowSelection
Określa wiersze (obserwacje) z zestawu danych, które mają być używane przez model z nazwą zmiennej logicznej z zestawu danych (w cudzysłowie) lub z wyrażeniem logicznym przy użyciu zmiennych w zestawie danych. Na przykład użyje tylko obserwacji, rowSelection = "old" w których wartość zmiennej old to TRUE.
rowSelection = (age > 20) & (age < 65) & (log(income) > 10) Używa tylko obserwacji, w których wartość age zmiennej wynosi od 20 do 65, a wartość log zmiennej income jest większa niż 10. Wybór wiersza jest wykonywany po przetworzeniu wszystkich przekształceń danych (zobacz argumenty transforms lub transformFunc). Podobnie jak we wszystkich wyrażeniach, rowSelection można zdefiniować poza wywołaniem funkcji przy użyciu funkcji wyrażenia.
transforms
Wyrażenie formularza list(name = expression, ``...) reprezentującego pierwszą rundę przekształceń zmiennych. Podobnie jak w przypadku wszystkich wyrażeń transforms (lub rowSelection) można zdefiniować poza wywołaniem funkcji przy użyciu funkcji wyrażenia.
transformObjects
Nazwana lista zawierająca obiekty, do których można odwoływać się w transformselementach , transformsFunci rowSelection.
transformFunc
Funkcja przekształcania zmiennej. Aby uzyskać szczegółowe informacje, zobacz rxTransform.
transformVars
Wektor znaków zmiennych zestawu danych wejściowych potrzebnych do funkcji przekształcania. Aby uzyskać szczegółowe informacje, zobacz rxTransform.
transformPackages
Wektor znaków określający dodatkowe pakiety języka R (poza określonymi w ) rxGetOption("transformPackages")do udostępnienia i wstępnie załadowany do użycia w funkcjach przekształcania zmiennych. Na przykład te jawnie zdefiniowane w funkcjach RevoScaleR za pośrednictwem ich transforms argumentów i lub transformFunc zdefiniowanych niejawnie za pośrednictwem ich formula lub rowSelection argumentów. Argument transformPackages może również wskazywać NULL, że żadne pakiety poza nie rxGetOption("transformPackages") są wstępnie ładowane.
transformEnvir
Środowisko zdefiniowane przez użytkownika, które służy jako element nadrzędny dla wszystkich środowisk opracowanych wewnętrznie i używanych do przekształcania danych zmiennych. Jeśli transformEnvir = NULLzamiast tego zostanie użyte nowe środowisko "hash" z elementem nadrzędnym baseenv() .
blocksPerRead
Określa liczbę bloków do odczytu dla każdego fragmentu danych odczytywanych ze źródła danych.
reportProgress
Wartość całkowita określająca poziom raportowania postępu przetwarzania wierszy:
-
0: nie zgłoszono żadnego postępu. -
1: liczba przetworzonych wierszy jest drukowana i aktualizowana. -
2: są zgłaszane przetworzone wiersze i chronometraż. -
3: są zgłaszane wiersze przetworzone i wszystkie chronometraż.
verbose
Wartość całkowita określająca ilość żądanych danych wyjściowych. Jeśli 0podczas obliczeń nie są drukowane żadne pełne dane wyjściowe. Wartości całkowite z 1 , aby 4 zapewnić coraz większe ilości informacji.
computeContext
Ustawia kontekst, w którym są wykonywane obliczenia określone przy użyciu prawidłowego elementu RxComputeContext. Obecnie obsługiwane są konteksty obliczeniowe lokalne i RxInSqlServer.
ensemble
Parametry sterowania dla ensembling.
...
Dodatkowe argumenty, które mają być przekazywane bezpośrednio do aparatu obliczeniowego firmy Microsoft.
Szczegóły
Drzewa decyzyjne to modele nieparametryczne, które wykonują sekwencję
proste testy danych wejściowych. Ta procedura decyzyjna mapuje je na dane wyjściowe znalezione w zestawie danych treningowych, których dane wejściowe były podobne do przetwarzanych wystąpień. Decyzja jest podjęta w każdym węźle struktury danych drzewa binarnego na podstawie miary podobieństwa, która mapuje każde wystąpienie rekursywnie przez gałęzie drzewa do momentu osiągnięcia odpowiedniego węzła liścia i zwróconej decyzji wyjściowej.
Drzewa decyzyjne mają kilka zalet:
Są one wydajne zarówno w obliczeniach, jak i w przypadku użycia pamięci podczas trenowania i przewidywania.
Mogą reprezentować nieliniowe granice decyzyjne.
Wykonują one zintegrowane wybieranie i klasyfikację funkcji.
Są one odporne na obecność hałaśliwych funkcji.
Szybka regresja lasu jest losowym lasem i implementacją lasu regresji kwantylu przy użyciu uczenia drzewa regresji w rxFastTrees. Model składa się z zespołu drzew decyzyjnych. Każde drzewo w lesie decyzyjnym generuje rozkład gaussański w drodze przewidywania. Agregacja jest wykonywana przez zespół drzew w celu znalezienia rozkładu gaussańskiego znajdującego się najbliżej połączonego rozkładu dla wszystkich drzew w modelu.
Ten klasyfikator lasu decyzyjnego składa się z zespołu drzew decyzyjnych. Ogólnie rzecz biorąc, modele zespołów zapewniają lepsze pokrycie i dokładność niż pojedyncze drzewa decyzyjne. Każde drzewo w lesie decyzyjnym generuje rozkład gaussański w drodze przewidywania. Agregacja jest wykonywana przez zespół drzew w celu znalezienia rozkładu gaussańskiego znajdującego się najbliżej połączonego rozkładu dla wszystkich drzew w modelu.
Wartość
rxFastForest
rxFastForest: obiekt z wytrenowanym modelem.
FastForest: Obiekt specyfikacji ucznia dla maml trenera Fast Forest.
Notatki
Ten algorytm jest wielowątkowy i zawsze podejmie próbę załadowania całego zestawu danych do pamięci.
Autorzy
Microsoft Corporation Microsoft Technical Support
Źródła
From Stumps to Trees to Forests
Zobacz także
rxFastTrees, rxFastLinear, rxLogisticRegression, rxNeuralNet, rxOneClassSvm, featurizeText, categoricalHash, rxPredict.mlModel.
Przykłady
# 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)