Hướng dẫn how do you remove outliers from a data frame in python? - làm cách nào để loại bỏ các giá trị ngoại lệ khỏi khung dữ liệu trong python?

Hướng dẫn how do you remove outliers from a data frame in python? - làm cách nào để loại bỏ các giá trị ngoại lệ khỏi khung dữ liệu trong python?

Bạn có nên xóa các ngoại lệ khỏi bộ dữ liệu không?

Các ngoại lệ là các điểm dữ liệu trong một bộ dữ liệu được coi là cực đoan, sai hoặc không đại diện cho những gì dữ liệu đang mô tả. Những ngoại lệ này có thể được gây ra bởi việc thu thập dữ liệu không chính xác hoặc các quan sát xa xôi chính hãng. Loại bỏ các ngoại lệ này thường sẽ giúp mô hình của bạn khái quát hóa tốt hơn vì những quan sát đuôi dài này có thể làm lệch hướng học tập.

Bạn có nên xóa các ngoại lệ khỏi bộ dữ liệu không?

Các ngoại lệ nên được xóa khỏi bộ dữ liệu của bạn nếu bạn tin rằng điểm dữ liệu không chính xác hoặc điểm dữ liệu không thể hiện được về tình huống trong thế giới thực đến mức nó sẽ khiến mô hình học máy của bạn không khái quát.

Phương pháp xử lý các ngoại lệ trong khung dữ liệu

Loại bỏ các ngoại lệ khỏi bộ dữ liệu của bạn không nhất thiết là cách tiếp cận duy nhất để thực hiện. Theo nguyên tắc thông tin, có ba lựa chọn mà bạn có thể thực hiện khi muốn đối phó với các ngoại lệ trong bộ dữ liệu của bạn.

  1. Xóa - Các quan sát không chính xác hoặc không đại diện cho những gì bạn đang mô hình hóa - The observations are incorrect or not representative of what you are modelling
  2. Tỷ lệ tái - Bạn muốn giữ các quan sát nhưng cần giảm bớt bản chất cực đoan của chúng - You want to keep the observations but need to reduce their extreme nature
  3. Mark - Dán nhãn các ngoại lệ để hiểu nếu chúng có ảnh hưởng đến mô hình sau đó - Label the outliers to understand if they had an effect on the model afterwards

Các phương pháp để phát hiện các ngoại lệ trong khung dữ liệu gấu trúc

Khi bạn đã quyết định xóa các ngoại lệ khỏi bộ dữ liệu của mình, bước tiếp theo là chọn một phương pháp để tìm chúng. Giả sử rằng bộ dữ liệu của bạn quá lớn để loại bỏ thủ công các dòng theo từng dòng, sẽ được yêu cầu một phương thức thống kê. Có một số cách tiếp cận phổ biến để sử dụng:

  1. Độ lệch chuẩn - Loại bỏ các giá trị là một số độ lệch chuẩn nhất định so với giá trị trung bình, nếu dữ liệu có phân phối Gaussian - Remove the values which are a certain number of standard deviations away from the mean, if the data has a Gaussian distribution
  2. Phát hiện ngoại lệ tự động - Huấn luyện mô hình học máy trên một bộ quan sát bình thường nhỏ hơn sau đó có thể dự đoán các điểm dữ liệu bên ngoài bộ bình thường này - Train a machine learning model on a smaller normal set of observations which can then predict data points outside of this normal set
  3. Phạm vi liên vùng - Loại bỏ các giá trị cao hơn phần trăm thứ 75 hoặc thấp hơn phần trăm thứ 25, không yêu cầu dữ liệu phải là Gaussian - Remove the values which are above the 75th percentile or below the 25th percentile, doesn't require the data to be Gaussian

Có sự đánh đổi cho mỗi tùy chọn này, tuy nhiên phương pháp được sử dụng phổ biến nhất trong ngành là độ lệch chuẩn hoặc điểm Z-Score.

Tôi nên sử dụng bao nhiêu độ lệch chuẩn so với trung bình để phát hiện các ngoại lệ?

Cách tiếp cận độ lệch chuẩn để loại bỏ các ngoại lệ yêu cầu người dùng chọn một số độ lệch chuẩn để phân biệt ngoại lệ với không thoát ra.

Điều này sau đó đặt ra câu hỏi, bạn nên chọn bao nhiêu độ lệch chuẩn?

Thực tiễn công nghiệp chung là sử dụng 3 độ lệch chuẩn từ trung bình để phân biệt ngoại lệ với không xa hơn. Bằng cách sử dụng 3 độ lệch chuẩn, chúng tôi loại bỏ các trường hợp cực đoan 0,3%. Tùy thuộc vào trường hợp sử dụng của bạn, bạn có thể muốn xem xét sử dụng 4 độ lệch chuẩn sẽ chỉ loại bỏ 0,1%hàng đầu.

Xóa các ngoại lệ trong gấu trúc DataFrame bằng cách sử dụng độ lệch chuẩn

Cách tiếp cận phổ biến nhất để loại bỏ các điểm dữ liệu khỏi bộ dữ liệu là độ lệch chuẩn hoặc cách tiếp cận điểm z. Trong ví dụ này, tôi sẽ chỉ ra cách tạo một chức năng để loại bỏ các ngoại lệ nằm cách xa hơn 3 độ lệch chuẩn so với giá trị trung bình:

import pandas as pd

def remove_outliers(df,columns,n_std):
    for col in columns:
        print('Working on column: {}'.format(col))
        
        mean = df[col].mean()
        sd = df[col].std()
        
        df = df[(df[col] <= mean+(n_std*sd))]
        
    return df

Những bài viết liên quan

Tỷ lệ cột vách mã hóa Cột loc vs ILOC
Label encode columns
loc vs iloc

Người giới thiệu

Gấu trúc trung bình tài liệu
Pandas standard deviation documentation
Scipy z-score documentation
Sklearn outlier detection documentation

Hướng dẫn how do you remove outliers from a data frame in python? - làm cách nào để loại bỏ các giá trị ngoại lệ khỏi khung dữ liệu trong python?

Tôi là một nhà khoa học dữ liệu hiện đang làm việc cho ODA, một nhà bán lẻ tạp hóa trực tuyến, ở Oslo, Na Uy. Những bài viết này là cách tôi chia sẻ một số mẹo và thủ thuật tôi đã chọn trên đường đi.

Oslo, Na Uy

Chúng tôi có thể sử dụng thư viện của Pandas Pandas để thực hiện một số tác vụ toán học trên dữ liệu theo cách có thể quản lý được. Bộ công cụ nguồn mở này được sử dụng để thao tác và phân tích dữ liệu để trích xuất thông tin cần thiết từ dữ liệu được chỉ định. Khi chúng ta thảo luận về các ngoại lệ của người Viking, trong trò chơi gandas, chúng ta có thể nói rằng một mục dữ liệu hoặc đối tượng khác biệt đáng kể so với các mục khác được gọi là một người ngoại trú. Lỗi trong đo lường hoặc thực hiện có thể là lý do cho chúng. Khai thác ngoại lệ là kỹ thuật được sử dụng để khám phá ngoại lệ. Có rất nhiều phương pháp để tìm các ngoại lệ và quy trình làm sạch là giống nhau đối với khung dữ liệu của Panda, vì nó dành cho khung dữ liệu của Panda. Chúng tôi phải loại bỏ các ngoại lệ trên mạng trong bộ dữ liệu của Pandas Pandas vì khi chúng tôi loại bỏ các ngoại lệ này, nó sẽ thường xuyên hỗ trợ mô hình của chúng tôi để khái quát hóa hiệu quả hơn. Chúng tôi sẽ loại bỏ các ngoại lệ trong DataFrame và loạt dữ liệu của Pandas trong bài viết này bằng cách sử dụng phương pháp của Pandas.

Phương pháp loại bỏ các ngoại lệ trong Pandas Pandas

Chúng ta có thể sử dụng hai phương pháp trong Pandas Pandas để loại bỏ các ngoại lệ trong Pandas Pandas. Đó là:

  • Phương pháp phạm vi liên vùng
  • Phương pháp điểm z

Các phương pháp này sẽ được sử dụng để loại bỏ các ngoại lệ của người Viking khỏi loạt dữ liệu của Pandas Pandas và các bản dữ liệu của Pandas. Trong bài viết này, chúng tôi cũng sẽ minh họa các ví dụ về cách chúng tôi sử dụng các kỹ thuật này trong mã Pandas.

Ví dụ # 01:

Chúng tôi đang sử dụng công cụ của Spyder Spyder để thực hiện các mã Pandas Pandas được trình bày trong bài viết này. Khi chúng tôi sẽ tạo ra mã Pandas của Pandas, chúng tôi phải nhập các mô -đun của nó. Để nhập các mô -đun của các gấu trúc, chúng tôi đang thêm vào nhập khẩu, đó là từ khóa và sau đó chúng tôi đặt pandas là PD PD. Nó sẽ hỗ trợ để có được các phương pháp của Pandas nếu chúng ta gõ các PD PD với tên của chức năng mà chúng ta muốn sử dụng. Sau đó, chúng tôi đã nhập khẩu Numpy, đó cũng là thư viện. Chúng tôi nhập nó dưới dạng NP NP, vì vậy chúng tôi cũng có thể lấy các phương thức của nó với tên của chức năng Numpy Numpy mà chúng tôi muốn sử dụng.

Sau đó, chúng tôi đã tuyên bố kích thước của Google, đó là tên biến và biến này được khởi tạo với giá trị là 15 15. Bây giờ, sau khi khởi tạo kích thước trên mạng, chúng tôi cũng đang khai báo một biến khác có tên là Dữ liệu trực tuyến dưới đây. Sau đó, dữ liệu của người Viking này được khởi tạo với phương thức PD PD.Series (). Như chúng tôi đã gõ PD PD, chúng tôi sẽ nhận được phương pháp của Pandas. Trong phương thức pd.series () này, chúng tôi đã đặt phương thức NP NP.Random.Normal () và đây là phương thức của thư viện Numpy Numpy vì chúng tôi đã thêm vào NP NP với nó. Phương pháp này giúp chúng tôi tạo ra dữ liệu phân phối bình thường. Dữ liệu này được tạo ra dưới dạng loạt gấu trúc của Pandas.

Chúng tôi vượt qua tham số kích thước trên mạng trong đó và gán biến số kích thước mà chúng tôi đã tạo cho tham số kích thước này. Vì vậy, nó sẽ tạo ra một loạt ngẫu nhiên của pandas, với kích thước của 15 15 và nó là một chiều. Biến dữ liệu của người Viking trong đó chuỗi ngẫu nhiên được lưu trữ sau đó được truyền đến hàm in in (), vì vậy, nó hỗ trợ in chuỗi ngẫu nhiên đó trên thiết bị đầu cuối.

Hướng dẫn how do you remove outliers from a data frame in python? - làm cách nào để loại bỏ các giá trị ngoại lệ khỏi khung dữ liệu trong python?

Bây giờ, chúng ta có thể dễ dàng có được đầu ra của các mã trong ứng dụng Spyder Spyder theo hai cách. Một trong số đó là nhấn vào các phím của Shift Shift+Enter Enter và cái còn lại là sử dụng biểu tượng Run Run của công cụ này. Bây giờ, sau khi làm điều này, chúng tôi có kết quả của mã trên thiết bị đầu cuối của công cụ này. Kết quả cũng được hiển thị trong đó loạt được hiển thị, đây là chuỗi ngẫu nhiên mà chúng tôi đã tạo trong mã Pandas Pandas. Bây giờ, chúng tôi sẽ loại bỏ các ngoại lệ khỏi loạt bài này dưới đây.

Hướng dẫn how do you remove outliers from a data frame in python? - làm cách nào để loại bỏ các giá trị ngoại lệ khỏi khung dữ liệu trong python?

Ở đây, chúng tôi đang điều chỉnh các giá trị lượng tử (). Chúng tôi đã điều chỉnh trên mạng .15, là giá trị của lượng tử đầu tiên và nó cũng là lượng tử thấp nhất. Sau đó, chúng tôi đã điều chỉnh giá trị của .85 .85 là giá trị của lượng tử thứ hai và nó là giá trị lượng tử cao nhất. Chúng tôi đã thêm tên của loạt bài là dữ liệu. Trong dấu ngoặc vuông, chúng tôi lại đặt dữ liệu dữ liệu và sau đó viết phương thức giữa (). Bên trong phương pháp này, chúng tôi đã thêm hai tham số trong đó phương pháp đầu tiên là lượng tử thấp nhất và tham số thứ hai là lượng tử cao nhất.

Chúng tôi cũng đã thêm phương thức này trong biến Data Data1, vì vậy khi chúng tôi thực thi mã này, các giá trị sau khi xóa các ngoại lệ sẽ được lưu trữ trong biến Data Data1. Bây giờ, nó sẽ loại bỏ tất cả các ngoại lệ đang nằm ở mức thấp nhất cũng như lượng tử cao nhất. Sau đó, chúng tôi có bản in in, trong đó chúng tôi đã thêm dữ liệu1.

Hướng dẫn how do you remove outliers from a data frame in python? - làm cách nào để loại bỏ các giá trị ngoại lệ khỏi khung dữ liệu trong python?

Các ngoại lệ được xóa khỏi loạt mà chúng tôi đã tạo ở trên và chỉ có chín giá trị được hiển thị. Sê -ri chúng tôi đã tạo ở trên chứa 15 giá trị nhưng sau khi xóa các ngoại lệ, có chín giá trị.

Hướng dẫn how do you remove outliers from a data frame in python? - làm cách nào để loại bỏ các giá trị ngoại lệ khỏi khung dữ liệu trong python?

Ví dụ # 02:

Chúng tôi cũng đang nhập các số liệu thống kê trên mạng từ thư viện Scipy Scipy vì chúng tôi phải sử dụng phương pháp này trong mã này. Chúng tôi đang tạo một khung dữ liệu trong đó chúng tôi chỉ thêm một cột được đặt tên là dữ liệu. Chúng tôi đã thêm vào -2, 7, 15, 19, 34, 39, 50, 13, 19, 14, 87, 89 và 1456 vào cột dữ liệu này. Ngoài ra, chúng tôi đã lưu trữ khung dữ liệu này trong MY_DF. Sau đó, chúng tôi chỉ in trên My_df.

Hướng dẫn how do you remove outliers from a data frame in python? - làm cách nào để loại bỏ các giá trị ngoại lệ khỏi khung dữ liệu trong python?

DataFrame được hiển thị trong kết quả này. Bây giờ, chúng tôi sẽ áp dụng phương thức của Z-Score, vào khung dữ liệu này để loại bỏ các ngoại lệ.

Hướng dẫn how do you remove outliers from a data frame in python? - làm cách nào để loại bỏ các giá trị ngoại lệ khỏi khung dữ liệu trong python?

Chúng tôi đang tìm kiếm các Zscore, bằng cách sử dụng các số liệu thống kê của người Hồi giáo với nó mà chúng tôi đã nhập ở trên. Chúng tôi chỉ sử dụng phương pháp này khi chúng tôi nhập các số liệu thống kê trên mạng. Chúng tôi đã thêm cột Z_SCORE, nơi chúng tôi đang lưu trữ các giá trị của Zs Zscore. Để tìm các giá trị của ZSCORE trên mạng của cột dữ liệu, chúng tôi đã thêm tên DataFrame và cột trong phương thức này. Sau đó, chúng tôi cũng hiển thị về MY_DATA, trong đó cột Z_SCORE cũng được thêm vào.

Hướng dẫn how do you remove outliers from a data frame in python? - làm cách nào để loại bỏ các giá trị ngoại lệ khỏi khung dữ liệu trong python?

Hai cột được hiển thị trong kết quả này. Cột dữ liệu của người Viking, mà chúng tôi đã thêm vào DataFrame và phần còn lại là cột của Z Z_SCORE, chứa các giá trị của Zscore mà chúng tôi có được bằng cách áp dụng phương thức StatS.Zscore (). Ở đây, bạn có thể lưu ý rằng tất cả các giá trị, có mặt trong cột z_score, là âm nhưng giá trị cuối cùng là giá trị dương. Vì vậy, nó có nghĩa là nó là ngoại lệ và chúng ta phải loại bỏ nó.

Hướng dẫn how do you remove outliers from a data frame in python? - làm cách nào để loại bỏ các giá trị ngoại lệ khỏi khung dữ liệu trong python?

Theo các tiêu chí thực nghiệm, các ngoại lệ là các giá trị của điểm z lớn hơn 3. Vì vậy, chúng tôi đã thêm phương thức loc loc đến 3 và nó cũng hiển thị các hàng đó trong kết quả vì phương thức này được viết bên trong bản in (). Tất cả các giá trị khác là các ngoại lệ và sẽ bị xóa khỏi khung dữ liệu này.

Hướng dẫn how do you remove outliers from a data frame in python? - làm cách nào để loại bỏ các giá trị ngoại lệ khỏi khung dữ liệu trong python?

Ở đây, tất cả các giá trị ít hơn 3 xuất hiện. Giá trị cuối cùng được loại bỏ vì nó lớn hơn 3 và nó là ngoại lệ trong khung dữ liệu này.

Hướng dẫn how do you remove outliers from a data frame in python? - làm cách nào để loại bỏ các giá trị ngoại lệ khỏi khung dữ liệu trong python?

Sự kết luận

Bài viết này được trình bày để mô tả chi tiết khái niệm của Pandas Pandas loại bỏ các ngoại lệ. Chúng tôi đã thảo luận trong bài viết này rằng các giá trị có trong một bộ dữ liệu được coi là cực đoan, sai lầm hoặc không thể hiện được đối tượng của bộ dữ liệu được gọi là ngoại lệ. Chúng tôi cũng đã giải thích rằng các ngoại lệ này có thể là kết quả của các phương pháp thu thập dữ liệu không chính xác hoặc kết quả ngoại lệ thực tế. Chúng tôi đã thảo luận về hai phương pháp để loại bỏ các ngoại lệ này trong Pand Pandas. Chúng tôi đã loại bỏ các ngoại lệ trong loạt gandas và DataFrame trong bài viết này và cũng đã thảo luận chi tiết về cả hai phương pháp.

Thông tin về các Tác giả

Hướng dẫn how do you remove outliers from a data frame in python? - làm cách nào để loại bỏ các giá trị ngoại lệ khỏi khung dữ liệu trong python?

Tôi là một chuyên gia công nghệ thông tin tự động viên với niềm đam mê viết lách. Tôi là một nhà văn kỹ thuật và thích viết cho tất cả các hương vị và cửa sổ Linux.