K lần xác thực chéo python

Một trong những điều thú vị và thách thức nhất về hackathons khoa học dữ liệu là đạt điểm cao trên cả bảng xếp hạng công khai và riêng tư. Tôi đã theo dõi chặt chẽ hàng loạt cuộc thi lập trình khoa học dữ liệu và nhận thấy một xu hướng thú vị. Xu hướng này dựa trên thứ hạng của người tham gia trên bảng xếp hạng công khai và riêng tư

Một điều nổi bật là những người tham gia xếp hạng cao hơn trên bảng xếp hạng công khai sẽ mất vị trí sau khi thứ hạng của họ được xác thực trên bảng xếp hạng riêng tư. Một số thậm chí không đạt được thứ hạng trong top 20 trên bảng xếp hạng cá nhân [hình ảnh bên dưới]

Cuối cùng, tôi đã phát hiện ra hiện tượng mang lại những gợn sóng như vậy trên bảng xếp hạng

Hãy đoán. Điều gì có thể là lý do có thể cho sự thay đổi cao trong các cấp bậc này?

Trong bài viết này, chúng tôi sẽ xem xét các lý do có thể cho việc này. Chúng ta cũng sẽ xem xét khái niệm xác thực chéo và một vài phương pháp phổ biến để thực hiện nó

Ghi chú. Bài viết này dành cho mọi nhà khoa học dữ liệu khao khát muốn cải thiện hiệu suất của mình trong các cuộc thi khoa học dữ liệu. Mỗi kỹ thuật được theo sau bởi các đoạn mã từ cả R và Python

Mục lục

  1. Tại sao các mô hình mất ổn định?
  2. Xác thực chéo là gì?
  3. Một vài phương pháp phổ biến được sử dụng để xác thực chéo
    • Phương pháp tiếp cận bộ xác thực
    • Bỏ qua một lần xác thực chéo [LOOCV]
    • xác thực chéo k-fold
    • Xác thực chéo k-fold phân tầng
    • Xác nhận đối thủ
    • Xác thực chéo cho chuỗi thời gian
    • Kỹ thuật xác thực chéo tùy chỉnh
  4. Làm cách nào để đo lường phương sai sai lệch của mô hình?

Tại sao các mô hình mất ổn định?

Hãy hiểu điều này bằng cách sử dụng ảnh chụp nhanh bên dưới minh họa sự phù hợp của các mô hình khác nhau

Ở đây, chúng tôi đang cố tìm mối quan hệ giữa kích thước và giá cả. Để đạt được điều này, chúng tôi đã thực hiện các bước sau

  1. Chúng tôi đã thiết lập mối quan hệ bằng cách sử dụng một phương trình tuyến tính mà các đồ thị đã được hiển thị. Biểu đồ đầu tiên có lỗi cao từ các điểm dữ liệu huấn luyện. Do đó, điều này sẽ không hoạt động tốt trên bảng xếp hạng công khai hoặc riêng tư. Đây là một ví dụ về “Underfitting”. Trong trường hợp này, mô hình của chúng tôi không nắm bắt được xu hướng cơ bản của dữ liệu
  2. Trong biểu đồ thứ hai, chúng tôi chỉ tìm thấy mối quan hệ đúng đắn giữa giá cả và kích thước, tôi. e. , lỗi đào tạo thấp và khái quát hóa mối quan hệ
  3. Trong cốt truyện thứ ba, chúng tôi đã tìm thấy một mối quan hệ gần như không có lỗi đào tạo. Điều này là do mối quan hệ được phát triển bằng cách xem xét từng độ lệch trong điểm dữ liệu [bao gồm cả nhiễu], i. e. , mô hình quá nhạy cảm và nắm bắt các mẫu ngẫu nhiên chỉ có trong tập dữ liệu hiện tại. Đây là một ví dụ về “Overfitting”. Trong mối quan hệ này, có thể có sự chênh lệch lớn giữa bảng xếp hạng công khai và riêng tư

Một phương pháp phổ biến trong các cuộc thi khoa học dữ liệu là lặp lại nhiều mô hình khác nhau để tìm ra một mô hình hoạt động tốt hơn. Tuy nhiên, thật khó để phân biệt liệu sự cải thiện về điểm số này là do chúng tôi đang nắm bắt mối quan hệ tốt hơn hay chúng tôi chỉ điều chỉnh dữ liệu quá mức. Để tìm câu trả lời đúng cho câu hỏi này, chúng tôi sử dụng các kỹ thuật xác nhận. Phương pháp này giúp chúng tôi đạt được các mối quan hệ tổng quát hơn

Xác thực chéo là gì?

Xác thực chéo là một kỹ thuật liên quan đến việc dự trữ một mẫu cụ thể của tập dữ liệu mà bạn không đào tạo mô hình trên đó. Sau đó, bạn kiểm tra mô hình của mình trên mẫu này trước khi hoàn thiện nó

Dưới đây là các bước liên quan đến xác thực chéo

  1. Bạn đặt trước một tập dữ liệu mẫu
  2. Huấn luyện mô hình bằng cách sử dụng phần còn lại của tập dữ liệu
  3. Sử dụng mẫu dự trữ của bộ kiểm tra [xác nhận]. Điều này sẽ giúp bạn đánh giá hiệu quả hoạt động của mô hình. Nếu mô hình của bạn mang lại kết quả khả quan trên dữ liệu xác thực, hãy tiếp tục với mô hình hiện tại. nó đá

Một vài phương pháp phổ biến được sử dụng cho Xác thực chéo

Có nhiều phương pháp khác nhau để thực hiện xác thực chéo. Tôi đã thảo luận một vài trong số họ trong phần này

Cách tiếp cận bộ xác thực

Theo cách tiếp cận này, chúng tôi dành 50% tập dữ liệu để xác thực và 50% còn lại để đào tạo mô hình. Tuy nhiên, một nhược điểm lớn của phương pháp này là vì chúng tôi chỉ đào tạo một mô hình trên 50% tập dữ liệu, nên có khả năng rất lớn là chúng tôi có thể bỏ lỡ một số thông tin thú vị về dữ liệu, điều này sẽ dẫn đến sai số cao hơn.

Mã Python

train, validation = train_test_split[data, test_size=0.50, random_state = 5]

Mã R

set.seed[101] # Set Seed so that same sample can be reproduced in future also

# Now Selecting 50% of data as sample from total 'n' rows of the data
sample 

Chủ Đề