ما هي جودة البيانات في التعلم الآلي؟

ما هي جودة البيانات في التعلم الآلي؟

عقدة المصدر: 1913587

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

أهداف التعلم

  1. فهم أساسيات التعلم الآلي وتطبيقاته المختلفة.
  2. إدراك أهمية جودة البيانات في نجاح نماذج التعلم الآلي.
  3. التعرف على خط أنابيب ETL ودوره في ضمان جودة البيانات.
  4. تعلم تقنيات متعددة لتنظيف البيانات ، بما في ذلك التعامل مع البيانات المفقودة والمكررة ، والقيم المتطرفة والضوضاء ، والمتغيرات الفئوية.
  5. فهم أهمية المعالجة المسبقة للبيانات وهندسة الميزات في تحسين جودة البيانات المستخدمة في نماذج ML.
  6. خبرة عملية في تنفيذ خط أنابيب ETL كامل باستخدام التعليمات البرمجية ، بما في ذلك استخراج البيانات وتحويلها وتحميلها.
  7. التعرف على حقن البيانات وكيف يمكن أن تؤثر على أداء نماذج ML.
  8. فهم مفهوم وأهمية هندسة الميزات في التعلم الآلي.

تم نشر هذه المقالة كجزء من مدونة علوم البيانات.

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

  1. المُقدّمة
  2. ما هو التعلم الآلي؟
  3. ما سبب أهمية البيانات في التعلم الآلي؟
  4. جمع البيانات من خلال ETL Pipeline؟
  5. ما هو حقن البيانات؟
  6. أهمية تنظيف البيانات
  7. ما هي المعالجة المسبقة للبيانات؟
  8. الغوص في هندسة الميزات
  9. أكمل كود ETL-Pipeline
  10. وفي الختام

ما هو التعلم الآلي؟

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

جودة البيانات

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

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

ما سبب أهمية البيانات في التعلم الآلي؟

نحن محاطون بالكثير من المعلومات كل يوم. يجمع عمالقة التكنولوجيا مثل Amazon و Facebook و Google كميات هائلة من البيانات يوميًا. لكن لماذا يجمعون البيانات؟ أنت على حق إذا رأيت أمازون وجوجل يؤيدان المنتجات التي تبحث عنها.

أخيرًا ، تلعب البيانات من تقنيات التعلم الآلي دورًا أساسيًا في تنفيذ هذا النموذج. باختصار ، البيانات هي الوقود الذي يدفع التعلم الآلي ، وتوافر البيانات عالية الجودة أمر بالغ الأهمية لإنشاء نماذج دقيقة وموثوقة. تُستخدم العديد من أنواع البيانات في التعلم الآلي ، بما في ذلك البيانات الفئوية والرقمية والسلاسل الزمنية والنصية. يتم جمع البيانات من خلال خط أنابيب ETL. ما هو خط أنابيب ETL؟

جمع البيانات من خلال ETL Pipeline

غالبًا ما يُشار إلى إعداد البيانات للتعلم الآلي باسم خط أنابيب ETL للاستخراج والتحويل والتحميل.

  • استخلاص: الخطوة الأولى في خط أنابيب ETL هي استخراج البيانات من مصادر مختلفة. يمكن أن يتضمن استخراج البيانات من قواعد البيانات أو واجهات برمجة التطبيقات أو الملفات العادية مثل CSV أو Excel. يمكن أن تكون البيانات منظمة أو غير منظمة.

فيما يلي مثال على كيفية استخراج البيانات من ملف CSV.

كود بايثون:

import pandas as pd
#read csv file
df = pd.read_csv("data.csv")
#extract specific data
name = df["name"]
age = df["age"]
address = df["address"]
#print extracted data
print("Name:", name)
print("Age:", age)
print("Address:", address)
  • تحول: هي عملية تحويل البيانات لجعلها مناسبة للاستخدام في نماذج التعلم الآلي. قد يشمل ذلك تنظيف البيانات لإزالة الأخطاء أو التناقضات ، وتوحيد البيانات ، وتحويل البيانات إلى تنسيق يمكن للنموذج استخدامه. تتضمن هذه الخطوة أيضًا هندسة الميزات ، حيث يتم تحويل البيانات الأولية إلى مجموعة من الميزات لاستخدامها كمدخلات للنموذج.
  • هذا رمز بسيط لتحويل البيانات من json إلى DataFrame.
import json
import pandas as pd
#load json file
with open("data.json", "r") as json_file:
data = json.load(json_file)
#convert json data to a DataFrame
df = pd.DataFrame(data)
#write to csv
df.to_csv("data.csv", index=False)
  • حمل: الخطوة الأخيرة هي تحميل أو تحميل البيانات المحولة إلى الوجهة. يمكن أن يكون قاعدة بيانات أو مخزن بيانات أو نظام ملفات. البيانات الناتجة جاهزة للاستخدام مرة أخرى ، مثل التدريب أو اختبار نماذج التعلم الآلي.

إليك رمز بسيط يوضح كيفية تحميل البيانات باستخدام الباندا:

import pandas as pd
df = pd.read_csv('data.csv')

بعد جمع البيانات ، نستخدم بشكل عام إدخال البيانات إذا وجدنا أي قيم مفقودة.

ما هو حقن البيانات؟

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

تنظيف البيانات

هناك ثلاثة أنواع.

  • الإدراج دفعة: يتم إدخال البيانات بشكل مجمّع ، وعادة ما يتم ذلك في وقت محدد
  • الحقن في الوقت الحقيقي: يتم حقن البيانات فور إنشائها.
  • حقن الدفق: يتم حقن البيانات في دفق مستمر. غالبًا ما يتم استخدامه في الوقت الفعلي.

فيما يلي مثال على التعليمات البرمجية لكيفية حقن البيانات باستخدام وظيفة الإلحاق باستخدام مكتبة الباندا.

المرحلة التالية من خط أنابيب البيانات هي تنظيف البيانات.

import pandas as pd # Create an empty DataFrame
df = pd.DataFrame() # Add some data to the DataFrame
df = df.append({'Name': 'John', 'Age': 30, 'Country': 'US'}, ignore_index=True)
df = df.append({'Name': 'Jane', 'Age': 25, 'Country': 'UK'}, ignore_index=True) # Print the DataFrame
print(df)

أهمية تنظيف البيانات

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

هناك أسباب مهمة لتنظيف البيانات.

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

إليك الكود الذي يوضح كيفية إسقاط القيم المفقودة وإزالة التكرارات باستخدام مكتبة الباندا:

df = df.dropna()
df = df.drop_duplicates() # Fill missing values
df = df.fillna(value=-1)

فيما يلي مثال آخر على كيفية تنظيف البيانات باستخدام تقنيات مختلفة

import pandas as pd # Create a sample DataFrame
data = {'Name': ['John', 'Jane', 'Mike', 'Sarah', 'NaN'], 'Age': [30, 25, 35, 32, None], 'Country': ['US', 'UK', 'Canada', 'Australia', 'NaN']}
df = pd.DataFrame(data) # Drop missing values
df = df.dropna() # Remove duplicates
df = df.drop_duplicates() # Handle outliers
df = df[df['Age'] < 40] # Print the cleaned DataFrame
print(df)

المرحلة الثالثة من خط أنابيب البيانات هي المعالجة المسبقة للبيانات ،

من الجيد أيضًا فهم البيانات والميزات بوضوح قبل تطبيق أي طرق تنظيف واختبار أداء النموذج بعد تنظيف البيانات.

ما هي المعالجة المسبقة للبيانات؟

تقوم معالجة البيانات بإعداد البيانات لاستخدامها في نماذج التعلم الآلي. هذه خطوة أساسية في التعلم الآلي لأنها تضمن أن تكون البيانات بتنسيق يمكن للنموذج استخدامه وأن يتم حل أي أخطاء أو تناقضات.

ص تابلوه والتكامل اكسل

تتضمن معالجة البيانات عادةً مجموعة من تنظيف البيانات وتحويلها وتوحيد البيانات. تعتمد الخطوات المحددة في معالجة البيانات على نوع البيانات ونموذج التعلم الآلي الذي تستخدمه. ومع ذلك ، إليك بعض الخطوات العامة:

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

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

إليك بعض التعليمات البرمجية البسيطة التي توضح كيفية استخدام فئة LabelEncoder لقياس المتغيرات الفئوية إلى قيم رقمية وفئة MinMaxScaler لقياس المتغيرات الرقمية.

import pandas as pd
from sklearn.preprocessing import MinMaxScaler, StandardScaler, OneHotEncoder, LabelEncoder # Create a sample DataFrame
data = {'Name': ['John', 'Jane', 'Mike', 'Sarah'], 'Age': [30, 25, 35, 32], 'Country': ['US', 'UK', 'Canada', 'Australia'], 'Gender':['M','F','M','F']}
df = pd.DataFrame(data) # Convert categorical variables to numerical
encoder = LabelEncoder()
df["Gender"] = encoder.fit_transform(df["Gender"]) # One hot encoding
onehot_encoder = OneHotEncoder()
country_encoded = onehot_encoder.fit_transform(df[['Country']])
df = pd.concat([df, pd.DataFrame(country_encoded.toarray())], axis=1)
df = df.drop(['Country'], axis=1) # Scale numerical variables
scaler = MinMaxScaler()
df[['Age']] = scaler.fit_transform(df[['Age']]) # Print the preprocessed DataFrame
print(df)

المرحلة الأخيرة من خط أنابيب البيانات هي هندسة الميزات ،

الغوص في هندسة الميزات

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

التقنيات المختلفة التي يمكن استخدامها في هندسة الميزات هي:

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

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

أكمل الرمز لخط أنابيب ETL بأكمله

فيما يلي مثال على خط أنابيب ETL كامل باستخدام مكتبات الباندا و scikit-Learn:

import pandas as pd
from sklearn.preprocessing import MinMaxScaler, StandardScaler, OneHotEncoder, LabelEncoder # Extract data from CSV file
df = pd.read_csv('data.csv') # Data cleaning
df = df.dropna()
df = df.drop_duplicates() # Data transformation
encoder = LabelEncoder()
df["Gender"] = encoder.fit_transform(df["Gender"]) onehot_encoder = OneHotEncoder()
country_encoded = onehot_encoder.fit_transform(df[['Country']])
df = pd.concat([df, pd.DataFrame(country_encoded.toarray())], axis=1)
df = df.drop(['Country'], axis=1) scaler = MinMaxScaler()
df[['Age']] = scaler.fit_transform(df[['Age']]) # Load data into a new CSV file
df.to_csv('cleaned_data.csv', index=False)

يتم استرداد البيانات أولاً من ملف CSV باستخدام وظيفة pandas read_csv () لهذا المثال. يتم بعد ذلك تنظيف البيانات عن طريق إزالة القيم المفقودة والتكرارات. يتم ذلك باستخدام LabelEncoder لتغيير المتغيرات الفئوية إلى رقمية ، و OneHotEncoder لتوسيع نطاق المتغيرات الفئوية إلى أرقام ، و MinMaxScaler لقياس المتغيرات الرقمية. أخيرًا ، تتم قراءة البيانات المحذوفة في ملف CSV جديد باستخدام وظيفة pandas to_csv ().

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

وفي الختام

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

ستعرف الآن أهمية جودة البيانات في التعلم الآلي. فيما يلي بعض النقاط الرئيسية من مقالتي:

الوجبات السريعة الرئيسية

  • فهم تأثير جودة البيانات الرديئة على نماذج التعلم الآلي والنتائج الناتجة.
  • إدراك أهمية جودة البيانات في نجاح نماذج التعلم الآلي.
  • التعرف على خط أنابيب ETL ودوره في ضمان جودة البيانات.
  • اكتساب مهارات تنظيف البيانات والمعالجة المسبقة وتقنيات هندسة الميزات لتحسين جودة البيانات المستخدمة في نماذج ML.
  • فهم مفهوم وأهمية هندسة الميزات في التعلم الآلي.
  • تقنيات التعلم لاختيار وإنشاء وتحويل الميزات لتحسين أداء نماذج ML.

شكرا للقراءة! هل تريد مشاركة شيء غير مذكور أعلاه؟ أفكار؟ لا تتردد في التعليق أدناه.

الوسائط الموضحة في هذه المقالة ليست مملوكة لـ Analytics Vidhya ويتم استخدامها وفقًا لتقدير المؤلف.

الطابع الزمني:

اكثر من تحليلات Vidhya