Hướng dẫn how to remove outliers using boxplot in python - cách loại bỏ các giá trị ngoại lai bằng boxplot trong python

$ \ beingroup $

Tôi có dữ liệu của một ngày được nhóm lại khôn ngoan. Tôi đã vẽ dữ liệu, bây giờ, làm cách nào để xóa các giá trị bên ngoài phạm vi của BoxPlot (Outliers)?

Tất cả dữ liệu ['avg'] đều nằm trong một cột duy nhất, tôi cần nó để mô hình chuỗi thời gian.

Hướng dẫn how to remove outliers using boxplot in python - cách loại bỏ các giá trị ngoại lai bằng boxplot trong python

Ethan

1.5808 Huy hiệu vàng20 Huy hiệu bạc38 Huy hiệu Đồng8 gold badges20 silver badges38 bronze badges

Đã hỏi ngày 1 tháng 7 năm 2019 lúc 4:15Jul 1, 2019 at 4:15

Hướng dẫn how to remove outliers using boxplot in python - cách loại bỏ các giá trị ngoại lai bằng boxplot trong python

$ \ endgroup $

$ \ beingroup $

Seaborn sử dụng phạm vi giữa các tần số để phát hiện các ngoại lệ. Những gì bạn cần làm là tái tạo cùng một chức năng trong cột bạn muốn bỏ các ngoại lệ. Nó khá dễ dàng để làm trong gấu trúc.

Nếu chúng tôi giả sử rằng dataFrame của bạn được gọi là df và cột bạn muốn lọc dựa trên AVG, thì

Q1 = df['AVG'].quantile(0.25)
Q3 = df['AVG'].quantile(0.75)
IQR = Q3 - Q1    #IQR is interquartile range. 

filter = (df['AVG'] >= Q1 - 1.5 * IQR) & (df['AVG'] <= Q3 + 1.5 *IQR)
df.loc[filter]  

Hướng dẫn how to remove outliers using boxplot in python - cách loại bỏ các giá trị ngoại lai bằng boxplot trong python

Đã trả lời ngày 8 tháng 8 năm 2019 lúc 8:36Aug 8, 2019 at 8:36

Hướng dẫn how to remove outliers using boxplot in python - cách loại bỏ các giá trị ngoại lai bằng boxplot trong python

TasostasosTasos

3.7803 huy hiệu vàng21 Huy hiệu bạc54 Huy hiệu đồng3 gold badges21 silver badges54 bronze badges

$ \ endgroup $

3

$ \ beingroup $

Seaborn sử dụng phạm vi giữa các tần số để phát hiện các ngoại lệ. Những gì bạn cần làm là tái tạo cùng một chức năng trong cột bạn muốn bỏ các ngoại lệ. Nó khá dễ dàng để làm trong gấu trúc.

showfliers=False

Nếu chúng tôi giả sử rằng dataFrame của bạn được gọi là df và cột bạn muốn lọc dựa trên AVG, thìJul 7, 2020 at 14:34

Hướng dẫn how to remove outliers using boxplot in python - cách loại bỏ các giá trị ngoại lai bằng boxplot trong python

Đã trả lời ngày 8 tháng 8 năm 2019 lúc 8:36aerijman

Tasostasos3 silver badges7 bronze badges

$ \ endgroup $

$ \ beingroup $

Seaborn sử dụng phạm vi giữa các tần số để phát hiện các ngoại lệ. Những gì bạn cần làm là tái tạo cùng một chức năng trong cột bạn muốn bỏ các ngoại lệ. Nó khá dễ dàng để làm trong gấu trúc.

Nếu chúng tôi giả sử rằng dataFrame của bạn được gọi là df và cột bạn muốn lọc dựa trên AVG, thìApr 28, 2020 at 18:31

Hướng dẫn how to remove outliers using boxplot in python - cách loại bỏ các giá trị ngoại lai bằng boxplot trong python

$ \ endgroup $

Trong học máy, một số điểm dữ liệu nhất định làm cho mô hình làm rất tốt hoặc tệ hơn so với các điểm dữ liệu khác. Các điểm dữ liệu như vậy khi được kiểm tra thêm, có xu hướng khá phi thực tế về miền của dữ liệu. Những điểm dữ liệu này được gọi là Outliers và trong blog này, chúng ta sẽ thấy cách chúng ta có thể trực quan hóa và sau đó phát hiện và xóa các ngoại lệ khỏi bộ dữ liệu.

Trong thống kê, một ngoại lệ là một điểm dữ liệu khác biệt đáng kể so với các quan sát khác.

Các điểm dữ liệu ngoại lệ này có thể xảy ra do một loạt các yếu tố như lỗi thử nghiệm, sự thay đổi trong phép đo, lỗi tài liệu, v.v.

Tóm tắt năm số và lô hộp

Một trong những cách phổ biến nhất để phát hiện các ngoại lệ trong bộ dữ liệu là bằng cách sử dụng BoxPlot Visualization và chúng tôi sẽ sử dụng biểu đồ này để phát hiện và xóa chúng tôi sẽ sử dụng phạm vi giữa các tần số.

Hãy cùng xem điều này với sự trợ giúp của một ví dụ:

Giả sử, chúng ta có một phân phối và cần phải phát hiện và loại bỏ các ngoại lệ.

data_distribution = [1, 2, 2, 2, 3, 3, 4, 5, 5, 5, 6, 6, 6, 6, 7, 8, 8, 9,27]

Lúc đầu, chúng ta cần tìm bản tóm tắt năm số của phân phối.

Tóm tắt số 5 số đó là: tối thiểu, tứ phân vị đầu tiên, trung bình, tứ phân vị thứ ba và tối đa như sau:

  • Tối thiểu: Nó đại diện cho giá trị tối thiểu của phân phối. Trong trường hợp này, nó là 1 It represents the minimum value of the distribution. In this case, it is 1
  • Bộ tứ đầu tiên: Nó còn được gọi là 25 phần trăm. Một phần trăm là một giá trị dưới đây một tỷ lệ nhất định của các quan sát nằm. Ở đây, bộ tứ đầu tiên là 3 có nghĩa là 25% các quan sát trong phân phối nằm dưới giá trị 3.It is also known as the 25 percentile. A percentile is a value below which a certain percentage of the observations lie. Here, the first quartile is 3 which means 25% of the observations in the distribution lie below the value 3.
  • Median: Một trung bình là một số trung bình trong danh sách các số được sắp xếp. Trong trường hợp này, trung bình là 6,5.A median is a middle number in a sorted list of numbers. In this case, the median is 6.5.
  • Bộ tứ thứ ba: Nó còn được gọi là 75 phần trăm. Ở đây, bộ tứ thứ ba là 5 có nghĩa là 75% các quan sát trong phân phối nằm dưới giá trị 5.It is also known as the 75 percentile. Here, the third quartile is 5 which means 75% of the observations in the distribution lie below the value 5.
  • Tối đa: Nó đại diện cho giá trị tối đa của phân phối. Trong trường hợp này, nó là 27 It represents the maximum value of the distribution. In this case, it is 27

Tìm các giá trị trên bằng mã:

Âm mưu hộp

Biểu đồ hộp là một loại hình ảnh hiển thị dữ liệu từ bản tóm tắt năm số bao gồm một trong các biện pháp về xu hướng trung tâm. Các thành phần của biểu đồ hộp được hiển thị bên dưới:

Như chúng ta có thể thấy trong định nghĩa trên của biểu đồ hộp, nếu một giá trị nằm ngoài cực tiểu và cực đại, thì đó là một ngoại lệ. Vì vậy, bây giờ chúng ta hãy hình dung phân phối của chúng tôi và xem liệu chúng ta có thể tìm thấy bất kỳ.

Ồ! Chúng tôi phát hiện sự hiện diện của một ngoại lệ trong phân phối của chúng tôi và chúng tôi cần loại bỏ nó vì điều này có thể ảnh hưởng đến mô hình của chúng tôi nếu chúng tôi đào tạo nó để dự đoán bằng cách sử dụng máy học.

Loại bỏ các ngoại lệ bằng cách sử dụng phạm vi liên quan

Sự khác biệt giữa tứ phân vị trên và dưới được gọi là phạm vi giữa các tần số. Nó được đưa ra bởi:

Phạm vi liên vùng = Bộ tứ trên - Bộ tứ dưới = Q3 - Q1

Sau đó chúng ta cần tính toán Lower_Boundry và Upper_Boundry. Điều này sẽ cung cấp cho chúng tôi giá trị thấp nhất từ ​​phân phối của chúng tôi bên dưới điểm dữ liệu là một ngoại lệ và giá trị cao nhất trên mức điểm dữ liệu của chúng tôi là một ngoại lệ.

Lower_boundry = q1 upper_boundry = q3 + 1.5 * IQR

Sau đó chúng tôi nhận được một phạm vi, bên ngoài các điểm dữ liệu là ngoại lệ:

Phạm vi = [Lower_Boundry, Upper_Boundry]

Hãy cùng xem điều này trong mã:

Bây giờ chúng tôi đã có phạm vi của chúng tôi, chúng tôi có thể kiểm tra xem bất kỳ giá trị nào nằm ngoài phạm vi này là một ngoại lệ.

Chúng ta có thể thấy giá trị 27 là một ngoại lệ trong phân phối này và điều tương tự cũng được biểu thị bằng hình ảnh biểu đồ hộp. Bây giờ tất cả những gì chúng ta cần là loại bỏ ngoại lệ này.

Vola !! Chúng tôi đã loại bỏ thành công ngoại lệ.

Sự kết luận

Các ngoại lệ có mặt trong hầu hết các bộ dữ liệu trong thế giới thực và chúng nên được xử lý đúng cách. Các ô hộp là một trong những cách hiệu quả và đơn giản nhất để trực quan hóa các ngoại lệ và tôi hy vọng blog này có thể giải thích tất cả logic đằng sau việc phát hiện và loại bỏ ngoại lệ.

Cảm ơn bạn đã đọc, tiếp tục học :)