متى وكيف يتم استخدام StandardScaler؟
عندما تتقلب ميزات مجموعة البيانات المحددة بشكل كبير ضمن نطاقاتها أو يتم تسجيلها في وحدات قياس مختلفة، تدخل StandardScaler في الصورة.
يتم تحجيم البيانات إلى تباين قدره 1 بعد تقليل المتوسط إلى 0 عبر StandardScaler. ولكن عند تحديد المتوسط التجريبي للبيانات والانحراف المعياري، فإن القيم المتطرفة الموجودة في البيانات لها تأثير كبير يقلل من نطاق القيم المميزة.
قد تواجه العديد من خوارزميات التعلم الآلي مشكلات بسبب هذه الاختلافات في ميزات البداية. بالنسبة للخوارزميات التي تحسب المسافة، على سبيل المثال، إذا كانت أي من ميزات مجموعة البيانات تحتوي على قيم ذات نطاقات كبيرة أو مختلفة تمامًا، فإن هذه الميزة المحددة لمجموعة البيانات ستتحكم في حساب المسافة.
تعتمد وظيفة StandardScaler في sklearn على النظرية القائلة بأن متغيرات مجموعة البيانات التي تقع قيمها في نطاقات مختلفة ليس لها مساهمة متساوية في معلمات ملاءمة النموذج ووظيفة التدريب وقد تؤدي حتى إلى التحيز في التنبؤات التي تم إجراؤها باستخدام هذا النموذج.
لذلك، قبل تضمين الميزات في نموذج التعلم الآلي، يجب علينا تطبيع البيانات (μ = 0، σ = 1). يتم استخدام التقييس في هندسة الميزات بشكل شائع لمعالجة هذه المشكلة المحتملة.
التوحيد باستخدام Sklearn
sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True)
من خلال إزالة المتوسط من الميزات وقياسها إلى تباين الوحدة، يتم توحيد الميزات باستخدام هذه الوظيفة.
صيغة حساب النتيجة القياسية للميزة هي z = (x - u) / s، حيث u هو متوسط ميزة التدريب (أو صفر إذا كان with_mean = False) وs هو الانحراف المعياري للعينة (أو واحد إذا with_std = False) ).
من خلال حساب الإحصائيات ذات الصلة بالميزات الموجودة في مجموعة التدريب، يتم تطبيق التوسيط والقياس بشكل مستقل على كل ميزة. بعد ذلك، للاستخدام مع العينات اللاحقة باستخدام التحويل ()، يقوم الأسلوب المناسب () بتخزين المتوسط والانحراف المعياري.
int إلى السلسلة c++
حدود:
صفات:
طرق فئة StandardScaler
مناسب (X[، y، Sample_weight]) | تحسب هذه الطريقة المتوسط والانحراف المعياري لاستخدامهما لاحقًا في قياس البيانات. |
fit_transform(X[، y]) | تناسب هذه الطريقة معلمات البيانات ثم تقوم بتحويلها. |
get_feature_names_out([ميزات_الإدخال]) | تحصل هذه الطريقة على أسماء الميزات للتحويل. |
get_params([عميق]) | تعطي هذه الطريقة معلمات المقدر المعين. |
معكوس_تحويل (X[، نسخة]) | يعمل على تقليل حجم البيانات لتتناسب مع شكلها الأصلي. |
جزئية_صالح (X[، ص، Sample_weight]) | يتم حساب المتوسط والانحراف المعياري على X عبر الإنترنت للقياس لاحقًا. |
set_params(**بارامز) | يتم استخدام هذه الطريقة لتعيين قيمة معلمات المقدر. |
تحويل (X [، نسخة]) | تقوم هذه الطريقة بتحويل البيانات باستخدام المعلمات المخزنة بالفعل في الفصل الدراسي. |
مثال على StandardScaler
أولاً، سنقوم باستيراد المكتبات المطلوبة. لاستخدام وظيفة StandardScaler، نحتاج إلى استيراد مكتبة Sklearn.
fizzbuzz java
ثم سنقوم بتحميل مجموعة بيانات القزحية. يمكننا استيراد مجموعة بيانات IRIS من مكتبة sklearn.datasets.
سنقوم بإنشاء كائن من فئة StandardScaler.
الفصل بين الميزات المستقلة والهدف.
سوف نستخدم طريقة التحويل المناسب () لتنفيذ التحويل إلى مجموعة البيانات.
بناء الجملة:
object_ = StandardScaler() object_.fit_transform(features)
قمنا في البداية ببناء مثيل لطريقة StandardScaler() باتباع الصيغة المذكورة أعلاه. بالإضافة إلى ذلك، نقوم بتوحيد البيانات باستخدام fit_transform() مع الكائن المقدم.
شفرة
# Python program to standardize the data # Importing the required library from sklearn.preprocessing import StandardScaler from sklearn.datasets import load_iris # Loading the dataset X, Y = load_iris(return_X_y = True) # Printing 3 rows of original data print(X[:3, :]) # Creating an object of the StandardScaler class std_scaler = StandardScaler() # Printing 3 rows of the transformed data print(std_scaler.fit_transform(X)[:3, :]) print(std_scaler.mean_)
انتاج |
[[5.1 3.5 1.4 0.2] [4.9 3. 1.4 0.2] [4.7 3.2 1.3 0.2]] [[-0.90068117 1.01900435 -1.34022653 -1.3154443 ] [-1.14301691 -0.13197948 -1.34022653 -1.3154443 ] [-1.38535265 0.32841405 -1.39706395 -1.3154443 ]] [5.84333333 3.05733333 3.758 1.19933333]