Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

DECISION FREE

RANDOM FOREST

1. Random Forest: Là một thành viên trong họ thuật toán Decision Free, tư
tưởng chính là xây dựng nhiều câu quyết định từ dataset, mỗi cây dự đoán 1
kết quả và kết quả nào được nhiều cây quyết định dự đoán thì là kết quả cuối
cùng.Phương pháp thống kê mô hình hóa bằng máy này cải thiện hiệu quả,
độ chính xác và hiệu suất của khai phá dữ liệu.

2. So sánh Random Forest và cây quyết định:


- Random Forest:

+ Ensemble learning: kết hợp nhiều cây quyết định.


+ Giảm thiểu overfitting.

+ Hiệu suất tổng quát tốt hơn.

+ Xử lý nhiễu tốt hơn.

+ Sử dụng nhiều cây quyết định để phân loại, tính hồi quy.

+ Hiệu quả hơn so với thuật toán phân loại thông thường.

+ Tìm ra thuộc tính quan trọng và loại bỏ thuộc tính không có tác dụng.

- Decision Free:

+ Học máy đơn lẻ.

+ Dễ bị overfitting.

+ Hiệu suất kém hơn Random Forest.

3. Mô tả hoạt động của phương pháp Random Forest:

4.1. Lựa chọn cây quyết định (decision tree learning)

Cây quyết định là một phương pháp phổ biến cho các nhiệm vụ mô hình hóa
bằng máy(machine learning). Các cây quyết định được lựa chọn với các tiêu chí
phù hợp để đáp ứng các yêu cầu nhiệm vụ phục vụ khai phá dữ liệu. Các cây quyết
định được thiết kế với xu hướng nhận biết được cả những yếu tố bất thường, phù
hợp với các mẫu có độ lệch nhỏ nhưng phương sai lớn.

4.2. Thuật toán mô hình bằng máy

Thuật toán lấy mẫu cho phương pháp Random forest ứng dụng cho các phương
pháp sử dụng thuật toán mô tả thống kê để ước lượng số lượng từ một mẫu dữ liệu
(bagging). Ví dụ như một tập mẫu X = x1, ..., xn với các câu trả lời Y= y1, ..., yn,
lấy giá trị trung bình (B lần), chọn một mẫu ngẫu nhiên từ bộ mẫu phù hợp với
câyquyết định:Lặp b = 1,..., B:n mẫu từ giá trị tọa độ (X, Y); gọi là (Xb, Yb);lớp dữ
liệu hay kết quả hồi quy fb của biến Xb,Yb;Sau khi lấy mẫu, các phép tính toán
cho các mẫu là ẩn số x’ có thể được thực hiện bằng cáchlấy trung bình các giá trị
nội suy từ tất cả các cây hồi quy riêng lẻ của biến x’ hoặc lấy giá trị từ đa số của
các mẫu trong cây quyết định:

Phương pháp thống kê này ước lượng một giá trị trung bình từ số lượng mẫu dữ
liệu. Chúng tacần rất nhiều mẫu từ tập dữ liệu, tính giá trị trung bình. Sau đó, tính
trung bình tất cả các giá trị trung bình của các tập dữ liệu trong các cây quyết định
thành phần để tính toán được tốt hơn giá trị trung bình thật. Kết quả dẫn đến hiệu
suấtmô hình được tính toán sẽ tốt hơn vì nó làm giảmphương sai của mô hình, mà
không làm tăng độlệch. Điều này có nghĩa là khi thiết kế nhiều câyquyết định trong
một tập các mẫu được lấy sẽđưa ra sự tương quan tốt hơn của các cây quyếtđịnh
với nhau.

4.3. Từ thuật toán mô hình bằng máy đến Random forest

Các bước 4.1 và 4.2 đã mô tả cách thực hiện thuật toán thống kê để ước lượng giá
trị trung bình từ số lượng các cây quyết định của tập mẫu dữ liệu(bagging).
Phương pháp random forest khác cơ bản so với phương pháp thống kêtrên là chúng
sử dụng thuật toán xử lý theo cáccây quyết định (tree learning algorithm). Tại
mỗiphần tử ở trong quy trình này được gán ngẫunhiên các tập con thuộc tính của
các mẫu. Lý do thực hiện quy trình này là sự tương quan của cáccây quyết định
thành phần trong một thuật toán thống kê để ước lượng giá trị trung bình từ số
lượng các cây quyết định thông thường: nếu một hoặc một vài thuộc tính là các yếu
tố dự báo mạnh cho biến đầu ra, các tính năng này sẽ được chọn trong nhiều cây B,
chúng sẽ trở nên tương quan. Random forest có thể sắp xếp sự quan trọng của các
biến trong các bài toán phân loại hay hồi quy. Các phương pháp sắp xếp có thể
được môtả trong các nghiên cứu của Breiman. Bước đầu tiên để xác định các biến
quan trọng trong 1 tập dữ liệu là làm phù hợp phương pháp random forest với tập
dữ liệu:

Trong quá trình này, các lỗi dự báo xảy ra(out-of-bag error) tại mỗi điểm xử lý
được ghi lại và tính giá trị trung bình. Để xác định được tính quan trọng của đối
tượng thứ i sau khi lấy mẫu, các giá trị của mẫu i được hoán vị trong tập mẫu và
các lỗi dự báo được tính toán lại trong tập dữ liệu. Độ quan trọng của đối tượng
được tính bằng điểm, các điểm được tính toán bằng cáchlấy trung bình của độ
chênh lệch giữa các lỗi dự báo trước và sau khi hoán vị. Các đối tượng cógiá trị lớn
được xếp quan trọng hơn các điểm có giá trị nhỏ.

4. Nguyên lý hoạt động:


- Random Forest là thuật toán học có giám sát, sử dụng ensemble learning để
cải thiện hiệu suất.
- Xây dựng nhiều cây quyết định từ tập dữ liệu ngẫu nhiên với các thuộc tính
ngẫu nhiên.

- Dự đoán cuối cùng được tổng hợp từ các cây quyết định (mode cho phân
loại, trung bình cho hồi quy).

5. Phương pháp đánh giá hiệu quả:

- Accuracy: tỷ lệ dự đoán đúng / tổng dự đoán.

- Precision: tỷ lệ dự đoán đúng / dự đoán thuộc lớp đó.


- Recall: tỷ lệ dự đoán đúng dương tính / thực tế dương tính.

- F1-score: trung bình điều hòa của precision và recall.

- Confusion Matrix: bảng biểu diễn kết quả dự đoán.

- Out-of-Bag Error (OOB Error): đánh giá hiệu suất mô hình trên dữ liệu mới.

6. Ứng dụng:

- Phân loại (Classification): thư rác, sản phẩm, loại cây,...

- Hồi quy (Regression): dự đoán giá nhà, tín dụng khách hàng,...

Ví dụ về rừng ngẫu nhiên và cây quyết định:

1. Ví dụ về rừng ngẫu nhiên


Giả sử bạn có một tập dữ liệu với các thuộc tính sau:
- Tuổi (Age): 25, 35, 45, 20, 30, 50
- Thu nhập (Income): 50,000, 80,000, 150,000, 25,000, 40,000, 60,000
- Sở thích (Preference): Thể thao, Du lịch, Mua sắm, Thư giãn, Xem phim, Âm
nhạc
- Mua xe (Buy Car): Yes, No, Yes, No, No, Yes
- Bạn muốn xây dựng một mô hình để dự đoán liệu một khách hàng mới có mua xe
hay không dựa trên tuổi, thu nhập và sở thích của họ.
Bước 1: Xây dựng rừng ngẫu nhiên
- Bước này bao gồm việc chọn một số cây quyết định để tạo thành rừng ngẫu
nhiên. Mỗi cây quyết định sẽ được huấn luyện trên một tập con ngẫu nhiên của dữ
liệu.
- Ví dụ: Bạn có thể chọn xây dựng 100 cây quyết định trong rừng ngẫu nhiên
của mình.
Bước 2: Huấn luyện cây quyết định
- Mỗi cây quyết định trong rừng ngẫu nhiên được huấn luyện trên một tập
con ngẫu nhiên của dữ liệu.
- Ví dụ: Cây quyết định đầu tiên có thể được huấn luyện trên các mẫu (Age:
35, Income: 80,000, Preference: Thể thao, Buy Car: Yes), (Age: 20, Income:
25,000, Preference: Du lịch, Buy Car: No), (Age: 50, Income: 60,000, Preference:
Mua sắm, Buy Car: Yes), v.v.
Bước 3: Dự đoán
- Khi có một khách hàng mới với thông tin tuổi, thu nhập và sở thích, chúng
ta đưa thông tin này vào mỗi cây quyết định trong rừng ngẫu nhiên và lấy kết quả
dự đoán từ mỗi cây.
- Ví dụ: Với một khách hàng mới có tuổi 40, thu nhập 100,000 và sở thích là
Du lịch, chúng ta đưa thông tin này vào mỗi cây và thu được các dự đoán: Yes, No,
Yes, No, Yes, v.v.
Bước 4: Bầu chọn
- Cuối cùng, chúng ta thực hiện bầu chọn trên các kết quả dự đoán từ các cây
quyết định để đưa ra dự đoán cuối cùng.
- Ví dụ: Nếu trong 100 cây quyết định có 60 cây dự đoán "Yes" và 40 cây dự
đoán "No" cho khách hàng mới, thì kết quả cuối cùng sẽ là "Yes".
2. Ví dụ về cây quyết định:
Giả sử bạn có một tập dữ liệu với các thuộc tính sau:
- Tuổi (Age): 25, 35, 45, 20, 30, 50
- Thu nhập (Income): 50,000, 80,000, 150,000, 25,000, 40,000, 60,000
- Sở thích (Preference): Thể thao, Du lịch, Mua sắm, Thư giãn, Xem phim, Âm
nhạc
- Mua xe (Buy Car): Yes, No, Yes, No, No, Yes
- Bạn muốn xây dựng một cây quyết định để dự đoán liệu một khách hàng mới có
mua xe hay không dựa trên tuổi, thu nhập và sở thích của họ.
Bước 1: Xác định thuộc tính quan trọng
- Trước tiên, chúng ta cần xác định thuộc tính quan trọng nhất để xây dựng
cây quyết định. Thông thường, thuộc tính quan trọng được xác định bằng cách tính
toán độ tương quan giữa thuộc tính và kết quả.
- Ví dụ: Trong tập dữ liệu này, tuổi có thể là một thuộc tính quan trọng vì nó
có mối quan hệ mạnh với việc mua hoặc không mua xe.
Bước 2: Xây dựng cây quyết định
- Bước này bao gồm việc xây dựng cây quyết định bằng cách chia tập dữ
liệu ban đầu thành các phân lớp dựa trên thuộc tính quan trọng.
- Ví dụ: Chúng ta có thể bắt đầu bằng việc chia tập dữ liệu thành hai nhánh
dựa trên tuổi. Một nhánh sẽ có các mẫu có tuổi <= 30 và nhánh còn lại sẽ có các
mẫu có tuổi > 30.
Bước 3: Xây dựng các nút con
- Tiếp theo, chúng ta tiếp tục xây dựng các nút con cho mỗi nhánh bằng cách
chọn thuộc tính quan trọng tiếp theo và chia tập dữ liệu thành các phân lớp dựa
trên thuộc tính đó.
- Ví dụ: Trong nhánh có tuổi <= 30, chúng ta có thể chọn thuộc tính thu nhập
để chia tập dữ liệu thành các phân lớp dựa trên mức thu nhập của khách hàng.
Bước 4: Dự đoán
- Khi cây quyết định được xây dựng, chúng ta có thể sử dụng nó để dự đoán
việc mua hoặc không mua một chiếc xe cho khách hàng mới bằng cách đi từ gốc
của cây đến một lá cây dựa trên các giá trị thuộc tính của khách hàng.
- Ví dụ: Nếu khách hàng mới có tuổi 40 và thu nhập 100,000, chúng ta có
thThành lập cây quyết định để dự đoán liệu khách hàng mới có mua xe hay không
có thể như sau:

Tuổi <= 30?


/ \
Yes No
/ \
Thu nhập <= 60,000? Sở thích = Thể thao?
/ \ / \
Yes No Yes No
/ \ / \
Mua xe: Yes Mua xe: No Mua xe: Yes Mua xe: No

Trên cây quyết định này, các nút đầu tiên được chia dựa trên thuộc tính "Tuổi".
Nếu khách hàng có tuổi <= 30, chúng ta tiếp tục đi qua nút "Yes", sau đó chia dựa
trên thuộc tính "Thu nhập". Nếu khách hàng có thu nhập <= 60,000, cây quyết định
dự đoán "Mua xe: Yes". Nếu không, cây quyết định dự đoán "Mua xe: No".
Nếu khách hàng có tuổi > 30, chúng ta tiếp tục đi qua nút "No", sau đó chia dựa
trên thuộc tính "Sở thích". Nếu khách hàng có sở thích là "Thể thao", cây quyết
định dự đoán "Mua xe: Yes". Nếu không, cây quyết định dự đoán "Mua xe: No".

You might also like