سؤال

حسنا، إذن إليك مشكلة مماثلة لمشكلتي (سأتضعف على المشكلة الحقيقية أدناه، لكنني أعتقد أن هذا التشبيه سيكون أسهل للفهم).

لدي عملة واحدة غريبة على الوجهين التي تأتي فقط رؤساء (عشوائيا) 1 في كل 100001 إرم (الباقي يجري ذيول). وبعبارة أخرى، لكل 1000 ذيول أراها، سيكون هناك 1 رؤساء.

لدي مرض غريب حيث لاحظت فقط 1 في كل 1000 ذيول أراه، لكنني لاحظت كل رؤساء، لذلك يبدو لي أن معدل ملاحظة رؤساء أو ذيول هو 0.5. بالطبع، أنا أدرك هذا المرض وتأثيره حتى أتمكن من تعويضه.

يعطيني شخص ما الآن عملة جديدة، ولاحظت أن معدل الملاحظة رؤساء هو الآن 0.6. بالنظر إلى أن مرضي لم يتغير (ما زلت لاحظ فقط 1 في كل 1000 ذيول)، كيف يمكنني حساب النسبة الفعلية للرؤوس إلى ذيول أن هذه العملة الجديدة تنتج؟


حسنا، فما هي المشكلة الحقيقية؟ حسنا، لدي مجموعة من البيانات التي تتكون من المدخلات والنواتج التي هي 1s و 0s. أريد أن تعلم خوارزمية لتعلم الآلة الإشراف للتنبؤ بالمخرج المتوقع (تطفو بين 0 و 1) بإدخال مدخلات. المشكلة هي أن 1S نادرة جدا، وهذا البراغي الرياضيات الداخلية لأنه يصبح عرضة للغاية لإداريق الأخطاء - حتى مع مرحلة الرياضيات العائمة عالية الدقة.

لذلك، أنا تطبيع البيانات من خلال حذف معظم عينات التدريب بشكل عشوائي بحيث يبدو أن هناك نسبة متساوية تقريبا من 1S و 0S. بالطبع، هذا يعني أن إخراج خوارزمية التعلم الآلي الآن لم يعد يتوقع احتمالا، أي. بدلا من التنبؤ 0.001 كما ينبغي، فإنه ستنبأ الآن 0.5.

أحتاج إلى طريقة لتحويل إخراج خوارزمية التعلم الآلي مرة أخرى إلى احتمال ضمن مجموعة التدريب الأصلية.

ملاحظة المؤلف (2015-10-07): اكتشفت لاحقا أن هذه التقنية معروفة باسم "Downsampling"

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

المحلول

أنت تحسب ما يلي

calculatedRatio = heads / (heads + tails / 1000)

وتحتاج

realRatio = heads / (heads + tails)

حل كلا المعادلات للذيول تعطي المعادلات التالية.

tails = 1000 / calculatedRatio - 1000
tails = 1 / realRatio - 1

الجمع بين كلا عائدات ما يلي.

1000 / calculateRatio - 1000 = 1 / realRatio - 1

وأخيرا حل ل Realratio.

realRatio = 1 / (1000 / calculatedRatio - 999)

يبدو أن صحيح. CalculatedRatio 0.5 غلة Realratio 1/1001، 0.6 غلة 3/2003.

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