Python ရှိ outliers ကိုမည်သို့ဖယ်ရှားနည်း
Outlier သည် ဒေတာအတွဲတစ်ခုရှိ အခြားတန်ဖိုးများနှင့် ပုံမှန်မဟုတ်စွာ ဝေးကွာနေသော စူးစမ်းမှုတစ်ခုဖြစ်သည်။ ခွဲခြမ်းစိတ်ဖြာမှု၏ရလဒ်များကို ထိခိုက်စေနိုင်သောကြောင့် အစွန်းထွက်သူများသည် ပြဿနာရှိနိုင်သည်။
ဤသင်ခန်းစာတွင် Python ရှိ အစွန်းအထင်းများကို ခွဲခြားသတ်မှတ်ပြီး ဖယ်ရှားနည်းကို ရှင်းပြထားသည်။
Python တွင် Outliers ကိုမည်သို့ခွဲခြားနိုင်မည်နည်း။
အစွန်းကွက်များကို ဖယ်ရှားခြင်းမပြုမီ၊ သင်သည် အစွန်းထွက်တစ်ခုဟု သင်ယူဆသောအရာကို ဦးစွာဆုံးဖြတ်ရပါမည်။ ဒီလိုလုပ်ဖို့ ဘုံနည်းလမ်းနှစ်ခုရှိပါတယ်
1. ကြားကာလအပိုင်းအခြားကို အသုံးပြုပါ။
interquartile အကွာအဝေး (IQR) သည် ဒေတာအတွဲတစ်ခုတွင် 75th ရာခိုင်နှုန်း (Q3) နှင့် 25th percentile (Q1) အကြား ကွာခြားချက်ဖြစ်သည်။ ၎င်းသည် ပျမ်းမျှတန်ဖိုးများ၏ 50% ခွဲဝေမှုကို တိုင်းတာသည်။
တတိယ quartile (Q3) ထက် 1.5 ဆ သို့မဟုတ် ပထမ quartile (Q1) အောက်ရှိ interquartile အပိုင်းအခြား 1.5 ဆ အထက်ရှိ ကြားခံအကွာအဝေး၏ 1.5 ဆ ဖြစ်ပါက စောင့်ကြည့်မှုတစ်ခုကို အကြမ်းဖျင်းအဖြစ် သတ်မှတ်နိုင်သည်။
Outliers = အကဲဖြတ်ချက်များ > Q3 + 1.5*IQR သို့မဟုတ် Q1 – 1.5*IQR
2. z-ရမှတ်များကိုသုံးပါ။
z-score သည် သင့်အား ပေးထားသောတန်ဖိုးမှ စံသွေဖည်မည်မျှရှိသည်ကို ပြောပြသည်။ z-score ကိုတွက်ချက်ရန် အောက်ပါဖော်မြူလာကို ကျွန်ုပ်တို့အသုံးပြုသည်-
z = (X – μ) / σ
ရွှေ-
- X သည် ဒေတာအကြမ်းတစ်ခုတည်းတန်ဖိုးဖြစ်သည်။
- µ သည် လူဦးရေကို ဆိုလိုသည်။
- σ သည် လူဦးရေစံသွေဖည်သည်။
၎င်း၏ z-score သည် -3 ထက်နည်းပါက သို့မဟုတ် 3 ထက်ကြီးပါက စောင့်ကြည့်မှုတစ်ခုအား အကြမ်းဖျင်းအဖြစ် သတ်မှတ်နိုင်သည်။
Outliers = z-scores > 3 သို့မဟုတ် < -3 ပါသော စောင့်ကြည့်မှုများ
Python ရှိ Outliers ကိုမည်သို့ဖယ်ရှားနည်း
သာလွန်သည်ဟု သင်ယူဆသောအရာကို သင်ဆုံးဖြတ်ပြီးသည်နှင့် ၎င်းတို့ကို ဒေတာအတွဲတစ်ခုမှ ဖော်ထုတ်ပြီး ဖယ်ရှားနိုင်သည်။ ၎င်းကိုပြုလုပ်ပုံကို သရုပ်ဖော်ရန်၊ ကျွန်ုပ်တို့သည် အောက်ပါ ပန်ဒါ DataFrame ကို အသုံးပြုပါမည်။
import numpy as np import pandas as pd import scipy.stats as stats #create dataframe with three columns 'A', 'B', 'C' np.random.seed(10) data = pd.DataFrame(np.random.randint(0, 10, size=(100, 3)), columns=['A', 'B', 'C']) #view first 10 rows data[:10] ABC 0 13.315865 7.152790 -15.454003 1 -0.083838 6.213360 -7.200856 2 2.655116 1.085485 0.042914 3 -1.746002 4.330262 12.030374 4 -9.650657 10.282741 2.286301 5 4.451376 -11.366022 1.351369 6 14.845370 -10.798049 -19.777283 7 -17.433723 2.660702 23.849673 8 11.236913 16.726222 0.991492 9 13.979964 -2.712480 6.132042
ထို့နောက် z-score method သို့မဟုတ် interquartile range method ကို အသုံးပြု၍ outliers များကို သတ်မှတ်ပြီး ဖယ်ရှားနိုင်သည်-
Z-ရမှတ် နည်းလမ်း-
#find absolute value of z-score for each observation z = np.abs(stats.zscore(data)) #only keep rows in dataframe with all z-scores less than absolute value of 3 data_clean = data[(z<3).all(axis=1)] #find how many rows are left in the dataframe data_clean.shape (99.3)
Interquartile အပိုင်းအခြားနည်းလမ်း-
#find Q1, Q3, and interquartile range for each column Q1 = data.quantile(q=.25) Q3 = data.quantile(q=.75) IQR = data.apply(stats.iqr) #only keep rows in dataframe that have values within 1.5*IQR of Q1 and Q3 data_clean = data[~((data < (Q1-1.5*IQR)) | (data > (Q3+1.5*IQR))).any(axis=1)] #find how many rows are left in the dataframe data_clean.shape (89.3)
ကွာတားအကွာအဝေးနည်းလမ်းသည် အစွန်းထွက်များအဖြစ် ရှုမြင်ချက် ၁၁ ခုကို အစွန်းထွက်များအဖြစ် သတ်မှတ်ပြီး စုစုပေါင်း စောင့်ကြည့်မှု ၁၁ ခုကို ဖယ်ထုတ်ထားချိန်တွင် za ရမှတ်နည်းလမ်းသည် ရှုမြင်ချက်ကို အစွန်းတစ်ခုအဖြစ် သတ်မှတ်ပြီး ဖယ်ရှားထားသည်ကို ကျွန်ုပ်တို့ တွေ့နိုင်ပါသည်။
အစွန်းအထင်းတွေကို ဘယ်အချိန်မှာ ဖယ်ရှားရမလဲ
သင့်ဒေတာတွင် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော အစွန်းအထင်းများရှိနေပါက၊ ၎င်းတို့သည် ဒေတာထည့်သွင်းမှုအမှား၏ရလဒ်မဟုတ်ကြောင်း ဦးစွာသေချာစေရမည်။ တစ်ခါတစ်ရံတွင် တစ်ဦးတစ်ယောက်သည် ဒေတာကိုသိမ်းဆည်းစဉ်တွင် မှားယွင်းသောဒေတာတန်ဖိုးကို ရိုးရှင်းစွာထည့်သွင်းပါသည်။
အကြမ်းဖျင်းသည် ဒေတာထည့်သွင်းမှု အမှားတစ်ခု၏ ရလဒ်ဖြစ်လာပါက၊ ဒေတာအစု၏ ပျမ်းမျှ သို့မဟုတ် အလယ်တန်း ကဲ့သို့ တန်ဖိုးအသစ်တစ်ခု သတ်မှတ်ရန် သင်ဆုံးဖြတ်နိုင်သည် ။
တန်ဖိုးသည် အမှန်တကယ် သာလွန်ပါက၊ ၎င်းသည် သင်၏ အလုံးစုံခွဲခြမ်းစိတ်ဖြာမှုအပေါ် သိသာထင်ရှားသော သက်ရောက်မှုရှိမည်ဆိုပါက ၎င်းကို ဖယ်ရှားရန် သင်ရွေးချယ်နိုင်ပါသည်။ သာဓကတစ်ခုကို သင်ဖယ်ရှားလိုက်သော သင်၏နောက်ဆုံးအစီရင်ခံစာ သို့မဟုတ် ခွဲခြမ်းစိတ်ဖြာမှုတွင် သေချာစွာဖော်ပြပါ။
ထပ်လောင်းအရင်းအမြစ်များ
သင်သည် ကိန်းရှင်များစွာကို တစ်ပြိုင်နက်တည်း လုပ်ဆောင်နေပါက၊ ပြင်ပအရာများကို သိရှိရန် Mahalanobis အကွာအဝေးကို အသုံးပြုလိုပေမည်။