Xử lý rò rỉ dữ liệu

Nút nguồn: 1124030

Xử lý rò rỉ dữ liệu

Rò rỉ mục tiêu và rò rỉ dữ liệu là những vấn đề thách thức trong học máy. Hãy chuẩn bị để nhận ra và tránh những vấn đề có thể gây rắc rối này.


By Susan Currie Sivek, Tiến sĩ., Nhà báo khoa học dữ liệu cao cấp

Hình

vẫn bị bắt qua GIPHY

Bạn đang học cho kỳ thi sắp tới. Bài kiểm tra là cuốn sách mở nên bạn sẽ sử dụng tài liệu tham khảo khi ôn tập và bạn đang làm rất tốt.

Nhưng khi bạn đến vào ngày thi, đột nhiên bạn được thông báo rằng bài kiểm tra không còn mở nữa. Mọi chuyện không suôn sẻ lắm.

qua GIPHY

Điều này nghe có vẻ giống như giấc mơ lo âu của những học sinh đạt thành tích quá cao trong học tập, nhưng nó tương tự với những gì đang xảy ra khi rò rỉ mục tiêu xảy ra trong mô hình học máy. Giả sử bạn xây dựng một mô hình nhằm dự đoán một kết quả nhất định và huấn luyện nó bằng thông tin giúp mô hình đó đưa ra dự đoán. Mô hình đó có thể hoạt động tốt… có lẽ tốt một cách đáng ngờ. Nhưng nếu một số thông tin đó không có sẵn cho mô hình tại thời điểm thực tế mà mô hình phải đưa ra dự đoán thì hiệu suất thực của nó sẽ thấp hơn. Đó là kết quả của việc rò rỉ mục tiêu - giấc mơ đầy lo lắng của một nhà khoa học dữ liệu!

Gần đây tôi đã nghe một trong những chuyên gia Alterx nội bộ của chúng tôi gọi rò rỉ mục tiêu là vấn đề khó khăn nhất trong học máy. Nhưng điều đó xảy ra như thế nào và bạn có thể tránh vấn đề này với mô hình của mình bằng cách nào? Và nó liên quan thế nào đến vấn đề “rò rỉ dữ liệu” nói chung?

qua GIPHY

Rò rỉ mục tiêu

 
Rò rỉ mục tiêu xảy ra khi một mô hình được đào tạo với dữ liệu mà nó sẽ không có sẵn tại thời điểm dự đoán. Mô hình hoạt động tốt khi được đào tạo và thử nghiệm ban đầu, nhưng khi đưa vào sản xuất, việc thiếu dữ liệu hiện đang thiếu khiến mô hình hoạt động kém. Cũng giống như bạn học bằng sách rồi làm bài kiểm tra mà không có sách, mô hình thiếu thông tin hữu ích giúp cải thiện hiệu suất của nó trong quá trình đào tạo.

Dưới đây là một số tình huống thể hiện sự rò rỉ mục tiêu:

  • Bao gồm cả kết quả được dự đoán dưới dạng một tính năng trong tập dữ liệu được sử dụng để huấn luyện mô hình (điều này nghe có vẻ ngớ ngẩn, nhưng nó có thể xảy ra; ví dụ: sao chép và đổi tên trường biến mục tiêu của bạn, sau đó quên mất sự trùng lặp đó, có thể vô tình dẫn bạn đến sử dụng phiên bản bổ sung của mục tiêu làm công cụ dự đoán);
  • Bao gồm một tính năng thể hiện số năm sinh viên theo học tại một trường đại học trong mô hình dự đoán liệu sinh viên đó có chấp nhận lời đề nghị nhập học vào trường đại học đó hay không;
  • Bao gồm tính năng biểu thị số tháng đăng ký trong mô hình dự đoán liệu khách hàng tiềm năng có đăng ký hay không;
  • Bao gồm một tính năng thể hiện liệu yêu cầu bảo hiểm liên quan đến hỏa hoạn có được chấp thuận hay không trong mô hình dự đoán hỏa hoạn ở những ngôi nhà có loại vách ngăn nhất định; Và
  • Bao gồm thông tin từ các bộ dữ liệu khác giới thiệu các chi tiết không có sẵn cho mô hình tại thời điểm dự đoán.

Trong tất cả các trường hợp này, thông tin không thể biết được tại thời điểm dự đoán đã được đưa vào khi xây dựng mô hình. Chúng tôi không thể biết khách hàng sẽ đăng ký trong bao nhiêu tháng khi chúng tôi vẫn đang cố gắng tìm hiểu xem liệu ngay từ đầu họ có đăng ký hay không. (Chúng ta có thể xây dựng một mô hình có thể cố gắng dự đoán số tháng mà một người đăng ký sẽ đăng ký không? Chắc chắn rồi. Nhưng chúng tôi dựa trên dữ liệu của mình về những người đăng ký đã biết chứ không phải toàn bộ nhóm những người có thể đăng ký hoặc không thể đăng ký.) Tương tự, nếu chúng tôi cho một mô hình biết rằng những người sống trong những ngôi nhà được xây bằng vật liệu nhất định đã đưa ra yêu cầu bảo hiểm hỏa hoạn, thì chúng tôi sẽ đưa kiến ​​thức từ sau khi đám cháy xảy ra vào mô hình của chúng tôi để cố gắng dự đoán các vụ hỏa hoạn.

Ngay cả những chi tiết có vẻ vô hại như kích thước tệp hoặc dấu thời gian cũng có thể vô tình trở thành proxy cho biến mục tiêu. Ví dụ: cuộc thi Kaggle năm 2013 phải tạm dừng và tập dữ liệu được cải tiến vì loại vấn đề này. Nhóm đã phát hiện ra (và siêng năng báo cáo) vụ rò rỉ đã giành được vị trí dẫn đầu bảng xếp hạng trong một thời gian ngắn!

Hậu quả của việc rò rỉ dữ liệu là quá phù hợp với dữ liệu đào tạo của bạn. Mô hình của bạn có thể dự đoán rất tốt với kiến ​​thức bổ sung đó — xuất sắc trong bài kiểm tra mở sách — nhưng sẽ không tốt lắm khi thông tin đó không được cung cấp vào thời điểm dự đoán.

qua GIPHY

Ô nhiễm thử nghiệm tàu ​​hỏa

 
Một dạng rò rỉ dữ liệu khác đôi khi được gọi là “ô nhiễm trong thử nghiệm tàu”. Vấn đề này có thể không liên quan cụ thể đến biến mục tiêu của bạn nhưng nó ảnh hưởng đến hiệu suất của mô hình. Đó là một cách khác mà chúng ta có thể vô tình thêm kiến ​​thức về dữ liệu trong tương lai vào dữ liệu đào tạo của mình, dẫn đến các số liệu hiệu suất trông đẹp hơn so với khi chúng được sản xuất. (Nhân tiện, nếu bạn muốn đọc thêm về chủ đề này, hãy lưu ý rằng “rò rỉ dữ liệu” cũng là một thuật ngữ đôi khi được những người an ninh mạng sử dụng để nói về vi phạm dữ liệu.)

Một cách phổ biến xảy ra ô nhiễm trong thử nghiệm đào tạo là xử lý trước toàn bộ tập dữ liệu của bạn trước khi chia nó thành các tập huấn luyện và kiểm tra hoặc trước khi sử dụng xác thực chéo.

Ví dụ, chuẩn hóa dữ liệu yêu cầu sử dụng phạm vi số của từng biến trong tập dữ liệu. Việc chuẩn hóa toàn bộ tập dữ liệu sẽ cung cấp “kiến thức” đó cho mô hình khi nó được đánh giá. Tuy nhiên, một mô hình được đưa vào sản xuất sẽ không có kiến ​​thức đó và do đó sẽ không hoạt động tốt khi được sử dụng để dự đoán. Tương tự, việc chuẩn hóa toàn bộ tập dữ liệu sẽ cung cấp thông tin không chính xác cho mô hình về giá trị trung bình và độ lệch chuẩn của toàn bộ tập dữ liệu. Việc đưa ra các giá trị bị thiếu cũng sử dụng số liệu thống kê tóm tắt về tập dữ liệu của bạn (ví dụ: trung vị, trung bình).

Tất cả những manh mối này có thể giúp mô hình hoạt động tốt hơn trên dữ liệu đào tạo và kiểm tra của bạn so với khi nó được đưa vào dữ liệu hoàn toàn mới. Bài viết này cung cấp thông tin khám phá chuyên sâu về loại rò rỉ dữ liệu này, bao gồm cả mã để chứng minh.

Một vấn đề khác có thể xuất hiện nếu bạn đang sử dụng xác nhận chéo k-Fold để đánh giá mô hình của bạn. Miễn là tập dữ liệu của bạn chỉ bao gồm một quan sát từ mỗi cá nhân/nguồn, loại rò rỉ này sẽ không phải là vấn đề đối với bạn. Tuy nhiên, nếu bạn có nhiều quan sát (tức là các hàng dữ liệu) từ mỗi người hoặc nguồn trong tập dữ liệu của mình thì tất cả những quan sát đó từ cùng một nguồn cần phải được nhóm lại với nhau khi các tập hợp con hoặc “tập hợp” dữ liệu của bạn được tạo để đào tạo và thử nghiệm mô hình.

Ví dụ: bạn có thể sử dụng dữ liệu huấn luyện từ người A để dự đoán kết quả cho dữ liệu thử nghiệm từ người A, nếu quan sát từ người A được đưa vào cả nhóm huấn luyện và nhóm thử nghiệm. Mô hình dường như sẽ hoạt động tốt hơn trên tập kiểm tra - lại bao gồm cả người A - bởi vì nó đã biết điều gì đó về người A từ tập huấn luyện. Nhưng trong quá trình sản xuất, nó sẽ không có được lợi thế đó khi tiếp xúc trước đó. Để biết thêm chi tiết về vấn đề này (đôi khi được gọi là “rò rỉ nhóm”), hãy xem bài viết này.

qua GIPHY

Xử lý rò rỉ dữ liệu

 
Khi vòi nước nhỏ giọt trong nhà bạn, bạn có thể nhận biết điều đó qua âm thanh và vũng nước. Nhưng những loại rò rỉ này có thể khó phát hiện. Bạn vẫn có thể thực hiện các biện pháp bảo trì và sửa chữa phòng ngừa để giải quyết thách thức này.

Hiệu suất mô hình tốt bất thường có thể là dấu hiệu của sự rò rỉ. Nếu mô hình của bạn hoạt động rất tốt, đáng kinh ngạc, hãy chống lại sự cám dỗ vỗ về bản thân và vận chuyển nó. Hiệu suất đó có thể là kết quả của việc trang bị quá mức cho giống vườn, nhưng nó cũng có thể phản ánh mục tiêu hoặc sự rò rỉ dữ liệu.

Để cố gắng ngăn chặn rò rỉ dữ liệu ngay từ đầu, bạn có thể thực hiện kỹ lưỡng phân tích dữ liệu khám phá (EDA) và tìm kiếm các đặc điểm có mối tương quan đặc biệt cao với biến kết quả của bạn. Cần xem xét kỹ các mối quan hệ đó để đảm bảo không có khả năng rò rỉ nếu các tính năng có mối tương quan cao được sử dụng cùng nhau trong mô hình. Việc đánh giá này có thể gặp khó khăn nếu bạn có tập dữ liệu nhiều chiều với nhiều tính năng, vì vậy việc sử dụng một công cụ như Công cụ tương quan Pearson trong Alterx Designer và việc lọc và/hoặc trực quan hóa đầu ra của nó có thể hữu ích.

Để tránh làm ô nhiễm quá trình kiểm tra huấn luyện, hãy đảm bảo chia dữ liệu của bạn thành các tập huấn luyện/kiểm tra/nắm giữ trước khi áp dụng bất kỳ phép biến đổi nào chẳng hạn như chuẩn hóa, sau đó huấn luyện mô hình trên tập huấn luyện. Tiếp theo bằng cách áp dụng các phép biến đổi cho tập kiểm tra/nắm giữ với cùng tham số được áp dụng cho tập huấn luyện, sau đó kiểm tra hiệu suất mô hình của bạn.

qua GIPHY

Ngoài ra, hãy đảm bảo bạn hiểu đầy đủ tất cả các tính năng trong tập dữ liệu của mình. Ví dụ Kaggle này cho thấy một tính năng có tên là “chi tiêu” trong tập dữ liệu phê duyệt ứng dụng thẻ tín dụng có thể gây ra rò rỉ mục tiêu như thế nào nếu được sử dụng trong mô hình để dự đoán các ứng dụng được phê duyệt. “Chi tiêu” như một tên tính năng có thể có nhiều nghĩa, nhưng trong trường hợp này, nó đề cập đến số tiền người dùng thẻ tín dụng đã chi tiêu trên thẻ của họ. Tính năng đó ngụ ý rằng chúng thực sự đã được phê duyệt cho thẻ và thông báo dự đoán phê duyệt của mô hình một cách không phù hợp, vì thông tin chi tiêu sẽ không có sẵn tại thời điểm dự đoán.

Cuối cùng, việc kiểm tra tầm quan trọng tương đối của các tính năng của bạn và xem xét các công cụ diễn giải khác có thể giúp bạn phát hiện rò rỉ. Trong ví dụ về phê duyệt đơn đăng ký thẻ tín dụng ở trên, “chi tiêu” có thể trông giống như một tính năng thực sự quan trọng trong việc dự đoán về việc phê duyệt thẻ tín dụng. Nếu nghi ngờ, bạn có thể thử xóa một tính năng để xem hiệu suất của mô hình thay đổi như thế nào, sau đó xác định xem mô hình có đột nhiên hoạt động ở mức thực tế hơn hay không.

qua GIPHY

Chống rò rỉ mô hình của bạn

 
Tôi hy vọng phần tổng quan này đã cung cấp cho bạn một số kỹ năng sửa ống nước mới để giúp bạn tránh những tình huống rò rỉ này! Với EDA cẩn thận và kiến ​​thức kỹ lưỡng về tập dữ liệu của bạn, cũng như thiết lập tiền xử lý và xác thực chéo chính xác, bạn sẽ có thể giữ cho các mục tiêu của mình được quản lý tốt và tập dữ liệu của bạn không bị nhiễm bẩn.

Đề Nghị Đọc

  • Hỏi nhà khoa học dữ liệu: Rò rỉ dữ liệu
  • Rò rỉ dữ liệu trong học máy
  • Rò rỉ mục tiêu trong ML

Ban đầu được công bố trên Blog khoa học dữ liệu cộng đồng Alterx.

 
Tiểu sử: Susan Currie Sivek, Tiến sĩ. là nhà báo khoa học dữ liệu cấp cao của Cộng đồng Alterx, nơi cô khám phá các khái niệm khoa học dữ liệu với khán giả toàn cầu. Cô cũng là người dẫn chương trình Bộ trộn Khoa học Dữ liệu tệp âm thanh. Nền tảng của cô ấy về học thuật và khoa học xã hội cho thấy cách tiếp cận của cô ấy để điều tra dữ liệu và truyền đạt những ý tưởng phức tạp - với một chút sáng tạo từ quá trình đào tạo báo chí của cô ấy.

Nguyên. Đăng lại với sự cho phép.

Liên quan:

Nguồn: https://www.kdnuggets.com/2021/10/dealing-data-leakage.html

Dấu thời gian:

Thêm từ Xe đẩy