Làm thế nào để bạn hình dung một khu rừng ngẫu nhiên trong python?
Trong hướng dẫn này, bạn sẽ tìm hiểu rừng ngẫu nhiên trong Scikit-Learn là gì và cách sử dụng chúng để phân loại dữ liệu. Cây quyết định có thể là cách cực kỳ hữu ích và trực quan để phân loại dữ liệu. Tuy nhiên, chúng cũng có thể dễ bị quá khớp, dẫn đến hiệu suất trên dữ liệu mới. Một cách dễ dàng để giảm trang bị thừa là sử dụng thuật toán học máy có tên là rừng ngẫu nhiên Show
Đến cuối hướng dẫn này, bạn sẽ học được
Mục lục Tóm tắt về Trình phân loại cây quyết địnhTrình phân loại cây quyết định là một dạng học máy có giám sát, dự đoán một biến mục tiêu bằng cách học các quyết định đơn giản được suy ra từ các tính năng của dữ liệu. Tất cả các quyết định đều được chia thành các quyết định nhị phân (có hoặc không) cho đến khi tính toán nhãn. Hãy xem hình ảnh bên dưới để biết cây quyết định mà bạn đã tạo trong bài học trước Trong cây này, bạn có thể thấy rằng ở nút đầu tiên, mô hình nhìn vào chiều dài cánh hoa. Nếu chiều dài tính bằng centimet nhỏ hơn hoặc bằng 2. 5 cm, dữ liệu di chuyển vào nút khác. Ở bên trái, một nhãn được đạt và cây con kết thúc. Ở bên phải, quá trình phân tách dữ liệu tiếp tục, lần này nhìn vào chiều rộng cánh hoa Khi xây dựng thuật toán cây quyết định, bạn có thể đặt nhiều tham số khác nhau, bao gồm độ sâu của cây. Một cây sâu hơn có thể có nghĩa là hiệu suất cao hơn cho dữ liệu huấn luyện, nhưng nó có thể dẫn đến trang bị quá mức. Điều này có nghĩa là mô hình hoạt động rất tốt với dữ liệu huấn luyện, nhưng có thể không hoạt động tốt với dữ liệu thử nghiệm Đây là nơi phân loại rừng ngẫu nhiên phát huy tác dụng. Trong phần tiếp theo, bạn sẽ tìm hiểu những thuật toán phân loại này là gì và cách chúng giúp bạn giải quyết vấn đề khớp quá mức mô hình của bạn Tổng quan về phân loại rừng ngẫu nhiênTrình phân loại rừng ngẫu nhiên được gọi là thuật toán tập hợp. Lý do cho điều này là nó tận dụng nhiều phiên bản của thuật toán khác cùng một lúc để tìm ra kết quả. Hãy nhớ rằng, cây quyết định dễ bị quá khớp. Tuy nhiên, bạn có thể loại bỏ vấn đề này bằng cách đơn giản là trồng thêm cây xanh Ý tưởng đằng sau là một khu rừng ngẫu nhiên là việc xử lý tự động tạo ra nhiều cây quyết định hơn. Mỗi cây nhận được một phiếu bầu về cách phân loại. Một số phiếu bầu này sẽ được trang bị quá nhiều và không chính xác. Tuy nhiên, bằng cách tạo ra hàng trăm cây, sự phân loại được nhiều cây nhất trả về rất có thể là chính xác nhất Hình ảnh dưới đây cho thấy năm cây quyết định khác nhau được tạo. Mỗi cây trong số này nhận được một phiếu bầu và phân loại có nhiều phiếu bầu nhất là cây được trả lại Tuy nhiên, trong nhiều trường hợp, có hơn 5 cây được tạo ra. Ví dụ, trong ví dụ bạn sẽ thực hiện bên dưới, bạn sẽ tạo một khu rừng ngẫu nhiên với một trăm cây Đang tải tập dữ liệu mẫuHãy bắt đầu bằng cách tải một tập dữ liệu mẫu. Trong ví dụ này, bạn sẽ tìm hiểu cách tạo bộ phân loại rừng ngẫu nhiên bằng bộ dữ liệu chim cánh cụt là một phần của thư viện Seaborn. Bộ dữ liệu cung cấp thông tin về ba loài chim cánh cụt khác nhau, chim cánh cụt Adelie, Gentoo và Chinstrap. Hình ảnh dưới đây cho thấy một con chim cánh cụt Adelie Hãy tải tập dữ liệu để xem bạn đang làm việc với cái gì
Bộ dữ liệu cung cấp một số cột dữ liệu, một số trong số đó là số và một số khác là phân loại. Cuối cùng, bạn sẽ muốn dự đoán một con chim cánh cụt 4 bằng cách sử dụng các tính năng khác nhau trong bộ dữ liệu. Chúng ta hãy xem một số cột này
Các mô hình học máy có một số hạn chế
Bằng cách xem xét thông tin được trả về bởi phương thức 5, bạn có thể thấy rằng cả hai vấn đề này đều tồn tại trong tập dữ liệu. Để có thể sử dụng tập dữ liệu này để phân loại, trước tiên bạn cần tìm cách xử lý dữ liệu bị thiếu và phân loại. Đây chính xác là những gì bạn sẽ học trong hai phần tiếp theo của hướng dẫnXử lý dữ liệu bị thiếu trong Scikit-LearnTrước tiên, hãy xem dữ liệu bị thiếu. Nhiều mô hình học máy không thể xử lý dữ liệu bị thiếu. Trên thực tế, việc cố gắng xây dựng một cây quyết định với dữ liệu bị thiếu (và nói rộng ra là một khu rừng ngẫu nhiên) dẫn đến việc tăng 6. Vì điều này, chúng ta cần tìm ra cách xử lý dữ liệu bị thiếuMặc dù phương thức 5 cho chúng ta biết một chút về dữ liệu không null, nhưng điều này thường khó diễn giải hơn. Hãy tính số lượng giá trị bị thiếu trong mỗi cột bằng cách xâu chuỗi các phương thức 8 và 9________số 8_______Khi xử lý các giá trị bị thiếu, bạn có hai tùy chọn chính
Phần lớn, phần lớn dữ liệu ở đó. Scikit-Learn đi kèm với một lớp, 0, cho phép bạn chuyển qua một chiến lược để quy các giá trị còn thiếu. Ví dụ, chúng ta có thể coi bất kỳ giá trị còn thiếu nào là giá trị trung bình của cột đó. Hãy xem làm thế nào điều này có thể được thực hiện bằng Scikit-Learn
Hãy khám phá những gì chúng tôi đã làm ở đây
Việc tính toán dữ liệu phân loại có thể phức tạp hơn rất nhiều, đặc biệt là khi xử lý các bản phân phối nhị phân. Vì điều này, chúng tôi sẽ loại bỏ bất kỳ bản ghi nào bị thiếu 0
Bây giờ, chúng tôi có thể đảm bảo không có thành phần dữ liệu nào bị thiếu trong DataFrame bằng cách chạy lại mã trước đó của chúng tôi
Trong phần tiếp theo, bạn sẽ học cách làm việc với dữ liệu phân loại trong Scikit-Learn Xử lý dữ liệu phân loại trong Scikit-LearnTương tự như việc xử lý các giá trị bị thiếu, các mô hình máy học thường chỉ có thể hoạt động với dữ liệu số. Do đó, chúng tôi cần chuyển đổi dữ liệu phân loại của mình thành dữ liệu số. Trước tiên hãy giải quyết biến giới tính. Vì biến giới tính là nhị phân (nam hoặc nữ), chúng ta có thể gán giá trị là 1 hoặc 0, tùy thuộc vào giới tính. Điều này có thể được thực hiện dễ dàng với phương pháp Chuỗi 1
Trong đoạn mã trên, bạn đã chuyển một từ điển vào phương thức 1. Từ điển chứa một ánh xạ nhị phân cho 3 hoặc 4Giá trị phân loại khác là tính năng 5. Hãy xem các giá trị duy nhất trong cột này là gì
Trong trường hợp của tính năng 5, có ba giá trị. Vì điều này, chúng tôi không thể đơn giản chuyển vào ánh xạ nhị phân. Tương tự, việc chuyển các giá trị của 7 cũng sẽ gây ra sự cố, bởi vì các giá trị không thực sự bao hàm một hệ thống phân cấp. Sự khác biệt giữa 0 và 2 sẽ khuếch đại bất kỳ quyết định nào mà khu rừng ngẫu nhiên của chúng tôi sẽ đưa raMột cách đơn giản để giải quyết vấn đề này là sử dụng quy trình được gọi là mã hóa một lần nóng. Các giá trị duy nhất của cột đó được sử dụng để tạo các cột có giá trị 0 hoặc 1 được gán. Hình ảnh dưới đây cho thấy quá trình này trông như thế nào Scikit-Learn đi kèm với một lớp hữu ích để giúp bạn mã hóa nhanh dữ liệu phân loại của mình. Lớp này được gọi là 8 và là một phần của mô-đun 9. Hãy xem cách bạn có thể sử dụng lớp này để mã hóa một lần tính năng 5
Hãy phá vỡ những gì chúng tôi đã làm ở đây
Bây giờ bạn đã xử lý dữ liệu bị thiếu và phân loại, các cột ban đầu có thể bị xóa khỏi DataFrame. Hãy làm điều này ngay bây giờ
Trong phần tiếp theo, bạn sẽ tìm hiểu cách sử dụng DataFrame mới được làm sạch này để xây dựng thuật toán rừng ngẫu nhiên nhằm dự đoán loài chim cánh cụt Tạo khu rừng ngẫu nhiên đầu tiên của bạn. Phân loại chim cánh cụtBây giờ, hãy đi sâu vào cách tạo bộ phân loại rừng ngẫu nhiên bằng Scikit-Learn trong Python. Hãy nhớ rằng, một khu rừng ngẫu nhiên được tạo thành từ các cây quyết định. Nhưng điều đó không có nghĩa là bạn cần thực sự tạo bất kỳ cây quyết định nào. Scikit-Learn có thể xử lý việc này bằng cách sử dụng lớp 8 từ mô-đun 9. Hãy bắt đầu bằng cách nhập các lớp cần thiết 0Hãy cùng khám phá những gì chúng tôi đã làm trong đoạn mã trên
Bây giờ là lúc khớp dữ liệu của chúng tôi với mô hình. Chúng ta có thể thực hiện việc này bằng cách sử dụng phương pháp có tên thích hợp là 8, phương pháp này lấy các tính năng và nhãn đào tạo làm đầu vào. Từ đó, chúng tôi có thể đưa ra dự đoán về dữ liệu thử nghiệm của mình bằng phương pháp 6, bằng cách chuyển vào các tính năng thử nghiệm 1Đánh giá hiệu suất của một khu rừng ngẫu nhiên trong Scikit-LearnBởi vì chúng tôi đã có một mảng chứa các nhãn thực, chúng tôi có thể dễ dàng so sánh các dự đoán với mảng 7. Scikit-learning đi kèm với hàm 8 trả về tỷ lệ chính xác. Hãy xem cách nó hoạt động 2Điều này cho thấy mô hình của chúng tôi đang hoạt động với độ chính xác 97% Trực quan hóa cây quyết định rừng ngẫu nhiên trong Scikit-LearnMột trong những khó khăn mà bạn có thể gặp phải trong hành trình học máy của mình là hộp đen học máy. Vì các thư viện như Scikit-Learn giúp việc tạo một khu rừng ngẫu nhiên trở nên đơn giản, nên bạn nên xem xét một số chi tiết về mô hình của mình Một cách để làm điều này là thực sự phân tích các mẫu mà các cây quyết định tạo nên mô hình trông như thế nào. Có thể không thực tế nếu xem xét tất cả 100, nhưng hãy xem xét một vài trong số chúng 3Trong đoạn mã trên, chúng tôi đã nhập thư viện 9 và hàm 0. Hàm 1 yêu cầu chúng tôi cung cấp một cái cây để vẽ đồ thị. Ở đây, chúng ta có thể truy cập vào một cây từ khu rừng ngẫu nhiên của mình bằng cách sử dụng thuộc tính 2 chứa tất cả các cây. 3 là các cột trong DataFrame tính năng của chúng tôi, 0. 5 là loài độc nhất của chúng taHai hình ảnh bên dưới cho thấy cây thứ nhất ( 6) và cây thứ mười hai ( 7)Hình ảnh dưới đây cho thấy cây quyết định thứ mười hai trong khu rừng ngẫu nhiên. Cây này sử dụng một tính năng hoàn toàn khác làm nút đầu tiên của nó Kết luận và tóm tắtTrong hướng dẫn này, bạn đã học cách sử dụng trình phân loại rừng ngẫu nhiên trong Scikit-Learn bằng Python. Phần bên dưới cung cấp bản tóm tắt những gì bạn đã học 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 Làm cách nào để trực quan hóa cây quyết định từ một khu rừng ngẫu nhiên trong Python bằng Scikit learn?Cách Điều chỉnh Mô hình Cây Quyết định bằng Scikit-Learn . Nhập thư viện Tải tập dữ liệu Tách dữ liệu thành các tập huấn luyện và kiểm tra Mô hình lập mô hình 4 bước Scikit-learning Xuất mô hình của bạn sang tệp chấm Cài đặt và sử dụng Graphviz Điều chỉnh mô hình rừng ngẫu nhiên bằng Scikit-Learn Trực quan hóa công cụ ước tính của bạn Chúng ta có thể vẽ sơ đồ rừng ngẫu nhiên không?Biểu đồ cây
. Vẽ đồ thị cho chúng về cơ bản linh cảm về cách một mô hình dự đoán giá trị của biến mục tiêu bằng cách học các quy tắc quyết định đơn giản được suy ra từ các tính năng dữ liệu. Mọi quyết định tại một nút được thực hiện bằng cách phân loại bằng tính năng duy nhất. Random forest works on several decision tree. Plotting them gives a hunch basically how a model predicts the value of a target variable by learning simple decision rules inferred from the data features. Every decision at a node is made by classification using single feature. |