Cách cải thiện độ chính xác của cây quyết định trong python

Một trong những thuật toán được giám sát dễ thương và đáng yêu nhất là Thuật toán cây quyết định. Nó có thể được sử dụng cho cả mục đích phân loại cũng như hồi quy

Như trong bài viết trước về cách thức hoạt động của thuật toán cây quyết định, chúng tôi đã giới thiệu đầy đủ về các khía cạnh hoạt động của thuật toán cây quyết định. Trong bài viết này, chúng ta sẽ xây dựng một trình phân loại cây quyết định trong python bằng cách sử dụng các gói học máy scikit-learning cho tập dữ liệu tỷ lệ cân bằng

Cách tóm tắt giải quyết bài viết này là để giải thích cách chúng tôi có thể triển khai trình phân loại Cây quyết định trên tập dữ liệu thang đo Cân bằng. Chúng tôi sẽ lập trình trình phân loại của mình bằng ngôn ngữ Python và sẽ sử dụng thư viện sklearn của nó

Cách chúng tôi có thể triển khai trình phân loại Cây quyết định trong Python với Scikit-learning Nhấp để Tweet

Điều kiện tiên quyết của thuật toán cây quyết định

Trước khi bắt đầu xây dựng trình phân loại cây quyết định trong Python, vui lòng trang bị đủ kiến ​​thức về cách thức hoạt động của thuật toán cây quyết định. Nếu bạn không có hiểu biết cơ bản về cách thuật toán Cây quyết định. Bạn có thể dành chút thời gian cho bài viết về cách thức hoạt động của Thuật toán cây quyết định

Sau khi chúng tôi hoàn thành việc lập mô hình phân loại Cây quyết định, chúng tôi sẽ sử dụng mô hình đã đào tạo để dự đoán xem cân bằng nghiêng về bên phải hay nghiêng về bên trái hay cân bằng. Điều tuyệt vời khi sử dụng  Sklearn là. Nó cung cấp chức năng để triển khai các thuật toán học máy trong một vài dòng mã

Trước khi bắt đầu, hãy xem nhanh các giả định mà chúng ta đưa ra khi tạo cây quyết định và mã giả của thuật toán cây quyết định

Các giả định chúng ta đưa ra khi sử dụng cây Quyết định

  • Ban đầu, toàn bộ tập huấn luyện được coi là gốc
  • Giá trị tính năng được ưa thích để được phân loại. Nếu các giá trị là liên tục thì chúng được rời rạc hóa trước khi xây dựng mô hình
  • Các bản ghi được phân phối theo cách đệ quy trên cơ sở các giá trị thuộc tính
  • Thứ tự đặt thuộc tính là gốc hoặc nút bên trong của cây được thực hiện bằng cách sử dụng một số phương pháp thống kê

Thuật toán cây quyết định Mã giả

  1. Đặt thuộc tính tốt nhất của tập dữ liệu của chúng tôi ở gốc của cây
  2. Chia tập huấn luyện thành các tập con. Các tập hợp con phải được tạo theo cách sao cho mỗi tập hợp con chứa dữ liệu có cùng giá trị cho một thuộc tính
  3. Lặp lại bước 1 và bước 2 trên mỗi tập hợp con cho đến khi bạn tìm thấy các nút lá trong tất cả các nhánh của cây

Trong khi xây dựng bộ phân loại cây quyết định, chúng ta có thể cải thiện độ chính xác của nó bằng cách điều chỉnh nó bằng các tham số khác nhau. Tuy nhiên, việc điều chỉnh này nên được thực hiện cẩn thận vì làm như vậy thuật toán của chúng ta có thể khớp quá mức với dữ liệu đào tạo của chúng ta và cuối cùng nó sẽ xây dựng mô hình tổng quát hóa kém

Cài đặt thư viện Sklearn

Thư viện sklearn của Python chứa rất nhiều mô-đun giúp xây dựng các mô hình dự đoán. Nó chứa các công cụ để phân tách dữ liệu, tiền xử lý, lựa chọn tính năng, điều chỉnh và các thuật toán học tập có giám sát – không giám sát, v.v. Nó tương tự như thư viện Caret trong lập trình R

Để sử dụng nó, trước tiên chúng ta cần cài đặt nó. Cách tốt nhất để cài đặt các thư viện khoa học dữ liệu và các phần phụ thuộc của nó là cài đặt gói Anaconda. Bạn cũng có thể chỉ cài đặt các thư viện Python máy học phổ biến nhất

Thư viện Sklearn cung cấp cho chúng tôi quyền truy cập trực tiếp vào một mô-đun khác để đào tạo mô hình của chúng tôi với các thuật toán học máy khác nhau như trình phân loại hàng xóm gần nhất K, trình phân loại máy vectơ hỗ trợ, cây quyết định, hồi quy tuyến tính, v.v.

Mô tả tập dữ liệu thang cân bằng

Tập dữ liệu Thang đo Cân bằng bao gồm 5 thuộc tính, 4 là thuộc tính tính năng và 1 là thuộc tính mục tiêu. Chúng tôi sẽ cố gắng xây dựng bộ phân loại để dự đoán thuộc tính Lớp. Chỉ số của thuộc tính đích là số 1

1. 3 [L, B, R]
2. Trọng lượng bên trái. 5 [1, 2, 3, 4, 5]
3. Khoảng cách trái. 5 [1, 2, 3, 4, 5]
4. Đúng trọng lượng. 5 [1, 2, 3, 4, 5]
5. Khoảng cách phải. 5 [1, 2, 3, 4, 5]

Tên biến chỉ mụcGiá trị biến1. Tên lớp[Biến mục tiêu]“R”. đầu cân ở bên phải
“L”. đầu cân ở bên trái
“B”. cân bằng cân được cân bằng2. Trọng lượng bên trái1, 2, 3, 4, 53. Khoảng cách trái1, 2, 3, 4, 54. Trọng lượng bên phải1, 2, 3, 4, 55. Khoảng cách phải1, 2, 3, 4, 5

Bảng trên hiển thị tất cả các chi tiết của dữ liệu

Báo cáo vấn đề cân bằng quy mô

Vấn đề chúng tôi sẽ giải quyết là Lập mô hình bộ phân loại để đánh giá hướng của đầu cân bằng

Triển khai trình phân loại Cây quyết định trong Python với Thư viện sklearn

Cây Quyết định được lập mô hình sẽ so sánh các chỉ số của bản ghi mới với các bản ghi trước đó [dữ liệu đào tạo] đã phân loại chính xác hướng đầu của thang cân bằng

Các gói Python được sử dụng

  • NumPy
    • NumPy là một mô-đun Python số. Nó cung cấp các hàm toán học nhanh
    • Numpy cung cấp cấu trúc dữ liệu mạnh mẽ để tính toán hiệu quả các mảng và ma trận nhiều chiều
    • Chúng tôi đã sử dụng numpy để đọc các tệp dữ liệu thành các mảng numpy và thao tác dữ liệu
  • gấu trúc
    • Cung cấp Đối tượng DataFrame để thao tác dữ liệu
    • Cung cấp khả năng đọc và ghi dữ liệu b/w các tệp khác nhau
    • DataFrames có thể chứa các loại dữ liệu khác nhau của mảng nhiều chiều
  • Scikit-Tìm hiểu
    • Đó là một thư viện máy học. Nó bao gồm các thuật toán học máy khác nhau
    • Chúng tôi đang sử dụng nó
      • tàu_test_split,
      • Trình phân loại cây quyết định,
      • thuật toán precision_score

Nếu bạn chưa thiết lập thiết lập máy học trong hệ thống của mình, các bài viết dưới đây sẽ hữu ích

Thiết lập máy học Python trong Ubuntu

Thiết lập môi trường ảo máy học Python

 

Nhập thư viện máy học Python

Phần này liên quan đến việc nhập tất cả các thư viện chúng tôi sẽ sử dụng. Chúng tôi đang nhập các mô-đun numpy và sklearn train_test_split, DecisionTreeClassifier & precision_score

Gói Python bắt buộc

con trăn

1

2

3

4

5

6

nhập numpy as np

nhập gấu trúc dưới dạng pd

từ sklearn. cross_validation nhập train_test_split

từ sklearn. cây nhập DecisionTreeClassifier

từ sklearn. chỉ số nhập accuracy_score

từ sklearn nhập cây

Mảng Numpy và khung dữ liệu gấu trúc sẽ giúp chúng ta thao tác dữ liệu. Như đã thảo luận ở trên, sklearn là một thư viện máy học. Phương thức train_test_split[] của cross_validation sẽ giúp chúng ta tách dữ liệu thành tập huấn luyện và tập kiểm tra

Mô-đun cây sẽ được sử dụng để xây dựng Trình phân loại cây quyết định. Mô-đun Accutacy_score sẽ được sử dụng để tính toán số liệu về độ chính xác từ các biến lớp được dự đoán

Nhập dữ liệu

Để nhập dữ liệu và thao tác với dữ liệu, chúng tôi sẽ sử dụng pandas dataframes. Trước hết, chúng ta cần tải xuống bộ dữ liệu. Bạn có thể tải xuống bộ dữ liệu từ đây. Tất cả các giá trị dữ liệu được phân tách bằng dấu phẩy

Sau khi tải xuống tệp dữ liệu, chúng tôi sẽ sử dụng phương thức Pandas read_csv[] để nhập dữ liệu vào khung dữ liệu của gấu trúc. Vì dữ liệu của chúng tôi được phân tách bằng dấu phẩy “,” và không có tiêu đề trong dữ liệu của chúng tôi nên chúng tôi sẽ đặt giá trị của thông số tiêu đề là “Không” và giá trị của thông số sep là  “,”

Đang tải tập dữ liệu

con trăn

1

2

3

balance_data = pd. read_csv[

'https. //lưu trữ. ics. uci. edu/ml/machine-learning-database/balance-scale/balance-scale. dữ liệu',

                            sep= ',', header= None]

Chúng tôi đang lưu dữ liệu của mình vào khung dữ liệu “balance_data”

Để kiểm tra độ dài và kích thước của khung dữ liệu của chúng tôi, chúng tôi có thể sử dụng phương thức len[] & “. hình dạng"

Hình dạng tập dữ liệu

con trăn

1

2

in "Độ dài tập dữ liệu. ", len[balance_data]

in "Hình dạng tập dữ liệu. ", balance_data. hình dạng

đầu ra

Đầu ra hình dạng tập dữ liệu

con trăn

1

2

Tập dữ liệu Độ dài.   625

Tập dữ liệu Hình dạng.   [625, 5

Chủ Đề