Random Forests là một thuật toán học có giám sát có thể được sử dụng cho việc phân loại và hồi quy dữ liệu. Thuật toán này đưa ra dự đoán dựa trên cây quyết định tạo ra từ các mẫu dữ liệu được chọn ngẫu nhiên. Kết quả cuối cùng được quyết định bằng cách bỏ phiếu từ các cây quyết định. Random Forests cung cấp cũng như tìm hiểu tầm quan trọng của các tính năng trong dữ liệu. Thuật toán này có nhiều ứng dụng, chẳng hạn như đề xuất sản phẩm, phân loại hình ảnh và dự đoán bệnh tật.
Cách hoạt động của thuật toán Random Forests
Để hiểu cách thuật toán Random Forests hoạt động, hãy tưởng tượng bạn muốn chọn điểm đến cho một chuyến đi du lịch. Bạn có thể tìm hiểu trực tuyến, đọc các đánh giá và hỏi ý kiến của bạn bè. Khi đã thu thập đủ thông tin, bạn sẽ có một danh sách các địa điểm được đề xuất. Sau đó, bạn yêu cầu bạn bè bình chọn để chọn ra địa điểm tốt nhất. Địa điểm nhận được số phiếu bầu cao nhất sẽ là lựa chọn cuối cùng cho chuyến đi của bạn.
Trong quá trình trên, có hai phần. Đầu tiên, bạn thu thập ý kiến từ bạn bè và tạo danh sách các địa điểm đề xuất. Điều này tương tự như việc sử dụng thuật toán cây quyết định. Mỗi người trong số bạn bè chọn các địa điểm mà họ đã ghé thăm. Phần thứ hai, sau khi thu thập các đề xuất, bạn thực hiện quy trình bỏ phiếu để chọn ra địa điểm tốt nhất từ danh sách các đề xuất. Toàn bộ quá trình này được gọi là thuật toán rừng ngẫu nhiên.
Thuật toán Random Forests trong Python
Trong Python, bạn có thể sử dụng thư viện Scikit-learn để xây dựng mô hình Random Forests. Ví dụ dưới đây cho thấy cách xây dựng một mô hình phân loại trên bộ dữ liệu hoa iris:
# Import thư viện Scikit-learn from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn import metrics # Load bộ dữ liệu iris từ Scikit-learn iris = datasets.load_iris() # Chia bộ dữ liệu thành tập huấn luyện và tập kiểm tra X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3) # Xây dựng mô hình Random Forests clf = RandomForestClassifier(n_estimators=100) clf.fit(X_train, y_train) # Dự đoán trên tập kiểm tra y_pred = clf.predict(X_test) # Đánh giá độ chính xác của mô hình print("Độ chính xác:", metrics.accuracy_score(y_test, y_pred))
Trong ví dụ trên, chúng ta đã tải bộ dữ liệu iris và chia thành tập huấn luyện và tập kiểm tra. Sau đó, chúng ta xây dựng một mô hình Random Forests với 100 cây quyết định và đánh giá độ chính xác của mô hình trên tập kiểm tra.
Tính quan trọng của các tính năng
Một trong những ưu điểm của Random Forests là khả năng xác định tính quan trọng của các tính năng trong tập dữ liệu. Bạn có thể sử dụng thuộc tính feature_importances_
của mô hình để xem điểm quan trọng của từng tính năng trong dự đoán. Dưới đây là ví dụ:
import pandas as pd # Tạo một Series cho tính quan trọng của các tính năng feature_imp = pd.Series(clf.feature_importances_, index=iris.feature_names).sort_values(ascending=False) # Hiển thị biểu đồ tính quan trọng của các tính năng sns.barplot(x=feature_imp, y=feature_imp.index) plt.xlabel('Điểm quan trọng') plt.ylabel('Tính năng') plt.title("Biểu đồ tính quan trọng của các tính năng") plt.show()
Trong ví dụ trên, chúng ta đã tạo một Series cho tính quan trọng của các tính năng trong mô hình Random Forests và hiển thị chúng dưới dạng biểu đồ cột.
Kết luận
Trên đây là một số thông tin về thuật toán Random Forests và cách sử dụng nó trong Python. Random Forests là một thuật toán mạnh mẽ có thể được sử dụng cho việc phân loại và hồi quy dữ liệu. Nó cũng cung cấp thông tin về tầm quan trọng của các tính năng trong dữ liệu.