اكتشاف القيم الشاذة وإزالتها
طريقة Z-score، وطريقة IQR، ومفهوم Isolation Forest، ومعالجة القيم الشاذة عمليًا.
اكتشاف القيم الشاذة وإزالتها درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ما القيمة الشاذة؟
القيمة الشاذة هي قيمة بعيدة كثيرًا عن بقية البيانات. وقد تكون قيمة متطرفة حقيقية، أو خطأً في إدخال البيانات، أو خللًا في المستشعر. يمكن للقيم الشاذة أن تشوّه المتوسطات والتباينات والنماذج، لذا احرص على اكتشافها بطريقة مقصودة.
طريقة الدرجة المعيارية Z
تقيس الدرجة المعيارية z عدد الانحرافات المعيارية التي تفصل القيمة عن المتوسط: z = (x - mean) / std. ومن القواعد الشائعة اعتبار أي نقطة تحقق |z| > 3 قيمةً شاذة.
import numpy as np
data = np.array([10, 12, 11, 13, 12, 100])
z = (data - data.mean()) / data.std()
print(np.round(z, 2))اكتشاف القيم الشاذة باستخدام scipy zscore
تحسب scipy.stats.zscore الدرجات المعيارية لمصفوفة. ادمجها مع عتبة لإنشاء قناع منطقي للقيم الشاذة.
from scipy import stats
z = np.abs(stats.zscore(data))
outliers = z > 3
print(data[outliers])محدودية الدرجة المعيارية Z
تستخدم الدرجة المعيارية المتوسط والانحراف المعياري، وهما يتأثران بدورهما بالقيم الشاذة. ومع البيانات شديدة الانحراف أو القيم المتطرفة، قد تفشل الدرجات المعيارية في اكتشاف بعض القيم الشاذة. وتكون طريقة IQR أكثر متانة.
طريقة IQR
يمتد المدى الربيعي IQR = Q3 - Q1 عبر نسبة 50 بالمئة الوسطى من البيانات. ويُحسب من الأرباع التي لا تحركها القيم الشاذة إلا قليلًا، مما يجعله متينًا.
q1 = np.percentile(data, 25)
q3 = np.percentile(data, 75)
iqr = q3 - q1
print(q1, q3, iqr)حدود IQR
تحدد حدود Tukey نطاقَي القيم: الحد الأدنى = Q1 - 1.5*IQR، والحد الأعلى = Q3 + 1.5*IQR. وتُعلَّم أي قيمة تقع خارجهما. وتستخدم قاعدة الحدود نفسها لرسم الشوارب في boxplot.
lower = q1 - 1.5 * iqr
upper = q3 + 1.5 * iqr
mask = (data < lower) | (data > upper)
print(data[mask]) # outliersتصوير البيانات باستخدام Boxplot
يوضح boxplot قاعدة IQR بصريًا: يمتد الصندوق من Q1 إلى Q3، ويمثل الخط الوسيط، وتمتد الشوارب إلى الحدود، وتُرسم النقاط الواقعة خارجها كنقاط شاذة منفردة.
# import matplotlib.pyplot as plt
# plt.boxplot(data)
# plt.show()إزالة القيم الشاذة
بعد تعليم القيم الشاذة، يمكنك حذف الصفوف التي تحتوي عليها. نفّذ ذلك بحذر، إذ إن إزالة بيانات حقيقية قد تسبب انحيازًا في النتائج. واحتفظ بسجل لما أزلته وسبب إزالته.
clean = data[~mask]
print(clean) # outlier removedWinsorizing باستخدام np.clip
بدلًا من الحذف، يحدّ winsorizing القيم المتطرفة عند حدود تختارها باستخدام np.clip. وبذلك يحافظ على عدد الصفوف مع تقليل تأثير القيم المتطرفة.
capped = np.clip(data, lower, upper)
print(capped) # extreme value pulled to the upper fenceالتقييد عند النسب المئوية
من الخيارات الشائعة في winsorizing تقييد القيم عند النسبتين المئويتين الأولى والتاسعة والتسعين، وبذلك لا تُعالج إلا أكثر 2 بالمئة تطرفًا من القيم، بصورة متماثلة.
lo, hi = np.percentile(data, [1, 99])
print(np.clip(data, lo, hi))الحذف أم الحدّ؟
اختر وفقًا للسياق: احذف الأخطاء الواضحة (مثل القيم المستحيلة)، وحدّد القيم الحقيقية لكن المتطرفة التي تريد الاحتفاظ بها، وقد يكون من الأفضل أحيانًا الإبقاء على القيم الشاذة عندما تكون هي الإشارة المطلوبة (مثل اكتشاف الاحتيال). وثّق القرار.
اختبار سريع
اختبر معرفتك بالقيم الشاذة.
مراجعة
أدوات التعامل مع القيم الشاذة:
- الدرجة المعيارية Z: علّم
|z| > 3باستخدامscipy.stats.zscore(حساسة للقيم الشاذة) - حدود IQR: من Q1-1.5*IQR إلى Q3+1.5*IQR (متينة، وتشكل أساس boxplot)
- أزل الأخطاء الحقيقية؛ واستخدم winsorize مع
np.clipللحد من القيم المتطرفة - وثّق دائمًا سبب إزالة القيم أو الحد منها
تعلم Python مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 53
- الدروس
- 225
الأسئلة الشائعة
هل درس «اكتشاف القيم الشاذة وإزالتها» مجاني؟
نعم — نص درس «اكتشاف القيم الشاذة وإزالتها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «اكتشاف القيم الشاذة وإزالتها»؟
طريقة Z-score، وطريقة IQR، ومفهوم Isolation Forest، ومعالجة القيم الشاذة عمليًا. تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «اكتشاف القيم الشاذة وإزالتها»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- اكتشاف القيم الشاذة وإزالتها
- ترميز المتغيرات الفئوية
- تحجيم السمات: التطبيع والتوحيد
- بناء خطوط أنابيب المعالجة المسبقة