قسمت دوازدهم- سناریو سوم- شناسایی داده های پرت outlier از طریق Z-Score

در این مقاله ما سومین روش شناسایی داده های پرت را  از طریق روش Z_Score بررسی خواهیم کرد. در دومقاله قبلی ما از روش های انحراف معیار و آماره های چارکی برای شناسایی داده های پرت بهره برده ایم.

 

در پانداس، روش z-score یکی دیگر از روش‌های رایج برای شناسایی داده‌های پرت است که شباهت زیادی به روش انحراف معیار دارد، اما تفاوت اصلی آن در استفاده از نرمال‌سازی مقادیر به کمک مقیاس استاندارد دارد. در روش z-score، هر مقدار داده با استفاده از میانگین و انحراف معیار استانداردسازی می‌شود و z-score یا نمره استاندارد برای هر مقدار محاسبه می‌شود.

فرمول z-score

z-score به صورت زیر محاسبه می‌شود:

Z = (X – μ) / σ

که در اینجا:

  • X مقدار داده است،
  • μ میانگین داده‌ها،
  • σ انحراف معیار داده‌ها.

برای محاسبه z-score یک نقطه داده، باید میانگین را از مقدار کم کرده و آن را بر انحراف استاندارد تقسیم کنید. به عنوان مثال، اگر میانگین یک مجموعه داده ۵۰ و انحراف استاندارد ۱۰ باشد، و شما نقطه داده ۷۰ داشته باشید، امتیاز z (70-50)/10 = 2 است.
این بدان معنی است که نقطه داده دو انحراف استاندارد بالاتر از میانگین است.

مقدار z-score نشان‌دهنده تعداد انحراف معیارهایی است که مقدار X از میانگین فاصله دارد. مقادیری که z-score آنها بالاتر از حد معینی (معمولاً ۳ یا بیشتر) باشد، به عنوان داده پرت شناسایی می‌شوند.

تفاوت z-score با روش انحراف معیار

z-score داده‌ها را نرمال‌سازی می‌کند و بر حسب تعداد انحراف معیارهای فاصله از میانگین بیان می‌شود. به این ترتیب، به راحتی می‌توان داده‌هایی که فاصله زیادی از میانگین دارند را شناسایی کرد.

در روش انحراف معیار معمولاً مقادیر پرت به طور مستقیم با استفاده از محدوده میانگین±۳×انحراف معیار شناسایی می‌شوند. ولی در روش z-score، برای هر مقدار یک مقدار استاندارد محاسبه می‌شود که تشخیص داده‌های پرت را دقیق‌تر می‌کند.

import pandas as pd
import numpy as np

# ایجاد یک DataFrame نمونه
data = {'Values': [10, 12, 12, 13, 12, 14, 13, 15, 100, 13, 12, 11, 10, 13, 14, 13, 12, 200]}
df = pd.DataFrame(data)

# محاسبه میانگین و انحراف معیار
mean = df['Values'].mean()
std_dev = df['Values'].std()

# محاسبه z-score برای هر مقدار
df['z_score'] = (df['Values'] - mean) / std_dev

# شناسایی داده‌های پرت با شرط |z_score| > 3
outliers = df[np.abs(df['z_score']) > 3]

print("داده‌های پرت:")
print(outliers[['Values', 'z_score']])

داده‌های پرت:
    Values   z_score
۱۷     ۲۰۰  ۳.۶۱۲۱۷۵



ایجاد DataFrame: یک ستون داده به نام Values در df تعریف می‌شود.

محاسبه میانگین و انحراف معیار: از توابع ()mean و ()std برای محاسبه میانگین و انحراف معیار ستون Values استفاده می‌شود.

محاسبه z-score: z-score برای هر مقدار در ستون Values محاسبه شده و در ستون جدید z_score ذخیره می‌شود.

شناسایی داده‌های پرت: با استفاده از شرط |z_score| > 3، داده‌هایی که بیش از ۳ انحراف معیار از میانگین فاصله دارند، به عنوان داده‌های پرت شناسایی می‌شوند.

روش z-score با نرمال‌سازی داده‌ها تشخیص داده‌های پرت را دقیق‌تر می‌کند و به ویژه در داده‌های با توزیع نرمال، نتایج خوبی ارائه می‌دهد.

 

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *