سؤال

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

Pr(A | B) = Pr(B | A) x Pr(A)/Pr(B)

بالإضافة إلى مثال محدد ذي صلة بتصنيف المستندات:

Pr(Category | Document) = Pr(Document | Category) x Pr(Category) / Pr(Document)

كنت آمل أن يتمكن شخص ما من شرح لي الترميز المستخدم هنا ، ماذا يفعل Pr(A | B) و Pr(A) تعني؟ يبدو وكأنه نوع من الوظائف ولكن ماذا يفعل الأنبوب ("|") يعني ، إلخ؟

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

المحلول

  • PR (A | B) = احتمال حدوث ذلك بالنظر إلى أن B قد حدث بالفعل
  • PR (A) = احتمال حدوثه

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

يرى http://en.wikipedia.org/wiki/naive_bayes_classifier للحصول على مثال كامل

نصائح أخرى

أعتقد أنهم قاموا بتغطية الأساسيات.

Pr(A | B) = Pr(B | A) x Pr(A)/Pr(B)

القراءة: إن احتمال وجود B معين هو نفس احتمال B بالنظر إلى أوقات احتمال مقسومة على احتمال B. يقودنا إلى الإيمان بـ A. أو ، وبعبارة أخرى ، نحن نهتم حقًا بـ A ، لكن يمكننا قياس B بشكل مباشر أكثر ، لذلك لنبدأ بما يمكننا قياسه.

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

الصعاب السابقة:

O(H) = P(H) / 1 - P(H)

نسبة احتمالية:

L(e|H) = P(e|H) / P(e|¬H)

الصعاب الخلفية:

O(H|e) = L(e|H)O(H)

في اللغة الإنجليزية ، نقول أن احتمالات شيء تهتم به (H للفرضية) هي ببساطة عدد المرات التي تجد فيها شيئًا حقيقيًا مقسومًا على الأوقات التي تجدها غير صحيحة. لذلك ، قل أن منزلًا واحدًا يسرق كل يوم من أصل 10000. هذا يعني أن لديك فرصة 1/10،000 للسرقة ، دون النظر في أي دليل آخر.

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

اعتقادك العام هو مجرد احتمال * الاحتمالات السابقة. في هذه الحالة هو:

((0.95/0.01) * ((10**-4)/(1 - (10**-4))))
# => 0.0095009500950095

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

لقد قمت بتنفيذها في بيثون. من السهل جدًا الفهم لأن جميع الصيغ لنظرية Bayes موجودة في وظائف منفصلة:

#Bayes Theorem

def get_outcomes(sample_space, f_name='', e_name=''):
    outcomes = 0
    for e_k, e_v in sample_space.items():
        if f_name=='' or f_name==e_k:
            for se_k, se_v in e_v.items():
                if e_name!='' and se_k == e_name:
                    outcomes+=se_v
                elif e_name=='':
                    outcomes+=se_v
    return outcomes

def p(sample_space, f_name):
    return get_outcomes(sample_space, f_name) / get_outcomes(sample_space, '', '')

def p_inters(sample_space, f_name, e_name):
    return get_outcomes(sample_space, f_name, e_name) / get_outcomes(sample_space, '', '')

def p_conditional(sample_space, f_name, e_name):
    return p_inters(sample_space, f_name, e_name) / p(sample_space, f_name)

def bayes(sample_space, f, given_e):
    sum = 0;
    for e_k, e_v in sample_space.items():
        sum+=p(sample_space, e_k) * p_conditional(sample_space, e_k, given_e)
    return p(sample_space, f) * p_conditional(sample_space, f, given_e) / sum

sample_space = {'UK':{'Boy':10, 'Girl':20},
                'FR':{'Boy':10, 'Girl':10},
                'CA':{'Boy':10, 'Girl':30}}

print('Probability of being from FR:', p(sample_space, 'FR'))
print('Probability to be French Boy:', p_inters(sample_space, 'FR', 'Boy'))
print('Probability of being a Boy given a person is from FR:', p_conditional(sample_space, 'FR', 'Boy'))
print('Probability to be from France given person is Boy:', bayes(sample_space, 'FR', 'Boy'))

sample_space = {'Grow' :{'Up':160, 'Down':40},
                'Slows':{'Up':30, 'Down':70}}

print('Probability economy is growing when stock is Up:', bayes(sample_space, 'Grow', 'Up'))

PR (A | B): الاحتمال الشرطي لـ A: أي احتمال A ، بالنظر إلى أن كل ما نعرفه هو ب

PR (A): احتمال مسبق لـ a

PR هو الاحتمال ، PR (A | B) هو الاحتمال الشرطي.

تحقق من ويكيبيديا للحصول على التفاصيل.

الأنبوب (|) يعني "المعطى". احتمال وجود B معين يساوي احتمال B بالنظر إلى X PR (A)/PR (B)

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

أود أن أوصيك بهذا الكتاب http://www.athenasc.com/probbook.html أو انظر معهد ماساتشوستس للتكنولوجيا opencourse.

يستخدم الأنبوب لتمثيل الاحتمال الشرطي. PR (A | B) = احتمال A A PENID

مثال: دعنا نقول أنك لست على ما يرام وتصفح الويب للأعراض. ويخبرك الإنترنت أنه إذا كان لديك هذه الأعراض ، فأنت مصاب بمرض XYZ.

في هذه الحالة: PR (A | B) هو ما تحاول اكتشافه ، وهو: احتمال وجود XYZ بالنظر إلى أن لديك أعراض معينة.

PR (A) هو احتمال الإصابة بالمرض XYZ

PR (B) هو احتمال وجود هذه الأعراض

PR (B | A) هو ما تكتشفه من الإنترنت ، وهو: احتمال وجود أعراض بالنظر إلى أن لديك المرض.

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