Meezo ML نشر 7 يوليو 2021 أرسل تقرير نشر 7 يوليو 2021 ماهي الدالة (MAE) Mean Absolute Error وكيف نستخدمها في Keras؟ اقتباس
1 Ali Haidar Ahmad نشر 7 يوليو 2021 أرسل تقرير نشر 7 يوليو 2021 هي دالة خسارة (تكلفة) وتستخدم لنماذج التوقع، وهو يمثل متوسط مجموع الفروق بين القيم الحقيقية والمتوقعة بالقيمة المطلقة. loss = abs(y_true - y_pred) يعد MAE مفيدًا في حالة تلف بيانات التدريب بسبب القيم المتطرفة (أي أننا نتلقى بشكل خاطئ قيمًا سلبية / إيجابية ضخمة بشكل غير واقعي في بيئة التدريب لدينا ، ولكن لانتلقاها في بيئة الاختبار). بشكل عام لا أحبذ استخدامه كدالة تكلفة لأن الدوال من الشكل |x| أي دوال القيمة المطلقة يكون لها شكل مشابه تماماً لحرف V وبالتالي فإن قيمة المشتقة في أي نقطة ستكون كبيرة وهذا أمر غير مناسب، ويمكن إصلاح هذه المشكلة لكن لاداعي لإضاعة الوقت عليها، حيث يمكنك استخدام MSE فهي دالة ممتازة مع مهام التوقع. إن أفضل ايستخدام لها بالنسبة لي هو استخدامها كمعيار (مقياس) لأداء نماذج التوقع. في المثال التالي سأقوم باستخدامها كدالة خسارة وكمعيار: # تحميل الداتا from keras.datasets import boston_housing import keras (train_data, train_targets), (test_data, test_targets) = boston_housing.load_data() # توحيد البيانات mean = train_data.mean(axis=0) train_data -= mean std = train_data.std(axis=0) train_data /= std test_data -= mean test_data /= std from keras import models from keras import layers # بناء النموذج def build_model(): model = models.Sequential() model.add(layers.Dense(64, activation='relu', input_shape=(train_data.shape[1],))) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(1)) model.compile(optimizer='rmsprop', loss=keras.losses., metrics=['mae']) #بالشكل التالي compile هنا استخدمناها كدالة تكلفة وكمعيار عن طريق تمريره إلى الدالة model.compile(optimizer='rmsprop', loss='mae', metrics=['mae']) return model # تدريب النموذج model = build_model() model.fit(train_data, train_targets,epochs=8, batch_size=64) 1 اقتباس
1 ريم المهدي نشر 8 يوليو 2021 أرسل تقرير نشر 8 يوليو 2021 هي إحدي الدوال التي تستخدم لقياس دقة النموذج و بالتالي حساب معدل الخسارة loss و ذلك عن طريق إيجاد متوسط الفروقات بين القيم الحقيقية و المتوقعة بإستخدام النموذج. كلما قلت القيمة الناتجة من الدالة كلما زادت دقة النموذج، و يكون إستخدامه مفيداَ في حالة قياس دقة النماذج المطبقة على البيانات التي تحتوي على قيم شاذة أو متطرفة. يمكننا إستدعاء دالة mean_absolute_error من sklearn.metrics مباشرة أو القيام ببرمجته مباشرة فهو من أسهل المقاييس: from sklearn.metrics import mean_absolute_error as MAE import pandas as pd y_true = pd.DataFrame({'values':[3,6,5,8,9,4,2]}) y_pred = [4,8,7,3,2,4,2] error = 0 for i in range(len(y_true)): error += abs(y_true.values[i] - y_pred[i]) print('manual MAE = ', error / len(y_true)) print('sklearn MAE = ', MAE(y_true, y_pred)) لاحظ لنتيجة كل من الدالتين والتي تكون متقاربة لحد كبير، ويمكننا إظهار كل الأرقام الكسرية في دالة MAE المحسوبة بالبرنامج بزيادة عدد الأرقام الظاهرة في الطباعة. manual MAE = [2.42857143] sklearn MAE = 2.4285714285714284 لاحظ من البرنامج أن دالة MAE قامت بإستقبال القيم الحقيقية y والقيم المتوقعة y_pred وقامت بالحسابات ضمنياً، ويمكن لنفس الدالة إستقبال multioutput والتي يمكن تعريفها في حال كنا نريد إرجاع MAE لكل feature على حدة، و يمكننا أيضاً تمرير sample_weight والتي تقوم بإسناد معاملات لمعدل الفقد. y_true = [[0., 1.], [0., 0.]] y_pred = [[1., 1.], [1., 0.]] #تطبيق sample weight MAE(y_true, y_pred, sample_weight=[0.7, 0.3]) #تطبيق multioutput MAE(y_true, y_pred, multioutput='raw_values') في حالة تطبيق multioutput بدلاً من تمرير معاملات لكل الخصائص في مجموعة البيانات قمنا بتمرير raw_values وهي ترجع كل قيم MAE لكل خاصية على حدا. 1 اقتباس
السؤال
Meezo ML
ماهي الدالة (MAE) Mean Absolute Error وكيف نستخدمها في Keras؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.