تأليف عمليات التحويل المخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK و SciPy

تأليف عمليات التحويل المخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK و SciPy

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

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

أمازون سيج ميكر داتا رانجلر هي خدمة في أمازون ساجميكر ستوديو يوفر حلاً شاملاً لاستيراد البيانات وإعدادها وتحويلها وتميزها وتحليلها باستخدام القليل من الترميز أو بدونه. يمكنك دمج تدفق إعداد بيانات Wrangler في تدفقات عمل التعلم الآلي (ML) لتبسيط المعالجة المسبقة للبيانات وهندسة الميزات ، ونقل إعداد البيانات إلى الإنتاج بشكل أسرع دون الحاجة إلى كتابة كود PySpark ، أو تثبيت Apache Spark ، أو تدوير المجموعات.

بالنسبة للسيناريوهات التي تحتاج فيها إلى إضافة البرامج النصية المخصصة الخاصة بك لتحويل البيانات ، يمكنك كتابة منطق التحول الخاص بك في Pandas و PySpark و PySpark SQL. يدعم Data Wrangler الآن مكتبات NLTK و SciPy لتأليف تحويلات مخصصة لإعداد بيانات نصية لتعلم الآلة وإجراء تحسين القيد.

قد تواجه سيناريوهات حيث يتعين عليك إضافة البرامج النصية المخصصة الخاصة بك لتحويل البيانات. باستخدام إمكانية التحويل المخصص لـ Data Wrangler ، يمكنك كتابة منطق التحول الخاص بك في Pandas و PySpark و PySpark SQL.

في هذا المنشور ، نناقش كيف يمكنك كتابة التحويل المخصص الخاص بك في NLTK لإعداد البيانات النصية لـ ML. سنشارك أيضًا بعض الأمثلة على تحويل الكود المخصص باستخدام أطر عمل شائعة أخرى مثل NLTK و NumPy و SciPy و scikit-Learn بالإضافة إلى خدمات AWS AI. لغرض هذا التمرين ، نستخدم الامتداد مجموعة بيانات تيتانيك، مجموعة بيانات شائعة في مجتمع ML ، تمت إضافتها الآن كملف عينة مجموعة البيانات داخل داتا رانجلر.

حل نظرة عامة

يوفر Data Wrangler أكثر من 40 موصلاً مدمجًا لاستيراد البيانات. بعد استيراد البيانات ، يمكنك بناء تحليل البيانات والتحويلات باستخدام أكثر من 300 تحويل مدمج. يمكنك بعد ذلك إنشاء خطوط أنابيب صناعية لدفع الميزات إليها خدمة تخزين أمازون البسيطة (أمازون S3) أو متجر ميزات Amazon SageMaker. يوضح الرسم التخطيطي التالي بنية عالية المستوى من طرف إلى طرف.

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

المتطلبات الأساسية المسبقة

Data Wrangler هي ميزة SageMaker متوفرة في أمازون ساجميكر ستوديو. يمكنك متابعة عملية إعداد الاستوديو لتدوير بيئة الاستوديو وأجهزة الكمبيوتر المحمولة. على الرغم من أنه يمكنك الاختيار من بين عدد قليل من طرق المصادقة ، فإن أبسط طريقة لإنشاء مجال Studio هي اتباع تعليمات البدء السريع. يستخدم البدء السريع نفس الإعدادات الافتراضية مثل إعداد الاستوديو القياسي. يمكنك أيضًا اختيار على متن الطائرة باستخدام مركز هوية AWS IAM (خلفًا لـ AWS Single Sign-On) للمصادقة (انظر على متن الطائرة إلى مجال Amazon SageMaker باستخدام مركز هوية IAM).

قم باستيراد مجموعة بيانات Titanic

ابدأ بيئة الاستوديو الخاصة بك وقم بإنشاء ملف تدفق البيانات رانجلر. يمكنك إما استيراد مجموعة البيانات الخاصة بك أو استخدام عينة مجموعة بيانات (Titanic) كما هو موضح في لقطة الشاشة التالية. يسمح لك Data Wrangler باستيراد مجموعات البيانات من مصادر بيانات مختلفة. بالنسبة لحالة الاستخدام الخاصة بنا ، نقوم باستيراد عينة مجموعة البيانات من دلو S3.

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

بمجرد الاستيراد ، سترى عقدتين (العقدة المصدر وعقدة نوع البيانات) في تدفق البيانات. يحدد Data Wrangler نوع البيانات تلقائيًا لجميع الأعمدة في مجموعة البيانات.

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

تحويلات مخصصة مع NLTK

لإعداد البيانات وهندسة الميزات باستخدام Data Wrangler ، يمكنك استخدام أكثر من 300 تحويل مدمج أو إنشاء تحويلات مخصصة خاصة بك. تحويلات مخصصة يمكن كتابتها كخطوات منفصلة داخل Data Wrangler. تصبح جزءًا من ملف .flow داخل Data Wrangler. تدعم ميزة التحويل المخصصة Python و PySpark و SQL كخطوات مختلفة في مقتطفات التعليمات البرمجية. بعد إنشاء ملفات دفتر الملاحظات (.ipynb) من ملف .flow أو استخدام ملف .flow كوصفات ، تستمر قصاصات كود التحويل المخصصة دون الحاجة إلى أي تغييرات. يسمح تصميم Data Wrangler بتحويلات مخصصة لتصبح جزءًا من مهمة معالجة SageMaker لمعالجة مجموعات البيانات الضخمة مع تحويلات مخصصة.

تحتوي مجموعة بيانات Titanic على ميزتين (name and home.dest) تحتوي على معلومات نصية. نحن نستخدم نلتك لتقسيم عمود الاسم واستخراج الاسم الأخير ، وطباعة تكرار أسماء العائلة. NLTK هي منصة رائدة لبناء برامج Python للعمل مع بيانات اللغة البشرية. يوفر واجهات سهلة الاستخدام ل أكثر من 50 مجموعة ومراجع معجمية مثل WordNet ، جنبًا إلى جنب مع مجموعة من مكتبات معالجة النصوص للتصنيف ، والترميز ، والاشتقاق ، ووضع العلامات ، والتحليل ، والاستدلال الدلالي ، وأغلفة مكتبات معالجة اللغة الطبيعية ذات القوة الصناعية (NLP).

لإضافة تحويل جديد ، أكمل الخطوات التالية:

  1. اختر علامة الجمع واختر أضف التحويل.
  2. اختار أضف خطوة واختر تحويل مخصص.

يمكنك إنشاء تحويل مخصص باستخدام وظائف Pandas و PySpark و Python المعرفة من قبل المستخدم و SQL PySpark.

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

  1. اختار بايثون (الباندا) وأضف الكود التالي لاستخراج الاسم الأخير من عمود الاسم:
    import nltk
    nltk.download('punkt')
    tokens = [nltk.word_tokenize(name) for name in df['Name']] # Extract the last names of the passengers
    df['last_name'] = [token[0] for token in tokens]

  2. اختار أرسال لمراجعة النتائج.

تظهر لقطة الشاشة التالية last_name العمود المستخرج.

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

  1. أضف خطوة تحويل مخصصة أخرى لتحديد توزيع التردد للأسماء الأخيرة ، باستخدام الكود التالي:
    import nltk
    fd = nltk.FreqDist(df["last_name"])
    print(fd.most_common(10))

  2. اختار أرسال لمراجعة نتائج التردد.تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

تحويلات مخصصة مع خدمات AWS AI

توفر خدمات الذكاء الاصطناعي المدربة مسبقًا من AWS ذكاءً جاهزًا لتطبيقاتك ومهام سير العمل الخاصة بك. تتكامل خدمات AWS AI بسهولة مع تطبيقاتك لمعالجة العديد من حالات الاستخدام الشائعة. يمكنك الآن استخدام إمكانات خدمات AWS AI كخطوة تحويل مخصصة في Data Wrangler.

فهم الأمازون يستخدم البرمجة اللغوية العصبية لاستخراج رؤى حول محتوى المستندات. يطور الرؤى من خلال التعرف على الكيانات والعبارات الرئيسية واللغة والمشاعر والعناصر المشتركة الأخرى في المستند.

نستخدم Amazon Comprehend لاستخراج الكيانات من عمود الاسم. أكمل الخطوات التالية:

  1. أضف خطوة تحويل مخصصة.
  2. اختار بايثون (الباندا).
  3. أدخل الكود التالي لاستخراج الكيانات:
    import boto3
    comprehend = boto3.client("comprehend") response = comprehend.detect_entities(LanguageCode = 'en', Text = df['name'].iloc[0]) for entity in response['Entities']:
    print(entity['Type'] + ":" + entity["Text"])

  4. اختار أرسال وتصور النتائج.

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

لقد أضفنا الآن ثلاثة تحويلات مخصصة في Data Wrangler.

  1. اختار تدفق البيانات لتصور تدفق البيانات من طرف إلى طرف.

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

تحويلات مخصصة مع NumPy و SciPy

نمباي هي مكتبة مفتوحة المصدر لبايثون تقدم وظائف رياضية شاملة ومولدات أرقام عشوائية وإجراءات الجبر الخطي وتحويلات فورييه والمزيد. SciPy هي مكتبة Python مفتوحة المصدر تُستخدم في الحوسبة العلمية والحوسبة التقنية ، وتحتوي على وحدات للتحسين ، والجبر الخطي ، والتكامل ، والاستيفاء ، والوظائف الخاصة ، وتحويل فورييه السريع (FFT) ، ومعالجة الإشارات والصور ، والحلول ، والمزيد.

تسمح لك تحويلات Data Wrangler المخصصة بدمج Python و PySpark و SQL كخطوات مختلفة. في تدفق Data Wrangler التالي ، يتم تطبيق وظائف مختلفة من حزم Python و NumPy و SciPy على مجموعة بيانات Titanic كخطوات متعددة.

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

تحويلات NumPy

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

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية. تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

انظر الكود التالي:

import pandas as pd
import numpy as np
df["fare_log"] = np.log(df["fare_interpolate"])
df["fare_sqrt"] = np.sqrt(df["fare_interpolate"])
df["fare_cbrt"] = np.cbrt(df["fare_interpolate"])

تحولات SciPy

يتم تطبيق وظائف SciPy مثل z-Score كجزء من التحويل المخصص لتوحيد توزيع الأجرة مع الانحراف المتوسط ​​والمعياري.

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

انظر الكود التالي:

df["fare_zscore"] = zscore(df["fare_interpolate"])
from scipy.stats import zscore

تحسين القيد باستخدام NumPy و SciPy

يمكن أن تتعامل تحويلات Data Wrangler المخصصة مع التحولات المتقدمة مثل تحسين القيد بتطبيق وظائف تحسين SciPy والجمع بين SciPy و NumPy. في المثال التالي ، لا تُظهر الأجرة كدالة للعمر أي اتجاه يمكن ملاحظته. ومع ذلك ، يمكن أن يحول تحسين القيد الأجرة كدالة للعمر. الشرط المقيّد في هذه الحالة هو أن يظل إجمالي الأجرة الجديدة كما هو الحال مع إجمالي الأجرة القديمة. تتيح لك تحويلات Data Wrangler المخصصة تشغيل وظيفة تحسين SciPy لتحديد المعامل الأمثل الذي يمكنه تحويل الأجرة كدالة للعمر في ظل ظروف مقيدة.

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية. تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

يمكن ذكر تعريف التحسين والتعريف الموضوعي والقيود المتعددة كوظائف مختلفة أثناء صياغة تحسين القيد في تحويل مخصص لـ Data Wrangler باستخدام SciPy و NumPy. يمكن أن تجلب التحويلات المخصصة أيضًا طرقًا مختلفة للحل متوفرة كجزء من حزمة تحسين SciPy. يمكن إنشاء متغير محوّل جديد بضرب المعامل الأمثل بالعمود الأصلي وإضافته إلى الأعمدة الموجودة في Data Wrangler. انظر الكود التالي:

import numpy as np
import scipy.optimize as opt
import pandas as pd df2 = pd.DataFrame({"Y":df["fare_interpolate"], "X1":df["age_interpolate"]}) # optimization defination
def main(df2):
x0 = [0.1]
res = opt.minimize(fun=obj, x0=x0, args=(df2), method="SLSQP", bounds=[(0,50)], constraints=cons)
return res # objective function
def obj(x0, df2):
sumSquares = np.sum(df2["Y"] - x0*df2["X1"])
return sumSquares # constraints
def constraint1(x0):
sum_cons1 = np.sum(df2["Y"] - x0*df2["X1"]) - 0
return sum_cons1
con1 = {'type': 'eq', 'fun': constraint1}
cons = ([con1]) print(main(df2)) df["new_fare_age_optimized"]=main(df2).x*df2["X1"]

تتميز ميزة التحويل المخصص لـ Data Wrangler بإمكانية واجهة المستخدم لإظهار نتائج وظائف SciPy المثلى مثل قيمة المعامل الأمثل (أو المعاملات المتعددة).

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

تحويلات مخصصة مع scikit-Learn

تعلم الحروف هي وحدة Python للتعلم الآلي مبنية على قمة SciPy. إنها مكتبة ML مفتوحة المصدر تدعم التعلم الخاضع للإشراف وغير الخاضع للإشراف. كما يوفر أدوات متنوعة لتركيب النموذج ، والمعالجة المسبقة للبيانات ، واختيار النموذج ، وتقييم النموذج ، والعديد من الأدوات المساعدة الأخرى.

التكتم

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

في الكود التالي ، نستخدم KBinsDiscretizer لتقدير العمود العمري إلى 10 صناديق:

# Table is available as variable `df`
from sklearn.preprocessing import KBinsDiscretizer
import numpy as np
# discretization transform the raw data
df = df.dropna()
kbins = KBinsDiscretizer(n_bins=10, encode='ordinal', strategy='uniform')
ages = np.array(df["age"]).reshape(-1, 1)
df["age"] = kbins.fit_transform(ages)
print(kbins.bin_edges_)

يمكنك رؤية حواف الحاوية مطبوعة في لقطة الشاشة التالية.

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

ترميز واحد ساخن

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

هناك ثلاث قيم لـ Embarked: S و C و Q. ونحن نمثلها بالأرقام. انظر الكود التالي:

# Table is available as variable `df`
from sklearn.preprocessing import LabelEncoder le_embarked = LabelEncoder()
le_embarked.fit(df["embarked"]) encoded_embarked_training = le_embarked.transform(df["embarked"])
df["embarked"] = encoded_embarked_training

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

تنظيف

عندما لا تستخدم Data Wrangler ، فمن المهم إغلاق المثيل الذي يتم تشغيله عليه لتجنب تكبد رسوم إضافية.

يقوم Data Wrangler تلقائيًا بحفظ تدفق البيانات الخاصة بك كل 60 ثانية. لتجنب فقدان العمل ، احفظ تدفق البيانات قبل إيقاف تشغيل Data Wrangler.

  1. لحفظ تدفق البيانات في Studio ، اختر قم بتقديم، ثم اختر حفظ تدفق رانجلر البيانات.
  2. لإغلاق مثيل Data Wrangler ، في Studio ، اختر تشغيل المثيلات والنواة.
  3. تحت تشغيل التطبيقات، اختر رمز إيقاف التشغيل بجوار تطبيق sagemaker-data-wrangler-1.0.
  4. اختار اغلاق كل شيء للتأكيد.

يعمل Data Wrangler على مثيل ml.m5.4xlarge. يختفي هذا المثال من جريان الجري عند إغلاق تطبيق Data Wrangler.

بعد إغلاق تطبيق Data Wrangler ، يجب إعادة تشغيله في المرة التالية التي تفتح فيها ملف تدفق Data Wrangler. وهذا يمكن أن يستغرق بضع دقائق.

وفي الختام

في هذا المنشور ، أوضحنا كيف يمكنك استخدام التحويلات المخصصة في Data Wrangler. استخدمنا المكتبات وإطار العمل داخل حاوية Data Wrangler لتوسيع إمكانات تحويل البيانات المضمنة. تمثل الأمثلة في هذا المنشور مجموعة فرعية من الأطر المستخدمة. يمكن الآن تحجيم التحولات في تدفق Data Wrangler إلى خط أنابيب لـ DataOps.

لمعرفة المزيد حول استخدام تدفقات البيانات مع Data Wrangler ، ارجع إلى إنشاء واستخدام تدفق رانجلر البيانات و الأمازون SageMaker التسعير. لتبدأ مع داتا رانجلر ، انظر قم بإعداد بيانات ML مع Amazon SageMaker Data Wrangler. لمعرفة المزيد حول Autopilot و AutoML على SageMaker ، قم بزيارة أتمتة تطوير النموذج باستخدام Amazon SageMaker Autopilot.


عن المؤلفين

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.ميناكشيسوندارام ثاندافارايان هو متخصص أول في الذكاء الاصطناعي / تعلم الآلة مع AWS. إنه يساعد الحسابات الإستراتيجية عالية التقنية في رحلة الذكاء الاصطناعي والتعلم الآلي. إنه متحمس للغاية بشأن الذكاء الاصطناعي المستند إلى البيانات.

 تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.سوفيك كومار ناث هو مهندس حلول AI / ML مع AWS. لديه خبرة واسعة في التصميمات الشاملة والحلول للتعلم الآلي ؛ تحليلات الأعمال ضمن التحليلات المالية والتشغيلية والتسويقية ؛ الرعاىة الصحية؛ الموردين؛ و IoT. يستمتع Sovik بالسفر ومشاهدة الأفلام خارج العمل.

تأليف تحويلات مخصصة في Amazon SageMaker Data Wrangler باستخدام NLTK وSciPy PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.الوصيفة هو مهندس تطوير برمجيات في Amazon SageMaker. إنها متحمسة لمساعدة العملاء على إعداد بياناتهم في DataWrangler وبناء أنظمة التعلم الآلي الموزعة. في أوقات فراغها ، تستمتع أبيجيل بالسفر والمشي لمسافات طويلة والتزلج والخبز.

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

اكثر من التعلم الآلي من AWS