Làm cách nào để tăng độ chính xác của mô hình cây quyết định trong Python?

Tạo các mô hình học máy là một quá trình phức tạp mà ngay cả những nhà khoa học dữ liệu giàu kinh nghiệm nhất cũng thường mắc lỗi.

Nếu bạn muốn các mô hình máy học của mình chính xác nhất có thể, bạn cần biết những cách bạn có thể cải thiện chúng

Trong bài đăng này, chúng tôi sẽ thảo luận về năm cách để cải thiện độ chính xác của các mô hình học máy của bạn

1. Xử lý các giá trị bị thiếu và ngoại lệ

Một trong những cách dễ dàng nhất để cải thiện độ chính xác của các mô hình máy học của bạn là xử lý các giá trị bị thiếu và giá trị ngoại lệ

Nếu bạn có dữ liệu thiếu giá trị hoặc chứa giá trị ngoại lai, mô hình của bạn có thể sẽ kém chính xác hơn. Điều này là do các giá trị bị thiếu và giá trị ngoại lệ có thể khiến mô hình đưa ra các giả định không chính xác về dữ liệu của bạn

Ví dụ: hãy tưởng tượng bạn có một bộ dữ liệu với các phép đo chiều cao và cân nặng của những người gần bằng nhau về độ tuổi (tôi. e. , người lớn). Nếu một trong số họ không đo được cân nặng trong khi một người khác có giá trị cân nặng cao hoặc thấp bất thường, thì mô hình của bạn sẽ đưa ra các giả định không chính xác về hai cá nhân này chỉ dựa trên chiều cao của họ.

Điều quan trọng cần lưu ý là các giá trị bị thiếu và giá trị ngoại lai có thể khiến mô hình của bạn quá khớp hoặc quá khớp

Có một số cách mà bạn có thể xử lý các giá trị bị thiếu và giá trị ngoại lệ

Bạn có thể

  • Xóa các điểm dữ liệu chứa các giá trị bị thiếu hoặc giá trị ngoại lệ khỏi tập dữ liệu đào tạo của bạn
  • Áp dụng các giá trị còn thiếu bằng cách sử dụng một kỹ thuật như k-hàng xóm gần nhất hoặc hồi quy tuyến tính
  • Sử dụng một kỹ thuật như bootstrapping để loại bỏ ảnh hưởng của dữ liệu ngoại lệ
2. Kỹ thuật tính năng

Kỹ thuật tính năng là nghệ thuật tạo ra các tính năng mới từ những tính năng hiện có của bạn

Ví dụ: bạn có thể tạo một tính năng thể hiện khoảng cách mà một người nào đó sống cách nơi làm việc của họ dựa trên hai tính năng khác. “địa chỉ nhà” và “nơi làm việc”

Kỹ thuật tính năng giúp cải thiện độ chính xác của các mô hình học máy bằng cách cho phép chúng đưa ra dự đoán chính xác hơn

Một trong những cách phổ biến nhất để tạo các tính năng mới là kết hợp nhiều tính năng hiện có thành một hoặc nhiều tính năng mới

Ví dụ: bạn có thể kết hợp “tuổi” với “cân nặng” và “chiều cao” để tạo một tính năng có tên là Chỉ số khối cơ thể (BMI). Điều này cho phép mô hình của bạn đưa ra dự đoán tốt hơn vì có ít tính năng hơn và ít tiếng ồn hơn trong mô hình của bạn

Có nhiều cách khác nhau để thiết kế các tính năng và cách tốt nhất để thực hiện thường phụ thuộc vào tập dữ liệu bạn đang làm việc

Tuy nhiên, một số mẹo có thể hữu ích bao gồm

  • Cố gắng tìm mối tương quan giữa các tính năng khác nhau và tạo những tính năng mới nắm bắt các mối quan hệ này
  • Sử dụng các phép biến đổi như phép biến đổi logarit hoặc tiêu chuẩn hóa để làm cho các tính năng của bạn dễ so sánh hơn và dễ làm việc hơn
  • Sử dụng các kỹ thuật tiền xử lý dữ liệu như trích xuất và lựa chọn tính năng để giúp bạn tìm thấy các tính năng quan trọng nhất trong tập dữ liệu của mình
3. Lựa chọn tính năng

Lựa chọn tính năng là một quy trình giúp bạn xác định các tính năng hữu ích nhất trong tập dữ liệu của mình

Mục tiêu của nó là giảm hoặc loại bỏ nhiễu và cải thiện độ chính xác của các mô hình học máy bằng cách loại bỏ thông tin dư thừa khỏi chúng (i. e. , điểm dữ liệu chỉ chứa một tính năng)

Có nhiều cách khác nhau để chọn các tính năng, nhưng tất cả đều liên quan đến việc sử dụng một số hình thức phân tích thống kê hoặc lọc ra các tính năng có điểm quan trọng thấp (i. e. , những thứ không đóng góp nhiều vào độ chính xác của mô hình của bạn)

Một số kỹ thuật phổ biến để lựa chọn tính năng bao gồm

  • Xếp hạng các tính năng dựa trên mối tương quan của chúng với các biến khác trong tập dữ liệu, sau đó loại bỏ những tính năng ít tương quan hơn các biến khác. Ví dụ: bạn có thể sử dụng Hệ số tương quan Pearson để đo lường độ mạnh của mối quan hệ giữa hai biến
  • Lọc các tính năng dựa trên điểm số quan trọng của chúng, thường được tính toán bằng một kỹ thuật như giảm độ dốc hoặc rừng ngẫu nhiên
  • Chọn một tập hợp con các tính năng có mối tương quan cao với biến mục tiêu nhưng tương quan giữa chúng thấp (i. e. , chúng không tương quan hoặc độc lập với nhau)
4. Thử nhiều thuật toán

Một sai lầm phổ biến là chỉ thử một thuật toán khi đào tạo mô hình của bạn. Mặc dù điều này có thể hiệu quả nếu bạn có nhiều dữ liệu và nó đủ dễ dàng để thuật toán học hỏi, nhưng hầu hết các bộ dữ liệu trong thế giới thực đều phức tạp hơn thế nhiều

Có khả năng sẽ có một số tính năng trong tập dữ liệu của bạn không đóng góp nhiều vào độ chính xác của mô hình và việc xóa chúng sẽ chỉ khiến mọi thứ trở nên tồi tệ hơn

Đây là nơi sử dụng nhiều thuật toán có thể hữu ích

Bằng cách thử các thuật toán khác nhau, bạn có thể xác định thuật toán nào hoạt động tốt nhất cho dữ liệu của mình, sau đó sử dụng thông tin đó để cải thiện độ chính xác của mô hình

Có nhiều loại thuật toán học máy khác nhau, vì vậy có thể khó biết loại nào phù hợp với dữ liệu của bạn. Một nơi tốt để bắt đầu là sử dụng xác thực chéo với nhiều thuật toán trên cùng một tập dữ liệu và sau đó so sánh điểm chính xác của chúng với nhau

Nếu bạn đang làm việc với Python, scikit-learning có một danh sách hay về các mô hình học máy phổ biến mà bạn có thể thử trên dữ liệu của mình, bao gồm

  • hồi quy tuyến tính
  • Hỗ trợ máy Vector
  • Cây quyết định
  • rừng ngẫu nhiên
  • Mạng thần kinh

người mẫu tập thể

Một cách tiếp cận khác là sử dụng phương pháp tập hợp, kết hợp hai hoặc nhiều thuật toán lại với nhau thành một mô hình. Các nhóm thường chính xác hơn bất kỳ thuật toán riêng lẻ nào vì chúng tận dụng điểm mạnh của từng thuật toán và bù đắp cho điểm yếu của chúng

Nói cách khác, nếu bạn kết hợp nhiều học sinh yếu (i. e. , các mô hình tự hoạt động kém) thành một nhóm, bạn có thể có được một người học mạnh mẽ hơn (i. e. , một mô hình hoạt động tốt với tư cách cá nhân)

5. Điều chỉnh siêu tham số

Siêu tham số là các tham số trong các mô hình học máy xác định cách chúng hoạt động

Các tham số này có thể bao gồm những thứ như số lớp trong mạng lưới thần kinh sâu hoặc số lượng cây nên có trong một mô hình tập hợp

Thông thường, bạn cần phải tự điều chỉnh các siêu tham số này vì chúng không được đặt tự động khi bạn đào tạo mô hình của mình

Đây là nơi xác thực chéo có thể hữu ích. Bằng cách chia dữ liệu của bạn thành các tập huấn luyện và tập kiểm tra, bạn có thể thử các tổ hợp siêu tham số khác nhau trên tập huấn luyện và sau đó xem chúng hoạt động tốt như thế nào trên tập kiểm tra. Điều này giúp bạn tìm ra sự kết hợp tốt nhất của các siêu tham số cho mô hình của bạn

Một cách khác để thực hiện việc này là sử dụng tìm kiếm dạng lưới, đây là phương pháp tìm kiếm sự kết hợp tối ưu của các siêu đường kính cho dữ liệu của bạn

Tìm kiếm dạng lưới hoạt động bằng cách thử mọi tổ hợp tham số có thể có theo thứ tự cho đến khi tìm thấy một tham số mang lại cho bạn hiệu suất tốt nhất trên chỉ số của bạn (e. g. , sự chính xác). Sau đó, bạn có thể sử dụng tổ hợp các siêu đường kính đó để huấn luyện mô hình của mình

Bạn có thể sử dụng Grid Search thông qua thư viện scikit-learn trong Python

Phần kết luận

Có nhiều cách để cải thiện độ chính xác của các mô hình máy học của bạn. Bằng cách sử dụng các phương pháp như kỹ thuật tính năng, điều chỉnh siêu tham số và thử nhiều thuật toán, bạn sẽ tạo cho mình một sự thay đổi lớn để tạo ra một mô hình thực sự chính xác

Điều quan trọng nhất là tiếp tục thử nghiệm và học hỏi từ những sai lầm của bạn. Bạn càng biết nhiều về dữ liệu của mình và các thuật toán bạn đang sử dụng, các mô hình của bạn sẽ hoạt động tốt hơn

Tham gia danh sách email của tôi với hơn 5 nghìn người để nhận “Tập sách hoàn chỉnh về Python cho khoa học dữ liệu Cheat Sheet” MIỄN PHÍ

Làm thế nào cây quyết định có thể cải thiện độ chính xác của dự đoán?

Độ chính xác dự đoán của cây quyết định có thể được cải thiện hơn nữa bằng cách sử dụng thuật toán Tăng cường . Ý tưởng cơ bản đằng sau việc tăng cường là chuyển đổi nhiều người học yếu kém thành một người học giỏi duy nhất.

Làm cách nào để tìm độ chính xác của hồi quy cây quyết định trong Python?

Độ chính xác được tính toán bằng cách so sánh giá trị tập kiểm tra thực tế và giá trị dự đoán . Có vẻ như thuật toán cây quyết định của chúng ta có độ chính xác là 67. 53%. Một giá trị cao này thường được coi là tốt.

Tại sao độ chính xác của cây quyết định thấp?

Tách trong cây quyết định . Tuy nhiên, các cây có số lượng phần tách lớn dễ bị khớp quá mức dẫn đến độ chính xác kém .