Hướng dẫn how does python detect and remove outliers? - python phát hiện và loại bỏ các ngoại lệ như thế nào?

Bài viết này đã được xuất bản như một phần của & nbsp; Data Science Blogathon & NBSP; 

Giới thiệu

Trong bài viết trước của tôi, tôi nói về các khái niệm lý thuyết về các ngoại lệ và cố gắng tìm câu trả lời cho câu hỏi: Khi chúng ta phải bỏ các ngoại lệ và khi nào nên giữ các ngoại lệ?“When we have to drop outliers and when to keep outliers?”.

Để hiểu rõ hơn về bài viết này, trước tiên bạn phải đọc bài viết đó và sau đó tiến hành điều này để bạn có một ý tưởng rõ ràng về phân tích ngoại lệ trong các dự án khoa học dữ liệu.article and then proceed with this so that you have a clear idea about the outlier analysis in Data Science Projects.

Trong bài viết này, chúng tôi sẽ cố gắng đưa ra câu trả lời cho các câu hỏi sau cùng với việc triển khai Python,Python implementation,

👉 & nbsp; Làm thế nào để đối xử với các ngoại lệ?How to treat outliers?

👉 & nbsp; Làm thế nào để phát hiện các ngoại lệ?How to detect outliers?

& Nbsp; các kỹ thuật phát hiện và loại bỏ ngoại lệ là gì?What are the techniques for outlier detection and removal?

Bắt đầu nào

Làm thế nào để đối xử với các ngoại lệ?

👉 & nbsp; Trimming: & nbsp; it & nbsp; không bao gồm các giá trị ngoại lệ khỏi phân tích của chúng tôi. Bằng cách áp dụng kỹ thuật này, dữ liệu của chúng tôi trở nên mỏng khi có nhiều ngoại lệ có trong bộ dữ liệu. Ưu điểm chính của nó là của nó & nbsp; bản chất nhanh nhất.Trimming: It excludes the outlier values from our analysis. By applying this technique our data becomes thin when there are more outliers present in the dataset. Its main advantage is its fastest nature.

👉CAPP: Trong kỹ thuật này, chúng tôi & nbsp; giới hạn dữ liệu ngoại lệ của chúng tôi và tạo giới hạn & nbsp; tức là, trên một giá trị cụ thể hoặc ít hơn giá trị đó, tất cả các giá trị sẽ được coi là ngoại lệ và số lượng ngoại lệ trong bộ dữ liệu cho giới hạn đó con số.Capping: In this technique, we cap our outliers data and make the limit i.e, above a particular value or less than that value, all the values will be considered as outliers, and the number of outliers in the dataset gives that capping number.

Ví dụ: nếu bạn làm việc trên tính năng thu nhập, bạn có thể thấy rằng những người trên mức thu nhập nhất định hoạt động giống như những người có thu nhập thấp hơn. Trong trường hợp này, bạn có thể giới hạn giá trị thu nhập ở mức giữ nguyên vẹn và theo đó đối xử với các ngoại lệ. if you’re working on the income feature, you might find that people above a certain income level behave in the same way as those with a lower income. In this case, you can cap the income value at a level that keeps that intact and accordingly treat the outliers.

Các ngoại lệ là một giá trị bị thiếu: bởi & nbsp; giả sử các ngoại lệ là các quan sát bị thiếu, hãy coi chúng phù hợp, tức là giống như các giá trị bị thiếu.Treat outliers as a missing value: By assuming outliers as the missing observations, treat them accordingly i.e, same as those of missing values.

Bạn có thể tham khảo bài viết giá trị bị thiếu ở đâyhere

👉 & nbsp; Sự rời rạc: Trong kỹ thuật này, bằng cách tạo ra các nhóm, chúng tôi bao gồm các ngoại lệ trong một nhóm cụ thể và buộc họ phải hành xử theo cách tương tự như các điểm khác trong nhóm đó. Kỹ thuật này còn được gọi là Binning.Discretization: In this technique, by making the groups we include the outliers in a particular group and force them to behave in the same manner as those of other points in that group. This technique is also known as Binning.

Bạn có thể tìm hiểu thêm về sự rời rạc ở đây.here.

Làm thế nào để phát hiện các ngoại lệ?

& Nbsp; cho các phân phối bình thường: Sử dụng các mối quan hệ thực nghiệm của phân phối bình thường.For Normal distributions: Use empirical relations of Normal distribution.

-Các điểm dữ liệu nằm dưới mức trung bình 3*(sigma) & nbsp; hoặc trên trung bình+3*(sigma) & nbsp; là các ngoại lệ.mean-3*(sigma) or above mean+3*(sigma) are outliers.

Trong đó trung bình và sigma là giá trị trung bình và độ lệch chuẩn của một cột cụ thể.average value and standard deviation of a particular column.

Hướng dẫn how does python detect and remove outliers? - python phát hiện và loại bỏ các ngoại lệ như thế nào?

Hình. Đặc điểm của phân phối bình thường

Nguồn hình ảnh: Liên kết

& Nbsp; cho các phân phối sai lệch: & nbsp; sử dụng quy tắc lân cận phạm vi liên quan (IQR).For Skewed distributions: Use Inter-Quartile Range (IQR) proximity rule.

- Các điểm dữ liệu giảm xuống dưới Q1 - 1.5 IQRor trên Q3 + 1.5 IQR là các ngoại lệ.Q1 – 1.5 IQRor above Q3 + 1.5 IQR are outliers.

trong đó Q1 và Q3 lần lượt là phần trăm thứ 25 và 75 của bộ dữ liệu và IQR đại diện cho phạm vi liên quản lý và được đưa ra bởi Q3-Q1.25th and 75th percentile of the dataset respectively, and IQR represents the inter-quartile range and given by Q3 – Q1.

Hướng dẫn how does python detect and remove outliers? - python phát hiện và loại bỏ các ngoại lệ như thế nào?

Hình. IQR để phát hiện các ngoại lệ

Nguồn hình ảnh: Liên kết

& Nbsp; cho các phân phối sai lệch: & nbsp; sử dụng quy tắc lân cận phạm vi liên quan (IQR).For Other distributions: Use percentile-based approach.

- Các điểm dữ liệu giảm xuống dưới Q1 - 1.5 IQRor trên Q3 + 1.5 IQR là các ngoại lệ.Data points that are far from 99% percentile and less than 1 percentile are considered an outlier.

Hướng dẫn how does python detect and remove outliers? - python phát hiện và loại bỏ các ngoại lệ như thế nào?

trong đó Q1 và Q3 lần lượt là phần trăm thứ 25 và 75 của bộ dữ liệu và IQR đại diện cho phạm vi liên quản lý và được đưa ra bởi Q3-Q1.

Nguồn hình ảnh: Liên kết

& Nbsp; cho các phân phối sai lệch: & nbsp; sử dụng quy tắc lân cận phạm vi liên quan (IQR).

- Các điểm dữ liệu giảm xuống dưới Q1 - 1.5 IQRor trên Q3 + 1.5 IQR là các ngoại lệ.Z-score treatment :

trong đó Q1 và Q3 lần lượt là phần trăm thứ 25 và 75 của bộ dữ liệu và IQR đại diện cho phạm vi liên quản lý và được đưa ra bởi Q3-Q1.– The features are normally or approximately normally distributed.

Hình. IQR để phát hiện các ngoại lệ

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

& Nbsp; cho các phân phối khác: Sử dụng & NBSP; Cách tiếp cận dựa trên phần trăm.

df = pd.read_csv('placement.csv')
df.sample(5)

Hướng dẫn how does python detect and remove outliers? - python phát hiện và loại bỏ các ngoại lệ như thế nào?

Ví dụ, các điểm dữ liệu xa 99% tỷ lệ phần trăm và dưới 1 phần trăm được coi là một ngoại lệ.

import warnings
warnings.filterwarnings('ignore')
plt.figure(figsize=(16,5))
plt.subplot(1,2,1)
sns.distplot(df['cgpa'])
plt.subplot(1,2,2)
sns.distplot(df['placement_exam_marks'])
plt.show()

Hướng dẫn how does python detect and remove outliers? - python phát hiện và loại bỏ các ngoại lệ như thế nào?

Hình. Đại diện phần trăm

print("Highest allowed",df['cgpa'].mean() + 3*df['cgpa'].std())
print("Lowest allowed",df['cgpa'].mean() - 3*df['cgpa'].std())

Output:

Highest allowed 8.808933625397177
Lowest allowed 5.113546374602842

Kỹ thuật phát hiện và loại bỏ ngoại lệ:

df[(df['cgpa'] > 8.80) | (df['cgpa'] < 5.11)]

👉 & nbsp; điều trị điểm Z:

new_df = df[(df['cgpa'] < 8.80) & (df['cgpa'] > 5.11)]
new_df

Giả định, các tính năng thường được phân phối bình thường hoặc xấp xỉ.

upper_limit = df['cgpa'].mean() + 3*df['cgpa'].std()
lower_limit = df['cgpa'].mean() - 3*df['cgpa'].std()

Bước 1: Nhập các phụ thuộc cần thiết

df['cgpa'] = np.where(
    df['cgpa']>upper_limit,
    upper_limit,
    np.where(
        df['cgpa']

Bước-2: Đọc và tải bộ dữ liệu

df['cgpa'].describe()

Output:

df = pd.read_csv('placement.csv')
df.sample(5)
0

Bước 3: Vẽ sơ đồ các sơ đồ phân phối cho các tính năng

Bước 4: Tìm các giá trị biênIQR based filtering :

Bước-5: Tìm các ngoại lệ

Bước 6: Cắt tỉa các ngoại lệ

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

& Nbsp; cho các phân phối khác: Sử dụng & NBSP; Cách tiếp cận dựa trên phần trăm.

df = pd.read_csv('placement.csv')
df.sample(5)
2

Ví dụ, các điểm dữ liệu xa 99% tỷ lệ phần trăm và dưới 1 phần trăm được coi là một ngoại lệ.

df = pd.read_csv('placement.csv')
df.sample(5)
3

Hình. Đại diện phần trăm

df = pd.read_csv('placement.csv')
df.sample(5)
4

Hướng dẫn how does python detect and remove outliers? - python phát hiện và loại bỏ các ngoại lệ như thế nào?

Kỹ thuật phát hiện và loại bỏ ngoại lệ:

df = pd.read_csv('placement.csv')
df.sample(5)
5

👉 & nbsp; điều trị điểm Z:

Giả định, các tính năng thường được phân phối bình thường hoặc xấp xỉ.

Bước 1: Nhập các phụ thuộc cần thiết

df = pd.read_csv('placement.csv')
df.sample(5)
7

Bước-2: Đọc và tải bộ dữ liệu

df = pd.read_csv('placement.csv')
df.sample(5)
8

Bước 3: Vẽ sơ đồ các sơ đồ phân phối cho các tính năng

df = pd.read_csv('placement.csv')
df.sample(5)
9

Hướng dẫn how does python detect and remove outliers? - python phát hiện và loại bỏ các ngoại lệ như thế nào?

Bước 4: Tìm các giá trị biên

import warnings
warnings.filterwarnings('ignore')
plt.figure(figsize=(16,5))
plt.subplot(1,2,1)
sns.distplot(df['cgpa'])
plt.subplot(1,2,2)
sns.distplot(df['placement_exam_marks'])
plt.show()
0

Bước-5: Tìm các ngoại lệ

import warnings
warnings.filterwarnings('ignore')
plt.figure(figsize=(16,5))
plt.subplot(1,2,1)
sns.distplot(df['cgpa'])
plt.subplot(1,2,2)
sns.distplot(df['placement_exam_marks'])
plt.show()
1

Hướng dẫn how does python detect and remove outliers? - python phát hiện và loại bỏ các ngoại lệ như thế nào?

Bước 6: Cắt tỉa các ngoại lệ

Bước 7: giới hạn các ngoại lệPercentile :

Bước-8: Bây giờ, áp dụng giới hạn

Bước-9: Bây giờ hãy xem các số liệu thống kê bằng cách sử dụng hàm mô tả ”Winsorization.

Điều này hoàn thành kỹ thuật dựa trên điểm Z của chúng tôi! symmetry on both sides means if remove 1% from the right then in the left we also drop by 1%.

Bước 6: Cắt tỉa các ngoại lệ

import warnings
warnings.filterwarnings('ignore')
plt.figure(figsize=(16,5))
plt.subplot(1,2,1)
sns.distplot(df['cgpa'])
plt.subplot(1,2,2)
sns.distplot(df['placement_exam_marks'])
plt.show()
2

Bước-2: Đọc và tải bộ dữ liệu

import warnings
warnings.filterwarnings('ignore')
plt.figure(figsize=(16,5))
plt.subplot(1,2,1)
sns.distplot(df['cgpa'])
plt.subplot(1,2,2)
sns.distplot(df['placement_exam_marks'])
plt.show()
3

Hướng dẫn how does python detect and remove outliers? - python phát hiện và loại bỏ các ngoại lệ như thế nào?

Bước-3: Vẽ biểu đồ phân phối của tính năng chiều cao ”

import warnings
warnings.filterwarnings('ignore')
plt.figure(figsize=(16,5))
plt.subplot(1,2,1)
sns.distplot(df['cgpa'])
plt.subplot(1,2,2)
sns.distplot(df['placement_exam_marks'])
plt.show()
4

BƯỚC-4: Vẽ biểu đồ hình hộp của tính năng chiều cao

import warnings
warnings.filterwarnings('ignore')
plt.figure(figsize=(16,5))
plt.subplot(1,2,1)
sns.distplot(df['cgpa'])
plt.subplot(1,2,2)
sns.distplot(df['placement_exam_marks'])
plt.show()
5

Hướng dẫn how does python detect and remove outliers? - python phát hiện và loại bỏ các ngoại lệ như thế nào?

Bước-5: Tìm giới hạn trên và dưới

import warnings
warnings.filterwarnings('ignore')
plt.figure(figsize=(16,5))
plt.subplot(1,2,1)
sns.distplot(df['cgpa'])
plt.subplot(1,2,2)
sns.distplot(df['placement_exam_marks'])
plt.show()
6

Bước 7: Áp dụng Trimming

import warnings
warnings.filterwarnings('ignore')
plt.figure(figsize=(16,5))
plt.subplot(1,2,1)
sns.distplot(df['cgpa'])
plt.subplot(1,2,2)
sns.distplot(df['placement_exam_marks'])
plt.show()
7

Bước-8: So sánh phân phối và biểu đồ hộp sau khi cắt tỉa

import warnings
warnings.filterwarnings('ignore')
plt.figure(figsize=(16,5))
plt.subplot(1,2,1)
sns.distplot(df['cgpa'])
plt.subplot(1,2,2)
sns.distplot(df['placement_exam_marks'])
plt.show()
8

Hướng dẫn how does python detect and remove outliers? - python phát hiện và loại bỏ các ngoại lệ như thế nào?

👉 & nbsp; winsorization:Winsorization :

Bước 9: Áp dụng giới hạn (Winsorization)

import warnings
warnings.filterwarnings('ignore')
plt.figure(figsize=(16,5))
plt.subplot(1,2,1)
sns.distplot(df['cgpa'])
plt.subplot(1,2,2)
sns.distplot(df['placement_exam_marks'])
plt.show()
9

Bước-10: So sánh phân phối và biểu thị hộp sau khi giới hạn

print("Highest allowed",df['cgpa'].mean() + 3*df['cgpa'].std())
print("Lowest allowed",df['cgpa'].mean() - 3*df['cgpa'].std())
0

Hướng dẫn how does python detect and remove outliers? - python phát hiện và loại bỏ các ngoại lệ như thế nào?

Điều này hoàn thành kỹ thuật dựa trên phần trăm của chúng tôi!

Ghi chú kết thúc

Cảm ơn vì đã đọc!

Nếu bạn thích điều này và muốn biết thêm, hãy truy cập các bài viết khác của tôi về khoa học dữ liệu và học máy bằng cách nhấp vào liên kếtLink

Xin vui lòng liên hệ với tôi trên LinkedIn, email.Linkedin, Email.

Một cái gì đó không được đề cập hoặc muốn chia sẻ suy nghĩ của bạn? Hãy bình luận bên dưới và tôi sẽ liên hệ lại với bạn.

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

Chirag Gidel

Hiện tại, tôi đang theo đuổi Cử nhân Công nghệ (B.Tech) về Khoa học và Kỹ thuật Máy tính của Viện Công nghệ Ấn Độ Jodhpur (IITJ). Tôi rất nhiệt tình về học máy, học sâu và trí tuệ nhân tạo.Indian Institute of Technology Jodhpur(IITJ). I am very enthusiastic about Machine learning, Deep Learning, and Artificial Intelligence.

Các phương tiện truyền thông được hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của tác giả. & NBSP;

Làm thế nào để Python phát hiện và đối xử với các ngoại lệ?

steps:..
Sắp xếp bộ dữ liệu theo thứ tự tăng dần ..
Tính toán tứ phân số 1 và 3 (Q1, Q3).
Tính IQR = Q3-Q1 ..
Tính toán giới hạn dưới = (Q1 Từ1.5*IQR), giới hạn trên = (Q3+1.5*IQR).
Vòng lặp qua các giá trị của bộ dữ liệu và kiểm tra xem những người rơi xuống dưới giới hạn dưới và phía trên giới hạn trên và đánh dấu chúng là ngoại lệ ..

Làm thế nào các ngoại lệ có thể được phát hiện và loại bỏ?

Các ngoại lệ có thể được phát hiện bằng cách sử dụng trực quan hóa, thực hiện các công thức toán học trên tập dữ liệu hoặc sử dụng phương pháp thống kê.using visualization, implementing mathematical formulas on the dataset, or using the statistical approach.

Làm thế nào để Python xác định các ngoại lệ trong các ô hộp?

Phát hiện ngoại lệ bằng phương pháp IQR và biểu đồ hộp trong Python..
# Phương pháp 1. Q1 = np.percentile (Lớp, 25) Q3 = NP.....
IQR = Q3 - Q1.UL = Q3+1.5*IQR.ll = q1-1.5*iqr.....
Outliers = Lớp [(Lớp> UL) |(Lớp
fig = plt.figure (figsize = (6,5)) hypo = np.random.randint (20, 81, size = 500).

Quá trình loại bỏ các ngoại lệ là gì?

Khi bạn quyết định xóa các ngoại lệ, hãy ghi lại các điểm dữ liệu bị loại trừ và giải thích lý do của bạn.Bạn phải có thể gán một nguyên nhân cụ thể để loại bỏ các ngoại lệ.Một cách tiếp cận khác là thực hiện phân tích có và không có những quan sát này và thảo luận về sự khác biệt.document the excluded data points and explain your reasoning. You must be able to attribute a specific cause for removing outliers. Another approach is to perform the analysis with and without these observations and discuss the differences.