Rate this post

Chúng ta sẽ nghiên cứu kỹ về khái niệm Random Forest trong R và hiểu kỹ thuật học tập kết hợp và mô hình tập hợp trong Lập trình R. Chúng ta cũng sẽ khám phá trình phân loại Random Forest và quy trình để phát triển Random Forest bằng Ngôn ngữ R.

Vì vậy, chúng ta hãy bắt đầu.

Giới thiệu về Random Forest trong R

Random Forest là gì?

Ý tưởng đằng sau kỹ thuật này là tao một số cây. Kỹ thuật tập hợp được gọi là Bagging giống như các khu Random Forest. Nó được tạo trên các mẫu khởi động khác nhau từ dữ liệu đào tạo. Và, sau đó chúng ta giảm phương sai trong cây bằng cách lấy trung bình chúng. Do đó, trong cách tiếp cận này, nó tạo ra một số lượng lớn các cây quyết định trong R.

Chúng tôi sử dụng gói R “randomForest” để tạo các khu Random Forest .

Học qua Ensemble trong R là gì?

Nó là một loại kỹ thuật học có giám sát. Ý tưởng cơ bản đằng sau nó là tạo ra nhiều mô hình trên một tập dữ liệu đào tạo và sau đó kết hợp các quy tắc đầu ra của chúng.

Các bài viết liên quan:

Chúng tôi sử dụng nó để tạo ra rất nhiều mô hình bằng cách đào tạo trên Bộ đào tạo và kết hợp chúng ở cuối. Do đó, chúng ta có thể sử dụng nó để cải thiện hiệu suất dự đoán của cây quyết định bằng cách giảm phương sai trong các cây thông qua tính trung bình của chúng. Nó được gọi là kỹ thuật Random Forest.

Mô hình Ensemble trong R là gì?

Đây là một loại mô hình kết hợp các kết quả từ các mô hình khác nhau và thường tốt hơn kết quả từ một trong các mô hình riêng lẻ.

Một số tính năng của Random Forest trong Lập trình R như sau :

  • Đây là loại mô hình chạy trên cơ sở dữ liệu lớn.
  • Random Forest cho phép xử lý hàng nghìn biến đầu vào mà không cần xóa biến.
  • Nó đưa ra các ước tính rất tốt cho biết biến nào là quan trọng trong việc phân loại.

Bộ phân loại Random Forest

Tại thời điểm đào tạo, chúng tôi có thể phân loại phương pháp học tập tổng hợp của Random Forest và do đó chúng tôi có thể vận hành nó bằng cách xây dựng vô số cây quyết định.

Adele Cutler và Leo Breiman đã phát triển nó. Ở đây, sự kết hợp của hai phương pháp khác nhau được thực hiện bởi ý tưởng đóng túi của Leo và lựa chọn ngẫu nhiên các tính năng do Tin Kan Ho giới thiệu. Ông cũng đề xuất Rừng Quyết định Ngẫu nhiên vào năm 1995.

Chức năng của Random Forest trong R

Nếu số trường hợp trong tập huấn luyện là N và trường hợp mẫu N là ngẫu nhiên, thì mỗi cây sẽ phát triển. Vì vậy, mẫu này sẽ là tập huấn luyện cho việc trồng cây. Nếu có M biến đầu vào, chúng tôi chỉ định một số m << M mà tại mỗi nút, m biến được lựa chọn tại ra ngẫu nhiên của M . Giá trị của m không đổi trong quá trình rừng phát triển và do đó, mỗi cây phát triển đến mức lớn nhất có thể.

Xem thêm Học lập trình R

Phát triển Random Forest trong R

Đầu tiên chúng ta sẽ nhập khẩu các thư viện quan trọng, chẳng hạn như ggplot2randomForest như sau:

getwd()
library(ggplot2)
library(randomForest)

Đầu ra:

Chúng tôi sẽ sử dụng tập dữ liệu dự đoán khả năng sống sót của loài titanic phổ biến và sẽ nhập các tập huấn luyện và thử nghiệm vào hai biến tương ứng của chúng tôi:

setwd("/home/dataflair/Titanic Dataset/")
train_data <- read.csv("train.csv" , stringsAsFactors = FALSE)
test_data  <- read.csv("test.csv",   stringsAsFactors = FALSE)

Đầu ra:

Bây giờ chúng ta hãy xem xét sáu mục đầu tiên của tập dữ liệu đào tạo và kiểm tra đã nhập của chúng tôi:

> head ( train_data )

Đầu ra:

head ( test_data )

Đầu ra:

Trích xuất các tính năng là bước quan trọng nhất tiếp theo để xây dựng mô hình của chúng tôi. Chúng tôi thực hiện điều này dưới dạng một hàm được gọi là ‘Feature_extraction’ sẽ trích xuất các tính năng từ bất kỳ dữ liệu đầu vào nào được cung cấp cho nó bất cứ khi nào nó được gọi.

Feature_extraction <- function(data) {
  labels <- c("Pclass",
                "Age",
                "Sex",
                "Parch",
                "SibSp",
                "Fare",
                "Embarked")
  features <- data[,labels]
  features$Age[is.na(features$Age)] <- -1
  features$Fare[is.na(features$Fare)] <- median(features$Fare, na.rm=TRUE)
  features$Embarked[features$Embarked==""] = "S"
  features$Sex      <- as.factor(features$Sex)
  features$Embarked <- as.factor(features$Embarked)
  return(features)
}

Hiển thị mã:

Đầu ra:

Hãy để chúng tôi gọi hàm trên bằng cách hiển thị tóm tắt các tính năng được trích xuất của các tập huấn luyện và kiểm tra:

> summary(Feature_extraction(train_data))
> summary(Feature_extraction(test_data))

Đầu ra:

Trong bước tiếp theo, chúng ta sẽ triển khai hàm randomForest () như sau:

> r_forest <- randomForest(Feature_extraction(train_data), as.factor(train_data$Survived), ntree=100, importance=TRUE)
> r_forest

Đầu ra:

Bây giờ chúng ta hãy trích xuất một số tính năng quan trọng với các dòng mã sau:

> important <- importance(r_forest, type=1 )
> Important_Features <- data.frame(Feature = row.names(important), Importance = important[, 1])

Đầu ra:

Trong bước cuối cùng, chúng tôi sẽ sử dụng ggplot2 để vẽ sơ đồ tập hợp các tính năng quan trọng của chúng tôi:

plot_ <- ggplot(Important_Features, 
    aes(x= reorder(Feature,
Importance) , y = Importance) ) +
geom_bar(stat = "identity", 
        fill = "#800080") +
coord_flip() +
theme_light(base_size = 20) +
xlab("") + 
ylab("Importance")+
ggtitle("Important Features in Random Forest\n") +
theme(plot.title = element_text(size=18))
ggsave("important_features.png", 
      plot_)
plot_

Hiển thị mã:

Đầu ra:

Thanh biểu đồ:

Kết luận về Random Forest

Chúng tôi đã nghiên cứu các khía cạnh khác nhau của Random Forest ở R. Chúng tôi đã tìm hiểu về mô hình học tập hợp và tập hợp trong R Lập trình cùng với bộ phân loại Random Forest và quy trình để phát triển Random Forest trong R.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now