أفضل طريقة لحساب الدقة وعرض نتائج ذات معنى

StackOverflow https://stackoverflow.com/questions/2070576

  •  20-09-2019
  •  | 
  •  

سؤال

تسمح لي طريقتي الحالية بتحديد المصفوفة الأكثر دقة ولكن لا يمكنني اكتشاف طريقة جيدة لعرض النتائج المفيدة.

وهنا حالتي …

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

بمجرد حفظ مجموع نتائج الدقة لكل مصفوفة، تتم مقارنتها ببعضها البعض.ال مجموعة مع أقل مبلغ يعتبر أكثر دقة.

كود مزيف …

foreach (ComparableArray as SingleArray) {
    for (i = 0; i < count(SingleArray); i++) {
        AccuracyResults[SingleArray] += |StaticArray[i] - SingleArray[i]| / CONSTANT;
    }   
}   
BestArray = AscendingSort(AccuracyResults)[0];

دقة يتم تحديده عن طريق أخذ القيمة المطلقة للفرق بين قيمة SingleArray وStaticArray والقسمة على بعض الثوابت.إذا الدقة النتيجة <1, ، ثم تعتبر النتيجة دقيقة.لو النتيجة > 1, ، فهو غير دقيق و النتائج = 0 مثالية.

إليكم السيناريو...دعونا نستخدم صفيفين من أجل البساطة

س = [ 56، 53، 50، 64 ]

أ = [ 56، 54، 52، 64 ]

ب = [ 54, 52, 51, 63 ]

التكرار خلال كل مصفوفة بدءًا من أ.

قارن الموضع [1] من A(56) و س (56) للدقة.تحديد الدقة (سأستخدم اثنين من أجل ثابت) | 56-56 | =0, 0 / 2 = 0;دقة مثالية

استمر في مقارنة كل موقف وحساب الدقة | 53-54 | =1, 1 / 2 = 0.5;دقيق لأن <= 1

|50-52|=2, 2 / 2 = 1;دقيق

|64-64| = 0;ممتاز

الآن قم بحساب مجموع جميع نتائج Accuray للمصفوفة A 0 + 0.5 + 1 + 0 = 1.5

إذا فعلنا نفس العمليات للمصفوفة ب ، ستكون النتيجة النهائية 1 + 0.5 + 0.5 + 0.5 = 2.5

الآن إذا قارنا المصفوفة A بالمصفوفة B يمكننا أن نرى تلك المصفوفة أ هو أكثر دقة من ب لأن المبلغ أقل.

المشكلة هي أن 1.5 و2.5 لا يكون لهما معنى كبير عند محاولة عرض مدى دقة A بالنسبة لـ B.

ما هي أفضل طريقة لعرض هذه النتائج؟فكرت في عرض النسب المئوية... مثل أن A أفضل بنسبة 17% من B.أو أن BestArray أفضل بنسبة 6% من المتوسط.

كيف سأحسب تلك النتائج؟

هل ترى أي مشاكل منطقية في طريقتي في دقة الحوسبة أو تعرف طريقة أفضل؟

شكرا على اي البصيرة التي يمكنك تقديمها!

هل كانت مفيدة؟

المحلول

أميل إلى الاتفاق مع Martin على أن استخدام القيم العددية لتحديد الفرق بين القياسات النوعية أمر مراوغ بعض الشيء. ومع ذلك ، فإن الناس يفعلون ذلك طوال الوقت ، لذلك إذا كنت ترغب في الاستمرار في القيام بذلك ، فاستمر في ذلك مباشرة!

الآن ، ما أردت أن أكتبه حقًا هو أن الرمز الزائف الخاص بك ليس زائفًا بشكل رهيب. إليكم الكود الزائف الذي سأكتبه:

ManhattanDistance[{56, 53, 50, 64},{56, 54, 52, 64}]

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

يمكنك أيضًا استخدام أي من عدد من قواعد المتجهات لقياس المسافة بين المتجهات الخاصة بك. على سبيل المثال ، يعطي Mathematica النتيجة SQRT (5) للحساب:

Norm[S - A]

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

يعتبر

علامة

ملاحظة: لا تخبر أي شخص أنني ساعدتك في العلوم الزائفة :-)

نصائح أخرى

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

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

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

"دقة الموضع" الخاصة بك هي مجرد خطأ يمكن تصميمه بتوزيع غاوسي إذا تم توزيعه بشكل طبيعي (كما هو متوقع).إذا كان الأمر كذلك، فبما أن مجموع المتغيرات العشوائية الغوسية هي نفسها غاوسية، فإن رقم "مجموع كل الدقة" الخاص بك هو أيضًا متغير عشوائي موزع غاوسي.يمكنك حساب المتوسط ​​والتباين لمجاميع الأخطاء هذه والحصول على نموذج PDF غاوسي (دالة التوزيع الاحتمالي) لنظامك واستخدامه للإجابة على أسئلة مثل "يجب أن يكون هذا المتجه الأخير ذو الكعب العالي باللون الأحمر الساطع لأنه يحتوي على مجموع خطأ أكبر من 95٪ لجميع هذه النواقل".أو "رائع أن المتجه الأخير كان A+ لأنه كان به خطأ أقل من 1% من جميع المتجهات الأخرى".

هذا ويكي آخر قد يساعد أيضا.

بول

غالبًا ما يتم استخدام الخطأ التربيعي في الدوائر الهندسية لقياس الخطأ بين الحل وتقدير الحل.

لتجنب المشكلات المتعلقة بتباين كبير في القيم ، فكر في استخدام السجل (خطأ) ... بالطبع هذا له مشكلات خاصة به مع وجود -

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top