Trong bài viết này, tôi sẽ trình bày một số kỹ thuật resampling để xử lý dữ liệu không cân bằng. Do đó giả sử người đọc có một số kiến thức liên quan đến vấn đề phân loại nhị phân.
Trong bài viết này, tôi sẽ trình bày một số kỹ thuật resampling để xử lý dữ liệu không cân bằng. Do đó giả sử người đọc có một số kiến thức liên quan đến vấn đề phân loại nhị phân.
Ngày nay, bất kỳ học viên học máy nào làm việc với các vấn đề phân loại nhị phân đều phải gặp tình huống điển hình này của tập dữ liệu không cân bằng. Đây là một kịch bản điển hình được thấy trong nhiều vấn đề kinh doanh hợp lệ như phát hiện gian lận, lọc thư rác, phát hiện bệnh hiếm gặp, phát hiện lỗi phần cứng, v.v. Mất cân bằng lớp là một tình huống phát sinh khi chúng ta phân bổ không đồng đều các lớp trong một tập dữ liệu, tức là không có. của điểm dữ liệu trong lớp phủ định (lớp đa số) rất lớn so với điểm dữ liệu của lớp tích cực (lớp thiểu số).
Giới thiệu về SMOTE
Nói chung, lớp thiểu số / tích cực là lớp được quan tâm và chúng tôi đặt mục tiêu đạt được kết quả tốt nhất trong lớp này. Nếu dữ liệu mất cân bằng không được xử lý trước, thì điều này sẽ làm giảm hiệu suất của mô hình bộ phân loại. Hầu hết các dự đoán sẽ tương ứng với lớp đa số và coi các đặc trưng của lớp thiểu số là nhiễu trong dữ liệu và bỏ qua chúng. Điều này sẽ dẫn đến sự sai lệch cao trong mô hình.
Nghịch lý độ chính xác
Giả sử, bạn đang giải quyết vấn đề phát hiện gian lận dựa trên bảo hiểm y tế. Trong những vấn đề như vậy, chúng tôi thường nhận thấy rằng trong 100 yêu cầu bảo hiểm, 99 yêu cầu trong số đó là không gian lận và 1 là gian lận. Vì vậy, mô hình phân loại nhị phân không cần phải là một mô hình phức tạp để dự đoán tất cả các kết quả là 0 nghĩa là không gian lận và đạt được độ chính xác cao là 99%. Rõ ràng, trong những trường hợp phân phối lớp bị lệch như vậy, số liệu về độ chính xác sẽ bị sai lệch và không được ưu tiên.
Xử lý dữ liệu mất cân bằng
Resampling dữ liệu là một trong những cách tiếp cận được ưa thích nhất để đối phó với tập dữ liệu không cân bằng. Nói chung, có hai loại phương pháp cho việc này:
- Undersampling
- Oversampling
Trong hầu hết các trường hợp, lấy mẫu quá mức được ưu tiên kỹ thuật lấy mẫu dưới. Lý do là, trong việc lấy mẫu dưới đây, chúng tôi có xu hướng xóa các phiên bản khỏi dữ liệu có thể mang một số thông tin quan trọng. Trong bài viết này, tôi đặc biệt đề cập đến một số kỹ thuật lấy mẫu quá mức tăng dữ liệu đặc biệt: SMOTE và các đối tác liên quan của nó.
SMOTE(Synthetic Minority Oversampling Technique)
SMOTE là một kỹ thuật sinh mẫu trong đó các mẫu tổng hợp được tạo ra cho lớp thiểu số. Thuật toán này giúp khắc phục vấn đề overfitting do lấy mẫu quá mức ngẫu nhiên. Nó tập trung vào không gian đặc trưng để tạo ra các trường hợp mới với sự trợ giúp của phép nội suy giữa các trường hợp tích cực nằm với nhau.
Cách thức hoạt động:
Lúc đầu, tổng số không có. của các quan sát lấy mẫu quá mức, N được thiết lập. Nói chung, nó được chọn sao cho phân phối lớp nhị phân là 1: 1. Nhưng điều đó có thể được điều chỉnh dựa trên nhu cầu. Sau đó, quá trình lặp bắt đầu bằng cách chọn ngẫu nhiên một cá thể lớp tích cực.
Tiếp theo, KNN’s (theo mặc định là 5) cho trường hợp đó được lấy. Cuối cùng, N trong số K cá thể này được chọn để nội suy các cá thể tổng hợp mới. Để làm điều đó, sử dụng bất kỳ số liệu khoảng cách nào, sự khác biệt về khoảng cách giữa vectơ đối tượng và các vùng lân cận của nó sẽ được tính toán.
Bây giờ, sự khác biệt này được nhân với bất kỳ giá trị ngẫu nhiên nào trong (0,1] và được thêm vào vectơ đặc trưng trước đó. Điều này được biểu diễn bằng hình ảnh bên dưới:
Mã Python cho thuật toán SMOTE
Mặc dù thuật toán này khá hữu ích, nhưng nó có một số nhược điểm đi kèm với nó.
- Các thể hiện tổng hợp được tạo ra theo cùng một hướng, tức là được nối với nhau bằng một đường nhân tạo các thể hiện đường chéo của nó. Điều này đến lượt nó làm phức tạp bề mặt quyết định được tạo ra bởi một số thuật toán phân loại.
- SMOTE có xu hướng tạo ra số không lớn. của các điểm dữ liệu nhiễu trong không gian đối tượng.
Xem thêm Data science
ADASYN: Phương pháp tiếp cận lấy mẫu tổng hợp thích ứng
ADASYN là một dạng tổng quát của thuật toán SMOTE. Thuật toán này cũng nhằm mục đích làm mẫu quá mức cho lớp thiểu số bằng cách tạo ra các thể hiện tổng hợp cho nó. Nhưng sự khác biệt ở đây là nó xem xét sự phân bố mật độ, ri là yếu tố quyết định không. của các phiên bản tổng hợp được tạo cho các mẫu khó tìm hiểu. Do đó, nó giúp thay đổi một cách thích ứng các ranh giới quyết định dựa trên các mẫu khó học. Đây là điểm khác biệt lớn so với SMOTE.
Cách thức hoạt động
Từ tập dữ liệu, tổng số không. phần lớn N– và thiểu số N + được bắt giữ tương ứng. Sau đó, chúng tôi đặt trước giá trị ngưỡng, dth cho mức độ mất cân bằng lớp tối đa. Tổng số không. của các mẫu tổng hợp được tạo ra, G = (N– – N +) x β. Ở đây, β = (N + / N–).
Đối với mọi mẫu thiểu số xi, KNN’s thu được bằng cách sử dụng khoảng cách Euclide, và tỷ lệ ri được tính là Δi / k và tiếp tục được chuẩn hóa dưới dạng rx <= ri / ∑ rᵢ.
Sau đó, tổng số mẫu tổng hợp cho mỗi xi sẽ là, gi = rx x G. Bây giờ chúng ta lặp lại từ 1 đến gi để tạo ra các mẫu giống như chúng ta đã làm trong SMOTE.
Sơ đồ dưới đây thể hiện quy trình trên:
Mã Python cho thuật toán ADASYN:
Xem thêm Phương pháp resampling
Kết hợp: Liên kết SMOTE + Tomek
Kỹ thuật lai ghép bao gồm việc kết hợp cả kỹ thuật lấy mẫu dưới và lấy mẫu quá mức. Điều này được thực hiện để tối ưu hóa hiệu suất của các mô hình phân loại cho các mẫu được tạo như một phần của các kỹ thuật này.
SMOTE + TOMEK là một kỹ thuật kết hợp nhằm mục đích làm sạch các điểm dữ liệu chồng chéo cho mỗi lớp được phân phối trong không gian mẫu. Sau khi SMOTE thực hiện việc lấy mẫu quá mức, các cụm lớp có thể xâm phạm không gian của nhau. Kết quả là, mô hình bộ phân loại sẽ được trang bị quá mức. Bây giờ, các liên kết Tomek là các mẫu được ghép nối lớp đối lập là những người hàng xóm gần nhau nhất. Do đó, phần lớn các quan sát lớp từ các liên kết này bị loại bỏ vì nó được cho là làm tăng sự phân tách lớp gần ranh giới quyết định. Giờ đây, để có được các cụm lớp tốt hơn, các liên kết Tomek được áp dụng cho các mẫu lớp thiểu số được lấy mẫu quá mức do SMOTE thực hiện. Do đó, thay vì chỉ loại bỏ các quan sát khỏi lớp đa số, chúng tôi thường loại bỏ cả hai quan sát lớp khỏi các liên kết Tomek.
Mã Python cho thuật toán SMOTE + Tomek:
Xem thêm Loại trừ hiển thị tìm kiếm khỏi sitemap
Kết hợp: SMOTE + ENN
SMOTE + ENN là một kỹ thuật lai khác không hơn không kém. trong số các quan sát được loại bỏ khỏi không gian mẫu. Ở đây, ENN là một kỹ thuật lấy mẫu dưới khác trong đó các nước láng giềng gần nhất của mỗi lớp đa số được ước tính. Nếu những người hàng xóm gần nhất phân loại sai thể hiện cụ thể đó của lớp đa số, thì thể hiện đó sẽ bị xóa.
Tích hợp kỹ thuật này với dữ liệu được lấy mẫu quá mức do SMOTE thực hiện sẽ giúp làm sạch dữ liệu rộng rãi. Ở đây, việc phân loại sai theo các mẫu của NN từ cả hai lớp sẽ bị xóa. Điều này dẫn đến sự phân tách lớp rõ ràng và ngắn gọn hơn.
Mã Python cho thuật toán SMOTE + ENN:
Hình dưới đây cho thấy các kỹ thuật lấy lại mẫu dựa trên SMOTE khác nhau hoạt động như thế nào để đối phó với dữ liệu mất cân bằng.
Phân tích hiệu suất sau khi resampling
Để hiểu tác dụng của việc lấy mẫu quá mức, tôi sẽ sử dụng bộ dữ liệu về tình trạng khách hàng của ngân hàng. Đây là một dữ liệu không cân bằng trong đó biến mục tiêu, churn có 81,5% khách hàng không khuấy động và 18,5% khách hàng đã bỏ cuộc.
Một phân tích so sánh được thực hiện trên tập dữ liệu bằng cách sử dụng 3 mô hình phân loại: logistic Regression, Decision Tree, và Random Forest. Như đã thảo luận trước đó, chúng tôi sẽ bỏ qua chỉ số độ chính xác để đánh giá hiệu suất của trình phân loại trên tập dữ liệu không cân bằng này. Ở đây, chúng tôi muốn biết rằng đâu là những khách hàng sẽ rời đi trong những tháng tới. Qua đó, chúng tôi sẽ tập trung vào các chỉ số như độ chính xác, thu hồi, điểm số F1 để hiểu hiệu suất của các bộ phân loại nhằm xác định chính xác khách hàng nào sẽ chuyển đến.
Lưu ý: SMOTE và các kỹ thuật liên quan của nó chỉ được áp dụng cho tập dữ liệu đào tạo để chúng tôi điều chỉnh đúng thuật toán của mình trên dữ liệu. Dữ liệu thử nghiệm không thay đổi để nó thể hiện chính xác dữ liệu ban đầu.
Từ những điều trên, có thể thấy trên tập dữ liệu thực tế không cân đối, cả 3 mô hình phân loại đều không có khả năng khái quát tốt về lớp thiểu số so với lớp đa số. Kết quả là, hầu hết các mẫu lớp âm tính đã được phân loại chính xác. Do đó, có ít FP hơn so với nhiều FN hơn. Sau khi lấy mẫu quá mức, dữ liệu thử nghiệm đã tăng lên rõ ràng trong dữ liệu thử nghiệm. Để hiểu rõ hơn điều này, một vạch so sánh được hiển thị bên dưới cho cả 3 mô hình:
Độ chính xác có giảm đi, nhưng bằng cách Recall nhiều, thỏa mãn mục tiêu của bất kỳ bài toán phân loại nhị phân nào. Ngoài ra, AUC-ROC và F1-score cho mỗi kiểu máy vẫn ít nhiều giống nhau.
Xem thêm Google Form: hướng dẫn chi tiết
Kết luận
Vấn đề mất cân bằng lớp không chỉ giới hạn trong các vấn đề phân loại nhị phân, các vấn đề phân loại nhiều lớp cũng đau đầu với nó. Do đó, điều quan trọng là phải áp dụng các kỹ thuật resampling cho dữ liệu đó để các mô hình hoạt động tốt nhất và đưa ra hầu hết các dự đoán chính xác.
Bạn có thể kiểm tra toàn bộ quá trình triển khai trong kho lưu trữ GitHub của tôi và cố gắng áp dụng chúng khi bạn thực hiện. Khám phá các kỹ thuật khác giúp xử lý tập dữ liệu không cân bằng.