লিনিয়ার এবং লজিস্টিক রিগ্রেশন তুলনা করা

একটি এন্ট্রি লেভেল ডেটা সায়েন্স ইন্টারভিউ প্রশ্ন নিয়ে আলোচনা

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

প্রশ্ন: লিনিয়ার রিগ্রেশন এবং লজিস্টিক রিগ্রেশনের মধ্যে পার্থক্য কী?

প্রকৃতপক্ষে উভয়ের মধ্যে অনেক মিল রয়েছে, এই সত্য থেকে শুরু করে যে তাদের নামগুলি খুব অনুরূপ শোনাচ্ছে। তারা উভয়ই মডেল ফাংশন হিসাবে লাইন ব্যবহার করে। তাদের গ্রাফ খুব একই দেখায়.

লেখক দ্বারা চিত্র

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

  • হাইপোথিসিস বা মডেল পরিবার
  • ইনপুট এবং আউটপুট
  • ক্ষতি ফাংশন
  • অপ্টিমাইজেশান কৌশল
  • আবেদন

আমরা এখন এই প্রতিটি পয়েন্টে লিনিয়ার রিগ্রেশন (লিনরেগ) এবং লজিস্টিক রিগ্রেশন (লগরেগ) তুলনা করব। চলুন শুরু করা যাক আবেদন, সঠিক পথে আলোচনা করা.

ছবি রাজশ্রী রাজধ্যক্ষের

লিনিয়ার রিগ্রেশন অন্যান্য পরিমাণের উপর ভিত্তি করে একটি পরিমাণ অনুমান করার জন্য ব্যবহৃত হয়। একটি উদাহরণ হিসাবে, কল্পনা করুন যে একজন ছাত্র হিসাবে, আপনি গ্রীষ্মের ছুটিতে একটি লেমনেড স্ট্যান্ড চালান। আপনি আগামীকাল কত গ্লাস লেমনেড বিক্রি হবে তা বের করতে চান, যাতে আপনি পর্যাপ্ত লেবু এবং চিনি কিনতে পারেন। লেবুপান বিক্রির আপনার দীর্ঘ অভিজ্ঞতা থেকে আপনি বুঝতে পেরেছেন যে দিনের সর্বোচ্চ তাপমাত্রার সাথে বিক্রির একটি দৃঢ় সম্পর্ক রয়েছে। তাই আপনি লেমনেড বিক্রির পূর্বাভাস দিতে পূর্বাভাসিত সর্বোচ্চ তাপমাত্রা ব্যবহার করতে চান। এটি একটি ক্লাসিক LinReg অ্যাপ্লিকেশন, যাকে সাধারণত ML সাহিত্যে ভবিষ্যদ্বাণী বলা হয়।

একটি নির্দিষ্ট ইনপুট কীভাবে আউটপুটকে প্রভাবিত করে তা খুঁজে বের করতে LinReg ব্যবহার করা হয়। লেমনেড স্টলের উদাহরণে, ধরুন আপনার কাছে দুটি ইনপুট রয়েছে- সর্বোচ্চ তাপমাত্রা এবং দিনটি ছুটির দিন কিনা। আপনি জানতে চান কোনটি বিক্রয়কে বেশি প্রভাবিত করে — সর্বোচ্চ তাপমাত্রা বা ছুটি। LinReg এটি সনাক্ত করতে দরকারী হবে.

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

আমাদের অবশ্যই মনে রাখতে হবে যে অনুমান এবং শ্রেণীবিভাগ উভয়ই গণনার চেয়ে অনুমান করার কাজ। এই ধরনের কাজের কোন সঠিক বা সঠিক উত্তর নেই। মেশিন লার্নিং সিস্টেমগুলি কী ভাল তা অনুমান করার কাজগুলি।

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

প্রদত্ত ডেটা থেকে একটি গাণিতিক ফাংশন সনাক্ত করাকে 'শিক্ষা' বা 'প্রশিক্ষণ' বলা হয়। শেখার দুটি ধাপ রয়েছে:

  1. ফাংশনের 'টাইপ' (উদাহরণস্বরূপ রৈখিক, সূচকীয়, বহুপদী) একজন মানুষের দ্বারা নির্বাচিত হয়
  2. শেখার অ্যালগরিদম প্রদত্ত ডেটা থেকে প্যারামিটারগুলি (যেমন একটি লাইনের ঢাল এবং বাধা) শিখে।

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

LinReg এবং LogReg উভয় ক্ষেত্রেই মডেল পরিবার হল লিনিয়ার ফাংশন। আপনি জানেন, একটি লাইনের দুটি পরামিতি রয়েছে — ঢাল এবং বাধা। কিন্তু এটি সত্য শুধুমাত্র যদি ফাংশনটি শুধুমাত্র একটি ইনপুট নেয়। বেশিরভাগ বাস্তব বিশ্বের সমস্যার জন্য, একাধিক ইনপুট রয়েছে। এই ক্ষেত্রে মডেল ফাংশন একটি রৈখিক ফাংশন বলা হয়, একটি লাইন নয়। একটি রৈখিক ফাংশন শিখতে আরো পরামিতি আছে. মডেলটিতে n ইনপুট থাকলে, লিনিয়ার ফাংশনে n+1 প্যারামিটার থাকে। উল্লিখিত হিসাবে, এই পরামিতিগুলি প্রদত্ত ডেটা থেকে শিখেছে। এই নিবন্ধটির উদ্দেশ্যে, আমরা ধরে নিতে থাকব যে ফাংশনটি দুটি পরামিতি সহ সাধারণ লাইন। LogReg এর মডেল ফাংশনটি একটু বেশি জটিল। লাইন আছে, কিন্তু এটি অন্য ফাংশন সঙ্গে মিলিত হয়. আমরা কিছুক্ষণের মধ্যে এটি দেখতে পাব।

যেমন আমরা উপরে বলেছি, LinReg এবং LogReg উভয়ই প্রদত্ত ডেটা থেকে লিনিয়ার ফাংশনের প্যারামিটার শিখে, যাকে ট্রেনিং ডেটা বলা হয়। প্রশিক্ষণ তথ্য ধারণ করে কি?

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

লেখক দ্বারা চিত্র

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

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

যাইহোক, আউটপুট নির্দিষ্ট করার এই পদ্ধতি খুব উপযুক্ত নয়। নিম্নলিখিত চিত্রটি দেখুন:

লেখক দ্বারা চিত্র

হলুদের বিন্দুগুলি ক্লাস 1 এর অন্তর্গত এবং হালকা নীলগুলি 0 এর অন্তর্গত। লাইনটি হল আমাদের মডেল ফাংশন যা দুটি শ্রেণীকে আলাদা করে। এই বিভাজক অনুসারে, উভয় হলুদ বিন্দু (a এবং b) ক্লাস 1 এর অন্তর্গত। যাইহোক, বি পয়েন্টের সদস্যতা পয়েন্ট a এর চেয়ে অনেক বেশি নিশ্চিত। যদি মডেলটি কেবল 0 এবং 1 আউটপুট দেয়, তবে এই সত্যটি হারিয়ে গেছে।

এই পরিস্থিতি সংশোধন করার জন্য, LogReg মডেল একটি নির্দিষ্ট শ্রেণীর অন্তর্গত প্রতিটি পয়েন্টের সম্ভাব্যতা তৈরি করে। উপরের উদাহরণে, ক্লাস 1 এর অন্তর্গত পয়েন্ট 'a' এর সম্ভাবনা কম, যেখানে বিন্দু 'b' এর সম্ভাবনা বেশি। যেহেতু সম্ভাব্যতা 0 এবং 1 এর মধ্যে একটি সংখ্যা, তাই LogReg এর আউটপুট।

এখন নিচের চিত্রটি দেখুন:

লেখক দ্বারা চিত্র

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

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

এইভাবে LogReg মডেলটি দেখায়:

লেখক দ্বারা চিত্র

সিগমায়েড ফাংশনটিকে 'লজিস্টিক'ও বলা হয় এবং এটি 'লজিস্টিক রিগ্রেশন' নামের কারণ।

দুইটির বেশি ক্লাস থাকলে, LogReg-এর আউটপুট একটি ভেক্টর। আউটপুট ভেক্টরের উপাদানগুলি সেই নির্দিষ্ট শ্রেণীর ইনপুট হওয়ার সম্ভাবনা। উদাহরণস্বরূপ, যদি ক্লিনিকাল ডায়াগনসিস মডেলের প্রথম উপাদানটির মান 0.8 থাকে, তাহলে এর মানে হল যে মডেলটি মনে করে যে রোগীর ঠান্ডায় আক্রান্ত হওয়ার 80% সম্ভাবনা রয়েছে।

আমরা দেখেছি যে LinReg এবং LogReg উভয়ই ট্রেনিং ডেটা থেকে লিনিয়ার ফাংশনের প্যারামিটার শিখে। কিভাবে তারা এই পরামিতি শিখতে না?

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

এমএল মডেল শেখার ক্ষেত্রে, কর্মক্ষমতা পরিমাপকে কখনও কখনও 'লস' বলা হয় এবং যে ফাংশনটি আমাদের এটি গণনা করতে সাহায্য করে তাকে 'লস ফাংশন' বলা হয়। আমরা এটিকে এইভাবে উপস্থাপন করতে পারি:

ক্ষতি = ক্ষতি_ফাংশন (প্যারামিটারগুলি_বিচ্ছেদ_মূল্যায়িত)

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

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

LinReg প্যারামিটারের অপ্টিমাইজেশনের জন্য, সবচেয়ে সাধারণ ক্ষতি ফাংশনকে বলা হয় Sum of Squares Error (SSE)। এই ফাংশন নিম্নলিখিত ইনপুট নেয়:

1) সমস্ত প্রশিক্ষণ ডেটা পয়েন্ট। প্রতিটি পয়েন্টের জন্য, আমরা নির্দিষ্ট করি:

ক) ইনপুট, যেমন সর্বোচ্চ ডেটা তাপমাত্রা,

b) আউটপুট, যেমন লেমনেড চশমা বিক্রি হয়েছে

2) পরামিতি সহ রৈখিক সমীকরণ

ফাংশন তারপর নিম্নলিখিত সূত্র ব্যবহার করে ক্ষতি গণনা করে:

SSE ক্ষতি = যোগফল_সব_পয়েন্ট(
বর্গ_অফ(
আউটপুট_অফ_লিনিয়ার_ইকুয়েশন_ফর_দ্য_ইনপুট - প্রকৃত_আউটপুট_থেকে_ডেটা পয়েন্ট
))

LogReg-এর জন্য অপ্টিমাইজেশান পরিমাপ একটি খুব ভিন্ন উপায়ে সংজ্ঞায়িত করা হয়েছে। SSE ফাংশনে, আমরা নিম্নলিখিত প্রশ্ন জিজ্ঞাসা করি:

আমরা যদি প্রশিক্ষণের ডেটা ফিট করার জন্য এই লাইনটি ব্যবহার করি তবে এটি কতটা ত্রুটি করবে?

LogReg অপ্টিমাইজেশানের জন্য পরিমাপ ডিজাইন করার সময়, আমরা জিজ্ঞাসা করি:

যদি এই লাইনটি বিভাজক হয়, তাহলে প্রশিক্ষণের ডেটাতে দেখা যায় এমন ক্লাসের বিতরণ পাওয়ার সম্ভাবনা কতটা?

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

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

তাই আমাদের দুটি ক্ষতির ফাংশন রয়েছে: LinReg এর জন্য SSE এবং LogReg এর জন্য NLL। মনে রাখবেন যে এই ক্ষতি ফাংশনগুলির অনেকগুলি নাম রয়েছে এবং আপনার শর্তগুলির সাথে নিজেকে পরিচিত করা উচিত।

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

আরো বিস্তারিত তদন্ত করা যেতে পারে. কেন এসএসই? কিভাবে সম্ভাবনা গণনা করা হয়? আরও গণিত এড়াতে আমরা এখানে অপ্টিমাইজেশন পদ্ধতিতে যাইনি। যাইহোক, আপনাকে অবশ্যই মনে রাখতে হবে যে LogReg-এর অপ্টিমাইজেশনের জন্য সাধারণত পুনরাবৃত্তিমূলক গ্রেডিয়েন্ট ডিসেন্ট পদ্ধতির প্রয়োজন হয় যেখানে LinReg সাধারণত একটি দ্রুত বন্ধ ফর্ম সমাধান দিয়ে করতে পারে। আমরা অন্য নিবন্ধে এই এবং আরো পয়েন্ট আলোচনা করতে পারেন.

https://towardsdatascience.com/feed এর মাধ্যমে সোর্স https://towardsdatascience.com/comparing-linear-and-logistic-regression-11a3e1812212?source=rss—-7f60cf5620c9—4 থেকে লিনিয়ার এবং লজিস্টিক রিগ্রেশনের তুলনা করা

<!–

->

সময় স্ট্যাম্প:

থেকে আরো ব্লকচেইন পরামর্শদাতা