المعالجة المسبقة للبيانات في R: Ultimate Tutorial [2022]

نشرت: 2021-03-01

في البرنامج التعليمي التالي الخاص بمعالجة البيانات المسبقة في R ، ستتعلم أساسيات كيفية إجراء المعالجة المسبقة للبيانات. يتطلب هذا البرنامج التعليمي أن تكون على دراية بأساسيات R والبرمجة:

جدول المحتويات

1. الخطوة: البحث عن المشكلات وإصلاحها

سنبدأ المعالجة المسبقة للبيانات الخاصة بنا في البرنامج التعليمي R عن طريق استيراد مجموعة البيانات أولاً. بعد كل شيء ، لا يمكنك معالجة البيانات مسبقًا إذا لم يكن لديك البيانات في المقام الأول.

في حالتنا ، يتم تخزين البيانات في ملف data.csv في دليل العمل. يمكنك استخدام الأمر setwd ("الموقع المطلوب") وتعيين دليل العمل.

إليك كيف ستبدأ العملية:

مجموعة البيانات <- read.csv (“Data.csv”)

ها هي مجموعة البيانات الخاصة بنا:

## دولة سن مرتب تم شراؤها
## 1 فرنسا 44 72000 رقم
## 2 إسبانيا 27 48000 نعم
## 3 ألمانيا 30 54000 رقم
## 4 إسبانيا 38 61000 رقم
## 5 ألمانيا 40 غير متوفر نعم
## 6 فرنسا 35 58000 نعم
## 7 إسبانيا غير متوفر 52000 رقم
## 8 فرنسا 48 79000 نعم
## 9 ألمانيا 50 83000 رقم
## 10 فرنسا 37 67000 نعم

كما ترى ، هناك قيم مفقودة في أعمدة الراتب والعمر لمجموعة البيانات الخاصة بنا. لقد حددنا المشكلة الموجودة في مجموعة البيانات الخاصة بنا حتى نتمكن الآن من البدء في إصلاحها.

لا يبدو أن هناك مشكلات أخرى موجودة في مجموعة البيانات الخاصة بنا ، لذلك علينا فقط التعامل مع القيم المفقودة. يمكننا حل هذه المشكلة عن طريق استبدال قيم NA بمتوسط ​​قيم الأعمدة المعنية. إليك الطريقة:

مجموعة البيانات $ Age <- ifelse (is.na (dataset $ Age) ،

ave (مجموعة البيانات $ Age ، FUN = وظيفة (x)

يعني (x ، na.rm = TRUE)) ،

مجموعة البيانات $ Age)

dataset $ الراتب <- ifelse (is.na (dataset $ الراتب) ،

ave (مجموعة البيانات بالراتب بالدولار ، FUN = الوظيفة (x)

يعني (x ، na.rm = TRUE)) ،

dataset $ الراتب)

لاحظ كيف استخدمنا وظيفة ave () هنا. يأخذ متوسط ​​العمود المحدد الذي أدخلته حيث FUN هي دالة في x تحسب المتوسط ​​باستثناء قيم NA (na.rm = TRUE).

آخر،

خذ أي شيء موجود في مجموعة البيانات $ Age

سنستخدم الدالة المتوسطة () الآن:
# تعريف x = 1 2 3

س <- 1: 3

#introducing قيمة مفقودة

x [1] <- NA

# يعني = NA

يعني (س)

## [1] غير متوفر

# يعني = يعني باستثناء قيمة NA

يعني (س ، نا.رم = تي)

## [1] 2.5

بعد تحديد المشكلة وإصلاحها ، تبدو مجموعة البيانات الخاصة بنا على النحو التالي:

## دولة سن مرتب تم شراؤها
## 1 فرنسا 44 72000.00 رقم
## 2 إسبانيا 27 48000.00 نعم
## 3 ألمانيا 30 54000.00 رقم
## 4 إسبانيا 38 61000.00 رقم
## 5 ألمانيا 40 63777.78 نعم
## 6 فرنسا 35 58000.00 نعم
## 7 إسبانيا 38 52000.00 رقم
## 8 فرنسا 48 79000.00 نعم
## 9 ألمانيا 50 83000.00 رقم
## 10 فرنسا 37 67000.00 نعم

اقرأ أيضًا: الفرص الوظيفية في لغة البرمجة R

2. الخطوة: البيانات الفئوية

البيانات الفئوية هي بيانات غير رقمية تنتمي إلى فئات معينة. عمود البلد في مجموعة البيانات لدينا هو بيانات فئوية. ستجعل وظيفة read.csv () في R جميع متغيرات السلسلة كمتغيرات فئوية. ومع ذلك ، لا يمكننا استخدامه في كل حالة.

إليك كيفية إنشاء متغيرات محددة كمتغيرات عامل:
مجموعة البيانات $ Country = factor (مجموعة البيانات $ Country ،

المستويات = ج ("فرنسا" ، "إسبانيا" ، "ألمانيا") ،

ملصقات = ج (1 ، 2 ، 3))

مجموعة البيانات التي تم شراؤها بالدولار = عامل (مجموعة البيانات التي تم شراؤها بالدولار ،

المستويات = ج ("لا" ، "نعم") ،

تسميات = ج (0 ، 1))

3. الخطوة: تقسيم البيانات

الآن ، يتعين علينا تقسيم مجموعة البيانات الخاصة بنا إلى مجموعتي بيانات منفصلتين. أحدهما لتدريب نموذج التعلم الآلي الخاص بنا والآخر لاختباره.

للقيام بذلك ، سنقوم أولاً بتثبيت حزمة caTools (إن لم تكن متوفرة) وإضافتها إلى مكتبتنا. بعد ذلك ، سنستخدم الدالة set.seed () للتأكد من أن الانقسام يتم بشكل عشوائي. استخدم الكود التالي:
مكتبة (caTools)

set.seed (123)

الانقسام = sample.split (مجموعة البيانات المشتراة بالدولار ، SplitRatio = 0.8)

training_set = مجموعة فرعية (مجموعة بيانات ، انقسام == TRUE)

test_set = مجموعة فرعية (مجموعة بيانات ، انقسام == FALSE)

لا بد أنك لاحظت أننا أبقينا على نسبة الانقسام 80:20. هذا لأنه يمثل نسبة الانقسام الأكثر تقليدية لمجموعات التدريب ومجموعات الاختبار. أخذت طريقة sample.split () الخاصة بنا العمود وأنشأت مصفوفة رقمية بقيم عشوائية صحيحة وخاطئة وفقًا لنسبة الانقسام.

4. الخطوة: ميزة التحجيم أو التجهيز

تحجيم الميزة مطلوب عندما يكون للميزات المختلفة في مجموعة البيانات الخاصة بك نطاقات مختلفة. في حالتنا ، يحتوي أعمدة العمر والراتب على نطاقات مختلفة ، مما قد يتسبب في مشاكل في تدريب نموذج ML الخاص بنا.

عندما يكون لديك ميزة ذات نطاق أعلى بكثير من الميزة الأخرى ، تزداد المسافة الإقليدية بشكل كبير ، مما يتسبب في إعطاء النموذج نتائج خاطئة.

لاحظ أن معظم المكتبات في R تعمل على إصلاح هذه المشكلة تلقائيًا ولكن من المهم معرفة كيفية إصلاح ذلك. قم بما يلي:

training_set [، 2: 3] = scale (training_set [، 2: 3])

test_set [، 2: 3] = مقياس (test_set [، 2: 3])

سيؤدي ذلك إلى حل المشكلة وستكون لميزات مجموعة التدريب الخاصة بك نفس النطاقات ، مما يقلل من فرص حدوث أي أخطاء أثناء تطبيقات التعلم الآلي.

احصل على شهادة علوم البيانات من أفضل الجامعات في العالم. تعلم برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

خاتمة

نأمل أن تكون قد وجدت المعالجة المسبقة للبيانات الخاصة بنا في البرنامج التعليمي R مفيدة. سيكون من الأفضل فهم البرنامج التعليمي قبل أن تجربه بنفسك. فهم المفاهيم أهم بكثير من استخدامها.

ما هي أفكارك حول المعالجة المسبقة للبيانات في البرنامج التعليمي R؟ انشرهم في التعليق التالي.

إذا كنت مهتمًا بالتعرف على R وعلوم البيانات ، فراجع برنامجنا التنفيذي في علوم البيانات الذي تم إنشاؤه للمهنيين العاملين ويقدم أكثر من 10 دراسات حالة ومشاريع ، وورش عمل عملية عملية ، وإرشاد مع خبراء الصناعة ، 1-on- 1 مع مرشدين في المجال ، +400 ساعة من التعلم والمساعدة في العمل مع الشركات الكبرى.

كم عدد أنواع تعدد الأشكال الموجودة في الثعبان؟

في لغة بايثون ، يشير تعدد الأشكال إلى اسم وظيفة عام يمكن استخدامه لأغراض متنوعة. تُستخدم هذه الفكرة بشكل شائع في مفهوم برمجة بايثون الموجه للكائنات.
يتم تنفيذ تعدد الأشكال في Python لعدة أغراض ، مثل Duck Typing ، والتحميل الزائد على المشغل ، والتحميل الزائد للطريقة ، وتجاوز الطريقة ، كما هو الحال في لغات البرمجة الأخرى مثل Java و C ++. التحميل الزائد والتجاوز هما الطريقتان الأساسيتان لتحقيق تعدد الأشكال.
تُعرف الفئة التي تحتوي على العديد من العمليات التي تحمل نفس الاسم ولكن الوسائط المتميزة باسم التحميل الزائد للطريقة. على الرغم من أن طريقة التحميل الزائد غير مدعومة افتراضيًا في Python ، إلا أن هناك العديد من الأساليب للقيام بذلك.

ما هي كتابة بطة؟

كتابة البطة هي فكرة تعدد الأشكال. تأتي عبارة "كتابة البطة" من المثل القائل بأن أي شيء يمشي ، أو يصيح ، أو يسبح مثل البطة يُطلق عليه لقب البطة ، بغض النظر عن ماهيته. بعبارات بسيطة ، يشير إلى أنه إذا كان هناك شيء يطابق سلوكه مع شيء آخر ، فسيتم اعتباره عضوًا في تلك الفئة.

ما هو التحميل الزائد والتجاوز؟

عندما يتم استخدام طريقة تحمل نفس الاسم بالإضافة إلى الوسائط في كل من فئة مشتقة وفئة أساسية أو فئة فائقة ، يُقال أن طريقة الفئة المشتقة تتجاوز الطريقة المتوفرة في الفئة الأساسية. عندما يتم استدعاء التابع overridden ، يتم دائمًا استدعاء طريقة الفئة المشتقة. الطريقة التي تم استخدامها في الفئة الأساسية مخفية الآن.
من ناحية أخرى ، لا توفر Python طريقة التحميل الزائد بناءً على نوع أو كمية أو ترتيب معلمات الطريقة. أسلوب التحميل الزائد هو نهج بايثون لتحديد طريقة بحيث يمكن استدعاؤها بطرق متعددة. على عكس لغات البرمجة الأخرى ، هذا فريد من نوعه.