Khi làm việc trong một dự án Khoa học dữ liệu, bạn tìm kiếm điều gì? . Một trong số đó là tìm kiếm “Outliers”. Trong bài đăng này, chúng tôi sẽ cố gắng hiểu ngoại lệ là gì? Gặp gỡ ngoại lệWikipedia định nghĩa,
Định nghĩa trên cho thấy rằng ngoại lệ là một cái gì đó tách biệt/khác biệt với đám đông. Rất nhiều video động lực gợi ý khác biệt với đám đông, đặc biệt là Malcolm Gladwell. Đối với số liệu thống kê, nó cũng là một điều tốt hay không? Thu thập dữ liệu & ngoại lệNhư bây giờ chúng ta đã biết thế nào là ngoại lệ, nhưng bạn cũng đang tự hỏi làm thế nào mà một ngoại lệ lại giới thiệu với cộng đồng? Dự án Khoa học dữ liệu bắt đầu bằng việc thu thập dữ liệu và đó là khi các ngoại lệ lần đầu tiên được giới thiệu với dân số. Mặc dù vậy, bạn sẽ không biết gì về các ngoại lệ trong giai đoạn thu thập. Các ngoại lệ có thể là kết quả của một lỗi trong quá trình thu thập dữ liệu hoặc nó có thể chỉ là một dấu hiệu cho thấy sự khác biệt trong dữ liệu của bạn Hãy xem xét một số ví dụ. Giả sử bạn được yêu cầu quan sát màn trình diễn của đội cricket Ấn Độ tôi. e Chạy do từng người chơi thực hiện và thu thập dữ liệu Dữ liệu đã thu thậpNhư bạn có thể thấy từ dữ liệu được thu thập ở trên, tất cả những người chơi khác đều ghi được 300+ ngoại trừ Người chơi 3, người đã ghi được 10. Con số này có thể chỉ là một lỗi đánh máy hoặc nó đang hiển thị sự khác biệt trong dữ liệu của bạn và cho biết rằng Player3 đang hoạt động rất tệ, vì vậy cần cải thiện Bây giờ chúng ta đã biết các giá trị ngoại lệ có thể là một sai lầm hoặc chỉ là phương sai, bạn sẽ quyết định như thế nào nếu chúng quan trọng hay không. Chà, khá đơn giản nếu chúng là kết quả của một sai lầm, thì chúng ta có thể bỏ qua chúng, nhưng nếu đó chỉ là sự khác biệt trong dữ liệu, chúng ta sẽ cần suy nghĩ thêm một chút. Trước khi cố gắng tìm hiểu xem có nên bỏ qua các ngoại lệ hay không, chúng ta cần biết các cách để xác định chúng Tìm kiếm ngoại lệHầu hết các bạn có thể đang nghĩ, Oh. Tôi chỉ có thể có một lượng dữ liệu cao nhất để tìm ra các ngoại lệ giống như chúng ta đã làm trong ví dụ về môn cricket đã đề cập trước đó. Hãy nghĩ về một tệp có hơn 500 cột và hơn 10 nghìn hàng, bạn có nghĩ rằng ngoại lệ có thể được tìm thấy theo cách thủ công không? . Hầu hết chúng ta sẽ cố gắng xem các phương pháp trực quan (dễ nhất) thay vì toán học Vì vậy, hãy bắt đầu. Chúng tôi sẽ sử dụng Bộ dữ liệu định giá nhà ở Boston được bao gồm trong API bộ dữ liệu sklearn. Chúng tôi sẽ tải tập dữ liệu và tách ra các tính năng và mục tiêu boston = load_boston()Dữ liệu nhà ở Boston Các tính năng/biến độc lập sẽ được sử dụng để tìm kiếm bất kỳ ngoại lệ nào. Nhìn vào dữ liệu ở trên, có vẻ như chúng ta chỉ có các giá trị số i. e. chúng tôi không cần thực hiện bất kỳ định dạng dữ liệu nào. (Thở dài. ) Có hai loại phân tích mà chúng ta sẽ theo dõi để tìm ra các ngoại lệ - Đơn biến (phân tích ngoại lệ một biến) và Đa biến (phân tích ngoại lệ hai biến trở lên). Đừng nhầm lẫn đúng không, khi bạn bắt đầu mã hóa và vẽ biểu đồ dữ liệu, bạn sẽ thấy rằng việc phát hiện ra ngoại lệ dễ dàng như thế nào. Để đơn giản hóa mọi thứ, chúng ta sẽ bắt đầu với phương pháp phát hiện ngoại lệ cơ bản và từ từ chuyển sang các phương pháp nâng cao Khám phá các ngoại lệ với các công cụ trực quanBiểu đồ hộp- Định nghĩa Wikipedia,
Định nghĩa trên gợi ý rằng nếu có một ngoại lệ, nó sẽ được vẽ dưới dạng điểm trong boxplot nhưng các tổng thể khác sẽ được nhóm lại với nhau và hiển thị dưới dạng hộp. Hãy thử và xem nó chính mình import seaborn as sns Boxplot - Khoảng cách đến trung tâm việc làmBiểu đồ trên cho thấy ba điểm trong khoảng từ 10 đến 12, đây là những điểm ngoại lệ vì không có trong ô quan sát khác i. e không ở đâu gần tứ phân vị Ở đây chúng tôi phân tích Univariate outlier i. e. chúng tôi chỉ sử dụng cột DIS để kiểm tra ngoại lệ. Nhưng chúng ta cũng có thể thực hiện phân tích ngoại lệ đa biến. Chúng ta có thể thực hiện phân tích đa biến với Box plot không? . Vì chúng tôi không có giá trị phân loại trong bộ dữ liệu Nhà ở Boston của mình, chúng tôi có thể cần quên việc sử dụng biểu đồ hộp để phân tích ngoại lệ đa biến Âm mưu phân tán- Định nghĩa Wikipedia
Như định nghĩa cho thấy, biểu đồ phân tán là tập hợp các điểm hiển thị giá trị cho hai biến. Chúng ta có thể thử vẽ biểu đồ phân tán cho hai biến từ bộ dữ liệu nhà ở của mình fig, ax = plt.subplots(figsize=(16,8)) Lô đất phân tán — Tỷ lệ mẫu đất kinh doanh không bán lẻ trên mỗi thị trấn v/s Thuế bất động sản giá trị đầy đủNhìn vào biểu đồ trên, chúng ta có thể thấy hầu hết các điểm dữ liệu nằm phía dưới bên trái nhưng có những điểm nằm xa dân số như góc trên bên phải Khám phá các ngoại lệ với chức năng toán họcĐiểm Z- Định nghĩa Wikipedia
Trực giác đằng sau Z-score là mô tả bất kỳ điểm dữ liệu nào bằng cách tìm mối quan hệ của chúng với Độ lệch chuẩn và Giá trị trung bình của nhóm điểm dữ liệu. Điểm Z đang tìm phân phối dữ liệu trong đó giá trị trung bình là 0 và độ lệch chuẩn là 1 i. e. phân phối bình thường Chắc hẳn bạn đang thắc mắc rằng, điều này giúp ích như thế nào trong việc xác định các điểm ngoại lệ? . Những điểm dữ liệu quá xa so với 0 sẽ được coi là ngoại lệ. Trong hầu hết các trường hợp, ngưỡng 3 hoặc -3 được sử dụng. e nếu giá trị điểm Z lớn hơn hoặc nhỏ hơn 3 hoặc -3 tương ứng, điểm dữ liệu đó sẽ được xác định là ngoại lệ Chúng tôi sẽ sử dụng chức năng điểm Z được xác định trong thư viện scipy để phát hiện các ngoại lệ from scipy import statsĐiểm Z của dữ liệu nhà ở Boston Nhìn vào mã và đầu ra ở trên, rất khó để nói điểm dữ liệu nào là ngoại lệ. Hãy thử và xác định một ngưỡng để xác định một ngoại lệ threshold = 3 Điều này sẽ cho một kết quả như dưới đây - Điểm dữ liệu có điểm Z lớn hơn 3Đừng bối rối bởi kết quả. Mảng đầu tiên chứa danh sách các số hàng và số cột tương ứng của mảng thứ hai, có nghĩa là z[55][1] có điểm Z cao hơn 3 print(z[55][1])3.375038763517309 Vì vậy, điểm dữ liệu — bản ghi thứ 55 trên cột ZN là một ngoại lệ điểm IQR - Biểu đồ hộp sử dụng phương pháp IQR để hiển thị dữ liệu và ngoại lệ (hình dạng của dữ liệu) nhưng để có được danh sách ngoại lệ được xác định, chúng ta sẽ cần sử dụng công thức toán học và truy xuất dữ liệu ngoại lệ Định nghĩa Wikipedia
IQR hơi giống với điểm Z trong việc tìm kiếm sự phân phối dữ liệu và sau đó giữ một số ngưỡng để xác định ngoại lệ Hãy cùng tìm hiểu xem chúng ta có thể sử dụng biểu đồ hộp bằng cách sử dụng IQR và cách chúng ta có thể sử dụng nó để tìm danh sách các giá trị ngoại lai như chúng ta đã làm khi sử dụng phép tính điểm Z. Đầu tiên chúng ta sẽ tính toán IQR, Q1 = boston_df_o1.quantile(0.25) Ở đây chúng tôi sẽ nhận được IQR cho mỗi cột IQR cho mỗi cộtVì chúng ta hiện có điểm số IQR, đã đến lúc nắm bắt các giá trị ngoại lai. Đoạn mã dưới đây sẽ đưa ra một đầu ra với một số giá trị đúng và sai. Điểm dữ liệu mà chúng tôi có Sai có nghĩa là các giá trị này hợp lệ trong khi True biểu thị sự hiện diện của ngoại lệ print(boston_df_o1 < (Q1 - 1.5 * IQR)) |(boston_df_o1 > (Q3 + 1.5 * IQR)) Phát hiện ngoại lệ với IQRBây giờ chúng ta đã biết cách phát hiện các ngoại lệ, điều quan trọng là phải hiểu liệu chúng có cần được xóa hoặc sửa hay không. Trong phần tiếp theo, chúng ta sẽ xem xét một vài phương pháp loại bỏ các giá trị ngoại lai và nếu được yêu cầu, hãy gán các giá trị mới Làm việc với các ngoại lệ. Sửa chữa, loại bỏTrong quá trình phân tích dữ liệu, khi bạn phát hiện ra điểm ngoại lệ, một trong những quyết định khó khăn nhất có thể là cách xử lý điểm ngoại lệ. Họ nên loại bỏ chúng hoặc sửa chúng? Điểm Z Trong phần trước, chúng ta đã thấy cách một người có thể phát hiện ngoại lệ bằng cách sử dụng điểm Z nhưng bây giờ chúng tôi muốn loại bỏ hoặc lọc các ngoại lệ và lấy dữ liệu sạch. Điều này có thể được thực hiện chỉ với một mã dòng vì chúng tôi đã tính điểm Z ________số 8Có và không có kích thước ngoại lệ của tập dữ liệuVì vậy, đoạn mã trên đã xóa khoảng hơn 90 hàng khỏi tập dữ liệu tôi. e. ngoại lệ đã được loại bỏ Điểm IQR - Giống như điểm Z, chúng ta có thể sử dụng điểm IQR đã tính toán trước đó để lọc ra các giá trị ngoại lai bằng cách chỉ giữ lại các giá trị hợp lệ boston_df_out = boston_df_o1[~((boston_df_o1 < (Q1 - 1.5 * IQR)) |(boston_df_o1 > (Q3 + 1.5 * IQR))).any(axis=1)]boston_df_out.shape Đoạn mã trên sẽ loại bỏ các ngoại lệ khỏi tập dữ liệu Có nhiều cách để phát hiện và loại bỏ các ngoại lệ nhưng các phương pháp mà chúng tôi đã sử dụng cho bài tập này được sử dụng rộng rãi và dễ hiểu Có nên loại bỏ một ngoại lệ hay không. Mọi nhà phân tích dữ liệu/nhà khoa học dữ liệu đều có thể có những suy nghĩ này một lần trong mọi vấn đề họ đang giải quyết. Tôi đã tìm thấy một số lời giải thích tốt -
Để tóm tắt lời giải thích của họ - dữ liệu xấu, tính toán sai, những điều này có thể được xác định là Ngoại lệ và nên được loại bỏ nhưng đồng thời bạn cũng có thể muốn sửa chúng vì chúng thay đổi cấp độ dữ liệu. e. nghĩa là nguyên nhân gây ra sự cố khi bạn lập mô hình dữ liệu của mình. Đối với 5 người cũ nhận mức lương 10K, 20K, 30K, 40K và 50K và đột nhiên một trong những người bắt đầu nhận mức lương 100K. Hãy xem xét tình huống này vì bạn là người sử dụng lao động, bản cập nhật lương mới có thể bị coi là sai lệch và bạn cũng có thể cần tăng lương cho nhân viên khác để giữ cân bằng. Vì vậy, có thể có nhiều lý do khiến bạn muốn hiểu và sửa các điểm ngoại lệ Tóm lượcTrong suốt bài tập này, chúng ta đã thấy trong giai đoạn phân tích dữ liệu, người ta có thể gặp một số dữ liệu bất thường như thế nào. ngoại lệ. Chúng tôi đã học về các kỹ thuật có thể được sử dụng để phát hiện và loại bỏ những giá trị ngoại lệ đó. Nhưng có một câu hỏi được đặt ra về việc đảm bảo liệu có thể loại bỏ các giá trị ngoại lai hay không. Để trả lời những câu hỏi đó, chúng tôi đã tìm thấy các bài đọc thêm (liên kết này đã được đề cập trong phần trước). Hy vọng bài viết này đã giúp độc giả trong việc biết Outliers Lưu ý- Đối với bài tập này, các công cụ và thư viện bên dưới đã được sử dụng Framework- Jupyter Notebook, Language- Python, Libraries- thư viện sklearn, Numpy, Panda và Scipy, Plot Lib- Seaborn và Matplot |