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] 

Bài Viết Liên Quan

Chủ Đề