নাইভ বেয়েস শ্রেণিবদ্ধকরণের একটি সহজ ব্যাখ্যা


546

নাইভ বায়েসের প্রক্রিয়াটি বোঝা আমার পক্ষে কঠিন হয়ে পড়েছে, এবং আমি ভাবছিলাম যে কেউ যদি ইংরেজিতে কোনও সাধারণ ধাপে ধাপে এটি ব্যাখ্যা করতে পারে could আমি বুঝতে পারি যে এটি সম্ভাবনা হিসাবে ঘটে যাওয়া সময়ের সাথে তুলনা করে, তবে প্রশিক্ষণের ডেটা কীভাবে প্রকৃত ডেটাসেটের সাথে সম্পর্কিত তা আমার কোনও ধারণা নেই।

প্রশিক্ষণ সেট কী ভূমিকা পালন করে দয়া করে আমাকে তার একটি ব্যাখ্যা দিন। আমি এখানে ফলের জন্য খুব সহজ উদাহরণ দিচ্ছি, যেমন কলা যেমন

training set---
round-red
round-orange
oblong-yellow
round-red

dataset----
round-red
round-orange
round-red
round-orange
oblong-yellow
round-red
round-orange
oblong-yellow
oblong-yellow
round-red

18
আপনি বেয়েসের উপপাদ্যটি বুঝতে পারলে এটি বেশ সহজ। যদি আপনি ' বয়েসে পড়েন' উপপাদ্যটি না পেয়ে থাকেন তবে এই লিঙ্কটি চেষ্টা করুন yudkowsky.net/rational/bayes
পিঞ্চি

1
আপনার উদাহরণ ব্যাখ্যা করুন। আপনার প্রশিক্ষণ সেটের প্রথম লাইনের জন্য: গোলকে লাল হিসাবে শ্রেণিবদ্ধ করা হয়, বা উভয়, গোল এবং লাল ভেরিয়েবলগুলি অন্য কিছু হিসাবে শ্রেণিবদ্ধ করা হয়? যদি এটি পরে হয় তবে আপনার প্রশিক্ষণ সংস্থায় প্রতিটি প্রবেশের শ্রেণিবিন্যাস কী?
কে মেহতা

22
দ্রষ্টব্য: নীচের স্বীকৃত উত্তরটি নাïভে বেয়েসের পক্ষে traditionalতিহ্যবাহী উদাহরণ নয়। এটি বেশিরভাগই নিকটবর্তী নিকটবর্তী বাস্তবায়ন a সেই অনুযায়ী পড়ুন।
চিমুলিগ

1
@ জাগারজ্যাক: রামনারসিমহানের উত্তর গৃহীত উত্তরের চেয়ে ভালভাবে ব্যাখ্যা করা হয়েছে।
উম্মেশা শ্রীভেণী

2
ওয়েল যদি কোনও কিছু বিন্দু সহ কোনও গ্রাফ দেখেন যার অর্থ এই নয় যে এটি কেএনএন :) আপনি কীভাবে সম্ভাবনাগুলি গণনা করেন এটি আপনার উপর নির্ভর করে। নাইভ বায়েস সম্ভাবনা দ্বারা পূর্বে বহুগুণ ব্যবহার করে এটি গণনা করে যাতে ইয়াবার তার উত্তরে যা দেখিয়েছিল। কীভাবে এই সম্ভাব্যতাগুলি পৌঁছাবেন তা এখানে গুরুত্বপূর্ণ নয়। উত্তরটি একেবারে সঠিক এবং আমি এতে কোনও সমস্যা দেখছি না।
অবিনাশ শাহ

উত্তর:


671

আপনার প্রশ্নটি যেহেতু আমি বুঝতে পারি এটি দুটি ভাগে বিভক্ত, প্রথম ভাগ হ'ল নায়েভ বেয়েস শ্রেণিবদ্ধের আরও ভাল বোঝার দরকার রয়েছে এবং দ্বিতীয় ভাগ প্রশিক্ষণের সেটটিকে ঘিরে বিভ্রান্তি।

সাধারণভাবে সমস্ত মেশিন লার্নিং অ্যালগরিদমগুলিকে শ্রেণীবদ্ধকরণ, ভবিষ্যদ্বাণী ইত্যাদি ইত্যাদির জন্য তদারকি করা শিখার কাজগুলির জন্য বা ক্লাস্টারিংয়ের মতো নিরীক্ষণযোগ্য শেখার কাজের জন্য প্রশিক্ষণ দেওয়া দরকার।

প্রশিক্ষণের পদক্ষেপের সময়, অ্যালগোরিদমগুলিকে একটি নির্দিষ্ট ইনপুট ডেটাসেট (প্রশিক্ষণ সেট) দিয়ে শেখানো হয় যাতে পরবর্তী সময়ে আমরা তাদের অজানা ইনপুটগুলির জন্য পরীক্ষা করতে পারি (যা তারা আগে কখনও দেখেনি) যার জন্য তারা শ্রেণিবদ্ধ বা পূর্বাভাস দিতে পারে ইত্যাদি (তদারকির ক্ষেত্রে শেখা) তাদের শেখার উপর ভিত্তি করে। নিউরাল নেটওয়ার্কস, এসভিএম, বয়েসিয়ান ইত্যাদি মেশিন লার্নিংয়ের বেশিরভাগ কৌশলই এটির উপর নির্ভর করে।

সুতরাং একটি সাধারণ মেশিন লার্নিং প্রকল্পে মূলত আপনাকে আপনার ইনপুট সেটটিকে একটি ডেভলপমেন্ট সেট (প্রশিক্ষণ সেট + দেব-পরীক্ষা সেট) এবং একটি পরীক্ষা সেট (বা মূল্যায়ন সেট) এ ভাগ করতে হয়। মনে রাখবেন আপনার মূল উদ্দেশ্যটি হ'ল আপনার সিস্টেমটি নতুন ইনপুটগুলি শিখতে এবং শ্রেণীবদ্ধ করে যা তারা ডেভ সেট বা পরীক্ষার সেটে আগে কখনও দেখেনি।

পরীক্ষার সেটটি সাধারণত প্রশিক্ষণের সেট হিসাবে একই বিন্যাসে থাকে। যাইহোক, এটি পরীক্ষা টেস্ট সেটটি প্রশিক্ষণ কর্পাস থেকে পৃথক হওয়া খুব জরুরি: যদি আমরা কেবল প্রশিক্ষণ সেটটিকে পরীক্ষার সেট হিসাবে পুনরায় ব্যবহার করি, তবে এমন মডেল যা কেবল নতুন উদাহরণগুলিতে কীভাবে সাধারণীকরণ করা যায় তা শিখতে না পারলে কেবল তার ইনপুট মুখস্থ করে ফেলেছিল, বিভ্রান্তিকরভাবে গ্রহণ করবে উচ্চ ফল.

সাধারণভাবে, উদাহরণস্বরূপ, আমাদের 70% ডেটা প্রশিক্ষণ সেট কেস হিসাবে ব্যবহার করা যেতে পারে। মূল সেটটি প্রশিক্ষণ এবং পরীক্ষার সেটগুলিতে এলোমেলোভাবে বিভাজন করতে মনে রাখবেন ।

এখন আমি নাইভ বেয়েস সম্পর্কে আপনার অন্য প্রশ্নে এসেছি।

নেভ বেয়েস শ্রেণিবিন্যাসের ধারণাটি প্রদর্শনের জন্য, নীচের দেওয়া উদাহরণটি বিবেচনা করুন:

এখানে চিত্র বর্ণনা লিখুন

ইঙ্গিত হিসাবে, অবজেক্টগুলি হয় GREENবা হিসাবে হিসাবে শ্রেণিবদ্ধ করা যেতে পারে RED। আমাদের কাজটি হ'ল নতুন কেসগুলি আসার সাথে সাথে শ্রেণিবদ্ধ করা, অর্থাৎ বর্তমানে বিদ্যমান অবজেক্টের উপর ভিত্তি করে কোন শ্রেণীর লেবেলের সাথে সম্পর্কিত তা সিদ্ধান্ত নিন।

যেহেতু দ্বিগুণ GREENবস্তু রয়েছে তাই REDএটি বিশ্বাস করা যুক্তিসঙ্গত যে একটি নতুন কেস (যা এখনও পর্যবেক্ষণ করা হয়নি) এর চেয়ে দ্বিগুণ সদস্যপদ GREENহওয়ার সম্ভাবনা রয়েছে RED। বায়েশীয় বিশ্লেষণে এই বিশ্বাসটি পূর্ব সম্ভাবনা হিসাবে পরিচিত। পূর্বের সম্ভাবনাগুলি পূর্বের অভিজ্ঞতার ভিত্তিতে তৈরি হয়, এক্ষেত্রে শতাংশের পরিমাণ GREENএবং REDঅবজেক্টস এবং প্রায়শই ফলাফলগুলি বাস্তবে হওয়ার আগে ভবিষ্যদ্বাণী করত।

সুতরাং, আমরা লিখতে পারি:

এর পূর্ব সম্ভাবনাGREEN :number of GREEN objects / total number of objects

এর পূর্ব সম্ভাবনাRED :number of RED objects / total number of objects

যেহেতু মোট 60অবজেক্ট রয়েছে, 40যার মধ্যে GREEN20 এবং 20 RED, শ্রেণীর সদস্যতার জন্য আমাদের পূর্ব সম্ভাবনাগুলি হ'ল :

পূর্ব সম্ভাবনাGREEN :40 / 60

পূর্ব সম্ভাবনাRED :20 / 60

আমাদের পূর্বের সম্ভাবনা তৈরি করে, আমরা এখন একটি নতুন অবজেক্টকে শ্রেণিবদ্ধ করতে প্রস্তুত ( WHITEনীচের চিত্রের মধ্যে বৃত্ত)। যেহেতু অবজেক্টগুলি বেশ গোছানো রয়েছে তাই এটি ধরে নেওয়া যুক্তিসঙ্গত যে এক্স এর আশেপাশে যত বেশি GREEN(বা RED) অবজেক্টস রয়েছে, নতুন ক্ষেত্রেগুলি সেই নির্দিষ্ট রঙেরই বেশি সম্ভবত। এই সম্ভাবনাটি পরিমাপ করার জন্য, আমরা এক্স এর আশেপাশে একটি বৃত্ত আঁকি যা তাদের শ্রেণীর লেবেল নির্বিশেষে বিন্দুগুলির একটি সংখ্যা (একটি অগ্রাধিকার হিসাবে বেছে নেওয়া) অন্তর্ভুক্ত করে। তারপরে আমরা প্রতিটি শ্রেণীর লেবেলের সাথে সম্পর্কিত বৃত্তের পয়েন্টগুলির সংখ্যা গণনা করি ulate এটি থেকে আমরা সম্ভাবনাটি গণনা করি:

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

উপরে চিত্রণ থেকে এটা স্পষ্ট যে সম্ভাবনা Xদেওয়া GREENসম্ভাবনা চেয়ে ছোট Xদেওয়া RED, যেহেতু বৃত্ত বোঝায় 1 GREENবস্তু এবং 3 REDবেশী। এভাবে:

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

যদিও পূর্বের সম্ভাব্যতাগুলি এতে অন্তর্ভুক্ত Xহতে পারে তা নির্দেশ করে GREEN( GREENতুলনায় দ্বিগুণ সংখ্যক রয়েছে RED) সম্ভাবনা অন্যথায় নির্দেশ করে; যে বর্গ সদস্যপদ Xহয় RED(দেওয়া আরো আছে REDউপস্থ বস্তু Xচেয়ে GREEN)। বায়েশীয় বিশ্লেষণে, তথাকথিত বায়েসের নিয়ম (রেভ। টমাস বেয়েস 1702-1761 এর নাম অনুসারে) ব্যবহার করে উত্তরোত্তর সম্ভাবনা তৈরির জন্য তথ্যের উত্স, পূর্বের এবং সম্ভাবনা উভয়কে একত্রিত করে চূড়ান্ত শ্রেণিবিন্যাস উত্পাদিত হয়।

এখানে চিত্র বর্ণনা লিখুন

পরিশেষে, আমরা এক্সটিকে শ্রেণিবদ্ধ করি REDযেহেতু এর শ্রেণীর সদস্যপদ বৃহত্তম উত্তরোত্তর সম্ভাবনা অর্জন করে।


39
এই অ্যালগরিদম কে-নিকটবর্তী প্রতিবেশীদের মতো বেশি নয়?
রেনেউদ

251
এই উত্তরটি বিভ্রান্তিকর - এটি কেএনএন (কে নিকটস্থ প্রতিবেশী) এবং নিষ্পাপ বে'সকে মিশ্রিত করে।
মিশাল ইলিচ

7
উত্তরটি সুন্দরভাবে এগিয়ে চলেছে যতক্ষণ না সম্ভাবনা উঠে আসে। সুতরাং @ ইয়াবার সম্ভাবনা গণনার জন্য কে-নিকটতম প্রতিবেশীদের ব্যবহার করেছেন। এটা কতটা সঠিক? যদি তা হয় তবে সম্ভাবনা গণনা করার জন্য আরও কয়েকটি পদ্ধতি কী?
wrahool

1
আপনি সম্ভাবনার উদাহরণ হিসাবে একটি বৃত্ত ব্যবহার করেছেন। আমি গাউসিয়ান নাইভ বেইস সম্পর্কে পড়ি যেখানে সম্ভাবনা গাউসিয়ান। কীভাবে তা ব্যাখ্যা করা যায়?
umair durrani

1
আসলে, গিঁট দিয়ে উত্তর সঠিক। আপনি যদি বিতরণটি জানেন না এবং এইভাবে এই জাতীয় বিতরণের সম্ভাবনা ঘনত্ব হয় তবে আপনাকে কোনওভাবে এটি খুঁজে বের করতে হবে। এটি কেএনএন বা কার্নেলের মাধ্যমে করা যেতে পারে। আমি মনে করি কিছু জিনিস অনুপস্থিত আছে। আপনি যদিও এই উপস্থাপনাটি পরীক্ষা করে দেখতে পারেন ।
সিএস

1052

আমি বুঝতে পারি যে এটি একটি পুরানো প্রশ্ন, একটি প্রতিষ্ঠিত উত্তর সহ। আমি পোস্ট করার কারণটি হ'ল গ্রহণযোগ্য উত্তরে কে-এনএন ( কে- নিকটতম প্রতিবেশী) এর অনেক উপাদান রয়েছে , এটি একটি ভিন্ন অ্যালগরিদম।

কে-এনএন এবং নাইভবেইস উভয়ই শ্রেণিবদ্ধকরণ অ্যালগরিদম। ধারণাগতভাবে, কে-এনএন নতুন সত্ত্বাকে শ্রেণিবদ্ধ করতে "নিকটবর্তী" ধারণাটি ব্যবহার করে। কে-এনএন-তে 'সান্নিধ্য' ইউক্লিডিয়ান দূরত্ব বা কসিন দূরত্বের মতো ধারণাগুলির সাথে মডেল করা হয়েছে। বিপরীতে, নাইভবেয়েসে, 'সম্ভাব্যতা' ধারণাটি নতুন সত্ত্বাকে শ্রেণিবদ্ধ করার জন্য ব্যবহৃত হয়।

যেহেতু প্রশ্ন নাইভ বেয়েস সম্পর্কে, তাই আমি কারও কাছে ধারণা এবং পদক্ষেপগুলি কীভাবে বর্ণনা করব তা এখানে। আমি এটি যতটা সম্ভব সমীকরণ এবং সহজ সরল ইংরেজিতে করার চেষ্টা করব।

প্রথমত, শর্তসাপেক্ষ সম্ভাবনা এবং বেইসস বিধি

কেউ নায়েভ বেয়েস 'এর সূক্ষ্মতা বোঝার এবং উপলব্ধি করার আগে তাদের প্রথমে শর্তসাপেক্ষ সম্ভাবনা এবং বয়েসের নিয়মের ধারণা সম্পর্কিত কয়েকটি সম্পর্কিত ধারণা জেনে রাখা উচিত। (আপনি যদি এই ধারণাগুলির সাথে পরিচিত হন তবে নেভ বেইস টু গেটস শিরোনামে বিভাগটি ছেড়ে যান )

শর্তাধীন সম্ভাবনাসরল ইংরেজিতে সম্ভাবনা: অন্য কিছু ইতিমধ্যে ঘটেছে তা দিয়ে কিছু হওয়ার সম্ভাবনা কী ।

ধরা যাক যে কিছু ফলাফল O আছে এবং কিছু প্রমাণ E. এই সম্ভাবনাগুলি যেভাবে সংজ্ঞায়িত করা হয়েছে তা থেকে: থাকার সম্ভাবনা ফলাফল O এবং প্রমাণ E উভয়ই : (হে সংঘটিত হওয়ার সম্ভাবনা) দ্বারা গুণিত হয়েছে (E এর প্রবক্তা দেওয়া হয়েছে যে ও হয়েছে)

শর্তাধীন সম্ভাবনা বোঝার জন্য একটি উদাহরণ:

ধরা যাক আমাদের কাছে মার্কিন সিনেটরদের সংগ্রহ রয়েছে। সিনেটররা ডেমোক্র্যাট বা রিপাবলিকান হতে পারেন। তারা পুরুষ বা মহিলা উভয়ই।

যদি আমরা একজন সিনেটরকে সম্পূর্ণ এলোমেলোভাবে নির্বাচন করি, তবে এই ব্যক্তি একজন মহিলা ডেমোক্র্যাট হওয়ার সম্ভাবনা কত? শর্তাধীন সম্ভাবনা আমাদের এটির জবাব দিতে সহায়তা করতে পারে।

(ডেমোক্র্যাট এবং মহিলা সিনেটর) সম্ভাবনা = প্রব (সিনেটর হলেন ডেমোক্র্যাট) শর্তসাপেক্ষ হওয়ার সম্ভাবনা যে মহিলা হ'ল তারা একজন গণতান্ত্রিক।

  P(Democrat & Female) = P(Democrat) * P(Female | Democrat) 

আমরা ঠিক একই জিনিস, বিপরীতে গণনা করতে পারি:

  P(Democrat & Female) = P(Female) * P(Democrat | Female) 

বয়েস বিধি বোঝা

ধারণামূলকভাবে, এটি পি (প্রমাণ | জ্ঞাত ফলাফল) থেকে পি (ফলাফল | জ্ঞাত প্রমাণ) যাওয়ার একটি উপায়। প্রায়শই, আমরা জানি যে কোনও নির্দিষ্ট প্রমাণ কতবার ঘন ঘন পরিলক্ষিত হয়, একটি পরিচিত ফলাফল দেওয়া হয় । আমাদের প্রমাণিত প্রমাণগুলি উল্টো গণনা করতে, ফলাফলের সম্ভাবনা গণনার জন্য ব্যবহার করতে হবে ।

পি (ফলাফল দেওয়া হয়েছে যে আমরা কিছু প্রমাণ জানি) = পি (প্রমাণ দেওয়া হয় যে আমরা ফলাফলটি জানি) সময় প্রব (ফলাফল), পি দ্বারা প্রমাণিত (প্রমাণ)

বেয়েসের নিয়ম বোঝার সর্বোত্তম উদাহরণ:

Probability of Disease D given Test-positive = 

               Prob(Test is positive|Disease) * P(Disease)
     _______________________________________________________________
     (scaled by) Prob(Testing Positive, with or without the disease)

নাইভ বেয়েসের কাছে পৌঁছানোর জন্য এখন এই সমস্ত কিছুই কেবল উপস্থাপনযোগ্য ছিল।

নাইভ বেয়েসের কাছে যাচ্ছি '

এখনও অবধি, আমরা কেবলমাত্র প্রমাণের এক টুকরো সম্পর্কে কথা বলেছি। বাস্তবে, আমাদের একাধিক প্রমাণ দিয়ে একটি ফলাফলের পূর্বাভাস দিতে হবে সেক্ষেত্রে গণিত খুব জটিল হয়ে যায়। এই জটিলতাটি পেতে, একাধিক প্রমাণকে 'অস্বচ্ছল' করা এবং প্রমাণের প্রতিটি অংশকে স্বতন্ত্র বলে বিবেচনা করা one এই পদ্ধতির কারণেই এটিকে নিখোঁজ বায়েস বলা হয় ।

P(Outcome|Multiple Evidence) = 
P(Evidence1|Outcome) * P(Evidence2|outcome) * ... * P(EvidenceN|outcome) * P(Outcome)
scaled by P(Multiple Evidence)

অনেকে এটিকে মনে রাখতে পছন্দ করেন:

                      P(Likelihood of Evidence) * Prior prob of outcome
P(outcome|evidence) = _________________________________________________
                                         P(Evidence)

এই সমীকরণ সম্পর্কে কয়েকটি বিষয় লক্ষ্য করুন:

  • যদি প্রোব (প্রমাণ | ফলাফল) 1 হয়, তবে আমরা কেবল 1 দ্বারা গুণ করছি।
  • যদি প্রোব (কিছু নির্দিষ্ট প্রমাণ | ফলাফল) 0 হয় তবে পুরো প্রোব। 0 হয়। আপনি যদি বিরোধী প্রমাণ দেখতে পান তবে আমরা সেই ফলাফলটি বাতিল করতে পারি।
  • যেহেতু আমরা সমস্ত কিছু পি (প্রমাণ) দ্বারা বিভক্ত করি তাই আমরা এটি গণনা না করেও পালিয়ে যেতে পারি।
  • পূর্বের দ্বারা গুণনের পিছনে অন্তর্নিহিততাটি হ'ল যাতে আমরা আরও সাধারণ ফলাফলগুলিতে উচ্চ সম্ভাবনা এবং অসম্ভাব্য পরিণতিতে কম সম্ভাবনা দেই। এগুলিকেও বলা হয় base ratesএবং এগুলি আমাদের পূর্বাভাসের সম্ভাবনাগুলি স্কেল করার একটি উপায়।

কোন ফলাফলের পূর্বাভাস দেওয়ার জন্য নাইভবেস কীভাবে প্রয়োগ করবেন?

প্রতিটি সম্ভাব্য ফলাফলের জন্য কেবল উপরের সূত্রটি চালান। যেহেতু আমরা শ্রেণিবদ্ধ করার চেষ্টা করছি , তাই প্রতিটি ফলাফলকে বলা হয় classএবং class label.আমাদের কাজটি প্রমাণের দিকে তাকাতে হয়, এই শ্রেণি বা এই শ্রেণীর কতটা সম্ভাবনা রয়েছে তা বিবেচনা করা এবং প্রতিটি সত্তাকে একটি লেবেল অর্পণ করা। আবার, আমরা খুব সহজ পদ্ধতির গ্রহণ করি: যে শ্রেণীর সর্বোচ্চ সম্ভাবনা থাকে তাকে "বিজয়ী" হিসাবে ঘোষণা করা হয় এবং সেই শ্রেণীর লেবেল প্রমাণের সংমিশ্রণে বরাদ্দ পায়।

ফলের উদাহরণ

আসুন আমাদের বোঝাপড়া বাড়াতে উদাহরণ দিয়ে চেষ্টা করুন: ওপি একটি 'ফল' সনাক্তকরণের উদাহরণ চেয়েছিল।

ধরা যাক যে আমাদের 1000 টি ফলের টুকরা রয়েছে। এগুলি কলা , কমলা বা অন্য কোনও ফল হতে পারে । আমরা প্রতিটি ফল সম্পর্কে 3 টি বৈশিষ্ট্য জানি:

  1. তা লম্বা কিনা
  2. তা মিষ্টি এবং
  3. যদি এর রঙ হলুদ হয়।

এটি আমাদের 'প্রশিক্ষণের সেট'। আমরা আমাদের যে কোনও নতুন ফলের মুখোমুখি হব তা পূর্বাভাস দিতে এটি ব্যবহার করব ।

Type           Long | Not Long || Sweet | Not Sweet || Yellow |Not Yellow|Total
             ___________________________________________________________________
Banana      |  400  |    100   || 350   |    150    ||  450   |  50      |  500
Orange      |    0  |    300   || 150   |    150    ||  300   |   0      |  300
Other Fruit |  100  |    100   || 150   |     50    ||   50   | 150      |  200
            ____________________________________________________________________
Total       |  500  |    500   || 650   |    350    ||  800   | 200      | 1000
             ___________________________________________________________________

আমরা আমাদের ফল সংগ্রহ সম্পর্কে অনেক কিছু প্রাক-গণনা করতে পারি।

তথাকথিত "পূর্ব" সম্ভাব্যতা। (আমরা যদি কোনও ফলের গুণাবলী না জানতাম তবে এটি আমাদের অনুমান।) এগুলি আমাদেরbase rates.

 P(Banana)      = 0.5 (500/1000)
 P(Orange)      = 0.3
 P(Other Fruit) = 0.2

"প্রমাণ" সম্ভাবনা

p(Long)   = 0.5
P(Sweet)  = 0.65
P(Yellow) = 0.8

"সম্ভাবনা" এর সম্ভাবনা

P(Long|Banana) = 0.8
P(Long|Orange) = 0  [Oranges are never long in all the fruit we have seen.]
 ....

P(Yellow|Other Fruit)     =  50/200 = 0.25
P(Not Yellow|Other Fruit) = 0.75

একটি ফল দেওয়া হয়েছে, কীভাবে এটি শ্রেণিবদ্ধ করা যায়?

ধরা যাক যে আমাদের একটি অজানা ফলের বৈশিষ্ট্য দেওয়া হয়েছে এবং এটি শ্রেণিবদ্ধ করতে বলা হয়েছে। আমাদের বলা হয় যে ফলগুলি দীর্ঘ, মিষ্টি এবং হলুদ। এটা কি কলা? এটি কি কমলা? নাকি এটি অন্য কিছু ফল?

আমরা একের পর এক 3 টি ফলাফলের জন্য কেবল সংখ্যা চালাতে পারি। তারপরে আমরা সর্বাধিক সম্ভাবনা চয়ন করি এবং আমাদের অজানা ফলটি শ্রেণীর অন্তর্ভুক্ত হিসাবে শ্রেণীবদ্ধ করি যা আমাদের পূর্ব প্রমাণের (আমাদের 1000 টি ফলের প্রশিক্ষণের সেট) উপর ভিত্তি করে সর্বাধিক সম্ভাবনা ছিল:

P(Banana|Long, Sweet and Yellow) 
      P(Long|Banana) * P(Sweet|Banana) * P(Yellow|Banana) * P(banana)
    = _______________________________________________________________
                      P(Long) * P(Sweet) * P(Yellow)

    = 0.8 * 0.7 * 0.9 * 0.5 / P(evidence)

    = 0.252 / P(evidence)


P(Orange|Long, Sweet and Yellow) = 0


P(Other Fruit|Long, Sweet and Yellow)
      P(Long|Other fruit) * P(Sweet|Other fruit) * P(Yellow|Other fruit) * P(Other Fruit)
    = ____________________________________________________________________________________
                                          P(evidence)

    = (100/200 * 150/200 * 50/200 * 200/1000) / P(evidence)

    = 0.01875 / P(evidence)

অপ্রতিরোধ্য মার্জিন দ্বারা ( 0.252 >> 0.01875), আমরা কলা হতে পারে বলে মিষ্টি / লম্বা / হলুদ ফলটিকে শ্রেণিবদ্ধ করি।

বায়েস ক্লাসিফায়ার এত জনপ্রিয় কেন?

এটি অবশেষে নেমে আসে দেখুন। মাত্র কিছু গণনা এবং গুণ। আমরা এই সমস্ত শর্তাদি প্রাক-গণনা করতে পারি, এবং তাই শ্রেণিবদ্ধকরণ সহজ, দ্রুত এবং দক্ষ হয়ে ওঠে।

Let z = 1 / P(evidence). এখন আমরা দ্রুত নিম্নলিখিত তিনটি পরিমাণ গণনা করি।

P(Banana|evidence) = z * Prob(Banana) * Prob(Evidence1|Banana) * Prob(Evidence2|Banana) ...
P(Orange|Evidence) = z * Prob(Orange) * Prob(Evidence1|Orange) * Prob(Evidence2|Orange) ...
P(Other|Evidence)  = z * Prob(Other)  * Prob(Evidence1|Other)  * Prob(Evidence2|Other)  ...

সর্বাধিক সংখ্যার যে শ্রেণীর লেবেল নির্ধারণ করুন এবং আপনি হয়ে গেছেন।

নাম সত্ত্বেও, নায়েভ বয়েস নির্দিষ্ট অ্যাপ্লিকেশনগুলিতে দুর্দান্ত হয়ে উঠেছে। পাঠ্য শ্রেণিবিন্যাস এমন একটি ক্ষেত্র যেখানে এটি সত্যই জ্বলে।

আশা করি যা নায়েভ বেয়েস অ্যালগরিদমের পিছনে ধারণাগুলি বুঝতে সহায়তা করে।


14
খুব স্পষ্ট ব্যাখ্যা জন্য ধন্যবাদ! ওয়েবে চারদিকে ভাসমান আরও ভাল একটির মধ্যে সহজেই। প্রশ্ন: যেহেতু প্রতিটি পি (ফলাফল / প্রমাণ) 1 / জেড = পি (প্রমাণ) দ্বারা গুণিত হয় (যা ফলের ক্ষেত্রে, প্রতিটি মূলত পূর্ববর্তী প্রমাণগুলির উপর ভিত্তি করে সম্ভাব্যতা হয়), তাই z z না বলা কি সঠিক হবে? নাïভে বেয়েসের পক্ষে মোটেও কিছু আসে যায় না? যার অর্থ হ'ল যদি বলি যে, একটি দীর্ঘ / মিষ্টি / হলুদ ফলের দিকে ছড়িয়ে পড়ে যা কলা নয়, তবে এটি ভুলভাবে শ্রেণিবদ্ধ করা হবে।
covariance

7
@ ই সিচো হ্যাঁ, আপনি যে কম্পিউটারটি জাইডে নাইভ বেয়েসের পক্ষে গুরুত্বপূর্ণ তা ঠিক। (এটি সম্ভাব্যতাগুলি 0 এবং 1 এর মধ্যে হওয়ার স্কেল করার একটি উপায়) নোট করুন যে z হস্তে সমস্ত প্রমাণের সম্ভাবনার পণ্য। (এটি ক্লাসের বেস রেট প্রিয়ারদের থেকে পৃথক ) প্রশিক্ষণ সেট. অ্যালগরিদম এবং তাই এটি একটি 'তথ্যপ্রমাণের ভিত্তিতে সেরা সম্ভাব্য অনুমান' হল হবে অনুষ্ঠানে ভুল শ্রেণীভুক্ত।
রাম নরসিমহান

1
@ য্যাস্পার টেবিলটিতে মোট 200 "অন্যান্য ফল" রয়েছে এবং এর মধ্যে 50 টি হলুদ। ফলস্বরূপ যে ফলটি "অন্যান্য ফল" মহাবিশ্ব 200 200 এর মধ্যে 50 টি হলুদ। সুতরাং 50/200। নোট করুন যে 800 হলুদ ফলের মোট সংখ্যা। সুতরাং আমরা যদি পি (অন্যান্য ফল / হলুদ) চাইতাম তবে আমরা আপনার পরামর্শ মতো করতাম: 50/800।
রাম নরসিমহান

3
একেবারে দুর্দান্ত ব্যাখ্যা। আমি একাডেমিকাল কাগজপত্র এবং বইগুলি থেকে এই অ্যালগরিটমটি বুঝতে পারি না। কারণ, রহস্যজনক ব্যাখ্যা সাধারণত গ্রহণযোগ্য লেখার শৈলী হতে পারে। এগুলি সবই এবং এত সহজ। ধন্যবাদ।
স্যুট আতান পিএইচডি

3
সম্ভাব্যতা 1 টি পর্যন্ত যোগ করবেন না কেন? প্রমাণটি উদাহরণে (500/100 * 650/1000 * 800/1000) 0.26, এবং তাই চূড়ান্ত পি (কলা | ...) = 0.252 / 0.26 = 0.969, এবং পি (অন্যান্য | ...) = 0.01875 / 0.26 = 0.072। তারা একসাথে 1.04 পর্যন্ত যোগ করে!
মৌরিসিও

18

রাম নরসিমহান ধারণাটি খুব সুন্দরভাবে ব্যাখ্যা করেছেন নীচে এখানে নেভিভ বেয়েসের কোড উদাহরণের মাধ্যমে একটি বিকল্প ব্যাখ্যা রয়েছে যা পৃষ্ঠাতে
এই বইটি থেকে উদাহরণস্বরূপ সমস্যাটি ব্যবহার করেছে 351
এটি ডেটা সেট যা আমরা উপরের ডাটাবেসে ব্যবহার করব যদি আমরা দিই হাইপোথিসিস = তার পরে সম্ভাব্যতা কী যে সে কম্পিউটার কিনবে বা কিনবে না। নীচের কোডটি ঠিক সেই প্রশ্নের উত্তর দেয়। কেবলমাত্র নামক একটি ফাইল তৈরি করুন এবং নিম্নলিখিত সামগ্রীটি আটকে দিন।
এখানে চিত্র বর্ণনা লিখুন
{"Age":'<=30', "Income":"medium", "Student":'yes' , "Creadit_Rating":'fair'}

new_dataset.csv

Age,Income,Student,Creadit_Rating,Buys_Computer
<=30,high,no,fair,no
<=30,high,no,excellent,no
31-40,high,no,fair,yes
>40,medium,no,fair,yes
>40,low,yes,fair,yes
>40,low,yes,excellent,no
31-40,low,yes,excellent,yes
<=30,medium,no,fair,no
<=30,low,yes,fair,yes
>40,medium,yes,fair,yes
<=30,medium,yes,excellent,yes
31-40,medium,no,excellent,yes
31-40,high,yes,fair,yes
>40,medium,no,excellent,no

এখানে কোডগুলি মন্তব্যগুলি এখানে যা করছে তা ব্যাখ্যা করে! [পাইথন]

import pandas as pd 
import pprint 

class Classifier():
    data = None
    class_attr = None
    priori = {}
    cp = {}
    hypothesis = None


    def __init__(self,filename=None, class_attr=None ):
        self.data = pd.read_csv(filename, sep=',', header =(0))
        self.class_attr = class_attr

    '''
        probability(class) =    How many  times it appears in cloumn
                             __________________________________________
                                  count of all class attribute
    '''
    def calculate_priori(self):
        class_values = list(set(self.data[self.class_attr]))
        class_data =  list(self.data[self.class_attr])
        for i in class_values:
            self.priori[i]  = class_data.count(i)/float(len(class_data))
        print "Priori Values: ", self.priori

    '''
        Here we calculate the individual probabilites 
        P(outcome|evidence) =   P(Likelihood of Evidence) x Prior prob of outcome
                               ___________________________________________
                                                    P(Evidence)
    '''
    def get_cp(self, attr, attr_type, class_value):
        data_attr = list(self.data[attr])
        class_data = list(self.data[self.class_attr])
        total =1
        for i in range(0, len(data_attr)):
            if class_data[i] == class_value and data_attr[i] == attr_type:
                total+=1
        return total/float(class_data.count(class_value))

    '''
        Here we calculate Likelihood of Evidence and multiple all individual probabilities with priori
        (Outcome|Multiple Evidence) = P(Evidence1|Outcome) x P(Evidence2|outcome) x ... x P(EvidenceN|outcome) x P(Outcome)
        scaled by P(Multiple Evidence)
    '''
    def calculate_conditional_probabilities(self, hypothesis):
        for i in self.priori:
            self.cp[i] = {}
            for j in hypothesis:
                self.cp[i].update({ hypothesis[j]: self.get_cp(j, hypothesis[j], i)})
        print "\nCalculated Conditional Probabilities: \n"
        pprint.pprint(self.cp)

    def classify(self):
        print "Result: "
        for i in self.cp:
            print i, " ==> ", reduce(lambda x, y: x*y, self.cp[i].values())*self.priori[i]

if __name__ == "__main__":
    c = Classifier(filename="new_dataset.csv", class_attr="Buys_Computer" )
    c.calculate_priori()
    c.hypothesis = {"Age":'<=30', "Income":"medium", "Student":'yes' , "Creadit_Rating":'fair'}

    c.calculate_conditional_probabilities(c.hypothesis)
    c.classify()

আউটপুট:

Priori Values:  {'yes': 0.6428571428571429, 'no': 0.35714285714285715}

Calculated Conditional Probabilities: 

{
 'no': {
        '<=30': 0.8,
        'fair': 0.6, 
        'medium': 0.6, 
        'yes': 0.4
        },
'yes': {
        '<=30': 0.3333333333333333,
        'fair': 0.7777777777777778,
        'medium': 0.5555555555555556,
        'yes': 0.7777777777777778
      }
}

Result: 
yes  ==>  0.0720164609053
no  ==>  0.0411428571429

আশা করি এটি সমস্যাটি আরও ভালভাবে বুঝতে সহায়তা করে

শান্তি


18

নাইভ বেয়েস: নাইভ বেয়েস তদারকি মেশিন লার্নিংয়ের অধীনে আসে যা ডেটা সেটের শ্রেণিবদ্ধকরণ করত। এটি পূর্বের জ্ঞান এবং স্বাধীনতা অনুমানের ভিত্তিতে জিনিসগুলি পূর্বাভাস দেওয়ার জন্য ব্যবহৃত হয়।

তারা এটিকে নির্বোধ বলে কারণ এটি অনুমান করা হয়েছে (এটি ধরে নিয়েছে যে ডেটাসেটের সমস্ত বৈশিষ্ট্য সমান গুরুত্বপূর্ণ এবং স্বতন্ত্র) বেশিরভাগ বাস্তব-বিশ্বের অ্যাপ্লিকেশনগুলিতে সত্যই আশাবাদী এবং বিরল সত্য।

এটি শ্রেণিবদ্ধকরণ অ্যালগরিদম যা অজানা ডেটা সেটের সিদ্ধান্ত নেয়। এটি বেইস উপপাদ্যের উপর ভিত্তি করে যা কোনও পূর্ববর্তী জ্ঞানের ভিত্তিতে কোনও ঘটনার সম্ভাবনা বর্ণনা করে।

নীচের চিত্রটিতে নিখরচায় বেয়েস কীভাবে কাজ করে তা দেখায়

এখানে চিত্র বর্ণনা লিখুন

এনবি পূর্বাভাস দেওয়ার সূত্র:

এখানে চিত্র বর্ণনা লিখুন

নাইভ বেয়েস অ্যালগরিদম কীভাবে ব্যবহার করবেন?

এনবি কীভাবে কাজ করে তার উদাহরণ নিই take

পদক্ষেপ 1: প্রথমে আমরা সারণীর সম্ভাবনা খুঁজে পাই যা নীচের চিত্রের মধ্যে হ্যাঁ বা না হবার সম্ভাবনা দেখায়। পদক্ষেপ 2: প্রতিটি শ্রেণীর পরবর্তী সম্ভাবনা সন্ধান করুন।

এখানে চিত্র বর্ণনা লিখুন

Problem: Find out the possibility of whether the player plays in Rainy condition?

P(Yes|Rainy) = P(Rainy|Yes) * P(Yes) / P(Rainy)

P(Rainy|Yes) = 2/9 = 0.222
P(Yes) = 9/14 = 0.64
P(Rainy) = 5/14 = 0.36

Now, P(Yes|Rainy) = 0.222*0.64/0.36 = 0.39 which is lower probability which means chances of the match played is low.

আরও রেফারেন্সের জন্য এই ব্লগটি দেখুন।

গিটহাব রিপোজিটরি নিভিয়ে-বেয়েস-উদাহরণ দেখুন


14

আমি একটি উদাহরণ দিয়ে বায়েসের নিয়মটি ব্যাখ্যা করার চেষ্টা করি।

সমাজ থেকে নির্বাচিত এলোমেলো ব্যক্তি ধূমপায়ী হওয়ার কী সুযোগ?

আপনি 10% উত্তর দিতে পারেন।

এখন, যদি ব্যক্তিটি একজন পুরুষ এবং 15 বছর বয়সী হয় তবে কী হবে?

এটি 60% হতে পারে না, যদিও আমরা জানি যে ধূমপায়ীদের শতাংশ খুব কম ছিল। এটি 10% এরও কম হতে পারে না। 15 বা 20% আরও ভাল অনুমান।

আসলে, আমরা প্রমাণের নতুন টুকরা দিয়ে প্রাথমিক অনুমানটি আপডেট করার চেষ্টা করি ( P(smoker) vs. P(smoker | evidence) ) Bay বেইস নিয়ম এই দুটি সম্ভাবনার সাথে সংযোগ স্থাপনের একটি উপায়।

P(smoker | evidence) = P(smoker)* p(evidence | smoker)/P(evidence)

প্রতিটি প্রমাণ এই সুযোগ বাড়াতে বা হ্রাস করতে পারে। উদাহরণস্বরূপ, ধূমপায়ীদের মধ্যে এই শতাংশ (একজন মানুষ হওয়া) কম হলে শর্তটি যে তিনি একজন মানুষ সে সুযোগটি বাড়িয়ে তুলতে পারে provided অন্য কথায়, একজন মানুষ হওয়া অবশ্যই ধূমপায়ী না হয়ে ধূমপায়ী হওয়ার ভাল সূচক হতে হবে।

আমরা এই অবদানটি অন্য উপায়েও প্রদর্শন করতে পারি। প্রতিটি বৈশিষ্ট্যের জন্য আপনি প্রদত্ত শর্তাদির অধীনে সেই বৈশিষ্ট্যের সাধারণতা (সম্ভাব্যতা) কেবল তার সাধারণতার সাথে তুলনা করতে পারেন। (P(f | x) vs. P(f))

P(smoker | evidence) / P(smoker) = P(evidence | smoker)/P(evidence)

উদাহরণস্বরূপ, যদি আমরা জানি যে 90% ধূমপায়ী পুরুষ, তবে পুরুষ হওয়া ধূমপায়ী হওয়ার সূচক কিনা তা এখনও বলা যায় না। উদাহরণস্বরূপ, যদি সমাজে একজন মানুষ হওয়ার সম্ভাবনাও 90% হয়, তবে কেউ যে একজন মানুষ তা জেনেও আমাদের সাহায্য করে না((90% / 90%) = 1 । তবে যদি পুরুষ সমাজের 40% অবদান রাখেন তবে ধূমপায়ীদের 90% মানুষ অবদান রাখেন তবে কেউ জানেন যে একজন মানুষ একজন ধূমপায়ী হবার সম্ভাবনা বাড়িয়ে তোলে (90% / 40%) = 2.25, তাই এটি প্রাথমিক অনুমানটি (10%) ২.২৫ দ্বারা বৃদ্ধি করে যার ফলে ২২.৫% হয়।

তবে, সমাজে যদি পুরুষ হওয়ার সম্ভাবনা ছিল 95%, তবে ধূমপায়ীদের মধ্যে পুরুষদের শতাংশের হার (90%) নির্বিশেষে! প্রমাণ যে কেউ একজন মানুষ তার ধূমপায়ী হওয়ার সম্ভাবনা হ্রাস করে!(90% / 95%) = 0.95)

তাহলে আমাদের আছে:

P(smoker | f1, f2, f3,... ) = P(smoker) * contribution of f1* contribution of f2 *... =
P(smoker)* 
(P(being a man | smoker)/P(being a man))*
(P(under 20 | smoker)/ P(under 20))

মনে রাখবেন যে এই সূত্রে আমরা ধরে নিয়েছি যে একজন মানুষ এবং 20 বছরের কম বয়সী হওয়া স্বতন্ত্র বৈশিষ্ট্য তাই আমরা সেগুলি বহুগুণে বৃদ্ধি পেয়েছি, এর অর্থ হ'ল যে কেউ 20 বছরের কম বয়সী তা জেনেও যে তিনি পুরুষ বা মহিলা তা অনুমান করার কোনও প্রভাব নেই। তবে এটি সত্য নাও হতে পারে, উদাহরণস্বরূপ সম্ভবত কোনও সমাজে কৈশোর বয়স পুরুষই ...

শ্রেণিবদ্ধে এই সূত্রটি ব্যবহার করার জন্য

শ্রেণীবদ্ধকারীকে কিছু বৈশিষ্ট্য দেওয়া হয় (একজন মানুষ হওয়া এবং ২০ বছরের নিচে হওয়া) এবং সে সিদ্ধান্ত নিতে হবে তিনি ধূমপায়ী কিনা বা না (এই দুটি শ্রেণি)। এটি প্রমাণ (বৈশিষ্ট্য) এর অধীনে প্রতিটি শ্রেণীর সম্ভাব্যতা গণনা করতে উপরের সূত্রটি ব্যবহার করে এবং এটি ইনপুটটির সর্বোচ্চ সম্ভাব্যতা সহ শ্রেণীর দায়িত্ব দেয়। প্রয়োজনীয় সম্ভাব্যতাগুলি সরবরাহ করতে (90%, 10%, 80% ...) এটি প্রশিক্ষণ সেট ব্যবহার করে। উদাহরণস্বরূপ, এটি সেই প্রশিক্ষণ সংস্থার লোকদের গণনা করে যা ধূমপায়ী এবং তারা স্যাম্পলটির 10% অবদান রাখে। তারপরে ধূমপায়ীদের জন্য তাদের মধ্যে কতজন পুরুষ বা মহিলা রয়েছে তা পরীক্ষা করে দেখেন .... কতগুলি 20 বছরের উপরে বা 20 বছরের কম বয়সী .... অন্য কথায়, এটি প্রশিক্ষণের উপর ভিত্তি করে প্রতিটি শ্রেণীর জন্য বৈশিষ্ট্যগুলির সম্ভাব্যতা বন্টন গড়ে তোলার চেষ্টা করে ডেটা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.