সাধারণভাবে কোন মেশিন লার্নিং ক্লাসিফায়ার বেছে নেবেন? [বন্ধ]


207

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

আমি কীভাবে জানব যে আমার কোন শ্রেণিবদ্ধ ব্যবহার করা উচিত?

  1. সিদ্ধান্ত গাছ
  2. SVM
  3. Bayesian
  4. নিউরাল নেটওয়ার্ক
  5. কে-নিকটতম প্রতিবেশী
  6. কিউ-লার্নিং
  7. জেনেটিক অ্যালগরিদম
  8. মার্কভ সিদ্ধান্ত প্রক্রিয়া
  9. কনভোলিউশনাল নিউরাল নেটওয়ার্কসমূহ
  10. লিনিয়ার রিগ্রেশন বা লজিস্টিক রিগ্রেশন
  11. বুস্টিং, ব্যাগিং, ইনসাম্বলিং
  12. এলোমেলোভাবে পাহাড়ী আরোহণ বা অনুকরণযুক্ত
  13. ...

কোন ক্ষেত্রে এইগুলির মধ্যে একটি "প্রাকৃতিক" প্রথম পছন্দ, এবং এটি চয়ন করার জন্য নীতিগুলি কী?

আমি যে ধরণের উত্তর খুঁজছি তার উদাহরণ (ম্যানিং এট আল এর তথ্য পুনরুদ্ধারের বইয়ের ভূমিকা থেকে ):

ক। যদি আপনার ডেটা লেবেলযুক্ত থাকে তবে আপনার কেবলমাত্র সীমিত পরিমাণ রয়েছে, আপনার উচ্চ বায়াস সহ একটি শ্রেণিবদ্ধ ব্যবহার করা উচিত (উদাহরণস্বরূপ, নাইভ বেইস)

আমি অনুমান করছি এটি কারণ উচ্চতর পক্ষপাতিত্বকারী শ্রেণিবদ্ধের কম বৈকল্পিক থাকবে, যা অল্প পরিমাণ ডেটার কারণে ভাল।

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

  1. অন্যান্য গাইডলাইন কি? এমনকি "যদি আপনাকে কোনও উচ্চতর পরিচালকের কাছে আপনার মডেলটি ব্যাখ্যা করতে হয় তবে সিদ্ধান্তের নিয়মগুলি মোটামুটি স্বচ্ছ" যেহেতু আপনার সিদ্ধান্তের গাছটি ব্যবহার করা উচিত সম্ভবত উত্তরগুলি ভাল। যদিও আমি বাস্তবায়ন / গ্রন্থাগার সংক্রান্ত বিষয়ে কম যত্ন নিই।

  2. এছাড়াও, কিছুটা পৃথক প্রশ্নের জন্য, স্ট্যান্ডার্ড বায়েশিয়ান শ্রেণিবদ্ধীদের পাশাপাশি মন্তব্য স্প্যাম সনাক্তকরণের (ইমেল স্প্যামের বিপরীতে) কি 'স্ট্যান্ডার্ড স্টেট অফ দ্য-শিল্প' পদ্ধতি রয়েছে?


7
আপনার "এই প্রশ্নটি জিজ্ঞাসা করার সেরা স্থান" এর উত্তরে আপনি stats.stackexchange.com
jxramos

উত্তর:


94

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

প্রথমত, আপনাকে আপনার সমস্যা চিহ্নিত করতে হবে। এটি নির্ভর করে আপনার কী ধরণের ডেটা রয়েছে এবং আপনার পছন্দসই কাজটি কী।

আপনি যদি Predicting Category:

  • তোমার আছে Labeled Data
    • আপনাকে অনুসরণ করতে হবে Classification Approachএবং এর অ্যালগরিদমগুলি দরকার
  • আপনার নেই Labeled Data
    • আপনার জন্য যেতে হবে Clustering Approach

আপনি যদি Predicting Quantity:

  • আপনার জন্য যেতে হবে Regression Approach

অন্যভাবে

  • আপনি যেতে পারেন Dimensionality Reduction Approach

উপরে উল্লিখিত প্রতিটি পদ্ধতির মধ্যে বিভিন্ন অ্যালগরিদম রয়েছে। নির্দিষ্ট অ্যালগরিদমের পছন্দ ডেটাসেটের আকারের উপর নির্ভর করে।

সূত্র: http://scikit-learn.org/stable/tutorial/machine_learning_map/


60

ক্রস বৈধকরণ ব্যবহার করে মডেল নির্বাচন আপনার প্রয়োজন হতে পারে।

ক্রস বৈধতা

আপনি যা করেন তা কেবল আপনার ডেটাसेटকে কে অ-ওভারল্যাপিং সাবসেটগুলি (ভাঁজগুলি) মধ্যে বিভক্ত করা, কে -1 ভাঁজ ব্যবহার করে একটি মডেলকে প্রশিক্ষণ দেওয়া এবং আপনি যে ফোল্ডটি রেখে গেছেন তা ব্যবহার করে এর কার্যকারিতা সম্পর্কে ভবিষ্যদ্বাণী করা। আপনি ভাঁজগুলির প্রতিটি সম্ভাব্য সংমিশ্রণের জন্য এটি করেন (প্রথমে প্রথম ভাজটি ছেড়ে যান, তারপরে ২ য়, ..., তারপরে কেথ, এবং বাকি ভাঁজগুলি সহ ট্রেন)। সমাপ্তির পরে, আপনি সমস্ত ভাঁজগুলির গড় পারফরম্যান্সের অনুমান (সম্ভবত পারফরম্যান্সের বৈকল্পিকতা / মানক বিচ্যুতিও)।

প্যারামিটার কে কীভাবে চয়ন করবেন তা আপনার কাছে থাকা সময়ের উপর নির্ভর করে। কে এর জন্য সাধারণ মানগুলি 3, 5, 10 বা এমনকি এন হয়, যেখানে এন আপনার ডেটার আকার হয় (এটি লিভ-ওয়ান-আউট ক্রস বৈধতার সমান )। আমি 5 বা 10 পছন্দ করি।

মডেল নির্বাচন

ধরা যাক আপনার প্রতিটি পদ্ধতির জন্য (পদ্ধতিটির উপর নির্ভরশীল) 5 টি পদ্ধতি (এএনএন, এসভিএম, কেএনএন, ইত্যাদি) এবং 10 টি প্যারামিটার সংমিশ্রণ রয়েছে। আপনাকে কেবল প্রতিটি পদ্ধতি এবং প্যারামিটার সংমিশ্রণের জন্য ক্রস বৈধকরণ চালাতে হবে (5 * 10 = 50) এবং সেরা মডেল, পদ্ধতি এবং পরামিতি নির্বাচন করতে হবে। তারপরে আপনি আপনার সমস্ত ডেটাতে সেরা পদ্ধতি এবং পরামিতিগুলি নিয়ে পুনরায় প্রশিক্ষণ দিন এবং আপনার চূড়ান্ত মডেল রয়েছে।

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

নেস্টেড ক্রস বৈধতা

ইন নেস্টেড ক্রস বৈধতা , আপনি মডেল নির্বাচন আলগোরিদিমের ক্রস বৈধতা সঞ্চালন।

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

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


5
হ্যাঁ, ক্রস বৈধকরণ সম্পর্কে আমি জানি - নির্দিষ্ট শ্রেণিবদ্ধ নির্বাচন করার জন্য আমি পূর্ববর্তী কারণগুলি সম্পর্কে আরও ভাবছিলাম (এবং তারপরে আমি কিছু প্যারামিটারগুলির সাথে সুর করতে বা কিছু ছোট শ্রেণিবদ্ধের মধ্যে নির্বাচন করতে পারি) cross ধন্যবাদ যদিও!
এলএম

45

" ওপেনসিভি " বইটির 462-463 পৃষ্ঠাগুলিতে এর দুর্দান্ত দুটি পৃষ্ঠা রয়েছে । "বৈষম্যমূলক" শব্দটির জন্য অ্যামাজনের পূর্বরূপ অনুসন্ধান করা (সম্ভবত গুগল বইগুলিও) আপনাকে প্রশ্নযুক্ত পৃষ্ঠা দেখতে দেবে। এই দুটি পৃষ্ঠাগুলি আমি এই বইয়ের মধ্যে পাওয়া সবচেয়ে বড় রত্ন।

সংক্ষেপে:

  • বুস্টিং - যখন প্রচুর পরিমাণে প্রশিক্ষণের ডেটা পাওয়া যায় তখন প্রায়শই কার্যকর

  • এলোমেলো গাছ - প্রায়ই খুব কার্যকর এবং সম্পাদন করতে পারবেন রিগ্রেশন

  • কে-নিকটতম প্রতিবেশী - আপনি করতে পারেন এমন সহজ কাজ, প্রায়শই কার্যকর তবে ধীর এবং প্রচুর স্মৃতি দরকার ।

  • নিউরাল নেটওয়ার্কগুলি - প্রশিক্ষণে ধীর কিন্তু চালাতে খুব দ্রুত , চিঠির স্বীকৃতি পাওয়ার জন্য এখনও সেরা পারফর্মার ।

  • এসভিএম - সীমিত ডেটা সহ সেরা , তবে কেবল যখন বড় ডেটা সেট উপলব্ধ থাকে তখন বাড়াতে বা এলোমেলো গাছের বিরুদ্ধে হারাতে হয়।


39

কোন অ্যালগরিদমটি ব্যবহার করবেন তা বেছে নেওয়ার ক্ষেত্রে আপনি যে বিষয়গুলি বিবেচনা করতে পারেন সেগুলির মধ্যে রয়েছে:

  1. আপনার কি ক্রমবর্ধমান প্রশিক্ষিত হওয়া প্রয়োজন (বাচ্চাদের বিপরীতে)

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

  2. আপনার ডেটা কেবল শ্রেণিবদ্ধ , বা শুধুমাত্র সংখ্যাসূচক বা উভয় দ্বারা গঠিত ?

    আমি মনে করি বায়েসিয়ান শ্রেণিবদ্ধ / দ্বিপদী ডেটা নিয়ে সবচেয়ে ভাল কাজ করে। সিদ্ধান্ত গাছগুলি সংখ্যাসূচক মানগুলির পূর্বাভাস দিতে পারে না।

  3. শ্রেণিবদ্ধ কীভাবে কাজ করে তা আপনার বা আপনার দর্শকদের বুঝতে হবে ?

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

  4. আপনার কত শ্রেণিবদ্ধের গতি দরকার?

    শ্রেণিবদ্ধকরণের ক্ষেত্রে এসভিএম দ্রুততর হয় কারণ তাদের কেবল আপনার ডেটা "লাইন" এর কোন দিকে রয়েছে তা নির্ধারণ করতে হবে। সিদ্ধান্তের গাছগুলি ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ঝেড়ে যেত।

  5. জটিলতা

    নিউরাল নেট এবং এসভিএমগুলি জটিল অ-রৈখিক শ্রেণিবিন্যাস পরিচালনা করতে পারে।


2
এই বইটি অধ্যায় জটিলতা সম্পর্কে আরো তথ্য জানা যেতে পারে nlp.stanford.edu/IR-book/html/htmledition/...
supermus

31

যেমন অধ্যাপক অ্যান্ড্রু এনজি প্রায়শই বলেছেন: সর্বদা একটি রুক্ষ, নোংরা অ্যালগরিদম প্রয়োগ করে শুরু করুন এবং তারপরে পুনরাবৃত্তিটি পরিমার্জন করুন

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

আর একটি ভাল স্টার্টার অ্যালগরিদম হ'ল র্যান্ডম অরণ্য (সিদ্ধান্ত গাছের সমন্বয়ে গঠিত), এটি যে কোনও মাত্রার সাথে অত্যন্ত পরিমাপযোগ্য এবং সাধারণত বেশ গ্রহণযোগ্য অভিনয় রয়েছে। তারপরে, জেনেটিক অ্যালগরিদম রয়েছে , যেগুলি কোনও মাত্রা এবং উপাত্তের ন্যূনতম জ্ঞান সহ যে কোনও ডেটার সাথে প্রশংসনীয়ভাবে স্কেল করে, সর্বাধিক ন্যূনতম এবং সহজতম প্রয়োগটি মাইক্রোবিয়াল জেনেটিক অ্যালগরিদম (ইন সি হারের একমাত্র লাইন! ইনমান হার্ভে দ্বারা 1996), এবং অন্যতম জটিল হ'ল সিএমএ-ইএস এবং এমওজিএ / ই-এমওইএ।

এবং মনে রাখবেন যে, প্রায়শই, আপনি বাস্তবের জন্য অ্যালগরিদমগুলি চেষ্টা করার আগে আপনার ডেটাতে কী সেরা কাজ করবে তা আপনি সত্যিই জানতে পারবেন না।

পার্শ্ব-নোট হিসাবে, যদি আপনি কোনও প্রদত্ত সমস্যার জন্য আপনার অনুমান এবং অ্যালগরিদম তাত্ত্বিক পারফরম্যান্স পরীক্ষা করার জন্য একটি তাত্ত্বিক কাঠামো চান তবে আপনি পিএসি (সম্ভবত প্রায় সঠিক) শেখার কাঠামো ব্যবহার করতে পারেন (সাবধান: এটি খুব বিমূর্ত এবং জটিল!) তবে সংক্ষিপ্তসার, পিএসি শেখার সংক্ষেপে বলা হয়েছে যে আপনাকে কম জটিল ব্যবহার করা উচিত, তবে যথেষ্ট জটিল (আলগোরিটি উপযুক্ত সর্বোচ্চ মাত্রা হিসাবে জটিলতা) আপনার ডেটা ফিট করতে পারে এমন অ্যালগরিদম। অন্য কথায়, ওকামের রেজার ব্যবহার করুন।


11

স্যাম রোয়েস বলতেন যে আপনার অন্য কোন কিছুর আগে নিষ্পাপ বেয়েস, লজিস্টিক রিগ্রেশন, কে-নিকটতম প্রতিবেশী এবং ফিশারের লিনিয়ার বৈষম্যমূলক চেষ্টা করা উচিত।


8

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

সুতরাং, যদি আপনার তত্ত্বাবধানের ডেটা থাকে তবে একজন নাইভ বেইস শ্রেণিবদ্ধ প্রশিক্ষণ দিন। আপনার যদি অকার্যকর ডেটা থাকে, আপনি কে-মানে ক্লাস্টারিং চেষ্টা করতে পারেন।

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


1
"নো ফ্রি লাঞ্চ" উপপাদ্যটিতে বলা হয়েছে যে এমন কোনও মডেল নেই যা প্রতিটি সমস্যার জন্য সবচেয়ে ভাল কাজ করে। একটি সমস্যার জন্য দুর্দান্ত মডেলের অনুমানগুলি অন্য সমস্যার জন্য নাও থাকতে পারে, তাই একাধিক মডেল চেষ্টা করে এবং কোনও নির্দিষ্ট সমস্যার জন্য সবচেয়ে ভাল কাজ করে এমন একটি সন্ধান করা মেশিন লার্নিংয়ে সাধারণ।
মিসরাফজাদেহে

5

আপনার সর্বদা অনুমান বনাম পূর্বাভাস অ্যাকাউন্টে রাখা উচিত ।

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


3

অ্যালগরিদমের নির্বাচন পরিস্থিতি এবং ডেটা সেটের ধরণ এবং আকারের উপর নির্ভর করে। আরও অনেক কারণ রয়েছে।

এটি বেসিক মেশিন শেখার জন্য একটি সংক্ষিপ্ত প্রতারণা পত্রক sheet

এখানে আপনি একটি সাধারণ ঠকানো শীট দিয়ে আপনার দৃশ্যকে বৈধতা দিতে পারেন


-2

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


1
ওপি'র (মূল পোস্টার) প্রশ্ন ছিল: আমি কীভাবে জানব যে আমার কোন শ্রেণিবদ্ধ ব্যবহার করা উচিত? যা উপসংহারে আসে যে তারা একটি শ্রেণিবদ্ধকরণ অ্যালগরিদম খুঁজছে । উত্তর দেওয়ার আগে দয়া করে প্রশ্নের মাধ্যমে সত্যই পড়ুন।
ভেট্রিভিল পিএস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.