Meezo ML نشر 3 يوليو 2021 أرسل تقرير نشر 3 يوليو 2021 تطبيق التحويل PowerTransformer باستخدام مكتبة Sklearn؟ اقتباس
1 Ali Haidar Ahmad نشر 3 يوليو 2021 أرسل تقرير نشر 3 يوليو 2021 (معدل) تفترض خوارزميات التعلم الآلي مثل Linear Regression و Gaussian Naive Bayes أن المتغيرات العددية لها توزيع احتمالي غاوسي. قد لا تحتوي بياناتك على توزيع غاوسي وبدلاً من ذلك قد يكون لها توزيع يشبه Gaussian (على سبيل المثال تقريبًا Gaussian ولكن مع القيم المتطرفة أو الانحراف) أو توزيع مختلف تمامًا (على سبيل المثال الأسي). وعلى هذا النحو قد تكون قادراً على تحقيق أداء أفضل على نطاق واسع من خوارزميات التعلم الآلي عن طريق تحويل متغيرات الإدخال و/ أو الإخراج للحصول على توزيع غاوسي. توفر تحويلات Power transforms مثل تحويل Box-Cox وتحويل Yeo-Johnson طريقة تلقائية لإجراء هذه التحولات على بياناتك ويتم توفيرها في مكتبة التعلم الآلي لـ scikit-Learn Python. لاستخدامه، يجب أن يتم استيراده عبر الموديول: sklearn.preprocessing الصيغة العامة: sklearn.preprocessing.PowerTransformer(method='yeo-johnson', standardize=True, copy=True) method: خوارزمية التحويل التي ذكرناها {‘yeo-johnson’, ‘box-cox’} وافتراضيا ’yeo-johnson’ مع الانتباه إلى أن ال box-cox تعمل فقط مع القيم الموجبة. standardize:لتطبيق تطبيع متوسط التباين الصفري على الناتج المحول في حالة True. copy: لإنشاء نسخة، أي لكي لايتم التعديل على البيانات الأصلية. مثال: # سنشكل بيانات تبع توزيعاً أسياً from sklearn.preprocessing import PowerTransformer from numpy import exp from numpy.random import randn from matplotlib import pyplot # تشكيل بيانات غاوصية data = randn(2000) # تحويلها لبيانات أسية data = exp(data) # رسم الهستوغرام للبيانات الأسية pyplot.hist(data, bins=50) pyplot.show() #على البيانات PowerTransformer الآن سنجري تحويل data = data.reshape((len(data),1)) power = PowerTransformer(method='yeo-johnson', standardize=True) data_trans = power.fit_transform(data) # عرض الهستوغرام للبيانات بعد القيام بالتحويل pyplot.hist(data_trans, bins=25) pyplot.show() تم التعديل في 3 يوليو 2021 بواسطة Ali Haidar Ahmad 1 اقتباس
0 ريم المهدي نشر 24 أغسطس 2021 أرسل تقرير نشر 24 أغسطس 2021 هي دالة تستخدم لتحويل البيانات من توزيعها الحالي إلى التوزيع الطبيعي او الغاوسي (Gaussian)، يمكن تطبيق الدالة بطريقتين، إما بإستخدام PowerTransformer أو power_transform، لاحظ المثالين التاليين: import numpy as np from sklearn.preprocessing import PowerTransformer pt = PowerTransformer() data = [[1, 2], [3, 2], [4, 5]] print(pt.fit(data)) print(pt.transform(data)) لاحظ قيم البيانات الناتجة بعد عملية التحويل، والان لنرى طريقة تحويل البيانات بالصورة الثانية: import numpy as np import matplotlib.pyplot as plt from sklearn.preprocessing import power_transform data = [[1, 2], [3, 2], [4, 5]] plt.hist(data) plt.show() في هذه الحالة قمنا بتمثيل القيم في شكل رسم بياني والذي ينتج: الان لاحظ للشكل الناتج بعد تطبيق الدالة: transformed = power_transform(data, method='box-cox') print(transformed) plt.hist(transformed) plt.show() وهنا قد لا يظهر شكل التوزيع الطبيعي بالصورة المطلوبة نسبة لقلة البيانات، لكن عملية التحويل تكون قد تمت وهي التي انتجت الشكل المرفق أعلاه. اقتباس
السؤال
Meezo ML
تطبيق التحويل PowerTransformer باستخدام مكتبة Sklearn؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.