Predict using randomForest package in R

2020-04-28 05:49发布

问题:

How can I use result of randomForrest call in R to predict labels on some unlabled data (e.g. real world input to be classified)?
Code:

train_data = read.csv("train.csv")
input_data = read.csv("input.csv")
result_forest = randomForest(Label ~ ., data=train_data)
labeled_input = result_forest.predict(input_data) # I need something like this

train.csv:

a;b;c;label;
1;1;1;a;
2;2;2;b;
1;2;1;c;

input.csv:

a;b;c;
1;1;1;
2;1;2;

I need to get something like this

a;b;c;label;
1;1;1;a;
2;1;2;b;

回答1:

Let me know if this is what you are getting at.

You train your randomforest with your training data:

# Training dataset
train_data <- read.csv("train.csv")
#Train randomForest
forest_model <- randomForest(label ~ ., data=train_data)

Now that the randomforest is trained, you want to give it new data so it can predict what the labels are.

input_data$predictedlabel <- predict(forest_model, newdata=input_data)

The above code adds a new column to your input_data showing the predicted label.



回答2:

You can use the predict function

for example:

data(iris)
set.seed(111)
ind <- sample(2, nrow(iris), replace = TRUE, prob=c(0.8, 0.2))
iris.rf <- randomForest(Species ~ ., data=iris[ind == 1,])
iris.pred <- predict(iris.rf, iris[ind == 2,])

This is from http://ugrad.stat.ubc.ca/R/library/randomForest/html/predict.randomForest.html