R - Losowy Las
W podejściu lasów losowych tworzonych jest wiele drzew decyzyjnych. Każda obserwacja jest wprowadzana do każdego drzewa decyzyjnego. Najpowszechniejszy wynik każdej obserwacji jest używany jako wynik końcowy. Nowa obserwacja jest wprowadzana do wszystkich drzew i uzyskuje większość głosów dla każdego modelu klasyfikacji.
Oszacowano błąd dla przypadków, które nie zostały wykorzystane podczas budowania drzewa. To się nazywaOOB (Out-of-bag) oszacowanie błędu, które podaje się w procentach.
Pakiet R. "randomForest" służy do tworzenia losowych lasów.
Zainstaluj pakiet R.
Użyj poniższego polecenia w konsoli R, aby zainstalować pakiet. Musisz także zainstalować pakiety zależne, jeśli takie istnieją.
install.packages("randomForest)
Pakiet „randomForest” ma funkcję randomForest() który służy do tworzenia i analizowania losowych lasów.
Składnia
Podstawowa składnia tworzenia losowego lasu w R to -
randomForest(formula, data)
Poniżej znajduje się opis użytych parametrów -
formula to wzór opisujący predyktor i zmienne odpowiedzi.
data to nazwa używanego zestawu danych.
Dane wejściowe
Do stworzenia drzewa decyzyjnego użyjemy wbudowanego zestawu danych języka R o nazwie readingSkills. Opisuje wynik czyjegoś czytania Umiejętności, jeśli znamy zmienne „wiek”, „rozmiar buta”, „wynik” i czy dana osoba jest native speakerem.
Oto przykładowe dane.
# Load the party package. It will automatically load other
# required packages.
library(party)
# Print some records from data set readingSkills.
print(head(readingSkills))
Kiedy wykonujemy powyższy kod, daje on następujący wynik i wykres -
nativeSpeaker age shoeSize score
1 yes 5 24.83189 32.29385
2 yes 6 25.95238 36.63105
3 no 11 30.42170 49.60593
4 yes 7 28.66450 40.28456
5 yes 11 31.88207 55.46085
6 yes 10 30.07843 52.83124
Loading required package: methods
Loading required package: grid
...............................
...............................
Przykład
Będziemy używać randomForest() funkcję, aby utworzyć drzewo decyzyjne i zobaczyć jego wykres.
# Load the party package. It will automatically load other
# required packages.
library(party)
library(randomForest)
# Create the forest.
output.forest <- randomForest(nativeSpeaker ~ age + shoeSize + score,
data = readingSkills)
# View the forest results.
print(output.forest)
# Importance of each predictor.
print(importance(fit,type = 2))
Kiedy wykonujemy powyższy kod, daje on następujący wynik -
Call:
randomForest(formula = nativeSpeaker ~ age + shoeSize + score,
data = readingSkills)
Type of random forest: classification
Number of trees: 500
No. of variables tried at each split: 1
OOB estimate of error rate: 1%
Confusion matrix:
no yes class.error
no 99 1 0.01
yes 1 99 0.01
MeanDecreaseGini
age 13.95406
shoeSize 18.91006
score 56.73051
Wniosek
Z przedstawionego powyżej losowego lasu możemy wywnioskować, że rozmiar buta i punktacja są ważnymi czynnikami decydującymi o tym, czy ktoś jest native speakerem, czy nie. Również model ma tylko 1% błąd, co oznacza, że możemy przewidywać z 99% dokładnością.