Làm thế nào để bạn tạo một khu rừng ngẫu nhiên trong python?

Một trong những tính năng quan trọng nhất của Thuật toán rừng ngẫu nhiên là nó có thể xử lý tập dữ liệu chứa các biến liên tục như trong trường hợp hồi quy và các biến phân loại như trong trường hợp phân loại. Nó thực hiện kết quả tốt hơn cho các vấn đề phân loại

Làm thế nào để bạn tạo một khu rừng ngẫu nhiên trong python?

Trước khi hiểu hoạt động của thuật toán rừng ngẫu nhiên trong học máy, chúng ta phải xem xét kỹ thuật tập hợp. Phối hợp đơn giản có nghĩa là kết hợp nhiều mô hình. Do đó, một tập hợp các mô hình được sử dụng để đưa ra dự đoán thay vì một mô hình riêng lẻ

Ensemble sử dụng hai loại phương pháp

1. Đóng gói– Nó tạo ra một tập hợp con đào tạo khác với dữ liệu đào tạo mẫu có thay thế & kết quả cuối cùng dựa trên biểu quyết đa số. Ví dụ: Rừng ngẫu nhiên

2. Tăng cường– Nó kết hợp những người học yếu thành những người học mạnh bằng cách tạo các mô hình tuần tự sao cho mô hình cuối cùng có độ chính xác cao nhất. Ví dụ: ADABOOST, XGBOOST

Làm thế nào để bạn tạo một khu rừng ngẫu nhiên trong python?

Như đã đề cập trước đó, Rừng ngẫu nhiên hoạt động theo nguyên tắc Bagging. Bây giờ, hãy cùng tìm hiểu chi tiết về cách đóng bao

đóng bao

Đóng bao, còn được gọi là Bootstrap Aggregation là kỹ thuật tổng hợp được sử dụng bởi rừng ngẫu nhiên. Đóng bao chọn một mẫu ngẫu nhiên từ tập dữ liệu. Do đó, mỗi mô hình được tạo từ các mẫu (Mẫu Bootstrap) do Dữ liệu gốc cung cấp với sự thay thế được gọi là lấy mẫu theo hàng. Bước lấy mẫu hàng có thay thế này được gọi là bootstrap. Giờ đây, mỗi mô hình được đào tạo độc lập để tạo ra kết quả. Kết quả cuối cùng dựa trên biểu quyết đa số sau khi kết hợp kết quả của tất cả các mô hình. Bước này liên quan đến việc kết hợp tất cả các kết quả và tạo đầu ra dựa trên biểu quyết đa số được gọi là tổng hợp

Làm thế nào để bạn tạo một khu rừng ngẫu nhiên trong python?

Bây giờ hãy xem một ví dụ bằng cách chia nhỏ nó với sự trợ giúp của hình sau. Ở đây, mẫu bootstrap được lấy từ dữ liệu thực tế (mẫu Bootstrap 01, mẫu Bootstrap 02 và mẫu Bootstrap 03) có thay thế, nghĩa là có khả năng cao là mỗi mẫu sẽ không chứa dữ liệu duy nhất. Giờ đây, mô hình (Mô hình 01, Mô hình 02 và Mô hình 03) thu được từ mẫu bootstrap này được đào tạo độc lập. Mỗi mô hình tạo ra kết quả như được hiển thị. Bây giờ biểu tượng cảm xúc vui vẻ đang chiếm đa số khi so sánh với biểu tượng cảm xúc buồn. Do đó, dựa trên đa số biểu quyết, kết quả cuối cùng thu được dưới dạng biểu tượng cảm xúc Hạnh phúc

Làm thế nào để bạn tạo một khu rừng ngẫu nhiên trong python?

Các bước liên quan đến thuật toán rừng ngẫu nhiên

Bước 1. Trong Rừng ngẫu nhiên n số bản ghi ngẫu nhiên được lấy từ tập dữ liệu có số bản ghi k

Bước 2. Cây quyết định riêng lẻ được xây dựng cho từng mẫu

Bước 3. Mỗi cây quyết định sẽ tạo ra một đầu ra

Bước 4. Kết quả cuối cùng được xem xét dựa trên Biểu quyết đa số hoặc Lấy trung bình cho Phân loại và hồi quy tương ứng

Làm thế nào để bạn tạo một khu rừng ngẫu nhiên trong python?

Ví dụ. coi giỏ trái cây là dữ liệu như trong hình bên dưới. Bây giờ n số mẫu được lấy từ giỏ trái cây và một cây quyết định riêng lẻ được xây dựng cho mỗi mẫu. Mỗi cây quyết định sẽ tạo ra kết quả như trong hình. Kết quả cuối cùng được xem xét dựa trên biểu quyết đa số. Trong hình bên dưới, bạn có thể thấy rằng cây quyết định đa số cho kết quả là quả táo khi so sánh với quả chuối, vì vậy kết quả cuối cùng được lấy là quả táo

Làm thế nào để bạn tạo một khu rừng ngẫu nhiên trong python?

Các tính năng quan trọng của Random Forest

1. Tính đa dạng- Không phải tất cả các thuộc tính/biến/tính năng đều được xem xét khi tạo một cây riêng lẻ, mỗi cây là khác nhau

2. Miễn dịch với lời nguyền của chiều- Vì mỗi cây không xem xét tất cả các tính năng, nên không gian tính năng bị giảm

3. Song song hóa-Mỗi cây được tạo độc lập từ các dữ liệu và thuộc tính khác nhau. Điều này có nghĩa là chúng ta có thể tận dụng tối đa CPU để xây dựng các khu rừng ngẫu nhiên

4. Phân chia kiểm tra đào tạo- Trong một khu rừng ngẫu nhiên, chúng tôi không phải tách biệt dữ liệu để đào tạo và kiểm tra vì sẽ luôn có 30% dữ liệu mà cây quyết định không nhìn thấy

5. Tính ổn định- Tính ổn định phát sinh do kết quả dựa trên biểu quyết/lấy trung bình theo đa số

Sự khác biệt giữa Cây quyết định và Rừng ngẫu nhiên

Rừng ngẫu nhiên là một tập hợp các cây quyết định;

cây quyết định

rừng ngẫu nhiên

1. Cây quyết định thường gặp phải vấn đề trang bị quá mức nếu nó được phép phát triển mà không có bất kỳ sự kiểm soát nào. 1. Các khu rừng ngẫu nhiên được tạo từ các tập hợp con của dữ liệu và đầu ra cuối cùng dựa trên xếp hạng trung bình hoặc đa số và do đó, vấn đề trang bị quá mức được giải quyết. 2. Một cây quyết định duy nhất nhanh hơn trong tính toán. 2. Nó tương đối chậm hơn. 3. Khi một tập dữ liệu với các tính năng được cây quyết định lấy làm đầu vào, nó sẽ hình thành một số bộ quy tắc để thực hiện dự đoán. 3. Rừng ngẫu nhiên chọn ngẫu nhiên các quan sát, xây dựng cây quyết định và lấy kết quả trung bình. Nó không sử dụng bất kỳ bộ công thức nào

Do đó, rừng ngẫu nhiên thành công hơn nhiều so với cây quyết định chỉ khi cây đa dạng và chấp nhận được

Siêu tham số quan trọng

Siêu tham số được sử dụng trong các khu rừng ngẫu nhiên để nâng cao hiệu suất và khả năng dự đoán của mô hình hoặc để làm cho mô hình nhanh hơn

Theo dõi siêu tham số làm tăng sức mạnh dự đoán

1. n_estimators– số lượng cây mà thuật toán xây dựng trước khi lấy trung bình các dự đoán

2. max_features– số lượng tối đa các tính năng rừng ngẫu nhiên xem xét chia tách một nút

3. min_sample_leaf– xác định số lượng lá tối thiểu cần thiết để tách một nút bên trong

Theo dõi siêu tham số làm tăng tốc độ

1. n_jobs– nó báo cho động cơ biết nó được phép sử dụng bao nhiêu bộ xử lý. Nếu giá trị là 1, nó chỉ có thể sử dụng một bộ xử lý nhưng nếu giá trị là -1 thì không có giới hạn

2. random_state– kiểm soát tính ngẫu nhiên của mẫu. Mô hình sẽ luôn tạo ra các kết quả giống nhau nếu nó có một giá trị xác định của trạng thái ngẫu nhiên và nếu nó đã được cung cấp cùng một siêu tham số và cùng một dữ liệu huấn luyện

3. oob_score – OOB có nghĩa là vượt trội. Đó là một phương pháp xác thực chéo rừng ngẫu nhiên. Trong một phần ba mẫu này không được sử dụng để huấn luyện dữ liệu thay vào đó được sử dụng để đánh giá hiệu suất của nó. Những mẫu này được gọi là mẫu ngoài túi

Viết mã trong python – Random Forest

Bây giờ hãy hiểu Random Forest với sự trợ giúp của mã

1. Hãy nhập các thư viện

# Importing the required libraries
import pandas as pd, numpy as np
import matplotlib.pyplot as plt, seaborn as sns
%matplotlib inline

2. nhập tập dữ liệu

Mã Python

3. Đặt biến tính năng thành X và biến mục tiêu thành y

# Putting feature variable to X
X = df.drop('heart disease',axis=1)
# Putting response variable to y
y = df['heart disease']

4. Train-Test-Split được thực hiện

# now lets split the data into train and test
from sklearn.model_selection import train_test_split
# Splitting the data into train and test
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.7, random_state=42)
X_train.shape, X_test.shape

3. Hãy nhập RandomForestClassifier và điều chỉnh dữ liệu

from sklearn.ensemble import RandomForestClassifier
____5
%%time
classifier_rf.fit(X_train, y_train)

# checking the oob score
classifier_rf.oob_score_

4. Hãy thực hiện điều chỉnh siêu tham số cho Random Forest bằng GridSearchCV và điều chỉnh dữ liệu

rf = RandomForestClassifier(random_state=42, n_jobs=-1)
______9
# Putting feature variable to X
X = df.drop('heart disease',axis=1)
# Putting response variable to y
y = df['heart disease']
0
# Putting feature variable to X
X = df.drop('heart disease',axis=1)
# Putting response variable to y
y = df['heart disease']
1
# Putting feature variable to X
X = df.drop('heart disease',axis=1)
# Putting response variable to y
y = df['heart disease']
2

# Putting feature variable to X
X = df.drop('heart disease',axis=1)
# Putting response variable to y
y = df['heart disease']
3____14

Từ điều chỉnh siêu tham số, chúng ta có thể lấy công cụ ước tính tốt nhất như được hiển thị. Bộ tham số tốt nhất được xác định là max_depth=5, min_samples_leaf=10,n_estimators=10

5. Bây giờ hãy hình dung

# Putting feature variable to X
X = df.drop('heart disease',axis=1)
# Putting response variable to y
y = df['heart disease']
5

Làm thế nào để bạn tạo một khu rừng ngẫu nhiên trong python?

# Putting feature variable to X
X = df.drop('heart disease',axis=1)
# Putting response variable to y
y = df['heart disease']
6

Làm thế nào để bạn tạo một khu rừng ngẫu nhiên trong python?

Các cây được tạo bởi estimators_[5] và estimators_[7] là khác nhau. Vì vậy, chúng ta có thể nói rằng mỗi cây độc lập với nhau

6. Bây giờ, hãy sắp xếp dữ liệu với sự trợ giúp của tầm quan trọng của tính năng

# Putting feature variable to X
X = df.drop('heart disease',axis=1)
# Putting response variable to y
y = df['heart disease']
7____18____19

Trường hợp sử dụng

Thuật toán này được sử dụng rộng rãi trong Thương mại điện tử, ngân hàng, y tế, thị trường chứng khoán, v.v.

Ví dụ. Trong ngành Ngân hàng, nó có thể được sử dụng để tìm khách hàng nào sẽ không trả được khoản vay

Ưu điểm và nhược điểm của thuật toán rừng ngẫu nhiên

Thuận lợi

1. Nó có thể được sử dụng trong các vấn đề phân loại và hồi quy

2. Nó giải quyết vấn đề khớp quá mức vì đầu ra dựa trên biểu quyết đa số hoặc tính trung bình

3. Nó hoạt động tốt ngay cả khi dữ liệu chứa các giá trị null/thiếu

4. Mỗi cây quyết định được tạo độc lập với nhau, do đó nó thể hiện tính chất song song hóa

5. Nó rất ổn định vì các câu trả lời trung bình được đưa ra bởi một số lượng lớn cây được lấy

6. Nó duy trì tính đa dạng vì tất cả các thuộc tính không được xem xét trong khi tạo từng cây quyết định mặc dù điều đó không đúng trong mọi trường hợp

7. Nó miễn nhiễm với lời nguyền của chiều không gian. Vì mỗi cây không xem xét tất cả các thuộc tính nên không gian đặc trưng bị giảm

8. Chúng tôi không phải tách dữ liệu thành huấn luyện và kiểm tra vì sẽ luôn có 30% dữ liệu không được cây quyết định tạo ra từ bootstrap nhìn thấy

Nhược điểm

1. Rừng ngẫu nhiên rất phức tạp khi so sánh với cây quyết định nơi các quyết định có thể được đưa ra bằng cách đi theo đường đi của cây

2. Thời gian đào tạo nhiều hơn so với các mô hình khác do tính phức tạp của nó. Bất cứ khi nào nó phải đưa ra dự đoán, mỗi cây quyết định phải tạo đầu ra cho dữ liệu đầu vào đã cho

Tóm lược

Bây giờ, chúng ta có thể kết luận rằng Random Forest là một trong những kỹ thuật tốt nhất với hiệu suất cao được sử dụng rộng rãi trong các ngành công nghiệp khác nhau vì tính hiệu quả của nó. Nó có thể xử lý dữ liệu nhị phân, liên tục và phân loại

Rừng ngẫu nhiên là một lựa chọn tuyệt vời nếu bất kỳ ai muốn xây dựng mô hình nhanh chóng và hiệu quả vì một trong những điều tốt nhất về rừng ngẫu nhiên là nó có thể xử lý các giá trị bị thiếu

Nhìn chung, rừng ngẫu nhiên là một mô hình nhanh, đơn giản, linh hoạt và mạnh mẽ với một số hạn chế

Vui lòng truy cập các liên kết sau để hiểu rõ hơn

https. //www. youtube. com/watch?v=KIOeZ5cFZ50

https. //www. youtube. com/watch?v=nxFG5xdpDto

chú thích

Cảm ơn vì đã đọc

Tôi hy vọng bạn thích đọc bài viết và nâng cao kiến ​​​​thức của bạn về Random Forest

Nếu tôi chưa đề cập đến bất cứ điều gì hoặc nếu bạn muốn chia sẻ suy nghĩ của mình, vui lòng bình luận bên dưới trong phần bình luận.  

Giới thiệu về tác giả

Sruthi E R

Tôi là một người đam mê Khoa học dữ liệu, quan tâm đến phân tích và trực quan hóa dữ liệu, hiện đang theo học khóa học về khoa học dữ liệu từ IIIT-Bangalore. Tôi xuất thân từ chuyên ngành Kỹ thuật Xây dựng với 4 năm kinh nghiệm trong ngành xây dựng.  

Vui lòng liên hệ với tôi trên Linkedin

Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của Tác giả

Làm thế nào để tạo một khu rừng ngẫu nhiên?

Bước 1. Thuật toán chọn mẫu ngẫu nhiên từ tập dữ liệu được cung cấp. Bước 2. Thuật toán sẽ tạo cây quyết định cho từng mẫu được chọn. Sau đó, nó sẽ nhận được kết quả dự đoán từ mỗi cây quyết định được tạo. Bước 3. Bỏ phiếu sau đó sẽ được thực hiện cho mọi kết quả dự đoán

Rừng ngẫu nhiên trong Python là gì?

Rừng ngẫu nhiên là một Thuật toán học máy được giám sát được sử dụng rộng rãi trong các bài toán Phân loại và Hồi quy. Nó xây dựng cây quyết định trên các mẫu khác nhau và lấy đa số phiếu bầu để phân loại và tính trung bình trong trường hợp hồi quy

Làm cách nào để cài đặt bộ phân loại rừng ngẫu nhiên trong Python?

Cài đặt từ repo này. $ git clone https. //github. com/ysraell/random-forest-mc. git $ cd random-forest-mc $ pip3 cài đặt .

Làm cách nào để vẽ biểu đồ hồi quy rừng ngẫu nhiên trong Python?

Triển khai hồi quy rừng ngẫu nhiên bằng Python .
Nhập tập dữ liệu. .
tiền xử lý dữ liệu. .
Lắp hồi quy rừng ngẫu nhiên vào tập dữ liệu. .
Trực quan hóa kết quả. .
Giải thích biểu đồ trên. .
Dựng lại mô hình cho 100 cây. .
Tạo biểu đồ cho 100 cây. .
Làm lại mô hình cho 300 cây