Làm thế nào để NaN thay thế các ngoại lệ trong Python?

Chọn một trang web để nhận nội dung đã dịch nếu có và xem các sự kiện và ưu đãi tại địa phương. Dựa trên vị trí của bạn, chúng tôi khuyên bạn nên chọn.

Bạn cũng có thể chọn một trang web từ danh sách sau

Làm thế nào để có được hiệu suất trang web tốt nhất

Chọn trang Trung Quốc [bằng tiếng Trung hoặc tiếng Anh] để có hiệu suất trang tốt nhất. Các trang web quốc gia khác của MathWorks không được tối ưu hóa cho các lượt truy cập từ vị trí của bạn

Phân tích dữ liệu là một quá trình lâu dài. Có một số bước để làm điều này. Trước hết, chúng ta cần nhận biết dữ liệu. Chúng ta phải biết mọi tính năng trong tập dữ liệu. Sau đó, chúng tôi phải phát hiện các giá trị bị thiếu và xóa tập dữ liệu của chúng tôi khỏi các giá trị NaN này. Chúng ta có thể điền vào các giá trị NaN này bằng một số giá trị [trung bình, trung bình, v.v. ] hoặc chúng ta có thể tạo hàm của mình để điền vào các giá trị còn thiếu này. Chúng tôi cũng có thể loại bỏ một số cột không hữu ích hoặc có nhiều giá trị NaN hơn các cột khác

Quá trình này có thể thay đổi. Nó phụ thuộc vào dữ liệu và mục tiêu. Nhưng cuối cùng chúng ta phải chiến đấu với những kẻ ngoại lai. Chúng ta phải phát hiện và xử lý chúng. Mỗi dữ liệu có các loại ngoại lệ khác nhau, cho dù chúng nằm trong 1. 5 IQR hay không. Đôi khi những ngoại lệ này không có hại, vì vậy chúng tôi không giải quyết chúng. Nhưng nếu chúng ta muốn có kết quả tốt trong các mô hình hoặc phân tích của mình, chúng ta cần xử lý các giá trị ngoại lệ. Có 3 phương pháp thường được sử dụng để đối phó với các giá trị ngoại lệ

1. Loại bỏ các ngoại lệ

2. phương pháp winorize

3. Chuyển đổi nhật ký

Hãy xem xét các phương thức này với Python,

Trong bản demo này, chúng tôi sẽ sử dụng bộ dữ liệu kim cương Seaborn

Chúng tôi sẽ xử lý tính năng bảng của tập dữ liệu kim cương và giả sử tất cả các giá trị NaN đã được xử lý [chúng tôi vừa loại bỏ chúng]. Hãy nhìn vào biểu đồ boxplot và biểu đồ

Như bạn có thể thấy cột này có các ngoại lệ [nó được hiển thị ở boxplot] và nó là dữ liệu lệch phải [có thể dễ dàng nhìn thấy ở biểu đồ tần suất]. Boxplot là cách tốt nhất để xem các ngoại lệ

Trước khi xử lý các ngoại lệ, chúng tôi sẽ phát hiện chúng. Chúng tôi sẽ sử dụng quy tắc của Tukey để phát hiện các ngoại lệ. Nó còn được gọi là quy tắc IQR. Đầu tiên, chúng ta sẽ tính toán Interquartile Range của dữ liệu [IQR = Q3 — Q1]. Sau đó, chúng tôi sẽ xác định ranh giới bên ngoài của chúng tôi với IQR

Chúng tôi sẽ nhận được ranh giới dưới của mình với phép tính này Q1–1. 5 * IQR. Chúng tôi sẽ nhận được ranh giới trên của chúng tôi với tính toán này Q3 + 1. 5 * IQR

Theo quy tắc này, dữ liệu nằm giữa các ranh giới được chấp nhận nhưng dữ liệu nằm ngoài ranh giới giữa ranh giới dưới và ranh giới trên là ngoại lệ. Chúng ta có thể sử dụng 2. 5 hoặc 2 để phát hiện IQR. Nó phụ thuộc vào dữ liệu và phân tích của chúng tôi. Nhưng thông dụng nhất là 1. 5 và chúng tôi sẽ sử dụng 1. 5 IQR trong phân tích này

Với phương thức description của pandas, chúng ta có thể thấy phần trăm Q1 [%25] và Q3 [%75] của dữ liệu. Chúng tôi có thể tính toán điểm IQR và ranh giới của mình [với 1. 5]

Ranh giới trên của chúng tôi là 63. 5 và ranh giới dưới của chúng tôi là 51. 5. Điều này có nghĩa là các giá trị giữa 51. 5 và 63. 5 là chấp nhận được nhưng những người bên ngoài có nghĩa là có ngoại lệ. Vì vậy chúng ta cần xử lý chúng vì chúng làm hỏng dữ liệu của chúng ta

Hãy xử lý các ngoại lệ

1 — Loại bỏ các ngoại lệ;

Chúng tôi có thể dễ dàng loại bỏ các giá trị ngoại lệ, nhưng điều này thu hẹp dữ liệu của chúng tôi. Nếu chúng ta có nhiều hàng, dữ liệu lớn, có lẽ chúng ta có thể chấp nhận rủi ro. Nhưng hãy nhớ rằng, nếu chúng ta giảm giá trị, chúng ta sẽ xóa tất cả các bản ghi [hàng]. Nếu chúng tôi có hồ sơ dễ bị tổn thương, chúng có thể bị mất

Chúng tôi thực hiện một số phương trình để đạt được các ngoại lệ và lập chỉ mục. Như bạn có thể thấy, nếu chúng tôi loại bỏ các ngoại lệ, chúng tôi sẽ mất 605 bản ghi. Dòng 27 cho chúng ta thấy các ngoại lệ. Dòng 28 cho chúng ta thấy dữ liệu không có ngoại lệ. Kiểm tra chiều dài của bảng. Ban đầu, chúng tôi có 53940 hàng

Chúng tôi đã xóa các giá trị ngoại lệ và các hàng dữ liệu của chúng tôi giảm xuống còn 53335. Sau khi loại bỏ các ngoại lệ, hãy kiểm tra boxplot và biểu đồ dữ liệu của chúng tôi

Bây giờ, chúng tôi không có bất kỳ ngoại lệ nào

2 — Phương pháp Winsorize;

Phương pháp thứ hai của chúng tôi là Phương pháp Winsorize. Trong Phương pháp Winsorize, chúng tôi giới hạn các ngoại lệ với giới hạn trên và dưới. Chúng tôi sẽ thiết lập các giới hạn. Chúng tôi sẽ đặt giới hạn trên và dưới cho dữ liệu là điểm tối đa và tối thiểu mới của chúng tôi

Chúng tôi sẽ sử dụng lại cột bảng của bộ dữ liệu kim cương. Hãy kiểm tra lại boxplot

Chúng tôi có những ngoại lệ, chúng tôi đã phát hiện ra chúng ngay từ đầu. Đối với các ngoại lệ, giới hạn trên của chúng tôi là 63. 5 và giới hạn dưới của chúng tôi là 51. 5

Đối với Phương thức Winsorize, chúng tôi phải nhập winorize từ Scipy. Chúng ta cần ranh giới để áp dụng winorize. Chúng tôi sẽ giới hạn dữ liệu của mình trong khoảng từ 53 đến 63. Các giá trị này nằm trong giới hạn cho các giá trị ngoại lệ. Chúng tôi cần điểm chính xác của các giá trị này trong phân vị và chúng tôi có thể sử dụng phương pháp lượng tử của Pandas

Chúng ta sẽ tạo một biến mới với Winsorize Method. Để triển khai Phương pháp Winsorize, chúng tôi viết các điểm biên chính xác dưới dạng một bộ trên phần trăm. Ví dụ, chúng ta sẽ viết [0. 01, 0. 02]. Điều này có nghĩa là chúng tôi muốn áp dụng quantile[0. 01] và lượng tử [0. 98] làm ranh giới. Cái đầu tiên là điểm chính xác trên phần trăm từ đầu, cái thứ hai là điểm chính xác trên phần trăm từ cuối

Chúng tôi đã áp dụng Phương pháp Winsorize, hãy kiểm tra dữ liệu trên biểu đồ

Như bạn có thể thấy, không có ngoại lệ. Tập trung vào điều này, các giá trị tối đa và tối thiểu của chúng tôi trên biểu đồ hộp; . Chúng tôi áp dụng chúng như ranh giới. Bây giờ, chúng ta có thể xem xét các giá trị thống kê mô tả của dữ liệu cũ và mới bằng phương thức description

Tôi đã thay đổi df_table_win thành một chuỗi để triển khai phương thức mô tả. Lưu ý rằng, giá trị trung bình và độ lệch chuẩn của df_table_win đã thay đổi. Điểm tối thiểu và tối đa cũng thay đổi nhưng những thay đổi này không ảnh hưởng đến các giá trị thống kê mô tả logic trung bình. Do đó, chúng ta nên áp dụng Phương pháp Winsorize một cách cẩn thận vì như bạn có thể thấy, các giá trị thống kê mô tả logic trung bình có thể thay đổi. Nó có thể làm hỏng dữ liệu của chúng tôi, làm hỏng phân tích của chúng tôi hoặc có tác động xấu đến các mô hình

3 — Chuyển đổi nhật ký;

Phương pháp cuối cùng của chúng tôi là Log Transformation. Chúng tôi sử dụng chuyển đổi nhật ký trên dữ liệu sai lệch. Chuyển đổi nhật ký làm giảm độ lệch của dữ liệu và cố gắng làm cho nó trở nên bình thường. Biến đổi log không phải lúc nào cũng bình thường, đôi khi còn làm sai lệch dữ liệu hơn. Vì vậy, nó phụ thuộc vào dữ liệu. Chúng ta phải áp dụng chuyển đổi và kiểm soát kết quả

Đối với phương pháp này, chúng tôi sẽ sử dụng cột carat của bộ dữ liệu kim cương. Hãy kiểm tra dữ liệu và đồ thị

Có nhiều ngoại lệ và dữ liệu bị lệch phải. Chuyển đổi nhật ký sẽ chuyển đổi dữ liệu thành bình thường hoặc gần với bình thường. Hãy áp dụng phép biến đổi log để giảm tính biến thiên của dữ liệu

Chúng tôi đã triển khai chuyển đổi nhật ký từ NumPy với np. đăng nhập. Nó đã thay đổi hoàn toàn dữ liệu của chúng tôi và loại bỏ các giá trị ngoại lai, chúng tôi có thể thấy điều này trong boxplot

Chuyển đổi nhật ký thường được sử dụng cho các thuật toán học máy. Hãy cẩn thận, nó thay đổi giá trị của chúng tôi nhưng loại bỏ các giá trị ngoại lai. Nó làm cho mô hình của chúng tôi bình thường và thuật toán học máy thích dữ liệu phân phối bình thường. Có một số phương pháp và tính năng trong các thuật toán học máy như chia tỷ lệ và chuẩn hóa. Chúng tôi sẽ nói về những điều khoản này trong các câu chuyện tiếp theo của chúng tôi

Sự kết luận

Phải mất một thời gian dài để đối phó với các ngoại lệ nhưng nó đáng giá. Chúng ta phải chọn phương pháp tốt nhất cho dữ liệu. Điều quan trọng là phải biết dữ liệu rất tốt. Với kiến ​​thức về lĩnh vực này, chúng ta sẽ quyết định phương pháp xử lý các giá trị ngoại lai. Ngoài các phương pháp này, chúng ta có thể coi các ngoại lệ này là các giá trị còn thiếu. Chúng ta có thể sử dụng các phương pháp điền các giá trị còn thiếu để loại bỏ các giá trị ngoại lệ

Làm thế nào để Python xử lý các ngoại lệ?

bước. .
Sắp xếp tập dữ liệu theo thứ tự tăng dần
tính phần tư thứ 1 và thứ 3 [Q1, Q3]
tính IQR=Q3-Q1
tính cận dưới = [Q1–1. 5*IQR], cận trên = [Q3+1. 5*IQR]
lặp qua các giá trị của tập dữ liệu và kiểm tra những giá trị nằm dưới giới hạn dưới và trên giới hạn trên và đánh dấu chúng là ngoại lệ

Điều gì có thể thay thế các giá trị NaN?

Bạn cũng có thể sử dụng df. thay[np. nan,0] để thay thế tất cả các giá trị NaN bằng 0. Điều này thay thế tất cả các cột của DataFrame bằng 0 cho các giá trị Nan.

Làm thế nào để Python phát hiện các ngoại lệ trong gấu trúc?

Sử dụng IQR .
Sắp xếp dữ liệu theo thứ tự tăng dần
Tính phần tư đầu tiên [q1] và phần tư thứ ba [q3]
Tìm phạm vi liên vùng [q3-q1]
Tìm cận dưới q1*1. 5
Tìm cận trên q3*1. 5
Bất cứ điều gì nằm ngoài giới hạn dưới và trên là một ngoại lệ

Chủ Đề