قسمت دوازدهم- سناریو سوم- شناسایی داده های پرت 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 با نرمالسازی دادهها تشخیص دادههای پرت را دقیقتر میکند و به ویژه در دادههای با توزیع نرمال، نتایج خوبی ارائه میدهد.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.