Outliers/anomalies (dữ liệu ngoại lai/dữ liệu bất thường) là một trong những thuật ngữ được sử dụng rất rộng rãi trong thế giới data và đặc biệt là data science. Xác định và loại bỏ outliers là một bước cực kỳ quan trọng trong quá trình xử lý dữ liệu. Việc xử lý các dữ liệu ngoại lai sẽ giúp tăng cao độ chính xác cho các mô hình dự đoán hay các báo cáo doanh nghiệp một cách đáng kể.

Bạn đang xem: Outlier là gì

Trong bài này chúng ta sẽ cùng tìm hiểu các vấn đề sau:

Outliers thực chất là gì?Tầm quan trọng của việc xác định và loại bỏ outliers?Cùng so sánh và phân tích kết quả của trước và sau khi loại bỏ outliersPhương pháp và các bước thực hiện loại bỏ OutliersThực hành xử lý Outliers bằng MySQLCuối cùng là câu hỏi cho bạn thực hành

Lưu ý: Bài viết sẽ không đi nghiên cứu quá sâu về Outliers. Bài này chỉ dừng lại ở mức cơ bản để các bạn có thể đọc, hiểu và thực hành ngay.


Mục Lục

5 Các bước cần thực hiện để xác định Outliers

Outliers (dữ liệu ngoại lai) là gì?

Để hiểu được bản chất thực sự của outliers là gì, các bạn có trước tiên tham khảo các hình bên dưới. Chú ý sự khác nhau giữa điểm màu đỏ với các điểm còn lại.

*
Outliers của bộ trên dữ liệu 2 chiều – Nguồn ảnh
*
Outliers của bộ trên dữ liệu 1 chiều dựa trên độ phân tán của dữ liệu

Qua các bức ảnh trên, chắc các bạn cũng thấy được điểm chung của các outliers. Hiểu đơn giản thì Outliers là một hoặc nhiều cá thể khác hẳn đối với các thành viên còn lại của nhóm. Sự khác biệt này có thể dựa trên nhiều tiêu chí khác nhau như giá trị hay thuộc tính.

Đối với 2 hình trên, chúng ta có thể dễ dàng xác định các outliers dựa trên giá trị của chúng vì những giá trị này khác xa với các giá trị còn lại của nhóm.

Ví dụ: trong một lớp học gồm 100 học sinh, phần lớn học sinh đều đạt kết quả dao động từ 5 đến 7 riêng chỉ có 1 bạn đạt điểm 1 và một bạn đạt điểm 10. Trong trường hợp này, 2 bạn có điểm 1 và 10 có thể được xem là 2 Outliers cho bài kiểm tra đó.

Trong trường hợp khác thì các outliers là những thành phần có thuộc tính hoặc tính cách khác với số còn lại.

*
Outliers dựa thuộc tính của dữ liệu – Nguồn ảnh

Ví dụ: một công ty với mô hình B2B có rất nhiều khách hàng khác nhau nhưng trong những khách hàng này có một doanh nghiệp đến từ nước ngoài. Doanh nghiệp nước ngoài này có thể được xem là một outliers khi xét về tính chất khách hàng. Vì họ có thể có những hành vi mua hàng rất khác với khách hàng nội địa.

Trên thực tế, người ta chia outliers ra khá nhiều loại khác nhau. Nhưng ở đây mình chỉ muốn các bạn hiểu được bản chất của outliers và cách xác định những loại outliers đơn giản. Vậy nên mình gộp chung lại thành 2 dạng như trên.

Nếu muốn tìm hiểu xâu hơn về Outliers, các bạn có thể Google về nó. Có khá nhiều tài liệu cả tiếng Anh lẫn tiếng Việt giải thích về thuật ngữ này. Mình sẽ không phân tích sâu thêm nữa về định nghĩa cũng như phân loại.

Xem thêm: Những Bài Hát Tiếng Anh Về Mưa Hay Nhất, Thổn Thức Những Ca Khúc Nghe Trong Mưa

Khi nào cần xác định và loại bỏ outliers

Trên thực tế, khi chúng ta làm báo cáo hay xây dựng model, sẽ rất khó để đạt giá trị tuyệt đối. Trong hầu hết các trường hợp, dữ liệu xấu hoặc bất thường sẽ luôn tồn tại. Những dữ liệu này tồn tại do khá nhiều nguyên nhân khác nhau tùy vào hoàn cảnh và mô hình kinh doanh.

Một vài ví dụ cụ thể như:

Lỗi phát sinh trong quá trình nhập và chỉnh sửa dữ liệu như dư hay thiếu vài số 0 hay sai địa chỉ. Lỗi này mình thấy cực kỳ phổ biến.Đối với các mô hình online, người ta có thể cố ý tạo ra giá trị ảo để test thị trường hoặc làm mồi nhử. Ví dụ một căn nhà có thể được ra bán với giá 100,000 đồng hay 999 tỷ. Nếu bạn tính trung bình giá nhà tại khu vực tính luôn cả nhà phía trên, đảm bảo giá nhà sẽ cao ngất ngưởng so với thực tế.Khi muốn biết tổng giá trị sản phẩm bán ra trong ngày của một cửa hàng, chúng ta phát hiện có một vài ngày, con số này cao một cách đột biến so với các ngày còn lại. Nguyên nhân là do gần đó có một sự kiện cộng đồng kiến khách hàng đột ngột tăng lên.

Chúng ta có thể thấy được với 2 ví dụ (1) và (2) thì những dữ liệu xấu này cần được loại bỏ để tăng tính chính xác cho các model hoặc báo cáo. Nhưng với trường hợp thứ (3), các outliers này lại có thể cho chúng ta thấy được một tiềm năng doanh thu mới. Nếu chúng ta tìm hiểu nguyên nhân tại sao lại có sale tăng đột biến và chuẩn bị cho kỳ tiếp theo, khả năng là sẽ có thêm được nhiều lợi nhuận.

Vậy nên việc xác định Outliers là cần thiết trong phần lớn các trường hợp. Nhưng việc xử lý chúng như thế nào thì còn tùy thuộc vào từng hoàn cảnh. Chúng ta cần tìm hiểu sâu hơn nguyên nhân gây ra các Outliers trước khi quyết định loại bỏ hay giữ lại những outliers này.

Phương pháp xác định Outliers

Vì bản chất của outliers có khá nhiều loại khác nhau nên cũng sẽ có nhiều phương pháp khác nhau để xác định outliers. Trong bài viết này chúng ta sẽ chỉ tập trung vào một loại outliers là những data point có giá trị quá cao hoặc quá thấp so với phần lớn dữ liệu.

Chúng ta sẽ sử dụng bộ dữ liệu là SuperStore Sales và tìm outliers dựa trên tổng giá trị của mỗi hóa đơn tại mỗi state. Với câu hỏi này, dữ liệu mà chúng ta cần xử lý chỉ có một chiều (xem lại hình 2). Bạn nào chưa có dữ liệu SupperStore thì xem hướng dẫn tại đây.

*
Extreme value Analysis – Nguồn ảnh

Kết hợp với loại outliers, mình sẽ sử dụng phương pháp Extreme Value Analysis. Phương pháp này đơn giản là xác định các data points có giá trị cực cao/thấp (extreme value). Các giá trị extreme sẽ được xác định bằng khoảng cách của chúng so với giá trị trung bình (Average/Mean). Toàn bộ các giá trị Extreme đều được xác định là outliers.

Lưu ý: trên thực tế, các giá trị outliers có khả năng không phải là giá trị Extreme. Đặc biệt là đối với các mảng dữ liệu nhiều hơn 1 chiều.

Bạn nào tò mò các phương pháp khác thì có thể vào hỏi Google hoặc xem tại blog này

Okay, trước khi đi vào hướng dẫn các tìm và loại bỏ outliers, các bạn cùng xem một báo cáo mẫu do mình thiết kế trên Tableau để có thể hình dung ra được các Outliers là như thế nào.

Báo cáo mẫu về loại bỏ Outlier trên Tableau

Sử dụng báo cáo này như thế nào:

Các bạn có thể rê chuột trên các giá trị để có thể thấy được những giá trị outliers.So sánh sự khác nhau giữa giá trị trung bình mỗi hóa đơn trước và sau khi loại bỏ Outliers.Điều chỉnh giá trị phía trên góc phải để thấy được sự thay đổi của Outliers. Các bạn sẽ hiểu những biến này ở phần sau của bài viết.Comment phía dưới xem bạn đã tìm được insight gì hay từ report này?Đổi chế độ điện thoại sang ngang (landscape) nếu không thấy rõ số liệu Boxplot trong hình chỉ để mục đích so sánh vì cách tính khác nhau

Các bạn có thể tải Workbook này xuống để tham khảo cách làm. Nếu có nhiều yêu cầu mình sẽ làm bài mới hướng dẫn từng bước cách làm một cái tương tự như vậy.