> ### [এই পাঠটি R ভাষায় পাওয়া যায়!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### পরিচিতি
### পরিচিতি
এখন পর্যন্ত আপনি পদক্ষেপভিত্তিক রিগ্রেশন কী তা অন্বেষণ করেছেন, আমরা যা ব্যবহার করছি সেসব কুমড়ো মূল্য ডেটাসেট থেকে উদাহরণ হিসেবে। আপনি matplotlib দিয়ে এটি ভিজুয়ালাইজেশনও করেছেন।
এখন পর্যন্ত আপনি pumpkin মুল্য নির্ধারণের ডেটাসেট থেকে সংগৃহীত নমুনা ডেটা ব্যবহার করে রিগ্রেশন কী তা অন্বেষণ করেছেন যা আমরা এই পাঠজুড়ে ব্যবহার করব। আপনি এটিও Matplotlib ব্যবহার করে ভিজ্যুয়ালাইজ করে দেখেছেন।
এখন আপনি এমএল এর জন্য রিগ্রেশনে আরও গভীরে প্রবেশ করার জন্য প্রস্তুত। ভিজুয়ালাইজেশন ডেটা বোঝার জন্য সাহায্য করে, কিন্তু মেশিন লার্নিংয়ের আসল শক্তি আসে _মডেল প্রশিক্ষণ_ থেকে। মডেলগুলি ঐতিহাসিক ডেটায় প্রশিক্ষিত হয় যাতে তারা ডেটার নির্ভরতা স্বয়ংক্রিয়ভাবে ধরতে পারে, এবং এটি নতুন ডেটার জন্য পূর্বাভাস দিতে সক্ষম করে, যা আগে মডেল দেখেনি।
এখন আপনি এমএল এর জন্য রিগ্রেশনের গভীরে প্রবেশ করতে প্রস্তুত। ভিজ্যুয়ালাইজেশন আপনাকে ডেটা বুঝতে সাহায্য করলেও, মেশিন লার্নিংয়ের প্রকৃত শক্তি আসে _মডেল প্রশিক্ষণ_ থেকে। মডেলগুলি ঐতিহাসিক ডেটার উপর প্রশিক্ষিত হয় যা ডেটার নির্ভরশীলতা স্বয়ংক্রিয়ভাবে ধারণ করে, এবং তারা নতুন, অদেখা ডেটা জন্য ফলাফল পূর্বাভাস করতে সহায়তা করে।
এই পাঠে, আপনি দুই ধরনের রিগ্রেশন সম্পর্কে শেখবেন: _মৌলিক লিনিয়ার রিগ্রেশন_ এবং _পলিনোমিয়াল রিগ্রেশন_, এর সাথে এই প্রযুক্তির প্রাথমিক গাণিতিক ধারণা। এই মডেলগুলি আমাদের দেয় আলাদা ইনপুট ডেটার উপর ভিত্তি করে কুমড়োর দাম অনুমান করার সুযোগ।
এই পাঠে, আপনি দুই ধরনের রিগ্রেশন সম্পর্কে শিখবেন: _মৌলিক রৈখিক রিগ্রেশন_ এবং _বহুপদী রিগ্রেশন_, এবং কিছু গণিত যা এই পদ্ধতিগুলির ভিত্তি। এই মডেলগুলি আমাদের বিভিন্ন ইনপুট ডেটা অনুসারে pumpkin এর মূল্য পূর্বাভাস করার সুযোগ দেবে।
[](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
[](https://youtu.be/CRxFT8oTDMg "শিক্ষানবিসদের জন্য এমএল - রৈখিক রিগ্রেশন বোঝা")
> 🎥 উপরের ছবিতে ক্লিক করুন লিনিয়ার রিগ্রেশনের একটি সংক্ষিপ্ত ভিডিও ওভারভিউ এর জন্য।
> এই কারিকুলামের পুরো সময় আমরা গাণিতিক জ্ঞান সীমিত ধরেই চলব, এবং অন্য ক্ষেত্রে থেকে আসা শিক্ষার্থীদের জন্য এটি সহজবোধ্য করার চেষ্টা করব, তাই নোট, 🧮 কলআউট, চিত্র এবং অন্যান্য শিক্ষণ সরঞ্জাম লক্ষ্য রাখুন সহায়তার জন্য।
> এই পাঠক্রম জুড়ে, আমরা গণিতের নূন্যতম জ্ঞান ধরে নিই, এবং অন্যান্য ক্ষেত্রে থেকে আগত শিক্ষার্থীদের জন্য এটি বুঝতে সহজ করার চেষ্টা করি, সুতরাং লক্ষ্য করুন নোট, 🧮 কলআউট, ডায়াগ্রাম এবং অন্যান্য শিক্ষা সরঞ্জামগুলি।
### পূর্বশর্ত
### পূর্বশর্ত
আপনি এখন পর্যন্ত যে কুমড়ো ডেটা নিয়ে কাজ করছেন তার কাঠামো সম্পর্কে পরিচিত হওয়া উচিত। এটি আপনি এটি আগেই লোড ও ক্লিন করে রেখেছেন এই পাঠের _notebook.ipynb_ ফাইলে। এই ফাইলে, কুমড়ো দামের তথ্য প্রতি বাসেলের হিসেবে নতুন ডেটা ফ্রেমে দেখানো হয়েছে।
Visual Studio Code এ কনর্নেলে এই নোটবুকগুলো চালাতে পারবেন কিনা তা পরীক্ষা করে নিন।
আপনি এখন পর্যন্ত pumpkin ডেটার কাঠামো সম্পর্কে পরিচিত হওয়া উচিত যা আমরা পর্যবেক্ষণ করছি। এটি পূর্বনির্ধারিত এবং পরিষ্কৃত অবস্থায় এই পাঠের _notebook.ipynb_ ফাইলে পাওয়া যায়। ফাইলে, pumpkin এর দাম প্রতি বাসেল হিসেবে প্রদর্শিত হয়েছে। নিশ্চিত করুন যে আপনি Visual Studio Code এর কের্নেলগুলিতে এই নোটবুকগুলি চালাতে পারেন।
### প্রস্তুতি
স্মরণ করিয়ে দিতে চাই, আপনি এই ডেটা লোড করছেন যাতে এর জন্য প্রশ্ন করতে পারেন।
স্মরণ করিয়ে দিতে চাই, আপনি এই ডেটা লোড করছেন যাতে এর উপর প্রশ্ন উত্থাপন করতে পারেন।
- কখন কুমড়ো কেনা সবচেয়ে ভালো সময়?
- ছোট আকারের কুমড়োর একটি কেসের দাম প্রায় কত হবে?
- কি আমি এগুলো আধা বাসেল বস্তায় কিনব, না ১ ১/৯ বাসেল বাক্সে?
চলুন এ ডেটার খোঁজ চালিয়ে যাই।
- কখন pumpkin কেনা সবচেয়ে ভালো সময়?
- একটি ছোট আকারের pumpkin এর দাম কত আশা করা যায়?
- আমি কি তাদের অর্ধ-বাসেল ঝুড়িতে কিনব নাকি ১ ১/৯ বাসেল বাক্সে?
চলুন এই ডেটা আরও খতিয়ে দেখা যাক।
আগের পাঠে, আপনি একটি Pandas ডেটাফ্রেম তৈরি করেছিলেন এবং মূল ডেটাসেটের একটি অংশ দিয়ে পূর্ণ করেছিলেন, দামগুলো বাসেল অনুযায়ী মানানসই করে। এর ফলে, আপনি মাত্র ৪০০-র মতো ডেটাপয়েন্ট এবং শুধুমাত্র শরতের মাসগুলো নিয়েই তথ্য সংগ্রহ করতে পেরেছিলেন।
পূর্বের পাঠে, আপনি একটি Pandas ডেটাফ্রেম তৈরি করেছিলেন এবং প্রাথমিক ডেটাসেটের একটি অংশ নিয়ে এটিকে বাসেল অনুযায়ী দাম মানকরণ করেছিলেন। কিন্তু এতে আপনি প্রায় ৪০০ ডেটাপয়েন্ট এবং শুধুমাত্র শরৎ মাসের জন্য তথ্য পেয়েছিলেন।
এই পাঠের সঙ্গেই প্রিলোড করা ডেটা দেখুন। ডেটা লোড করা হয়েছে এবং প্রথম একটি স্ক্যাটারপ্লট চার্টে মাস অনুযায়ী দেখানো হয়েছে। হয়তো আরও পরিষ্কার করতে ডেটা ক্লিন করে আরও বিশদ পেতে পারি।
এই পাঠের সঙ্গী নোটবুকে আমরা পূর্বনির্ধারিত যে ডেটা লোড করেছি তা দেখুন। ডেটাটি লোড করা হয়েছে এবং প্রথম একটি scatterplot তৈরি করা হয়েছে যা মাসের ডেটা দেখায়। হয়তো এটি আরও পরিষ্কার করলে ডেটার প্রকৃতি সম্পর্কে কিছু বিস্তারিত জানতে পারি।
## একটি লিনিয়ার রিগ্রেশন লাইন
## একটি রৈখিক রিগ্রেশন লাইন
যেমন আপনি পাঠ ১ এ শিখেছেন, লিনিয়ার রিগ্রেশন চর্চার লক্ষ্য হলো একটি লাইন আঁকা যাতে:
আপনি প্রথম পাঠে শিখেছেন, রৈখিক রিগ্রেশন অনুশীলনের লক্ষ্য হল এমন একটি রেখা আঁকতে পারা যা:
- **চর পরিবর্তনের সম্পর্ক দেখানো**। চর পরিবর্তনের মধ্যে সম্পর্ককে উপস্থাপন করা।
- **পূর্বাভাস তৈরি**। এমন একটি পূর্বাভাস তৈরি করা যেখানে নতুন ডেটাপয়েন্ট সেই লাইন সম্পর্কিত কোথায় পড়বে তা নির্ধারণ করা যায়।
- **চলকগুলোর মধ্যে সম্পর্ক প্রদর্শন করে**। চলকগুলোর মধ্যে সম্পর্ক দেখানো।
- **পূর্বাভাস দেয়**। একটি নতুন ডেটাপয়েন্ট যেখানে পড়বে সেই সম্পর্কে সঠিক পূর্বাভাস দেওয়া।
সাধারণত, **লিস্ট-স্কোয়ার্স রিগ্রেশন** এই ধরনের লাইন আঁকার জন্য ব্যবহৃত হয়। "লিস্ট-স্কোয়ার্স" শব্দটি বোঝায় এমন একটি প্রক্রিয়া যেখানে মোট ত্রুটি (এরর) সর্বনিম্ন করার চেষ্টা করা হয়। প্রতিটি ডেটা পয়েন্টের জন্য, আমরা আসল পয়েন্ট এবং আমাদের রিগ্রেশন লাইনের মধ্যে উল্লম্ব দূরত্ব (যা রেসিডুয়াল নামে পরিচিত) পরিমাপ করি।
**Least-Squares Regression** এ এই ধরনের রেখা আঁকা সাধারণ। "Least-Squares" শব্দগুচ্ছ আমাদের মডেলে মোট ত্রুটি সবচেয়ে কম করার প্রক্রিয়াকে বোঝায়। প্রতিটি ডেটাপয়েন্টের জন্য, আমরা আসল বিন্দু এবং রিগ্রেশন লাইনের মধ্যে উল্লম্ব দূরত্ব (যা অবশিষ্টাংশ বলে) পরিমাপ করি।
আমরা এই দূরত্বগুলো বর্গ করি কারণ দুটি প্রধান কারণ:
আমরা এই দূরত্বগুলিকে বর্গ করি দুইটি প্রধান কারণে:
1. **দিকের উপর নয় মাত্রার ভিত্তিতে:** আমরা -৫ এর ত্রুটিকেও +৫ এর ত্রুটির মতোই বিবেচনা করতে চাই। বর্গ করলে সব মান ধনাত্মক হয়।
2. **আউটলায়ারদের জন্য বেশি শাস্তি:** বড় ত্রুটির বর্গ করলে তার ওজন বেশি হয়, ফলে লাইন দূরে থাকা পয়েন্টের কাছাকাছি থাকে।
1. **পরিমাণের গুরুত্ব, দিক নয়:** আমরা -৫ এর ত্রুটিকে +৫ এর ত্রুটির মত বিবেচনা করতে চাই। বর্গ করলে সকল মান ধনাত্মক হয়।
তারপর আমরা সব বর্গ করা দূরত্ব একত্র করি। আমাদের লক্ষ্য হল এমন একটি নির্দিষ্ট লাইন খোঁজা যেখানে এই যোগফল সর্বনিম্ন থাকবে — তাই নাম "লিস্ট-স্কোয়ার্স"।
2. **বহিরাগত মানগুলিকে শাস্তি দেওয়া:** বড় ত্রুটিকে বেশি ওজন দেয়, রেখাটিকে সেসব দূরের পয়েন্টের কাছাকাছি থাকতে বাধ্য করে।
> **🧮 আমাকে গাণিতিক সূত্র দেখাও**
>
> এই লাইন, যা _লাইন অফ বেস্ট ফিট_ বলা হয়, এক [সমীকরণের মাধ্যমে](https://en.wikipedia.org/wiki/Simple_linear_regression) প্রকাশ করা যায়:
>
তারপর আমরা এই সব বর্গ মান যোগ করি। আমাদের লক্ষ্য হল সেই রেখাটি খুঁজে পাওয়া যেখান থেকে এই চূড়ান্ত সমষ্টি সর্বনিম্ন হয়—এ কারণেই নাম "Least-Squares"।
> **🧮 আমাকে গণিত দেখাও**
>
> এই রেখাটি, যাকে _line of best fit_ বলা হয়, [একটি সমীকরণ](https://en.wikipedia.org/wiki/Simple_linear_regression) দ্বারা প্রকাশ করা যায়:
>
> ```
> Y = a + bX
> ```
>
> `X` হল 'ব্যাখ্যামূলক ভেরিয়েবল'। `Y` হল 'নির্ভরশীল ভেরিয়েবল'। লাইনের ঢাল `b` এবং `a` হল y-ইন্টারসেপ্ট যা নির্দেশ করে যখন `X = 0` তখন `Y` এর মান কত।
>
>
>
> প্রথমে, ঢাল `b` হিসাব করুন। ইনফোগ্রাফিক [জেন লুপার](https://twitter.com/jenlooper) দ্বারা
>
> অন্য কথায়, আমাদের কুমড়ো ডেটার প্রশ্ন অনুযায়ী: "মাস অনুযায়ী প্রতি বাসেলে কুমড়োর দাম অনুমান করুন", এখানে `X` হবে দাম এবং `Y` হবে বিক্রয়ের মাস।
>
>
>
> Y এর মান হিসাব করুন। যদি আপনি প্রায় $৪ প্রদান করছেন, তবে এটা অবশ্যই এপ্রিল! ইনফোগ্রাফিক [জেন লুপার](https://twitter.com/jenlooper) দ্বারা
>
> গাণিতিক সূত্রটি লাইন এর ঢাল দেখাতে হবে, যা নির্ভর করে y-ইন্টারসেপ্টের উপর, অর্থাৎ `X = 0` হলে `Y` কোথায় থাকে।
>
> আপনি এই মানগুলোর গণনার পদ্ধতি এই [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) ওয়েবসাইটে দেখতে পারেন। সাথে এই [Least-squares calculator](https://www.mathsisfun.com/data/least-squares-calculator.html) দেখুন সংখ্যাগুলোর মান কীভাবে লাইনে প্রভাব ফেলে।
>
> `X` হল 'explanatory variable'। `Y` হল 'dependent variable'। রেখার ঢালের মান `b` এবং `a` হল y-intercept, যা `X = 0` এর সময় `Y` এর মান নির্দেশ করে।
> প্রথমে ঢাল `b` গণনা করুন। ইনফোগ্রাফিক [জেন লুপার](https://twitter.com/jenlooper) এর দ্বারা
>
> অন্য কথায়, এবং আমাদের pumpkin ডেটার মূল প্রশ্নের পরিপ্রেক্ষিতে: "মাস অনুযায়ী একটি pumpkin এর দাম পূর্বাভাস", এখানে `X` দাম বোঝাবে এবং `Y` বিক্রয়ের মাস।
> Y এর মান গণনা করুন। আপনি যদি প্রায় $4 দিচ্ছেন, তবে অবশ্যই এপ্রিল! ইনফোগ্রাফিক [জেন লুপার](https://twitter.com/jenlooper) এর দ্বারা
>
> লাইন গণনা যে গণিতটি করে তা ঢালটি প্রদর্শন করে, যা ইন্টারসেপ্টের উপর নির্ভরশীল, অর্থাৎ `X = 0` এর সময় `Y` কোথায় রয়েছে।
>
> এই মানগুলি গণনার পদ্ধতি দেখতে পারেন [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) ওয়েবসাইটে। এছাড়া দেখুন [এই Least-squares calculator](https://www.mathsisfun.com/data/least-squares-calculator.html) যেখানে সংখ্যাগুলোর মান লাইনকে কীভাবে প্রভাবিত করে তা দেখা যায়।
## সহসंबন্ধ (Correlation)
## সহগ
আরেকটি শব্দ যা বুঝতে হবে তা হল X এবং Y এর মধ্যে **করেলেশন সহগ**। একটি scatterplot ব্যবহার করে আপনি দ্রুত এই সহগটি দেখতে পারেন। একটি স্ক্যাটারপ্লটে পয়েন্টগুলো সুসজ্জিত রেখায় থাকলে করেলেশন বেশি, আর যেসব পয়েন্ট এলোমেলো ছড়িয়ে থাকে সেসবের করেলেশন কম।
আরেকটি শব্দ যা জানতেও হবে তা হল `X` এবং `Y` চলকগুলোর মধ্যে **সহগ সহগ (Correlation Coefficient)**। একটি scatterplot ব্যবহার করে আপনি দ্রুত এই সহগকে ভিজ্যুয়ালাইজ করতে পারেন। যে প্লটের ডেটাপয়েন্টগুলো একটি সুন্দর লাইনে ছড়িয়ে আছে সে প্লটের সহগ বেশি, কিন্তু যেখানে ডেটাপয়েন্টগুলো X এবং Y এর মধ্যে এলোমেলো ছড়ানো সেখানে সহগ কম।
একটি ভালো লিনিয়ার রিগ্রেশন মডেল হবে যার লিস্ট-স্কোয়ার্স রিগ্রেশন ব্যবহারের মাধ্যমে করেলেশন সহগ বেশি (0 এর থেকে 1 এর দিকে) হবে।
একটি ভাল রৈখিক রিগ্রেশন মডেল হবে এমনটি যার সহগ খুব বেশি (০ থেকে ১ এর কাছে) এবং Least-Squares Regression এর মাধ্যমে রিগ্রেশন রেখা থাকবে।
✅ এই পাঠের সাথে থাকা নোটবুক চালিয়ে দেখুন এবং মাস এবং দাম এর scatterplot টি দেখুন। আপনার ভিজুয়াল ইন্টারপ্রিটেশন অনুযায়ী কি মাস থেকে দাম এর ডেটার উপর করেলেশন বেশি নাকি কম বলে মনে হচ্ছে? আপনি কি পেতে পারেন আরও সূক্ষ্ম মাপ যেমন *বছরের দিন* (অর্থাৎ বছরের শুরু থেকে কততম দিন)?
✅ এই পাঠের সঙ্গী নোটবুকটি চালান এবং Month থেকে Price পর্যন্ত scatterplot দেখুন। কি মনে হয়, মাস এবং দাম পাম্পকিন বিক্রয়ের ডেটার মধ্যে আপনার scatterplot অনুযায়ী কি উচ্চ না কম সহগ আছে? যদি আপনি `Month` এর পরিবর্তে আরো সূক্ষ্ম পরিমাপ ব্যবহার করেন যেমন *বছরের দিন* (অর্থাৎ বছরের শুরু থেকে দিনের সংখ্যা), তাহলে কি এটি পরিবর্তিত হয়?
নীচের কোডে, আমরা ধরে নিচ্ছি যে ডেটা আমরা ক্লিন করেছি এবং একটি `new_pumpkins` নামের ডেটাফ্রেম পেয়েছি, যা নিম্নরূপ:
নিচের কোডে আমরা ধরে নেব ডেটা পরিষ্কার করা হয়েছে এবং একটি ডেটাফ্রেম `new_pumpkins` তৈরি হয়েছে, যা নিম্নরূপ:
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
> ডেটা ক্লিন করার কোড [`notebook.ipynb`](notebook.ipynb) এ পাওয়া যাবে। আমরা আগের পাঠের মতো ডেটা ক্লিনিং করেছেন এবং নিম্নলিখিত এক্সপ্রেশন দিয়ে `DayOfYear` কলাম হিসাব করেছি:
> ডেটা পরিষ্কারের কোড [`notebook.ipynb`](notebook.ipynb) ফাইলে উপলব্ধ। আমরা পূর্বের পাঠে ব্যবহৃত একই পরিষ্কারকরণ প্রক্রিয়া অনুসরণ করেছি এবং নিম্নলিখিত এক্সপ্রেশন ব্যবহার করে `DayOfYear` কলাম গণনা করেছি:
এখন যেহেতু আপনি লিনিয়ার রিগ্রেশনের গাণিতিক ভিত্তি বুঝে ফেলেছেন, চলুন একটি রিগ্রেশন মডেল তৈরি করি যা পূর্বাভাস দেবে কোন কুমড়োর প্যাকেজটির দাম সবচেয়ে ভালো হবে। কেউ যদি ছুটির মেলার জন্য কুমড়ো কিনতে চান, তারা এই তথ্য ব্যবহার করে ক্রয় পরিকল্পনা অপটিমাইজ করতে পারবেন।
## সহসংবাদ খোঁজা
এখন আপনি রৈখিক রিগ্রেশনের পেছনের গণিত বুঝতে পারছেন, চলুন একটি রিগ্রেশন মডেল তৈরী করি যা পূর্বাভাস করবে কোন pumpkin এর প্যাকেজে ভালো দাম পাওয়া যাবে। ছুটির জন্য pumpkin কিনছেন এমন কেউ এই তথ্য পেতে চাইবেন যাতে তাদের পাম্পকিন প্যাকেজ কেনাকাটা অপ্টিমাইজ করতে পারেন।
## সহগ অনুসন্ধান
[](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
[](https://youtu.be/uoRq-lW2eQo "শিক্ষানবিসদের জন্য এমএল - সহগ অনুসন্ধান: লিনিয়ার রিগ্রেশনের চাবিকাঠি")
> 🎥 উপরের ছবিতে ক্লিক করুন করেলেশন সম্পর্কে ছোট ভিডিও ওভারভিউ এর জন্য।
গত পাঠ থেকে আপনি নিশ্চয়ই দেখেছেন ভিন্ন ভিন্ন মাসে গড় দাম কেমন লাগে:
পূর্বের পাঠ থেকে আপনি সম্ভবত দেখেছেন বিভিন্ন মাসের গড় দাম এভাবে:
<imgalt="Average price by month" src="../../../../translated_images/bn/barchart.a833ea9194346d76.webp"width="50%"/>
<imgalt="মাস ভিত্তিক গড় দাম" src="../../../../translated_images/bn/barchart.a833ea9194346d76.webp"width="50%"/>
এটি নির্দেশ করে কিছু করেলেশন থাকবে, এবং আমরা চেষ্টা করতে পারি লিনিয়ার রিগ্রেশন মডেল প্রশিক্ষণ করতে যা `Month` এবং `Price` বা `DayOfYear` এবং `Price` এর মধ্যকার সম্পর্ক অনুমান করবে। নিচে scatterplot আছে যা `DayOfYear` এবং `Price` এর সম্পর্ক দেখায়:
এটি নির্দেশ করে যে কিছুটা সহগ থাকতে হবে, এবং আমরা `Month` এবং `Price` অথবা `DayOfYear` এবং `Price` এর মধ্যে সম্পর্ক পূর্বাভাস করার জন্য লিনিয়ার রিগ্রেশন মডেল প্রশিক্ষণ দেওয়ার চেষ্টা করতে পারি। নিচের scatter plot দেখায় পরবর্তী সম্পর্ক:
<imgalt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/bn/scatter-dayofyear.bc171c189c9fd553.webp"width="50%"/>
<imgalt="Price বনাম Day of Year ৰScatter plot" src="../../../../translated_images/bn/scatter-dayofyear.bc171c189c9fd553.webp"width="50%"/>
চলুন দেখি `corr` ফাংশন দিয়ে করেলেশন কেমন:
চলুন `corr` ফাংশন ব্যবহার করে সহগ দেখে নেওয়া যাক:
করেলেশন সম্ভবত খুব বেশি নয়, মাস অনুসারে প্রায় -০.১৫ এবং `DayOfMonth` অনুসারে -০.১৭, কিন্তু হতে পারে অন্য গুরুত্বপূর্ণ সম্পর্ক আছে। মনে হচ্ছে দাম বিভিন্ন কুমড়ো প্রকার অনুসারে আলাদা আলাদা ক্লাস্টারে বিভক্ত। এই অনুমান নিশ্চিত করতে, প্রতিটি কুমড়ো ধরণ একটি আলাদা রঙে প্লট করি। `scatter` ফাংশনে `ax` প্যারামিটার দিয়ে সব পয়েন্ট একই গ্রাফে দেখাতে পারি:
মনে হচ্ছে সহগ খুব ছোট, `Month` দ্বারা -০.১৫ এবং `DayOfMonth` দ্বারা -০.১৭, কিন্তু একটি অন্য গুরুত্বপূর্ণ সম্পর্ক থাকতে পারে। মনে হচ্ছে বিভিন্ন pumpkin জাতের জন্য বিভিন্ন দামের ক্লাস্টার রয়েছে। এই অনুমান নিশ্চিত করার জন্য, আসুন প্রতিটি pumpkin শ্রেণী ভিন্ন রঙে প্লট করি। `scatter` ফাংশনে `ax` প্যারামিটার ব্যবহার করে আমরা একই গ্রাফে সব পয়েন্ট প্লট করতে পারি:
```python
ax=None
@ -139,95 +139,93 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
<imgalt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/bn/pie-pumpkins-scatter.d14f9804a53f927e.webp"width="50%"/>
<imgalt="Price বনাম Day of Year পাই pumpkin স্ক্যাটার" src="../../../../translated_images/bn/pie-pumpkins-scatter.d14f9804a53f927e.webp"width="50%"/>
`Price` এবং `DayOfYear` এর করেলেশন `corr` ফাংশন দিয়ে হিসাব করলে প্রায় `-0.27` পাওয়া যাবে - যা অর্থ দেয়, একটি পূর্বাভাস মডেল প্রশিক্ষণ করাটা যুক্তিসঙ্গত।
এখন যদি আমরা `Price` এবং `DayOfYear` এর সহগ `corr` ফাংশন ব্যবহার করে বের করি, তবে ফলাফল হবে প্রায় `-0.27` - অর্থাৎ পূর্বাভাস মডেল প্রশিক্ষণ দেওয়া যৌক্তিক।
> লিনিয়ার রিগ্রেশন মডেল ট্রেনিং করার আগে, নিশ্চিত হওয়া জরুরি যে ডেটা ক্লিন। লিনিয়ার রিগ্রেশন মিসিং ভ্যালু সহ ভালো কাজ করে না, তাই সমস্ত খালি সেল সরিয়ে ফেলা ভালো:
> রৈখিক রিগ্রেশন মডেল প্রশিক্ষণের আগে, নিশ্চিত হওয়া গুরুত্বপূর্ণ যে আমাদের ডেটা পরিষ্কার। রৈখিক রিগ্রেশন অনুপস্থিত মানের সঙ্গে ভালো কাজ করে না, তাই সব ফাঁকা ঘর মুছে ফেলা যুক্তিযুক্ত:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
আরেকটি উপায় হলো, খালি মানগুলো সংশ্লিষ্ট কলামের গড় মান দিয়ে পূরণ করা।
## সহজ লিনিয়ার রিগ্রেশন
অন্য একটি পদ্ধতি হল ঐ ফাঁকা মানগুলো সংশ্লিষ্ট কলামের গড় মান দিয়ে পূরণ করা।
[](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn")
## সাধারণ রৈখিক রিগ্রেশন
> 🎥 উপরের ছবিতে ক্লিক করুন লিনিয়ার এবং পলিনোমিয়াল রিগ্রেশন সম্পর্কে ছোট ভিডিও ওভারভিউ এর জন্য।
[](https://youtu.be/e4c_UP2fSjg "শিক্ষানবিসদের জন্য এমএল - Scikit-learn ব্যবহার করে রৈখিক এবং বহুপদী রিগ্রেশন")
আমরা আমাদের লিনিয়ার রিগ্রেশন মডেল প্রশিক্ষণের জন্য **Scikit-learn** লাইব্রেরি ব্যবহার করব।
> 🎥 রৈখিক এবং বহুপদী রিগ্রেশনের সংক্ষিপ্ত ভিডিও ওভারভিউ দেখতে উপরের চিত্রে ক্লিক করুন।
আমরা আমাদের লিনিয়ার রিগ্রেশন মডেল প্রশিক্ষণের জন্য **Scikit-learn** লাইব্রেরি ব্যবহার করব।
```python
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
আমরা প্রথমে ইনপুট মান (ফিচার) এবং প্রত্যাশিত আউটপুট (লেবেল) আলাদা নাম্পাই অ্যারেতে বিভক্ত করব:
আমরা প্রথমে ইনপুট মান (বৈশিষ্ট্য) এবং প্রত্যাশিত আউটপুট (লেবেল) আলাদা numpy অ্যারেতে রাখব:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> লক্ষ্য করুন, ইনপুট ডেটাকে `reshape` করতে হয়েছে যাতে লিনিয়ার রিগ্রেশন প্যাকেজ এটি সঠিকভাবে বুঝতে পারে। লিনিয়ার রিগ্রেশন ২-ডি অ্যারে প্রত্যাশা করে, যেখানে অ্যারের প্রতিটি সারি ইনপুট ফিচারের ভেক্টর। আমাদের ক্ষেত্রে, যেহেতু কেবল একটি ইনপুট আছে, তাই N x 1 আকৃতির অ্যারে প্রয়োজন, যেখানে N ডেটাসেটের আকার।
তারপর, আমাদের ডেটা শিক্ষণ এবং পরীক্ষার জন্য ভাগ করতে হবে, যাতে মডেল প্রশিক্ষণের পর আমরা এটি যাচাই করতে পারি:
> লক্ষণীয় যে ইনপুট ডেটাতে `reshape` প্রয়োগ করতে হয়েছে যাতে লিনিয়ার রিগ্রেশন প্যাকেজ এটি সঠিকভাবে বুঝতে পারে। লিনিয়ার রিগ্রেশন ২-ডি অ্যারে ইনপুট হিসেবে চায়, যেখানে প্রতিটি সারি হলো ইনপুট বৈশিষ্ট্যের ভেক্টর। আমাদের ক্ষেত্রে, যেহেতু ইনপুট মাত্র একটির মত, তাই একটি N×1 আকৃতির অ্যারে দরকার, যেখানে N হলো ডেটাসেটের সাইজ।
এরপর, আমাদের ডেটা ট্রেন এবং টেস্ট ডেটাসেটে বিভক্ত করতে হবে, যাতে আমরা প্রশিক্ষণের পর মডেল যাচাই করতে পারি:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
শেষে, প্রকৃত লিনিয়ার রিগ্রেশন মডেল প্রশিক্ষণ মাত্র দুটি কোড লাইনে হয়। আমরা `LinearRegression` অবজেক্ট ডিফাইন করি, এবং `fit` পদ্ধতি ব্যবহার করে ডেটার সাথে ফিট করি:
অবশেষে, আসল রৈখিক রিগ্রেশন মডেল প্রশিক্ষণ মাত্র দুই লাইনের কোড নিয়ে হয়। আমরা `LinearRegression` অবজেক্ট সংজ্ঞায়িত করি এবং `fit` মেথড ব্যবহার করে আমাদের ডেটার উপর এটি ফিট করি:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`LinearRegression` অবজেক্টটি `fit` করার পরে রিগ্রেশনের সমস্ত কোএফিসিয়েন্ট থাকে, যা `.coef_` প্রপার্টি ব্যবহার করে অ্যাক্সেস করা যায়। আমাদের ক্ষেত্রে, কেবল একটি কোএফিসিয়েন্ট আছে, যা প্রায় `-0.017` হওয়া উচিত। এর মানে হল দাম কিছুটা হ্রাস পাচ্ছে সময়ের সাথে, কিন্তু খুব বেশি নয়, প্রায় প্রতি দিন ২ সেন্টের মতো। আমরা রিগ্রেশনের ক্রসিং পয়েন্ট Y-অক্ষের সাথে `lin_reg.intercept_` ব্যবহার করে অ্যাক্সেস করতে পারি - এটি আমাদের ক্ষেত্রে প্রায় `21` হবে, যা বছরের শুরুতে মূল্যের নির্দেশ করে।
আমাদের মডেল কতটা সঠিক তা দেখার জন্য, আমরা টেস্ট ডেটাসেটে দাম প্রেডিক্ট করতে পারি, এবং তারপর আমাদের পূর্বাভাসগুলি প্রত্যাশিত মানের সাথে কতটা কাছাকাছি তা পরিমাপ করি। এটি করা যায় mean square error (MSE) মেট্রিক্স ব্যবহার করে, যা প্রত্যাশিত এবং পূর্বাভাসিত মানগুলির মধ্যে সমগ্র বর্গাকার পার্থক্যের গড়।
`LinearRegression` অবজেক্ট `fit`-এর পরে রিগ্রেশনের সমস্ত সহগ ধারণ করে, যা `.coef_` প্রপার্টি ব্যবহার করে অ্যাক্সেস করা যেতে পারে। আমাদের ক্ষেত্রে, এটি কেবল একটি সহগ আছে, যা প্রায় `-0.017` হওয়া উচিত। এর মানে হলো দাম সময়ের সাথে একটু কমে যাচ্ছে, কিন্তু খুব বেশি নয়, প্রায় দিন প্রতি ২ সেন্ট। আমরা রিগ্রেশনের Y-অক্ষের সাথে ছেদ বিন্দুও `lin_reg.intercept_` ব্যবহার করে অ্যাক্সেস করতে পারি - আমাদের ক্ষেত্রে এটি প্রায় `21` হতে পারে, যা বছরের শুরুতে দাম নির্দেশ করে।
আমাদের মডেল কতটা সঠিক তা দেখতে, আমরা টেস্ট ডেটাসেটে দাম পূর্বাভাস দিতে পারি, এবং তারপর আমাদের পূর্বাভাসগুলি প্রত্যাশিত মানের কতটা কাছাকাছি তা মাপতে পারি। এটি মূল গড় বর্গমূল ত্রুটি (RMSE) মেট্রিক ব্যবহার করে করা যায়, যা প্রত্যাশিত এবং পূর্বাভাসিত মানের মধ্যে সমস্ত বর্গ পার্থক্যের গড়ের বর্গমূল।
আমাদের ত্রুটি প্রায় ২ পয়েন্ট, যা ~১৭% এর মতো। খুব ভালো নয়। মডেলের গুণমানের আরেকটি সূচক হল **coefficient of determination**, যা এভাবে পাওয়া যায়:
আমাদের ত্রুটি প্রায় ২ পয়েন্ট, যা প্রায় ~১৭%। খুব ভাল নয়। মডেলের গুণমানের আরেকটি সূচক হল **নির্ধারণ সহগ**, যা এভাবে পাওয়া যায়:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
যদি মান ০ হয়, তার মানে মডেল ইনপুট ডেটাকে বিবেচনা করে না, এবং *অতীব বাজে রেখীয় পূর্বাভাসকারী* হিসেবে কাজ করে, যা কেবল ফলাফলের গড় মান। মান ১ হলে তার মানে আমরা সমস্ত প্রত্যাশিত আউটপুট নিখুঁতভাবে পূর্বাভাস দিতে পারি। আমাদের ক্ষেত্রে, সহগ প্রায় ০.০৬, যা যথেষ্ট কম।
যদি মান ০ হয়, এর অর্থ মডেল ইনপুট তথ্য বিবেচনায় নেয় না, এবং *worst linear predictor* হিসেবে কাজ করে, যা কেবল ফলাফলের গড় মান। ১ এর মানে হল আমরা সব প্রত্যাশিত আউটপুট নিখুঁতভাবে প্রেডিক্ট করতে পারি। আমাদের ক্ষেত্রে, কোএফিসিয়েন্ট প্রায় ০.০৬, যা বেশ কম।
আমরা টেস্ট ডেটা এবং রিগ্রেশন লাইনের গ্রাফও আঁকতে পারি যেন ভালভাবে বুঝতে পারি কিভাবে রিগ্রেশন কাজ করে আমাদের ক্ষেত্রে:
আমরা টেস্ট ডেটা এবং রিগ্রেশন লাইন একসাথে প্লট করতে পারি যাতে আমাদের ক্ষেত্রে রিগ্রেশন কিভাবে কাজ করছে তা ভালোভাবে দেখা যায়:
রৈখিক রিগ্রেশনের আরেকটি ধরন হল Polynomial Regression। মাঝে মাঝে ভেরিয়েবলগুলোর মধ্যে সরলরৈখিক সম্পর্ক থাকে - যেমন ভলিউমে বড় পাম্পকিনের দাম বেশি হয় - কিন্তু কখনো কখনো এই সম্পর্কগুলো প্লেন বা সরলরেখা হিসেবে ছবি করা যায় না।
রিগ্রেশনের আরেকটি ধরন হল পলিনোমিয়াল রিগ্রেশন। কখনো কখনো ভেরিয়েবলগুলির মধ্যে রেখীয় সম্পর্ক থাকে - বড় পাম্পকিনের ভলিউম বেশি হলে দামও বেশি - আবার কখনো সম্পর্কগুলো প্লেন বা সরল রেখা হিসেবে আঁকতে পারা যায় না।
✅ এখানে [আরো কিছু উদাহরণ](https://online.stat.psu.edu/stat501/lesson/9/9.8) আছে যেখানে Polynomial Regression ব্যবহার করা যেতে পারে।
✅ এখানে [আরও কিছু উদাহরণ](https://online.stat.psu.edu/stat501/lesson/9/9.8) আছে যেগুলিতে পলিনোমিয়াল রিগ্রেশন ব্যবহার করা যেতে পারে
আবার Date এবং Price এর সম্পর্ক দেখুন। এই scatterplot কি অবশ্যই সরলরেখা দ্বারা বিশ্লেষণ করা উচিত বলে মনে হয়? দাম কি ওঠানামা করতে পারে না? এই ক্ষেত্রে, আপনি polynomial regression চেষ্টা করতে পারেন।
আবার ডেট এবং দাম এর সম্পর্ক দেখুন। এই স্ক্যাটারপ্লট কি অবশ্যই একটি সরল রেখা দ্বারা বিশ্লেষিত হওয়া উচিত বলে মনে হয়? দাম কি ওঠানামা করতে পারে না? এই ক্ষেত্রে, আপনি পলিনোমিয়াল রিগ্রেশন চেষ্টা করতে পারেন।
✅ পলিনোমিয়াল হলো গাণিতিক প্রকাশ যা এক বা একাধিক ভেরিয়েবল ও কোএফিসিয়েন্ট নিয়ে গঠিত হতে পারে।
✅ পলিনোমিয়াল হল গাণিতিক প্রকাশ যা একটি বা একাধিক ভেরিয়েবল এবং সহগ নিয়ে গঠিত হতে পারে
Polynomial Regression একটি বাকা রেখা তৈরি করে যাতে নন-লিনিয়ার ডেটা ভালো ফিট হয়। আমাদের ক্ষেত্রে, যদি ইনপুট ডেটাতে squared `DayOfYear` ভেরিয়েবল যোগ করি, তাহলে আমরা আমাদের ডেটা একটি ধারার মতো বক্ররেখার সাথে ফিট করতে পারব যা বছরের কোন এক বিন্দুতে মিনিমাম হবে।
পলিনোমিয়াল রিগ্রেশন নন-লিনিয়ার ডেটার ভালো ফিট দেওয়ার জন্য একটি বক্ররেখা তৈরি করে। আমাদের ক্ষেত্রে, যদি আমরা ইনপুট ডেটায় বর্গাকার `DayOfYear` ভেরিয়েবল অন্তর্ভুক্ত করি, তাহলে ভেরিয়েশন ডেটার সাথে আমরা একটি পরবলাকার বাঁক ফিট করতে পারব, যার মধ্যে বছরের একটি নির্দিষ্ট জায়গায় নূন্যতম থাকবে।
Scikit-learn এর [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) ব্যবহার করে আমরা বিভিন্ন ডেটা প্রক্রিয়াকরণের ধাপ একত্রিত করতে পারি। একটি **pipeline** হলো **estimators** এর একটি শৃঙ্খল। আমাদের ক্ষেত্রে, আমরা একটি pipeline তৈরি করব যা প্রথমে polynomial ফিচার তৈরি করে, তারপরে রিগ্রেশন ট্রেন করে:
Scikit-learn একটি সহায়ক [পাইপলাইন API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) অন্তর্ভুক্ত করে যা ডেটা প্রসেসিংয়ের বিভিন্ন ধাপ একত্রিত করতে সাহায্য করে। একটি **পাইপলাইন** হল **এস্টিমেটরগুলির** একটি শৃঙ্খল। আমাদের ক্ষেত্রে, আমরা একটি পাইপলাইন তৈরি করব যা প্রথমে আমাদের মডেলে পলিনোমিয়াল ফিচার যুক্ত করবে, এবং তারপর রিগ্রেশন প্রশিক্ষণ দেবে:
```python
from sklearn.preprocessing import PolynomialFeatures
`PolynomialFeatures(2)` ব্যবহার মানে আমরা ইনপুট ডেটার সব দ্বিতীয়-ডিগ্রী পলিনোমিয়াল অন্তর্ভুক্ত করব। আমাদের ক্ষেত্রে এটি শুধু `DayOfYear`<sup>2</sup> হবে, কিন্তু দুই ইনপুট ভেরিয়েবল X এবং Y দেওয়া হলে এটি X<sup>2</sup>, XY এবং Y<sup>2</sup> যোগ করবে। আমরা চাইলে উচ্চতর ডিগ্রির পলিনোমিয়ালও ব্যবহার করতে পারি।
`PolynomialFeatures(2)` ব্যবহার করার মানে হল আমরা ইনপুট ডেটার সব দ্বিতীয়-ডিগ্রী পলিনোমিয়াল ফিচার যুক্ত করব। আমাদের ক্ষেত্রে এটি শুধু `DayOfYear`<sup>2</sup>, কিন্তু যদি ইনপুটে দুটি ভেরিয়েবল X এবং Y থাকে, তাহলে এটি X<sup>2</sup>, XY এবং Y<sup>2</sup> যোগ করবে। আমরা চাইলে উচ্চতর ডিগ্রী পলিনোমিয়ালও ব্যবহার করতে পারি।
Pipeline মূল `LinearRegression` অবজেক্টের মতো ব্যবহার করা যাবে, যেমন আমরা pipeline কে `fit` করতে পারি, এবং তারপর `predict` ব্যবহার করে ফলাফল পেতে পারি। নিচের গ্রাফে টেস্ট ডেটা আর অ্যাপ্রক্সিমেশন কুভ দেখানো হয়েছে:
পাইপলাইনগুলি মূল `LinearRegression` অবজেক্টের মত একই রকম ব্যবহার করা যায়, অর্থাৎ আমরা পাইপলাইন `fit` করতে পারি, এবং তারপর `predict` ব্যবহার করে পূর্বাভাস ফলাফল নিতে পারি। নিচের গ্রাফ টি টেস্ট ডেটা এবং আনুমানিক বাঁক দেখাচ্ছে:
Polynomial Regression ব্যবহার করলে আমরা কিছুটা কম MSE এবং বেশি determination পাই, তবে উল্লেখযোগ্য নয়। আমাদের অন্য ফিচারগুলোও বিবেচনায় নিতে হবে!
পলিনোমিয়াল রিগ্রেশন ব্যবহার করে আমরা সামান্য কম MSE এবং বেশি নির্ধারণ সহগ পেতে পারি, কিন্তু তা খুব বেশি নয়। আমাদের অন্যান্য বৈশিষ্ট্যগুলোও বিবেচনায় নিতে হবে!
> আপনি লক্ষ্য করতে পারেন যে হ্যালোউইনের সময় পাম্পকিনের দাম ন্যূনতম পর্যায়ে থাকে। আপনি এই ঘটনা কীভাবে ব্যাখ্যা করবেন?
> আপনি দেখতে পাচ্ছেন যে বছরের আশেপাশে হ্যালোউইনের সময় পাম্পকিনের দাম ন্যূনতম হয়। আপনি কীভাবে এটি ব্যাখ্যা করবেন?
🎃 অভিনন্দন, আপনি একটি মডেল তৈরি করেছেন যা পাই পাম্পকিনের দাম পূর্বাভাস দিতে পারে। সম্ভবত আপনি একই পদ্ধতি অন্য সব ধরনের পাম্পকিনের জন্যও অনুসরণ করতে পারেন, তবে সেটা ক্লান্তিকর হবে। চলুন এখন শিখি কিভাবে পাম্পকিনের ভ্যারাইটি আমাদের মডেলে বিবেচনা করা যায়!
🎃 অভিনন্দন, আপনি এমন একটি মডেল তৈরি করলেন যা পাই পাম্পকিনের দাম পূর্বাভাসে সাহায্য করতে পারে। একই পদ্ধতি সব ধরনের পাম্পকিনের জন্য পুনরাবৃত্তি করতে পারেন, কিন্তু সেটা ক্লান্তিকর হবে। এখন শিখি কিভাবে আমাদের মডেলে পাম্পকিন জাত বিবেচনা করব!
## Categorical Features
## শ্রেণীবদ্ধ বৈশিষ্ট্য (Categorical Features)
আদর্শ জগতে, আমরা চাই একই মডেল ব্যবহার করে বিভিন্ন পাম্পকিন ভ্যারাইটির দাম পূর্বাভাস দিতে পারি। কিন্তু `Variety` কলামটি `Month` এর মত নয়, কারণ এতে অ-সংখ্যাত্মক মান থাকে। এমন কলামগুলোকে **categorical** বলা হয়।
এক আদর্শ বিশ্বের, আমরা একই মডেল ব্যবহার করে বিভিন্ন পাম্পকিন জাতের দাম পূর্বাভাস দিতে চাই। তবে, `Variety` কলামটি অন্য কলাম যেমন `Month` থেকে ভিন্ন, কারণ এতে অ-সংখ্যাসূচক মান থাকে। এই ধরনের কলামকে বলা হয় **শ্রেণীবদ্ধ (Categorical)**।
[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
[](https://youtu.be/DYGliioIAE0 "শিক্ষানবিশদের জন্য এমএল - শ্রেণীবদ্ধ বৈশিষ্ট্য ব্যবহার করে রিগ্রেশন পূর্বাভাস")
> 🎥 উপরের ছবিতে ক্লিক করে ক্যাটেগরিক্যাল ফিচার ব্যবহার করার একটা ছোট ভিডিও দেখতে পারেন।
> 🎥 উপরের ছবিটিতে ক্লিক করে শ্রেণীবদ্ধ বৈশিষ্ট্য ব্যবহারের সংক্ষিপ্ত ভিডিও দেখুন।
এখানে আপনি দেখতে পাচ্ছেন কিভাবে গড় দাম ভ্যারাইটির ওপর নির্ভর করে:
এখানে আপনি দেখতে পাচ্ছেন গড় দাম কীভাবে পাম্পকিন জাত অনুযায়ী পরিবর্তিত হয়:
<imgalt="Average price by variety"src="../../../../translated_images/bn/price-by-variety.744a2f9925d9bcb4.webp"width="50%"/>
ভ্যারাইটিকে বিবেচনায় নিতে প্রথমে এটিকে সংখ্যাত্মক ফর্মে রূপান্তর করতে হবে, বা **encode** করতে হবে। আমরা এটি করার কয়েকটি পদ্ধতি ব্যবহার করতে পারি:
জাতকে বিবেচনায় নিতে, প্রথমে আমাদের এটিকে সংখ্যাসূচক রূপে রূপান্তর করতে হবে, বা **এনকোড** করতে হবে। আমরা এটি করার কয়েকটি পদ্ধতি আছে:
* সাধারণ **numeric encoding** একটি ভ্যারাইটির তালিকা তৈরি করে, এবং তারপর আলাদা ভ্যারাইটির নামের পরিবর্তে তালিকার ইন্ডেক্স যোগ করে। এটি লিনিয়ার রিগ্রেশনের জন্য ভাল নয়, কারণ লিনিয়ার রিগ্রেশন ইনডেক্সের সংখ্যাটিকে গণ্য করে ফলাফলে যোগ করে কোন কোএফিসিয়েন্টের গুণিতকে। আমাদের ক্ষেত্রে, ইনডেক্স নম্বর এবং দাম এর সম্পর্ক স্পষ্টভাবে নন-লিনিয়ার, যদিও ইনডেক্সগুলি বিশেষভাবে সাজানো হোক।
* **One-hot encoding**`Variety` কলামকে ৪টি আলাদা কলামে ভেঙে দেয়, প্রতিটি ভ্যারাইটির জন্য একটি করে। প্রতিটি কলামে ১ থাকবে যদি ভ্যারাইটির রোটি সেই ভ্যারাইটির হয়, অন্যথায় ০। এর ফলে লিনিয়ার রিগ্রেশনে প্রতিটি পাম্পকিন ভ্যারাইটির জন্য চারটি কোএফিসিয়েন্ট থাকবে, যা ঐ ভ্যারাইটির "শুরুর দাম" (বা "অতিরিক্ত দাম") নির্দেশ করে।
* সাধারণ **সংখ্যাসূচক এনকোডিং** বিভিন্ন জাতের একটি টেবিল তৈরি করবে, এবং তারপর জাতের নামকে সেই টেবিলে ইন্ডেক্স দিয়ে প্রতিস্থাপন করবে। এটি রেখীয় রিগ্রেশনের জন্য সবচেয়ে ভালো ধারণা নয়, কারণ রেখীয় রিগ্রেশন ইন্ডেক্সের আসল সংখ্যাসূচক মান নিয়ে কাজ করে, এবং কিছু সহগ দিয়ে তা গুণ করে রেজাল্ট দেয়। আমাদের ক্ষেত্রে, ইন্ডেক্স নম্বর ও দাম এর মধ্যে সম্পর্ক স্পষ্টভাবে অ-রৈখিক, এমনকি আমরা নিশ্চিত করি যে ইন্ডেক্সসমূহ নির্দিষ্ট ক্রমে সাজানো।
নিচের কোডটি দেখায় কিভাবে আমরা একটি ভ্যারাইটিকে one-hot encode করতে পারি:
* **ওয়ান-হট এনকোডিং** `Variety` কলামকে ৪টি ভিন্ন কলামে পরিবর্তন করবে, প্রতিটার জন্য আলাদা আলাদা। প্রতিটি কলামে থাকবে `1` যদি সংশ্লিষ্ট সারিটি ঐ জাতের হয়, অন্যথায় `0`। এর মানে, রিগ্রেশনে চারটি সহগ থাকবে, প্রতিটি পাম্পকিন জাতের জন্য একটি, যেগুলো ঐ বিশেষ জাতের জন্য "শুরু দাম" (অথবা "অতিরিক্ত দাম") নির্দেশ করে।
নীচের কোড দেখায় কিভাবে আমরা জাত কে ওয়ান-হট এনকোড করতে পারি:
```python
pd.get_dummies(new_pumpkins['Variety'])
```
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
One-hot encoded variety ইনপুট ব্যবহার করে লিনিয়ার রিগ্রেশন ট্রেন করতে, আমরা কেবল সঠিকভাবে `X` এবং `y` ডেটা ইনিশিয়ালাইজ করলেই হয়:
ওয়ান-হট এনকোডেড জাত ব্যবহার করে লিনিয়ার রিগ্রেশন ট্রেন করতে, আমাদের শুধু সঠিকভাবে `X` এবং `y` ডেটা আরম্ভ করতে হবে:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
বাকি কোড আগের লিনিয়ার রিগ্রেশন ট্রেন করার মতই। চেষ্টা করলে দেখবেন mean squared error প্রায় একই থাকে, কিন্তু determination অনেক বেশি (~৭৭%) হয়। আরো সঠিক পূর্বাভাস পেতে আমরা আরো ক্যাটেগরিক্যাল ফিচার এবং সংখ্যাত্মক ফিচার যেমন `Month` বা `DayOfYear` বিবেচনা করতে পারি। একাধিক ফিচার একত্র করতে আমরা `join` ব্যবহার করতে পারি:
বাকি কোড একই, যেটি আমরা পূর্বে লিনিয়ার রিগ্রেশন ট্রেনিংয়ের জন্য ব্যবহার করেছিলাম। আপনি যদি এটি চেষ্টা করেন, দেখতে পাবেন গড় বর্গমূল ত্রুটি প্রায় একই, কিন্তু নির্ধারণ সহগ অনেক বেশি (~৭৭%) পেয়েছি। আরও সঠিক পূর্বাভাসের জন্য আমরা আরো শ্রেণীবদ্ধ বৈশিষ্ট্য এবং সংখ্যাসূচক বৈশিষ্ট্য, যেমন `Month` বা `DayOfYear`, বিবেচনায় নিতে পারি। সব বৈশিষ্ট্যের এক বড় অ্যারে পেতে, আমরা `join` ব্যবহার করতে পারি:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -325,32 +321,31 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
এখানে আমরা `City` এবং `Package` টাইপও বিবেচনায় নিয়েছি, যার ফলে MSE হয়েছে 2.84 (১০%) এবং নির্ধারণ 0.94!
এখানেও আমরা `City` এবং `Package` টাইপ বিবেচনা করছি, যা MSE 2.84 (১০%) এবং determination 0.94 দেয়!
## সব একসাথে সংযোজন
## Putting it all together
সেরা মডেল তৈরি করতে আমরা উপরের উদাহরণ থেকে একত্রিত (one-hot encoded ক্যাটেগরিক্যাল + সংখ্যাত্মক) ডেটা Polynomial Regression এর সঙ্গে ব্যবহার করতে পারি। আপনার সুবিধার জন্য সম্পূর্ণ কোড এখানে:
সেরা মডেল তৈরি করতে, আমরা একত্রিত (ওয়ান-হট এনকোডেড শ্রেণীবদ্ধ + সংখ্যাসূচক) ডেটা উপরের উদাহরণ থেকে ব্যবহার করে পলিনোমিয়াল রিগ্রেশন ব্যবহার করব। আপনার সুবিধার জন্য সম্পূর্ণ কোড দেওয়া হলো:
```python
# প্রশিক্ষণ ডেটা সেট আপ করুন
# প্রশিক্ষণ ডেটা প্রস্তুত করুন
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# ট্রেন-টেস্ট বিভাজন করুন
# ট্রেন-টেস্ট স্প্লিট তৈরি করুন
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
এটি আমাদের প্রায় ৯৭% সেরা নির্ধারণ সহগ এবং MSE=2.23 (~৮% পূর্বাভাস ত্রুটি) দেবে।
এটি প্রায় ৯৭% determination coefficient এবং MSE=2.23 (~৮% পূর্বাভাস ত্রুটি) দেবে।
| Model | MSE | Determination |
| মডেল | MSE | নির্ধারণ |
|-------|-----|---------------|
| `DayOfYear`Linear | 2.77 (১৭.২%) | 0.07 |
| `DayOfYear`Polynomial | 2.73 (১৭.০%) | 0.08 |
| `Variety`Linear | 5.24 (১৯.৭%) | 0.77 |
| All features Linear | 2.84 (১০.৫%) | 0.94 |
| All features Polynomial | 2.23 (৮.২৫%) | 0.97 |
| `DayOfYear` লিনিয়ার | 2.77 (১৭.২%) | 0.07 |
| `DayOfYear`পলিনোমিয়াল | 2.73 (১৭.০%) | 0.08 |
| `Variety`লিনিয়ার | 5.24 (১৯.৭%) | 0.77 |
| সব বৈশিষ্ট্য লিনিয়ার | 2.84 (১০.৫%) | 0.94 |
| সব বৈশিষ্ট্য পলিনোমিয়াল | 2.23 (৮.২৫%) | 0.97 |
🏆 শুভকামনা! আপনি এক পাঠে চারটি রিগ্রেশন মডেল তৈরী করেছেন, এবং মডেল গুণমান ৯৭% উন্নত করেছেন। রিগ্রেশন এর শেষ অংশে আপনি লজিস্টিক রিগ্রেশন সম্পর্কে শিখবেন যা শ্রেণি নির্ধারণে ব্যবহৃত হয়।
🏆 অসাধারণ! এক লেসনে চারটি রিগ্রেশন মডেল তৈরি করলেন এবং মডেলের গুণমান ৯৭% এ উন্নত করলেন। রিগ্রেশন এর শেষ অংশে আপনি ক্যাটেগরি নির্ধারণের জন্য লজিস্টিক রিগ্রেশন সম্পর্কে জানতে পারবেন।
---
## 🚀Challenge
## 🚀চ্যালেঞ্জ
এই নোটবুকে বিভিন্ন ভেরিয়েবল টেস্ট করে দেখুন কিভাবে সহসম্পর্ক মডেলের নির্ভুলতার সাথে সম্পর্কিত।
এই নোটবুকে বিভিন্ন ভেরিয়েবল পরীক্ষা করুন এবং দেখুন কিভাবে সহগ মডেলের সঠিকতার সাথে সম্পর্কিত।
এই পাঠে আমরা লিনিয়ার রিগ্রেশন শিখেছি। রিগ্রেশনের আরো গুরুত্বপূর্ণ ধরণ রয়েছে। Stepwise, Ridge, Lasso এবং Elasticnet টেকনিক সম্পর্কে পড়ুন। আরও জানার জন্য ভালো একটি কোর্স হলো [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)।
এই লেসনে আমরা লিনিয়ার রিগ্রেশন শিখেছি। রিগ্রেশনের অন্য গুরুত্বপূর্ণ ধরন রয়েছে। স্টেপওয়াইজ, রিজ, লাসো এবং ইলাস্টিকনেট পদ্ধতি সম্পর্কে পড়ুন। ভালো কোর্স হলো [স্ট্যানফোর্ড স্ট্যাটিস্টিক্যাল লার্নিং কোর্স](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Assignment
## অ্যাসাইনমেন্ট
[Build a Model](assignment.md)
[একটি মডেল তৈরি করুন](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**অস্বীকৃতি**:
এই নথিটি কৃত্রিম বুদ্ধিমত্তা অনুবাদ সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। যদিও আমরা সঠিকতার জন্য চেষ্টা করি, দয়া করে চোখ বুলিয়ে নিন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল নথিটি তার নিজস্ব ভাষায় কর্তৃপক্ষসূত্র হিসাবে বিবেচিত হওয়া উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদের পরামর্শ দেওয়া হয়। এই অনুবাদের ব্যবহারে কোনো ভুলবোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই।
**প্রত্যাহার সতর্কতা**:
এই নথিটি এআই অনুবাদ সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। আমরা যথাসাধ্য সঠিকতার জন্য চেষ্টা করি, তবে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা ভুল থাকতে পারে। মূল নথিটি তার প্রাসঙ্গিক ভাষায় কর্তৃত্বস্বরূপ বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানুষের অনুবাদ সুপারিশ করা হয়। এই অনুবাদের ব্যবহারে যে কোনো ভুলবোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই।
এই পাঠে, আপনি আগের পাঠে সংরক্ষিত ডেটাসেট ব্যবহার করবেন, যা বিভিন্ন কুইজিন সম্পর্কিত ভারসাম্যপূর্ণ এবং পরিষ্কার ডেটা নিয়ে গঠিত।
এই পাঠে, আপনি গত পাঠ থেকে সংরক্ষণকৃত একটি পরিপূর্ণ, পরিষ্কার ডেটাসেট ব্যবহার করবেন যা রান্নার ধরন সম্পর্কে।
আপনি এই ডেটাসেটটি বিভিন্ন শ্রেণীবিন্যাসকারী ব্যবহার করে _উপাদানগুলোর একটি গ্রুপের উপর ভিত্তি করে একটি নির্দিষ্ট জাতীয় কুইজিন পূর্বানুমান করতে_ ব্যবহার করবেন। এটি করতে গিয়ে, আপনি শ্রেণীবিন্যাস কাজের জন্য অ্যালগরিদম কীভাবে ব্যবহার করা যায় সে সম্পর্কে আরও জানতে পারবেন।
আপনি এই ডেটাসেট ব্যবহার করে বিভিন্ন শ্রেণীবিভাজকের মাধ্যমে _একটি নির্দিষ্ট জাতীয় রান্নার ধরন পূর্বানুমান করবেন একটি উপাদানের গ্রুপের ভিত্তিতে_। এই প্রক্রিয়ায়, আপনি শিখবেন কীভাবে অ্যালগরিদমগুলিকে শ্রেণীবিভাগের কাজের জন্য ব্যবহার করা যায়।
## [পঠনের পূর্বে কুইজ](https://ff-quizzes.netlify.app/en/ml/)
# প্রস্তুতি
ধরে নেওয়া হচ্ছে আপনি [Lesson 1](../1-Introduction/README.md) সম্পন্ন করেছেন, নিশ্চিত করুন যে একটি _cleaned_cuisines.csv_ ফাইল `/data` ফোল্ডারের মূল অংশে এই চারটি পাঠের জন্য বিদ্যমান।
ধরা যাক আপনি [পাঠ ১](../1-Introduction/README.md) সমাপ্ত করেছেন, নিশ্চিত করুন যে _cleaned_cuisines.csv_ ফাইলটি মূল `/data` ফোল্ডারে রয়েছে এই চারটি পঠনের জন্য।
## অনুশীলন - একটি জাতীয় কুইজিন পূর্বানুমান করুন
## অনুশীলন - একটি জাতীয় রান্না পূর্বানুমান করুন
1. এই পাঠের _notebook.ipynb_ ফোল্ডারে কাজ করে, সেই ফাইলটি এবং Pandas লাইব্রেরি আমদানি করুন:
আপনার ডেটা পরিষ্কার এবং প্রশিক্ষণের জন্য প্রস্তুত হওয়ার পরে, আপনাকে কাজের জন্য কোন অ্যালগরিদম ব্যবহার করবেন তা সিদ্ধান্ত নিতে হবে।
আপনার ডেটা পরিষ্কার এবং প্রশিক্ষণের জন্য প্রস্তুত হওয়ায়, আপনাকে সিদ্ধান্ত নিতে হবে কোন অ্যালগরিদমটি কাজের জন্য ব্যবহার করবেন।
Scikit-learn শ্রেণীবিন্যাসকে Supervised Learning এর অধীনে গ্রুপ করে এবং সেই বিভাগে আপনি শ্রেণীবিন্যাস করার অনেক উপায় খুঁজে পাবেন। [বিভিন্ন পদ্ধতি](https://scikit-learn.org/stable/supervised_learning.html) প্রথম দেখায় বেশ বিভ্রান্তিকর মনে হতে পারে। নিম্নলিখিত পদ্ধতিগুলোতে শ্রেণীবিন্যাস কৌশল অন্তর্ভুক্ত রয়েছে:
Scikit-learn শ্রেণীবিভাগকে সুপারভাইজড লার্নিংয়ের অন্তর্ভুক্ত করেছে, এবং সেই বিভাগের মধ্যে আপনি অনেক ধরনের শ্রেণীবিভাজক পাবেন। [বিভিন্ন প্রকার](https://scikit-learn.org/stable/supervised_learning.html) প্রথম দৃষ্টিতে বিভ্রান্তিকর হতে পারে। নিম্নলিখিত পদ্ধতিগুলোতে শ্রেণীবিভাজন কৌশল রয়েছে:
- লিনিয়ার মডেল
- সাপোর্ট ভেক্টর মেশিন
- স্টোকাস্টিক গ্রেডিয়েন্ট ডিসেন্ট
- নিকটতম প্রতিবেশী
- গাউসিয়ান প্রসেস
- সিদ্ধান্ত গাছ
- এনসেম্বল পদ্ধতি (ভোটিং শ্রেণীবিন্যাসকারী)
- মাল্টিক্লাস এবং মাল্টি-আউটপুট অ্যালগরিদম (মাল্টিক্লাস এবং মাল্টিলেবেল শ্রেণীবিন্যাস, মাল্টিক্লাস-মাল্টি-আউটপুট শ্রেণীবিন্যাস)
- ডিসিশন ট্রি
- এনসম্বল পদ্ধতি (ভোটিং শ্রেণীবিভাজক)
- মাল্টিক্লাস ও মাল্টি আউটপুট অ্যালগরিদম (মাল্টিক্লাস ও মাল্টিলেবেল শ্রেণীবিভাগ, মাল্টিক্লাস-মাল্টি আউটপুট শ্রেণীবিভাগ)
> আপনি [নিউরাল নেটওয়ার্ক ব্যবহার করে ডেটা শ্রেণীবিন্যাস করতে পারেন](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), তবে এটি এই পাঠের পরিধির বাইরে।
> আপনি [নিউরাল নেটওয়ার্ক দিয়ে ডেটা শ্রেণীবিভাগ](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification) করতেও পারেন, তবে সেটি এই পাঠের সীমার বাইরে।
### কোন শ্রেণীবিন্যাসকারী ব্যবহার করবেন?
### কোন শ্রেণীবিভাজক বেছে নেবেন?
তাহলে, কোন শ্রেণীবিন্যাসকারী বেছে নেবেন? প্রায়শই, কয়েকটি চেষ্টা করে এবং একটি ভালো ফলাফল খুঁজে বের করা একটি পরীক্ষার উপায়। Scikit-learn একটি [পাশাপাশি তুলনা](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) অফার করে একটি তৈরি করা ডেটাসেটে, KNeighbors, SVC দুটি উপায়ে, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB এবং QuadraticDiscrinationAnalysis এর তুলনা দেখায়, ফলাফলগুলো চিত্রিত করে:
তাহলে, কোন শ্রেণীবিভাজক বেছে নেবেন? প্রায়ই, একাধিক চালিয়ে দেখভাল করা এবং ভাল ফলাফল খোঁজা বেছে নেওয়ার একটি উপায়। Scikit-learn একটি [সাইড বাই সাইড তুলনা](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) দেখায় একটি তৈরি ডেটাসেটের উপর, যেখানে KNeighbors, SVC দুই ধরনের, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB ও QuadraticDiscrinationAnalysis তুলনা করা হয়েছে; ফলাফল চিত্রায়িত হয়েছে:
> AutoML এই সমস্যাটি সুন্দরভাবে সমাধান করে ক্লাউডে এই তুলনাগুলো চালিয়ে, আপনাকে আপনার ডেটার জন্য সেরা অ্যালগরিদম বেছে নিতে দেয়। এটি চেষ্টা করুন [এখানে](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
> AutoML এই সমস্যা মসৃণভাবে সমাধান করে ক্লাউডে এসব তুলনা চালিয়ে, আপনাকে আপনার ডেটারের জন্য সেরা অ্যালগরিদম বেছে নিতে দেয়। এটাকে চেষ্টা করুন [এখানে](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
### একটি ভালো পদ্ধতি
### আরও ভাল উপায়
অন্ধভাবে অনুমান করার চেয়ে একটি ভালো উপায় হলো এই ডাউনলোডযোগ্য [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) অনুসরণ করা। এখানে, আমরা আবিষ্কার করি যে আমাদের মাল্টিক্লাস সমস্যার জন্য আমাদের কিছু বিকল্প রয়েছে:
তবে, অনুমান ছাড়াই আরও ভাল উপায় হলো এই ডাউনলোডযোগ্য [এমএল চিট শীট](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) অনুসরণ করা। এখানে, আমরা আবিষ্কার করি, আমাদের মাল্টিক্লাস সমস্যার জন্য আমাদের কিছু বিকল্প আছে:

> Microsoft's Algorithm Cheat Sheet এর একটি অংশ, মাল্টিক্লাস শ্রেণীবিন্যাস বিকল্পগুলো বিস্তারিতভাবে দেখানো হয়েছে

> মাইক্রোসফটের অ্যালগরিদম চিট শীট এর একটি অংশ, মাল্টিক্লাস শ্রেণীবিভাগের বিকল্পগুলি বর্ণনা করে
✅ এই চিটশিটটি ডাউনলোড করুন, প্রিন্ট করুন এবং আপনার দেয়ালে ঝুলিয়ে রাখুন!
✅ এই চিট শীটটি ডাউনলোড করুন, প্রিন্ট করে আপনার দেয়ালে খুঁজে লেগিয়ে রাখুন!
### যুক্তি
চলুন দেখি আমরা বিভিন্ন পদ্ধতির মধ্য দিয়ে যুক্তি দিয়ে এগিয়ে যেতে পারি কিনা, আমাদের সীমাবদ্ধতাগুলো বিবেচনা করে:
চলুন দেখি আমরা বিভিন্ন উপায়ের যুক্তি দিতে পারি কি না আমাদের সীমাবদ্ধতাগুলো বিবেচনা করে:
- **নিউরাল নেটওয়ার্ক খুব ভারী**। আমাদের পরিষ্কার কিন্তু সীমিত ডেটাসেট এবং আমরা স্থানীয়ভাবে নোটবুকের মাধ্যমে প্রশিক্ষণ চালাচ্ছি, নিউরাল নেটওয়ার্ক এই কাজের জন্য খুব ভারী।
- **দুই-শ্রেণীর শ্রেণীবিন্যাসকারী নয়**। আমরা দুই-শ্রেণীর শ্রেণীবিন্যাসকারী ব্যবহার করি না, তাই এটি one-vs-all কে বাদ দেয়।
- **সিদ্ধান্ত গাছ বা লজিস্টিক রিগ্রেশন কাজ করতে পারে**। একটি সিদ্ধান্ত গাছ কাজ করতে পারে, অথবা মাল্টিক্লাস ডেটার জন্য লজিস্টিক রিগ্রেশন।
- **মাল্টিক্লাস Boosted Decision Trees ভিন্ন সমস্যা সমাধান করে**। মাল্টিক্লাস Boosted Decision Tree অ-পরামিতিক কাজের জন্য সবচেয়ে উপযুক্ত, যেমন র্যাঙ্কিং তৈরি করার জন্য ডিজাইন করা কাজ, তাই এটি আমাদের জন্য উপযোগী নয়।
- **নিউরাল নেটওয়ার্ক খুব ভারী**। আমাদের পরিষ্কার তবে সীমিত ডেটাসেট এবং আমরা নোটবুকের মাধ্যমে স্থানীয়ভাবে প্রশিক্ষণ চালাচ্ছি, সেজন্য নিউরাল নেটওয়ার্ক এই কাজের জন্য অতিরিক্ত ভারী।
- **কোনো দুই-ক্লাস শ্রেণীবিভাজক নেই**। আমরা দুই-ক্লাস শ্রেণীবিভাজক ব্যবহার করব না, সেজন্য one-vs-all বাদ।
- **ডিসিশন ট্রি বা লগিস্টিক রিগ্রেশন কাজ করতে পারে**। ডিসিশন ট্রি হতে পারে, বা মাল্টিক্লাস ডেটার জন্য লগিস্টিক রিগ্রেশন।
- **মাল্টিক্লাস বুস্টেড ডিসিশন ট্রি অন্য ধরণের কাজের জন্য**। মাল্টিক্লাস বুস্টেড ডিসিশন ট্রি অ-পরিমিত কাজের জন্য উপযোগী, যেমন র্যাঙ্কিং নির্মাণের কাজ, তাই এটি আমাদের জন্য উপযোগী নয়।
### Scikit-learn ব্যবহার করা
### Scikit-learn ব্যবহার
আমরা Scikit-learn ব্যবহার করে আমাদের ডেটা বিশ্লেষণ করব। তবে, Scikit-learn এ লজিস্টিক রিগ্রেশন ব্যবহার করার অনেক উপায় রয়েছে। পাস করার [প্যারামিটারগুলো দেখুন](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression)।
আমরা আমাদের ডেটা বিশ্লেষণের জন্য Scikit-learn ব্যবহার করব। তবে, Scikit-learn এ লগিস্টিক রিগ্রেশন চালানোর অনেক উপায় আছে। দেখে নিন [পারামিটারসমূহ](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression) কীভাবেদিতে হয়।
মূলত দুটি গুরুত্বপূর্ণ প্যারামিটার রয়েছে - `multi_class` এবং `solver` - যা আমাদের নির্দিষ্ট করতে হবে, যখন আমরা Scikit-learn কে লজিস্টিক রিগ্রেশন করতে বলি। `multi_class` মান একটি নির্দিষ্ট আচরণ প্রয়োগ করে। solver এর মান হলো কোন অ্যালগরিদম ব্যবহার করা হবে। সব solver সব `multi_class` মানের সাথে যুক্ত করা যায় না।
মোটামুটি দুটি গুরুত্বপূর্ণ পারামিটার আছে - `multi_class` এবং `solver` - যেগুলো Scikit-learn কে লগিস্টিক রিগ্রেশন চালানোর সময় বসাতে হয়। `multi_class` একটি নির্দিষ্ট আচরণ প্রয়োগ করে। solver এর মান নির্ধারণ করে কোন অ্যালগরিদম ব্যবহার হবে। সব solver সব `multi_class` মানের সঙ্গে ব্যবহার হবে না।
- **one-vs-rest (OvR) স্কিম ব্যবহার করে**, যদি `multi_class` অপশনটি `ovr` এ সেট করা হয়
- **ক্রস-এন্ট্রপি লস ব্যবহার করে**, যদি `multi_class` অপশনটি `multinomial` এ সেট করা হয়। (বর্তমানে `multinomial` অপশন শুধুমাত্র ‘lbfgs’, ‘sag’, ‘saga’ এবং ‘newton-cg’solver দ্বারা সমর্থিত।)
- **one-vs-rest (OvR) পদ্ধতি ব্যবহার করে**, যদি `multi_class` অপশন `ovr` এ থাকে
- **ক্রস-এন্ট্রপি লস ব্যবহার করে**, যদি `multi_class` অপশন`multinomial` এ থাকে। (বর্তমানে `multinomial` অপশন শুধুমাত্র ‘lbfgs’, ‘sag’, ‘saga’ এবং ‘newton-cg’সলভার দ্বারা সমর্থিত)"
> 🎓 এখানে 'scheme' হয় 'ovr' (one-vs-rest) অথবা 'multinomial' হতে পারে। যেহেতু লজিস্টিক রিগ্রেশন মূলত বাইনারি শ্রেণীবিন্যাসকে সমর্থন করার জন্য ডিজাইন করা হয়েছে, এই স্কিমগুলো এটিকে মাল্টিক্লাস শ্রেণীবিন্যাস কাজগুলো আরও ভালোভাবে পরিচালনা করতে সাহায্য করে। [source](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 এখানে 'স্কিম' মানে হয় 'ovr' (one-vs-rest) অথবা 'multinomial'। যেহেতু লগিস্টিক রিগ্রেশন মূলত বাইনারি শ্রেণীবিভাগের জন্য ডিজাইন করা, এই পদ্ধতিগুলো মাল্টিক্লাস শ্রেণীবিভাগ ভালোভাবে পরিচালনা করতে দেয়। [তথ্যসূত্র](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 'solver' সংজ্ঞায়িত করা হয়েছে "অপ্টিমাইজেশন সমস্যায় ব্যবহৃত অ্যালগরিদম" হিসেবে। [source](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
> 🎓 'সলভার' এর অর্থ হলো "অপ্টিমাইজেশন সমস্যায় ব্যবহৃত অ্যালগরিদম"। [তথ্যসূত্র](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression)
Scikit-learn এই টেবিলটি অফার করে, যা ব্যাখ্যা করে কীভাবে solver বিভিন্ন চ্যালেঞ্জ মোকাবিলা করে, যা বিভিন্ন ধরনের ডেটা কাঠামো দ্বারা উপস্থাপিত হয়:
Scikit-learn নিম্নলিখিত টেবিল দিয়ে দেখায় কীভাবে সলভার বিভিন্ন ধরণের ডেটা কাঠামোর চ্যালেঞ্জ মোকাবেলা করে:
যেহেতু আপনি মাল্টিক্লাস ক্ষেত্রে কাজ করছেন, আপনাকে কোন _scheme_ ব্যবহার করবেন এবং কোন _solver_ সেট করবেন তা বেছে নিতে হবে। মাল্টিক্লাস সেটিং এবং **liblinear** solver দিয়ে LogisticRegression ব্যবহার করুন।
আপনি মাল্টিক্লাস কেস ব্যবহার করছেন, সেজন্য আপনাকে সিদ্ধান্ত নিতে হবে কোন _স্কিম_ এবং কোন _সলভার_ বসাবেন। মাল্টিক্লাস সেটিং সহ এবং **liblinear** সলভার দিয়ে লগিস্টিক রিগ্রেশন তৈরি করুন।
1. একটি লজিস্টিক রিগ্রেশন তৈরি করুন যেখানে multi_class `ovr` এ সেট করা এবং solver `liblinear` এ সেট করা:
1. `multi_class` সেট করুন `ovr` এবং solver সেট করুন `liblinear` দিয়ে একটি লগিস্টিক রিগ্রেশন তৈরি করুন:
```python
lr = LogisticRegression(multi_class='ovr',solver='liblinear')
✅ একটি ভিন্ন solver চেষ্টা করুন, যেমন `lbfgs`, যা প্রায়শই ডিফল্ট হিসেবে সেট করা হয়
পান্ডাসের [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) ফাংশন ব্যবহার করুন আপনার ডেটা সমতল করতে যখন প্রয়োজন।
সঠিকতা **৮০%** এর বেশি ভালো!
✅ অন্য কোনো সলভার যেমন `lbfgs` চেষ্টা করুন, যা প্রায়ই ডিফল্ট থাকে
1. আপনি একটি ডেটার সারি (#৫০) পরীক্ষা করে এই মডেলটি কার্যকর দেখতে পারেন:
> লক্ষ্য করুন, দরকার হলে Pandas এর [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) ফাংশন ব্যবহার করুন ডেটা ফ্ল্যাট করতে।
নির্ভুলতা ৮০% এর বেশি ভালো!
1. এই মডেলটি কার্যকর দেখতে পারেন একটি ডেটার সারি (#50) পরীক্ষা করে:
এই পাঠে, আপনি আপনার পরিষ্কার করা ডেটা ব্যবহার করে একটি মেশিন লার্নিং মডেল তৈরি করেছেন যা উপাদানগুলির একটি সিরিজের উপর ভিত্তি করে একটি জাতীয় খাবার পূর্বাভাস দিতে পারে। Scikit-learn এর বিভিন্ন ডেটা শ্রেণীবিন্যাসের বিকল্পগুলি সম্পর্কে আরও জানার জন্য কিছু সময় নিন। 'solver' ধারণাটি আরও গভীরভাবে বুঝুন যাতে এর পেছনের কার্যপ্রক্রিয়া বোঝা যায়।
এই পাঠে, আপনি আপনার পরিস্কারকৃত ডেটা ব্যবহার করে একটি মেশিন লার্নিং মডেল তৈরি করেছেন যা উপাদানের সিরিজের ভিত্তিতে একটি জাতীয় রান্না পূর্বাভাস দিতে পারে। Scikit-learn যে অসংখ্য অপশন প্রদান করে তা মনোযোগ দিয়ে পড়ুন। 'solver' ধারণাটি গভীরভাবে জানুন যেন পিছনের কাজগুলো বোঝা যায়।
লজিস্টিক রিগ্রেশনের পেছনের গণিত সম্পর্কে আরও জানুন [এই পাঠে](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
## অ্যাসাইনমেন্ট
[এই পাঠে](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) লগিস্টিক রিগ্রেশনের গণিতের আরও গভীর অধ্যয়ন করুন।
## অ্যাসাইনমেন্ট
[solver সম্পর্কে অধ্যয়ন করুন](assignment.md)
[সোলভারগুলি অধ্যয়ন করুন](assignment.md)
---
**অস্বীকৃতি**:
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদ প্রদানের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**অস্বীকৃতি**:
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। আমরা যথাসাধ্য সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল নথিটি তার স্থানীয় ভাষায় একটি কর্তৃত্বপূর্ণ উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদের পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের কারণে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই।
> এই রেপোজিটরিতে ৫০+ ভাষার অনুবাদ রয়েছে যা ডাউনলোড সাইজ উল্লেখযোগ্যভাবে বৃদ্ধি করে। অনুবাদ ছাড়া ক্লোন করতে, স্পার্স চেকআউট ব্যবহার করুন:
> এই রিপোজিটরিতে ৫০টিরও বেশি ভাষার অনুবাদ অন্তর্ভুক্ত রয়েছে যা ডাউনলোডের আকার উল্লেখযোগ্যভাবে বৃদ্ধি করে। শুধুমাত্র মূল কোড ক্লোন করতে স্পার্স চেকআউট ব্যবহার করুন:
>
> **Bash / macOS / Linux:**
> ```bash
@ -33,145 +33,145 @@
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> এটি আপনাকে একটি অনেক দ্রুত ডাউনলোড সহ পুরো কোর্স সম্পন্ন করার জন্য প্রয়োজনীয় সমস্ত কিছু দেয়।
> এটি আপনাকে দ্রুত ডাউনলোডের মাধ্যমে সম্পূর্ণ কোর্স করার জন্য প্রয়োজনীয় সমস্ত কিছু প্রদান করে।
আমাদের একটি Discord এ আই-এর সঙ্গে শেখার সিরিজ চলছে, আরও জানুন এবং আমাদের সাথে যোগ দিন [Learn with AI Series](https://aka.ms/learnwithai/discord) ১৮ থেকে ৩০ সেপ্টেম্বর, ২০২৫। এখানে আপনি GitHub Copilot ডেটা সায়েন্সে ব্যবহারের টিপস ও ট্রিক্স পাবেন।
আমাদের একটি Discord এআই সহ শেখার সিরিজ চলছে, আরও জানতে এবং অংশগ্রহণ করতে এখানে যান [Learn with AI Series](https://aka.ms/learnwithai/discord), সেপ্টেম্বর ১৮-৩০, ২০২৫ পর্যন্ত। আপনি GitHub Copilot ব্যবহার করে ডেটা সায়েন্সের টিপস এবং ট্রিকস পাবেন।

# শুরু করার জন্য মেশিন লার্নিং - একটি পাঠ্যক্রম
# শুরুদের জন্য মেশিন লার্নিং - একটি কারিকুলাম
> 🌍 বিশ্ব সংস্কৃতির মাধ্যমে মেশিন লার্নিং অন্বেষণ করার সময় পৃথিবী ভ্রমণ করুন 🌍
> 🌍 বিশ্ব সংস্কৃতি দ্বারা মেশিন লার্নিং অন্বেষণ করার মাধ্যমে বিশ্বের ভ্রমণ করুন 🌍
Microsoft এর ক্লাউড অ্যাডভোকেটরা একটি ১২-সপ্তাহ, ২৬-লেসনের সম্পূর্ণ **মেশিন লার্নিং** বিষয়ক পাঠ্যক্রম প্রদান করতে পেরে আনন্দিত। এই পাঠ্যক্রমে আপনি যা কখনো কখনো **ক্লাসিক মেশিন লার্নিং** নামে অভিহিত হয় তা শেখাবেন, যেখানে প্রধানত Scikit-learn লাইব্রেরি ব্যবহৃত হবে এবং ডিপ লার্নিং এড়ানো হবে, যা আমাদের [AI for Beginners' curriculum](https://aka.ms/ai4beginners) এ আচ্ছাদিত। এই পাঠ্যক্রমকে আমাদের ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) এর সঙ্গে মিলিয়ে নিতে পারেন।
মাইক্রোসফটের ক্লাউড অ্যাডভোকেটরা একটি ১২ সপ্তাহের, ২৬টি পাঠের কারিকুলাম উপস্থাপন করতে পেরে আনন্দিত, যা সম্পূর্ণরূপে **মেশিন লার্নিং** এর উপর কেন্দ্রীভূত। এই কারিকুলামে, আপনি যা কখনো কখনো **ক্লাসিক মেশিন লার্নিং** নামে ডাকা হয় তা সম্পর্কে শিখবেন, যেখানে প্রধানত Scikit-learn একটি লাইব্রেরি হিসেবে ব্যবহৃত হয় এবং ডিপ লার্নিং এড়ানো হয়, যা আমাদের [AI for Beginners' কারিকুলাম](https://aka.ms/ai4beginners) এ অন্তর্ভুক্ত। এ লেসনের সাথে আমাদের ['Data Science for Beginners' কারিকুলাম](https://aka.ms/ds4beginners) মিলিয়ে শিখতে পারেন।
বিশ্বের বিভিন্ন স্থান থেকে সংগৃহীত ডেটার উপর এই ক্লাসিক পদ্ধতিগুলো প্রয়োগ করার জন্য আমাদের সাথে বিশ্ব ভ্রমণ করুন। প্রতিটি পাঠে থাকবে পূর্ব এবং পরবর্তী কুইজ, পাঠ সম্পাদনের জন্য লিখিত নির্দেশনা, সমাধান, অ্যাসাইনমেন্ট এবং আরও অনেক কিছু। আমাদের প্রকল্প-ভিত্তিক পাঠদান পদ্ধতি আপনাকে শেখার সময় তৈরি করার মাধ্যমে শেখায়, যা নতুন দক্ষতা ধারণ করার একটি প্রমাণিত উপায়।
বিশ্বের বিভিন্ন অংশের তথ্য ব্যবহার করে এই ক্লাসিক প্রযুক্তিগুলো প্রয়োগ করতে আমাদের সাথে বিশ্ব ভ্রমণ করুন। প্রতিটি লেসনে পূর্ব এবং পরবর্তী ক্লাসের কুইজ, শেখার জন্য লিখিত নির্দেশ, সমাধান, অ্যাসাইনমেন্ট এবং আরও অনেক কিছু অন্তর্ভুক্ত আছে। আমাদের প্রকল্পভিত্তিক শিক্ষাদান পদ্ধতি আপনাকে তৈরির মাধ্যমে শেখার সুযোগ দেয়, যা নতুন দক্ষতার অভ্যস্ত হতে সাহায্য করে।
**✍️ আমাদের লেখকদের প্রতি আন্তরিক ধন্যবাদ** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu এবং Amy Boyd
**✍️ আমাদের লেখকদের প্রতি আন্তরিক ধন্যবাদ** জেন লুপার, স্টিফেন হাওয়েল, ফ্রান্সেসকা লাজেরি, টোমোমি ইমুরা, ক্যাসি ব্রেভিউ, দিমিত্রি সশনিকভ, ক্রিস নরিং, অনীর্বাণ মুখার্জী, ওর্নেলা আল্টুনিয়ান, রুথ ইয়াকুুবু এবং এমি বয়ড
**🎨 আমাদের চিত্রশিল্পীদের প্রতি ধন্যবাদ** Tomomi Imura, Dasani Madipalli, এবং Jen Looper
**🎨 আমাদের চিত্রশিল্পীদের প্রতি ধন্যবাদ** টোমোমি ইমুরা, দাসানি মাদিপল্লি, এবং জেন লুপার
**🙏 বিশেষ ধন্যবাদ 🙏 Microsoft Student Ambassador লেখক, পর্যালোচক, এবং বিষয়বস্তু প্রদানকারীদের**, বিশেষত Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, এবং Snigdha Agarwal
**🙏 বিশেষ ধন্যবাদ 🙏 মাইক্রোসফট স্টুডেন্ট অ্যাম্বাসেডর লেখক, সমীক্ষক, এবং কনটেন্ট প্রদানকারীদের**, বিশেষ করে রিষিত দাগলি, মুহাম্মদ সাকিব খান ইনান, রোহান রাজ, আলেকজান্দ্রু পেত্রেস্কু, অভিষেক জৈসওয়াল, নওরিন তাবাসসুম, ইওয়ান সামুইলা, এবং স্নিগ্ধা আগরওয়াল
**🤩 অতিরিক্ত কৃতজ্ঞতা Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, এবং Vidushi Gupta কে আমাদের R পাঠের জন্য!**
**🤩 অতিরিক্ত কৃতজ্ঞতা মাইক্রোসফট স্টুডেন্ট অ্যাম্বাসেডরদের কাছে, এরিক ওয়ানজাউ, জাসলিন সোঁধি, এবং বিদুষী গুপ্তা আমাদের R লেসনের জন্য!**
> [এই কোর্সের জন্য সমস্ত অতিরিক্ত সম্পদ আমাদের Microsoft Learn সংগ্রহে পাওয়া যাবে](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [এই কোর্সের সমস্ত অতিরিক্ত সম্পদ মাইক্রোসফট লার্ন কালেকশনে খুঁজুন](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **সাহায্য দরকার?** আমাদের [Troubleshooting Guide](TROUBLESHOOTING.md) দেখুন ইনস্টলেশন, সেটআপ এবং লেসন চালানোর সাধারণ সমস্যা সমাধানের জন্য।
> 🔧 **সাহায্যের দরকার?** আমাদের [সমস্যা নিষ্পত্তির গাইড](TROUBLESHOOTING.md) দেখুন ইনস্টলেশন, সেটআপ এবং লেসন চালানোর সাধারণ সমস্যার সমাধানের জন্য।
**[শিক্ষার্থীরা](https://aka.ms/student-page)**, এই পাঠ্যক্রম ব্যবহারের জন্য, সম্পূর্ণ রেপো আপনার নিজের GitHub একাউন্টে ফর্ক করুন এবং ব্যক্তিগতভাবে বা গ্রুপের সাথে অনুশীলন সম্পন্ন করুন:
**[শিক্ষার্থী](https://aka.ms/student-page)রা**, এই কারিকুলাম ব্যবহারের জন্য, পুরো রিপোজিটরি নিজেদের গিটহাব অ্যাকাউন্টে ফর্ক করুন এবং একক বা গ্রুপে অনুশীলন সম্পন্ন করুন:
- একটি পূর্ব লেকচার কুইজ দিয়ে শুরু করুন।
- লেকচার পড়ুন এবং কার্যক্রম সম্পন্ন করুন, প্রতিটি জ্ঞানের পরীক্ষা থামুন এবং মাফ বুঝুন।
- প্রকল্প তৈরি করার চেষ্টা করুন পাঠ্যগুলি বুঝে, সমাধান কোড রান না করেও; তবে সেই কোড প্রতিটি প্রকল্প ভিত্তিক লেসনের `/solution` ফোল্ডারে উপলব্ধ।
- পরবর্তীতে লেকচার কুইজ দিন।
- একটি প্রাক-লেকচার কুইজ দিয়ে শুরু করুন।
- লেকচার পড়ুন এবং ক্রিয়াকলাপ সম্পন্ন করুন, প্রতিটি জ্ঞান পরীক্ষা করার সময় থামুন এবং চিন্তা করুন।
- লেসনগুলো বুঝে প্রকল্প তৈরি করার চেষ্টা করুন কোড রান করার বাইরে; তবে কোডটি /solution ফোল্ডারে প্রতিটি প্রকল্পভিত্তিক লেসনে পাওয়া যায়।
- পরের লেকচার কুইজ দিন।
- চ্যালেঞ্জ সম্পন্ন করুন।
- অ্যাসাইনমেন্ট সম্পন্ন করুন।
- একটি লেকশন গ্রুপ শেষ করার পর, [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) এ যান এবং প্রাসঙ্গিক PAT রুব্রিক পূরণ করে "জোরে শেখা" করুন। 'PAT' মানে হলো প্রগ্রেস অ্যাসেসমেন্ট টুল যা আপনি পূরণ করবেন যাতে আপনার শেখা আরও বৃদ্ধি পায়। আপনি অন্য PAT গুলোকেও প্রতিক্রিয়া জানাতে পারেন যাতে আমরা একসাথে শিখতে পারি।
- একটি লেসন গ্রুপ শেষে, [ডিসকাশন বোর্ড](https://github.com/microsoft/ML-For-Beginners/discussions) এ যান এবং "উচ্চস্বরে শেখা" করুন উপযুক্ত PAT রুব্রিক পূরণ করে। 'PAT' হলো একটি প্রগ্রেস মূল্যায়ন টুল যা আপনার শেখাকে এগিয়ে নিয়ে যায়। আপনি অন্যান্য PAT-র প্রতিক্রিয়া জানিয়ে একসাথে শিখতে পারেন।
> আরও পড়াশোনার জন্য, আমরা এই [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) মডিউল এবং শেখার পথ অনুসরণ করার পরামর্শ দিই।
> আরও অধ্যয়নের জন্য, আমরা এই [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) মডিউল এবং লার্নিং পাথ অনুসরণ করার সিফারিশ করছি।
**শিক্ষকগণ**, এই পাঠ্যক্রম ব্যবহারের জন্য আমরা কিছু [সুজোগ দিয়েছি](for-teachers.md)।
**শিক্ষকগণ**, আমরা [কিছু পরামর্শ](for-teachers.md) অন্তর্ভুক্ত করেছি এই কারিকুলাম ব্যবহার করার জন্য।
---
## ভিডিও ওয়াকথ্রুগুলো
## ভিডিও ওয়াকথ্রু
কিছু পাঠ সংক্ষিপ্ত ভিডিও আকারে উপলব্ধ। আপনি এগুলো সব লেসনে ইন-লাইন দেখতে পারবেন, অথবা [Microsoft Developer YouTube চ্যানেলের ML for Beginners প্লেলিস্ট](https://aka.ms/ml-beginners-videos) থেকে নিচের ছবিতে ক্লিক করে দেখতে পারেন।
কিছু লেসন সংক্ষিপ্ত ভিডিও হিসেবে উপলব্ধ। আপনি এই ভিডিওগুলো লেসনের মধ্যে অথবা [ML for Beginners প্লেলিস্ট, Microsoft Developer YouTube চ্যানেলে](https://aka.ms/ml-beginners-videos) খুঁজে পেতে পারেন নিচের চিত্রে ক্লিক করে।
[](https://aka.ms/ml-beginners-videos)
**গিফ তৈরি করেছেন** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 প্রকল্প এবং এটি তৈরি করা ব্যক্তিদের সম্পর্কে একটি ভিডিও দেখার জন্য উপরের ছবিতে ক্লিক করুন!
> 🎥 প্রকল্প এবং এর স্রষ্টাদের সম্পর্কে জানতে উপরের ছবিতে ক্লিক করুন!
---
## শিক্ষাদান পদ্ধতি
আমরা এই পাঠ্যক্রম তৈরির সময় দুটো শিক্ষামূলক নীতিমালা বেছে নিয়েছি: এটি একদিকে **প্রকল্প-ভিত্তিক** হওয়া এবং অন্যদিকে **ঘন ঘন কুইজ** অন্তর্ভুক্ত করা। এছাড়া এই পাঠ্যক্রমে একটি সাধারণ **বিষয়বস্তু** রয়েছে যা এটি সমন্বিত করে ধরে রাখে।
এই কারিকুলাম তৈরি করার সময় আমরা দুটি শিক্ষণ নীতিকে বেছে নিয়েছি: এটি থাকুক হ্যান্ডস-অন **প্রকল্পভিত্তিক** এবং এতে থাকুক **ঘনঘন কুইজ**। এছাড়াও, এই কারিকুলামের একটি সাধারণ **বিষয়বস্তু** রাখা হয়েছে যাতে এটি সুসংগত হয়।
কনটেন্ট প্রকল্পের সাথে মিল রেখে শিক্ষার্থীদের জন্য মাধ্যমটি আরও আকর্ষণীয় হয় এবং ধারণাগুলোর ধারণ ক্ষমতা বৃদ্ধি পায়। এছাড়া ক্লাস শুরু করার আগে একটি কম ঝুঁকিপূর্ণ কুইজ শিক্ষার্থীর মনোযোগ শেখার দিকে সামঞ্জস্য করে এবং ক্লাস শেষে আরেকটি কুইজ ধরে রাখাকে নিশ্চিত করে। এই পাঠ্যক্রমটি নমনীয় এবং মজার জন্য ডিজাইন করা হয়েছে এবং সম্পূর্ণ বা আংশিকভাবে নেওয়া যেতে পারে। প্রকল্পগুলো ছোট থেকে শুরু করে ১২-সপ্তাহের শেষে ক্রমান্বয়ে জটিল হয়ে যায়। এই পাঠ্যক্রমে মেশিন লার্নিং এর বাস্তব জীবনের অ্যাপ্লিকেশনগুলি সম্পর্কে একটি পরিশিষ্টও রয়েছে, যা অতিরিক্ত ক্রেডিট হিসেবে বা আলোচনা ভিত্তি হিসেবে ব্যবহার করা যেতে পারে।
বিষয়বস্তু প্রকল্পের সাথে সামঞ্জস্যপূর্ণ করার মাধ্যমে ছাত্রদের আকর্ষণ বাড়ানো হয় এবং ধারণাগুলি দীর্ঘস্থায়ী হয়। এছাড়াও, একটি ক্লাসের আগে একটি কম ঝুঁকিপূর্ণ কুইজ ছাত্রের শেখার উদ্দেশ্য স্থাপন করে, এবং ক্লাসের পরে দ্বিতীয় কুইজ ধারণাগুলির রিটেনশন নিশ্চিত করে। এই কারিকুলামটি নমনীয় এবং মজাদার হওয়ার জন্য ডিজাইন করা হয়েছে এবং পুরোপুরি অথবা আংশিকভাবে গ্রহণ করা যেতে পারে। প্রকল্পগুলো ছোট ছোট শুরু হয় এবং ১২ সপ্তাহের শেষে ক্রমশ জটিল হয়ে ওঠে। এই কারিকুলামে একটি পোস্টস্ক্রিপ্ট রয়েছে যা ML এর বাস্তব জগতের প্রয়োগের উপর, যা অতিরিক্ত ক্রেডিট হিসেবে অথবা আলোচনা ভিত্তি হিসেবে ব্যবহার করা যেতে পারে।
> আমাদের [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), এবং [Troubleshooting](TROUBLESHOOTING.md) নির্দেশিকা অনুসন্ধান করুন। আমরা আপনার গঠনমূলক মতামতকে স্বাগত জানাই!
> আমাদের [আচরণ বিধি](CODE_OF_CONDUCT.md), [অংশগ্রহণের নিয়মাবলী](CONTRIBUTING.md), [অনুবাদ](..), এবং [সমস্যা মোকাবেলার নির্দেশিকা](TROUBLESHOOTING.md) দেখুন। আমরা আপনার গঠনমূলক প্রতিক্রিয়াকে স্বাগত জানাই!
> **ভাষা সম্পর্কিত একটি নোট**: এই পাঠগুলি মূলত পাইথনে লেখা হয়েছে, তবে অনেকগুলি R-এও উপলব্ধ। একটি R পাঠ সম্পন্ন করতে, `/solution` ফোল্ডারে যান এবং R পাঠগুলি খুঁজুন। তাতে একটি .rmd এক্সটেনশন রয়েছে যা একটি **R Markdown** ফাইলকেউপস্থাপন করে, যা সহজে সংজ্ঞায়িত করা যায় `কোড চাঙ্ক` (R বা অন্যান্য ভাষার) এবং একটি `YAML হেডার` (যা আউটপুট যেমন PDF কিভাবে ফরম্যাট করতে হয় তা নির্দেশ করে) সহ একটি `Markdown ডকুমেন্ট` হিসেবে। এভাবে, এটি ডেটা সায়েন্সের জন্য একটি আদর্শ লেখন কাঠামো হিসেবে কাজ করে, কারণ এটি আপনাকে আপনার কোড, এর আউটপুট, এবং আপনার চিন্তাধারাকে একসঙ্গে মিলিত করার সুযোগ দেয়, এবং সেগুলো Markdown-এ লেখার অনুমতি দেয়। আরও, R Markdown ডকুমেন্টগুলি PDF, HTML, অথবা Word এর মত আউটপুট ফরম্যাটে রেন্ডার করা যায়।
> **কুইজ সম্পর্কে একটি নোট**: সব কুইজ [Quiz App folder](../../quiz-app) এ রয়েছে, মোট ৫২টি কুইজ যার প্রত্যেকটিতে তিনটি প্রশ্ন রয়েছে। এগুলো পাঠগুলির মধ্যে লিঙ্ক করা হয়েছে, কিন্তু কুইজ অ্যাপটি লোকালি চালানো যেতে পারে; লোকালি হোস্ট বা Azure তে ডেপ্লয় করার জন্য `quiz-app` ফোল্ডারে নির্দেশনা অনুসরণ করুন।
| পাঠের সংখ্যা | বিষয় | পাঠ গুছানো | শেখার উদ্দেশ্য | লিঙ্ককৃত পাঠ | লেখক |
| ০১ | মেশিন লার্নিং এর পরিচয় | [পরিচয়](1-Introduction/README.md) | মেশিন লার্নিং এর মৌলিক ধারণাগুলো শিখুন | [পাঠ](1-Introduction/1-intro-to-ML/README.md) | মুহাম্মদ |
| ০২ | মেশিন লার্নিং এর ইতিহাস | [পরিচয়](1-Introduction/README.md) | এই ক্ষেত্রে প্রাচীন ইতিহাস জানুন | [পাঠ](1-Introduction/2-history-of-ML/README.md) | জেন এবং অ্যামি |
| ০৩ | ন্যায্যতা এবং মেশিন লার্নিং | [পরিচয়](1-Introduction/README.md) | মেশিন লার্নিং মডেল তৈরি ও প্রয়োগের সময় ন্যায্যতা সম্পর্কিত গুরুত্বপূর্ণ দার্শনিক বিষয়গুলি শিক্ষার্থীদের বিবেচনা করা উচিত কিভাবে? | [পাঠ](1-Introduction/3-fairness/README.md) | তোমোমি |
| ০৪ | মেশিন লার্নিং এর কৌশল | [পরিচয়](1-Introduction/README.md) | মেশিন লার্নিং গবেষকরা কী কৌশল ব্যবহার করে মডেল গঠন করেন? | [পাঠ](1-Introduction/4-techniques-of-ML/README.md) | ক্রিস এবং জেন |
| ০৫| রিগ্রেশন এর পরিচিতি | [রিগ্রেশন](2-Regression/README.md) | রিগ্রেশন মডেলের জন্য পাইথন এবং স্কিকিট-লার্ন শুরু করুন | [পাইথন](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | জেন • এরিক ওয়ানজাউ |
| ০৬| উত্তর আমেরিকার কুমড়ো মূল্য 🎃 | [রিগ্রেশন](2-Regression/README.md) | মেশিন লার্নিং জন্য ডেটা ভিজ্যুয়ালাইজ এবং পরিষ্কার করুন | [পাইথন](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | জেন • এরিক ওয়ানজাউ |
| ০৭| উত্তর আমেরিকার কুমড়ো মূল্য 🎃 | [রিগ্রেশন](2-Regression/README.md) | লিনিয়ার এবং পলিনোমিয়াল রিগ্রেশন মডেল তৈরি করুন | [পাইথন](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | জেন এবং দিমিত্রি • এরিক ওয়ানজাউ |
| ০৮| উত্তর আমেরিকার কুমড়ো মূল্য 🎃 | [রিগ্রেশন](2-Regression/README.md) | একটি লজিস্টিক রিগ্রেশন মডেল তৈরি করুন | [পাইথন](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | জেন • এরিক ওয়ানজাউ |
| ০৯| একটি ওয়েব অ্যাপ 🔌 | [ওয়েব অ্যাপ](3-Web-App/README.md) | আপনার প্রশিক্ষিত মডেল ব্যবহার করার জন্য একটি ওয়েব অ্যাপ তৈরি করুন | [পাইথন](3-Web-App/1-Web-App/README.md) | জেন |
| ১০ | শ্রেণীবিন্যাস এর পরিচিতি | [শ্রেণীবিন্যাস](4-Classification/README.md) | ডেটা পরিষ্কার, প্রস্তুত করুন এবং ভিজুয়ালাইজ করুন; শ্রেণীবিন্যাস এর পরিচিতি | [পাইথন](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | জেন এবং ক্যাসি • এরিক ওয়ানজাউ |
| ১১ | সুস্বাদু এশিয়ান এবং ভারতীয় রন্ধনপ্রণালী 🍜 | [শ্রেণীবিন্যাস](4-Classification/README.md) | শ্রেণীবিন্যাসকারীদের পরিচিতি | [পাইথন](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | জেন এবং ক্যাসি • এরিক ওয়ানজাউ |
| ১২ | সুস্বাদু এশিয়ান এবং ভারতীয় রন্ধনপ্রণালী 🍜 | [শ্রেণীবিন্যাস](4-Classification/README.md) | আরও শ্রেণীবিন্যাসকারী | [পাইথন](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | জেন এবং ক্যাসি • এরিক ওয়ানজাউ |
| ১৩ | সুস্বাদু এশিয়ান এবং ভারতীয় রন্ধনপ্রণালী 🍜 | [শ্রেণীবিন্যাস](4-Classification/README.md) | আপনার মডেল ব্যবহার করে একটি রিকমেন্ডার ওয়েব অ্যাপ তৈরি করুন | [পাইথন](4-Classification/4-Applied/README.md) | জেন |
| ১৪ | ক্লাস্টারিং এর পরিচিতি | [ক্লাস্টারিং](5-Clustering/README.md) | ডেটা পরিষ্কার, প্রস্তুত করুন এবং ভিজুয়ালাইজ করুন; ক্লাস্টারিং এর পরিচিতি | [পাইথন](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | জেন • এরিক ওয়ানজাউ |
| ১৫ | নাইজেরিয়ান সঙ্গীত স্বাদ অন্বেষণ 🎧 | [ক্লাস্টারিং](5-Clustering/README.md) | কে-মিনস ক্লাস্টারিং পদ্ধতি অন্বেষণ করুন | [পাইথন](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | জেন • এরিক ওয়ানজাউ |
| ১৬ | প্রাকৃতিক ভাষা প্রক্রিয়াকরণ এর পরিচিতি ☕️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | একটি সহজ বট তৈরি করে NLP-এর ভিত্তি শিখুন | [পাইথন](6-NLP/1-Introduction-to-NLP/README.md) | স্টিফেন |
| ১৭ | সাধারণ NLP কাজগুলি ☕️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | ভাষা কাঠামোগুলোর সঙ্গে কাজ করার সময় প্রয়োজনীয় সাধারণ কাজগুলি বুঝে NLP জ্ঞান উন্নত করুন | [পাইথন](6-NLP/2-Tasks/README.md) | স্টিফেন |
| ১৮ | অনুবাদ এবং অনুভূতি বিশ্লেষণ ♥️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | জেন অস্টেনের সাথে অনুবাদ এবং অনুভূতি বিশ্লেষণ | [পাইথন](6-NLP/3-Translation-Sentiment/README.md) | স্টিফেন |
| ১৯ | ইউরোপের রোমান্টিক হোটেল ♥️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | হোটেল পর্যালোচনার সাথে অনুভূতি বিশ্লেষণ ১ | [পাইথন](6-NLP/4-Hotel-Reviews-1/README.md) | স্টিফেন |
| ২০ | ইউরোপের রোমান্টিক হোটেল ♥️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | হোটেল পর্যালোচনার সাথে অনুভূতি বিশ্লেষণ ২ | [পাইথন](6-NLP/5-Hotel-Reviews-2/README.md) | স্টিফেন |
| ২২ | ⚡️ বিশ্ব শক্তি ব্যবহার ⚡️ - ARIMA দিয়ে টাইম সিরিজ পূর্বাভাস | [টাইম সিরিজ](7-TimeSeries/README.md) | ARIMA দিয়ে টাইম সিরিজ পূর্বাভাস | [পাইথন](7-TimeSeries/2-ARIMA/README.md) | ফ্রান্সেস্কা |
| ২৩ | ⚡️ বিশ্ব শক্তি ব্যবহার ⚡️ - SVR দিয়ে টাইম সিরিজ পূর্বাভাস | [টাইম সিরিজ](7-TimeSeries/README.md) | সাপোর্ট ভেক্টর রিগ্রেসর দিয়ে টাইম সিরিজ পূর্বাভাস | [পাইথন](7-TimeSeries/3-SVR/README.md) | অনির্বাণ |
| ২৪ | রিইনফোর্সমেন্ট লার্নিং এর পরিচিতি | [রিইনফোর্সমেন্ট লার্নিং](8-Reinforcement/README.md) | Q-লার্নিং দিয়ে রিইনফোর্সমেন্ট লার্নিং এর পরিচিতি | [পাইথন](8-Reinforcement/1-QLearning/README.md) | দিমিত্রি |
| ২৫ | পিটার কে বাঘ থেকে রক্ষা করো! 🐺 | [রিইনফোর্সমেন্ট লার্নিং](8-Reinforcement/README.md) | রিইনফোর্সমেন্ট লার্নিং জিম | [পাইথন](8-Reinforcement/2-Gym/README.md) | দিমিত্রি |
| পোস্টস্ক্রিপ্ট | বাস্তব বিশ্ব ML পরিস্থিতি ও প্রয়োগ | [ML in the Wild](9-Real-World/README.md) | ক্লাসিক্যাল ML এর মজার এবং প্রকাশক বাস্তব বিশ্ব প্রয়োগগুলি | [পাঠ](9-Real-World/1-Applications/README.md) | টিম |
| পোস্টস্ক্রিপ্ট | ML তে মডেল ডিবাগিং RAI ড্যাশবোর্ড ব্যবহার করে | [ML in the Wild](9-Real-World/README.md) | রেসপন্সিবল AI ড্যাশবোর্ড উপাদানগুলি ব্যবহার করে মেশিন লার্নিংয়ে মডেল ডিবাগিং | [পাঠ](9-Real-World/2-Debugging-ML-Models/README.md) | রুথ ইয়াকুবু |
> [এই কোর্সের সমস্ত অতিরিক্ত রিসোর্স আমাদের Microsoft Learn সংগ্রহে খুঁজুন](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## অফলাইন এক্সেস
আপনি [Docsify](https://docsify.js.org/#/) ব্যবহার করে এই ডকুমেন্টেশন অফলাইনে চালাতে পারেন। এই রিপোটি ফর্ক করুন, [Docsify ইনস্টল করুন](https://docsify.js.org/#/quickstart) আপনার স্থানীয় মেশিনে, এবং তারপর এই রিপোর মূল ফোল্ডারে `docsify serve` টাইপ করুন। ওয়েবসাইটটি আপনার লোকালহোস্টে পোর্ট 3000-এ সার্ভ হবে: `localhost:3000`।
> **ভাষা সম্পর্কে একটি নোট**: এই পাঠগুলি মূলত পাইথনে লেখা হয়েছে, তবে অনেকগুলি R-তেও উপলব্ধ। একটি R পাঠ সম্পূর্ণ করতে, `/solution` ফোল্ডারে যান এবং R পাঠগুলি অনুসন্ধান করুন। সেগুলোর .rmd এক্সটেনশন থাকে যা একটি **R Markdown** ফাইল নির্দেশ করে, যা সহজভাবে সংজ্ঞায়িত করা যায় `কোড চাঙ্ক` (R বা অন্যান্য ভাষার) এবং একটি `YAML হেডার` (যা আউটপুট যেমন PDF এর ফরম্যাট নির্ধারণে সাহায্য করে) সহ একটি `Markdown ডকুমেন্ট` হিসাবে। এ কারণে, এটি একটি আদর্শ লেখাপড়ার ফ্রেমওয়ার্ক হিসেবে কাজ করে ডেটা সায়েন্সের জন্য কারণ এটি আপনাকে আপনার কোড, তার আউটপুট, এবং আপনার চিন্তাভাবনাগুলো Markdown-এ লিখে একত্রিত করার সুযোগ দেয়। এছাড়া, R Markdown ডকুমেন্টগুলি PDF, HTML, বা Word এর মতো আউটপুট ফরম্যাটে রেন্ডার করা যায়।
> **কুইজ সম্পর্কে একটি নোট**: সমস্ত কুইজ [Quiz App ফোল্ডারে](../../quiz-app) অন্তর্ভুক্ত, মোট ৫২টি কুইজ যেগুলোর প্রতিটিতে তিনটি প্রশ্ন থাকে। এগুলি পাঠগুলির ভিতর থেকে লিঙ্ক করা হয়েছে কিন্তু কুইজ অ্যাপ লোকালি চালানো যায়; লোকালি হোস্ট বা Azure-এ ডিপ্লয় করার জন্য `quiz-app` ফোল্ডারের নির্দেশনা অনুসরণ করুন।
| পাঠ নম্বর | বিষয় | পাঠের শ্রেণীবন্ধন | শেখার উদ্দেশ্য | সংযুক্ত পাঠ | লেখক |
| ০১ | মেশিন লার্নিং-এর ভূমিকা | [পরিচিতি](1-Introduction/README.md) | মেশিন লার্নিং-এর বুনিয়াদি ধারণা শেখা | [পাঠ](1-Introduction/1-intro-to-ML/README.md) | মুহাম্মদ |
| ০২ | মেশিন লার্নিং-এর ইতিহাস | [পরিচিতি](1-Introduction/README.md) | এই ক্ষেত্রে ব্যাকগ্রাউন্ড ইতিহাস শেখা | [পাঠ](1-Introduction/2-history-of-ML/README.md) | জেন ও এমি |
| ০৩ | ন্যায়পরায়ণতা ও মেশিন লার্নিং | [পরিচিতি](1-Introduction/README.md) | মেশিন লার্নিং মডেল তৈরি ও প্রয়োগে ন্যায়পরায়ণতার গুরুত্বপূর্ণ দার্শনিক বিষয়সমূহ সম্পর্কে শেখা | [পাঠ](1-Introduction/3-fairness/README.md) | তোমোমি |
| ০৪ | মেশিন লার্নিং-এর প্রযুক্তি | [পরিচিতি](1-Introduction/README.md) | মেশিন লার্নাররা কোন কোন প্রযুক্তি ব্যবহার করে মডেল তৈরি করে তা শেখা | [পাঠ](1-Introduction/4-techniques-of-ML/README.md) | ক্রিস ও জেন |
| ০৫ | রিগ্রেশন পরিচিতি| [রিগ্রেশন](2-Regression/README.md) | পাইথন ও স্কিকিট-লার্ন ব্যবহার করে রিগ্রেশন মডেল শুরু করা | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | জেন • এরিক ওয়ানজাউ |
| ০৬ | উত্তর আমেরিকার কুমড়ো মূল্য 🎃 |[রিগ্রেশন](2-Regression/README.md) | মেশিন লার্নিং-এর প্রস্তুতিতে ডেটা ভিজ্যুয়ালাইজেশন ও পরিষ্কারকরণ | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | জেন • এরিক ওয়ানজাউ |
| ০৭ | উত্তর আমেরিকার কুমড়ো মূল্য 🎃 | [রিগ্রেশন](2-Regression/README.md) | লিনিয়ার ও পলিনোমিয়াল রিগ্রেশন মডেল তৈরি করা | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | জেন ও ডিমিত্রি • এরিক ওয়ানজাউ |
| ০৮ | উত্তর আমেরিকার কুমড়ো মূল্য 🎃 | [রিগ্রেশন](2-Regression/README.md) | লজিস্টিক রিগ্রেশন মডেল তৈরি করা | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | জেন • এরিক ওয়ানজাউ |
| ০৯ | একটি ওয়েব অ্যাপ 🔌 | [ওয়েব অ্যাপ](3-Web-App/README.md) | প্রশিক্ষিত মডেল ব্যবহারের জন্য একটি ওয়েব অ্যাপ নির্মাণ | [Python](3-Web-App/1-Web-App/README.md) | জেন |
| ১০ | শ্রেণীবিভাগের পরিচিতি | [শ্রেণীবিভাগ](4-Classification/README.md) | আপনার ডেটা পরিষ্কারকরণ, প্রস্তুতি ও ভিজ্যুয়ালাইজেশন; শ্রেণীবিভাগের পরিচিতি | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | জেন ও কেসি • এরিক ওয়ানজাউ |
| ১১ | সুস্বাদু এশিয়ান ও ভারতীয় রান্না 🍜 | [শ্রেণীবিভাগ](4-Classification/README.md) | শ্রেণীবিভাগকারীদের পরিচয় | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | জেন ও কেসি • এরিক ওয়ানজাউ |
| ১২ | সুস্বাদু এশিয়ান ও ভারতীয় রান্না 🍜 | [শ্রেণীবিভাগ](4-Classification/README.md) | আরও শ্রেণীবিভাগকারী | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | জেন ও কেসি • এরিক ওয়ানজাউ |
| ১৩ | সুস্বাদু এশিয়ান ও ভারতীয় রান্না 🍜 | [শ্রেণীবিভাগ](4-Classification/README.md) | আপনার মডেল ব্যবহার করে একটি সুপারিশকারী ওয়েব অ্যাপ তৈরি করুন | [Python](4-Classification/4-Applied/README.md) | জেন |
| ১৫ | নাইজেরিয়ার সঙ্গীত স্বাদের অনুসন্ধান 🎧 | [ক্লাস্টারিং](5-Clustering/README.md) | K-Means ক্লাস্টারিং পদ্ধতি অনুসন্ধান | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | জেন • এরিক ওয়ানজাউ |
| ১৬ | প্রাকৃতিক ভাষা প্রক্রিয়াকরণের পরিচিতি ☕️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | একটি সহজ বট তৈরি করে NLP-এর বুনিয়াদি শিখুন | [Python](6-NLP/1-Introduction-to-NLP/README.md) | স্টিফেন |
| ১৭ | প্রচলিত NLP কাজসমূহ ☕️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | ভাষাগত কাঠামোর মোকাবিলায় প্রয়োজনীয় সাধারণ কাজগুলি বোঝার মাধ্যমে আপনার NLP জ্ঞান গভীর করুন | [Python](6-NLP/2-Tasks/README.md) | স্টিফেন |
| ১৮ | অনুবাদ ও মনোভাব বিশ্লেষণ ♥️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | জেন অস্টিনের সঙ্গে অনুবাদ ও মনোভাব বিশ্লেষণ | [Python](6-NLP/3-Translation-Sentiment/README.md) | স্টিফেন |
| ১৯ | ইউরোপের রোমান্টিক হোটেল ♥️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | হোটেল পর্যালোচনার সঙ্গে মনোভাব বিশ্লেষণ ১ | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | স্টিফেন |
| ২০ | ইউরোপের রোমান্টিক হোটেল ♥️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | হোটেল পর্যালোচনার সঙ্গে মনোভাব বিশ্লেষণ ২ | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | স্টিফেন |
| পরিশিষ্ট | বাস্তব বিশ্বের মেশিন লার্নিং পরিস্থিতি ও প্রয়োগ | [বন্যায় মেশিন লার্নিং](9-Real-World/README.md) | ক্লাসিক্যাল মেশিন লার্নিং-এর মজাদার ও পর্যালোচনামূলক বাস্তব বিশ্বের প্রয়োগসমূহ | [পাঠ](9-Real-World/1-Applications/README.md) | টিম |
| পরিশিষ্ট | RAI ড্যাশবোর্ড ব্যবহার করে ML মডেল ডিবাগিং | [বন্যায় মেশিন লার্নিং](9-Real-World/README.md) | দায়বদ্ধ AI ড্যাশবোর্ড উপাদান ব্যবহার করে মেশিন লার্নিং মডেল ডিবাগিং | [পাঠ](9-Real-World/2-Debugging-ML-Models/README.md) | রুথ ইয়াকুবু |
> [এই কোর্সের সব অতিরিক্ত সংস্থান আমাদের Microsoft Learn সংগ্রহে খুঁজুন](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## অফলাইন অ্যাকসেস
আপনি [Docsify](https://docsify.js.org/#/) ব্যবহার করে এই ডকুমেন্টেশন অফলাইনে চালাতে পারেন। এই রিপোজিটরিটি ফর্ক করুন, আপনার লোকাল মেশিনে [Docsify ইনস্টল করুন](https://docsify.js.org/#/quickstart), এবং এরপর এই রিপোর রুট ফোল্ডারে `docsify serve` টাইপ করুন। ওয়েবসাইটটি আপনার লোকালহোস্টে ৩০০০ নম্বর পোর্টে চালু হবে: `localhost:3000`।
## PDF
পাঠ্যক্রমের একটি পিডিএফ লিঙ্ক সহ খুঁজুন [এখানে](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)।
কুরিকুলামের PDF প্রাপ্তির জন্য [এখানে](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) দেখুন।
## 🎒 অন্যান্য কোর্স
আমাদের দল আরো কোর্স তৈরি করে! দেখুন:
আমাদের দল অন্যান্য কোর্সও তৈরি করে! দেখুন:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
@ -196,7 +196,7 @@ Microsoft এর ক্লাউড অ্যাডভোকেটরা এক
---
### মূর্ত শিক্ষা
### মূল শেখা
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
@ -213,24 +213,35 @@ Microsoft এর ক্লাউড অ্যাডভোকেটরা এক
আপনি যদি আটকে যান অথবা AI অ্যাপ তৈরি সম্পর্কে কোনো প্রশ্ন থাকে, তাহলে MCP নিয়ে আলোচনা করতে সহপাঠী এবং অভিজ্ঞ ডেভেলপারদের সাথে যোগ দিন। এটি একটি সহায়ক সম্প্রদায় যেখানে প্রশ্নগুলি স্বাগত এবং জ্ঞান মুক্তভাবে ভাগ করা হয়।
যদি আপনি মেশিন লার্নিং শিখতে গিয়ে বা AI অ্যাপ্লিকেশন তৈরি করতে গিয়ে আটকে পড়েন বা প্রশ্ন থাকে, তাহলে চিন্তা করবেন না — সাহায্য পাওয়া যায়।
- প্রতিটি পাঠের পরে নোটবুকগুলি পর্যালোচনা করুন ভাল বোঝার জন্য।
- নিজেরাই আলগোরিদম বাস্তবায়ন অনুশীলন করুন।
- শেখা ধারণাগুলো ব্যবহার করে বাস্তব বিশ্বের ডেটাসেট এক্সপ্লোর করুন।
## অতিরিক্ত শেখার টিপস
- প্রতিটি পাঠের পর নোটবুকগুলি পর্যালোচনা করুন আরও ভালো বোঝার জন্য।
- নিজে অ্যালগরিদমগুলো প্রয়োগ করার অনুশীলন করুন।
- শেখা ধারণাগুলো ব্যবহার করে বাস্তব বিশ্বের ডেটাসেট অন্বেষণ করুন।
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**বহির্গমন**:
এই ডকুমেন্টটি AI অনুশীলন সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। আমরা যথাসাধ্য সঠিকতার প্রচেষ্টা করি, তবে স্বয়ংক্রিয় অনুবাদে ভুল বা ত্রুটি থাকতে পারে। মূল ডকুমেন্টটি তার স্বাভাবিক ভাষায় সংশ্লিষ্ট সূত্র হিসেবে বিবেচিত হওয়া উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদের ব্যবহার থেকে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই।
**অস্বীকৃতি**:
এই নথিটি AI অনুবাদ সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। আমরা যথাসাধ্য সঠিকতার চেষ্টা করি, তবুও জেনে রাখুন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা ভুল থাকতে পারে। মূল নথিটি তার মাতৃভাষায়ই কর্তৃত্বপূর্ণ উৎস হিসেবে গণ্য করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদের ব্যবহারে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়বদ্ধ নই।
> ### [हा धडा R मध्ये उपलब्ध आहे!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### परिचय
> ### [हा धडा R मध्येही उपलब्ध आहे!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### परिचय
तुम्ही आतापर्यंत रिग्रेशन म्हणजे काय हे कद्दू किमतींच्या डेटासेटवरून पाहिले आहे ज्याचा उपयोग संपूर्ण धड्यात होणार आहे. तुम्ही ते मॅटप्लॉटलिब वापरून दृष्यरूपात देखील पाहिले आहे.
आत्तापर्यंत आपण रिग्रेशन म्हणजे काय हे कदाचित पाहिले आहे, ज्यासाठी आपण भोपळा किंमत डेटासेटमधून संकलित नमुना डेटा वापरला आहे जो संपूर्ण धडक्यादरम्यान वापरला जाईल. आपण त्याचे Matplotlib वापरून दृश्यांकन देखील केलेले आहे.
आता तुम्ही ML साठी रिग्रेशनमध्ये खोलवर जाण्यास तयार आहात. चित्ररूपण तुम्हाला डेटाचे अर्थ लावण्यास मदत करते, परंतु मशीन लर्निंगची खरी सामर्थ्य म्हणजे _मॉडेल प्रशिक्षित करणे_. मॉडेल्स ऐतिहासिक डेटावर प्रशिक्षित केले जातात जेणेकरून डेटा संबंधितता आपोआप पकडता येते, आणि ते नवीन डेटासाठी पूर्वनिर्धारित परिणाम भाकित करू शकतात, ज्याचा मॉडेलने परवानगी घेतलेली माहिती नाही.
आता आपण मशीन लर्निंगसाठी रिग्रेशनमध्ये अधिक खोलवर जाण्यास तयार आहात. दृश्यांकन केल्याने डेटा समजण्यास मदत होते, पण मशीन लर्निंगची खरी ताकद _मॉडेल्स प्रशिक्षण_ मध्ये आहे. मॉडेल्सला ऐतिहासिक डेटावर प्रशिक्षण दिले जाते ज्यामुळे ते डेटा अवलंबित्वे स्वयंचलितपणे पकडू शकतात, आणि त्यांनी अद्याप पाहिलेला नसलेला नवीन डेटा साठी परिणामांची भाकीत करण्याची परवानगी देतात.
या धड्यात, तुम्ही दोन प्रकारच्या रिग्रेशनबद्दल अधिक जाणून घेणार आहात: _मूलभूत रेखीय रिग्रेशन_ आणि _बहुपद रिग्रेशन_, तसेच या तंत्रज्ञानामागील काही गणित. हे मॉडेल्स आम्हाला विविध इनपुट डेटानुसार कद्दूच्या किंमती भाकित करण्याची परवानगी देतील.
या धड्यात, आपण दोन प्रकारच्या रिग्रेशनबद्दल अधिक शिकणार आहोत: _मूलभूत लिनीअर रिग्रेशन_ आणि _बहुपदीय रिग्रेशन_, तसेच या तंत्रांमागील काही गणित समजून घेणार आहोत. या मॉडेल्समुळे आपण भिन्न इनपुट डेटानुसार भोपळ्याच्या किंमती भाकीत करू शकू.
[](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
> 🎥 वरील चित्रावर क्लिक करा रेखीय रिग्रेशनच्या थोडक्यात व्हिडिओसाठी.
> या अभ्यासक्रमादरम्यान, आम्ही गणिताची कमीतकमी माहिती धरतो आणि इतर क्षेत्रांतील विद्यार्थ्यांसाठी हा विषय सुलभ करण्याचा प्रयत्न करतो, त्यामुळे समज वाढविण्यासाठी टीपा, 🧮 गणितीय कॉलआउट्स, आकृत्या आणि इतर अध्ययन साधने पाहा.
> संपूर्ण अभ्यासक्रमामध्ये, आम्ही गणिताचे कमी ज्ञान धरतो, आणि इतर क्षेत्रांमधून येणाऱ्या विद्यार्थ्यांसाठी ते सुलभ बनवण्याचा प्रयत्न करतो, त्यामुळे लक्ष ठेवा नोट्स, 🧮 कॉलआउट्स, आकृती आणि इतर शिकण्याच्या साधनांसाठी जी समज वाढविण्यात मदत करतात.
### पूर्वतयारी
### पूर्वअट
आता तुम्हाला कद्दू डेटाच्या रचनेची ओळख झाली पाहिजे ज्याचे आपण अभ्यास करीत आहोत. ती या धड्याच्या _notebook.ipynb_ फाइलमध्ये आधीच लोड केलेली आणि स्वच्छ केलेली आहे. त्या फाईलमध्ये कद्दूची किंमत बसलावर एक नवीन डेटाफ्रेममध्ये दाखवली गेली आहे. ही नोटबुक विज्युअल स्टुडिओ कोडमध्ये कर्नल्समध्ये चालवता यावी याची खात्री करा.
आपण आता भोपळा डेटाच्या संरचनेशी परिचित असाल ज्याचा आपण अभ्यास करतोय. हा डेटा या धड्याच्या _notebook.ipynb_ फाईलमध्ये प्रीलोड आणि प्री-क्लीन केलेला सापडेल. फाईलमध्ये भोपळ्याची किंमत प्रत्येक बुशेलसाठी नवीन डेटा फ्रेममध्ये दाखवली आहे. हे notebook Visual Studio Code मधील कर्नलमध्ये चालवू शकता याची खात्री करा.
### तयारी
स्मरणपत्र म्हणून, तुम्ही हा डेटा हे प्रश्न विचारण्यासाठी लोड करत आहात.
स्मरणार्थ, आपण हा डेटा लोड करता जेणेकरून त्याबाबत प्रश्न विचारता येतील.
- कधी कद्दू विकत घेण्याची उत्तम वेळ आहे?
- एका केज लहान कद्दूचा कसा अंदाजित किंमत येईल?
- मला हाफ-बुशेल बास्केट्समध्ये खरेदी करायला हवे की 1 1/9 बुशेल बॉक्समध्ये?
चला या डेटामध्ये अधिक खोलवर जाऊया.
- भोपळा खरेदीसाठी सर्वोत्तम वेळ कधी आहे?
- लहान भोपळ्यांच्या केसची किंमत काय अपेक्षित करू शकतो?
- मी त्यांना अर्धा बुशेल टोपल्या मध्ये खरेदी करावे का की 1 1/9 बुशेल बॉक्सने?
चला या डेटामध्ये अधिक खोलवर पाहू.
मागच्या धड्यात तुम्ही पँडास डेटा फ्रेम तयार केला आणि मूळ डेटासेटचा एक भाग भरा, किंमती बुशेल प्रमाणे प्रमाणित केल्या. पण त्यामुळे तुम्हाला अंदाजे 400 डेटापॉईंट्स, केवळ शरद ऋतू महिन्यांसाठी मिळाले.
यापूर्वीच्या धड्यात आपण Pandas डेटा फ्रेम तयार केला होता आणि मूळ डेटासेटचा भाग वापरून किंमती बुशेलनुसार प्रमाणित केला. मात्र, त्यामुळे केवळ सुमारे ४०० डेटापॉइंट्स मिळाले आणि तेही फक्त शरद ऋतूतील महिनेकरिता.
या धड्याच्या संबंधित नोटबुकमध्ये आधीच लोड केलेला डेटा पहा. डेटा आधीच लोड केलेला आहे आणि सुरुवातीचा स्कॅटरप्लॉट महिन्यांचे डेटा दाखवतो. कदाचित आपण डेटाची स्वच्छता करून अधिक सखोल माहिती मिळवू शकतो.
या धड्याच्या संलग्न नोटबुकमध्ये प्रीलोड केलेला डेटा पहा. डेटा प्रीलोड केला आहे आणि प्रारंभिक स्कॅटरप्लॉट तयार केला आहे जे महिना डेटाचा दाखला देतो. कदाचित आपण डेटा अजून स्वच्छ करुन त्याची निसर्ग अधिक जाणून घेऊ शकू.
## रेखीय रिग्रेशन रेषा
## एक लिनीअर रिग्रेशन रेषा
धडा 1 मध्ये आपण शिकल्याप्रमाणे, रेखीय रिग्रेशनचा उद्देश असा आहे की:
आपण धडा 1 मध्ये शिकलो तसे, लिनीअर रिग्रेशनचा उद्दिष्ट रेषा अशी काढणे आहे जी:
- **चलांचे संबंध दाखवा**. चलांमधील संबंध दाखवा.
- **भाकित करा**. या रेषेच्या अनुरूप नवीन डेटापॉईंट कुठे येईल ते अचूक भाकित करा.
- **चल संबंध दाखवते**. चलांच्या संबंध दर्शविणे
- **भाकीत करणे**. नवीन डेटापॉइंट एखाद्या विशिष्ट ठिकाणी येईल का ते अचूक भाकीत करणे.
**लिस्ट-स्क्वेअर रिग्रेशन** मध्ये अशा प्रकारची रेषा काढणे सामान्य आहे. "लिस्ट-स्क्वेअर" म्हणजे आपल्या मॉडेलचा एकूण त्रुटी कमी करण्याचा प्रक्रियेला म्हणतात. प्रत्येक datapoint साठी आपण त्याच्या प्रत्यक्ष बिंदू आणि रिग्रेशन रेषा यामधील उभ्या अंतराचा (called residuals) मोजमाप करतो.
हे सहसा **लीस्ट-स्क्वेअर्स रिग्रेशन** वापरून केले जाते. "लीस्ट-स्क्वेअर्स" शब्द म्हणजे आपल्या मॉडेलमधील एकूण त्रुटी कमी करते असे तंत्र. प्रत्येक डेटा पॉइंटसाठी आपण खऱ्या पॉइंट आणि रिग्रेशन लाइनमधील उभी अंतर (रेजिड्युअल) मोजतो.
या अंतरांचे वर्ग काढण्याची दोन मुख्य कारणे आहेत:
आपण या अंतराला दोन मुख्य कारणांसाठी वर्गाकार करतो:
1. **परिमाणावर भर, दिशा नोंदपण ठेवण्यास नकार:** -5 या त्रुटीस +5 सारखेच मानायचे आहे. वर्ग काढल्याने सर्व मूल्ये धनात्मक होतात.
1. **परिमाणाकडे अधिक महत्त्व**: -5 वजा 5 या त्रुटींना समान समजण्यासाठी वर्गाकार सर्व मूल्ये सकारात्मक करतो.
2. **आउटलायर्सना जबरदस्त गणना:** वर्गाने मोठ्या त्रुटींना अधिक वजन दिले जाते, जेणेकरून रेषा दूरच्या बिंदूंच्या जवळ राहते.
2. **आउटलायरला दंड देणे**: वर्गाकार मोठ्या त्रुटींना अधिक वजन देतो, त्यामुळे रेषा दूर असलेल्या पॉइंट्सजवळ राहायला भाग पाडतो.
नंतर आपण सर्व वर्गबद्ध मूल्ये जमा करतो. आपला उद्देश असा रेषा शोधणे आहे जिथे ही अंतिम बेरीज कमी होईल (सर्वांत लहान मूल्य)—त्यामुळे हे नाव "लिस्ट-स्क्वेअर" आहे.
आम्ही नंतर या सर्व वर्गाकार मूल्यांची बेरीज करतो. आमचा उद्देश असा आहे की ही अंतिम बेरीज कमीत कमी (सर्वात लहान शक्य मूल्य) होईल—म्हणून त्याला "लीस्ट-स्क्वेअर्स" म्हणतात.
> **🧮 मला गणित दाखवा**
>
> या रेषेला _हे सबसे योग्य रेषा_ म्हणतात, जे [एका समीकरणाने](https://en.wikipedia.org/wiki/Simple_linear_regression) दर्शविले जाते:
>
> **🧮 मला गणित दाखवा**
>
> ही रेषा, ज्याला _सर्वोत्तम बसणारी रेषा_ म्हणतात, [एका समीकरणाने](https://en.wikipedia.org/wiki/Simple_linear_regression) व्यक्त केली जाऊ शकते:
>
> ```
> Y = a + bX
> ```
>
> `X` हा 'स्पष्टीकरणात्मक चल' आहे. `Y` हा 'आश्रित चल' आहे. रेषेचा उतार `b` आहे आणि `a` हा y-अवरोधक आहे, जो `X = 0` असताना `Y` ची किंमत दर्शवितो.
> `X` हा 'स्पष्टीकरणात्मक चल' (explanatory variable) आहे. `Y` हा 'आश्रित चल' (dependent variable). रेषेचा उतार `b` आहे आणि `a` हा y-अक्षावर छेदनबिंदू आहे, जो `X = 0` असताना `Y` चे मूल्य दाखवतो.
>
>
> सर्वप्रथम, उतार `b` मोजा. इन्फोग्राफिक [जेन लूपर](https://twitter.com/jenlooper) यांनीतयार केला आहे.
>
> दुसऱ्या शब्दांत, आपल्या कद्दू डेटाच्या मूळ प्रश्नासंबंधात: "महिन्यानुसार कद्दूच्या किंमतीची भाकीत करा", `X` ची किंमत असेल आणि `Y` विक्रीचा महिना असेल.
> दुसऱ्या शब्दांत, आणि आपल्या भोपळा डेटाच्या मूळ प्रश्नाकडे पाहता: "महिन्यानुसार भोपळा प्रति बुशेल किंमत भाकीत करा," `X` ही किंमत आणि `Y` ही विक्रीचा महिना असेल.
>
>
>
> `Y` ची किंमत काढा. जर तुम्ही सुमारे $4 देत असाल, तर नक्की एप्रिल असावा! इन्फोग्राफिक द्वारे [जेन लूपर](https://twitter.com/jenlooper)
> `Y` ची किंमत काढा. जर आपण सुमारे $4 देत असाल, तर तो एप्रिल असायला हवा! इन्फोग्राफिक [जेन लूपर](https://twitter.com/jenlooper)
>
> गणिताची रेषा काढण्यासाठी उतार दर्शविला पाहिजे, जो अवरोधकावर अवलंबून असतो, किंवा `X = 0` असताना `Y` कोठे आहे हे दर्शवितो.
> हे गणित जो रेषा काढते तो रेषेचा उतार दाखवतो, जो छेदनबिंदूवरही अवलंबून असतो, म्हणजे `X=0` असताना `Y` कुठे असते.
>
> तुम्ही [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) वेबसाइटवर या गणनांची पद्धत पाहू शकता. तसेच, [हा लिस्ट-स्क्वेअर कॅल्क्युलेटर](https://www.mathsisfun.com/data/least-squares-calculator.html) भेट देऊन संख्या कशी रेषेवर परिणाम करतात ते बघा.
> आपण [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) या संकेतस्थळावर या मूल्यांच्या गणनेची पद्धत पाहू शकता. तसेच [Least-squares calculator](https://www.mathsisfun.com/data/least-squares-calculator.html) येथे जाऊन संख्यांचे मूल्य रेषेवर कसे परिणाम करतात ते पाहू शकता.
## सहसंबंध
अजून एक शब्द समजून घेणे आवश्यक आहे: दिलेल्या `X` आणि `Y` चलांमधील **सहसंबंध गुणांक**. स्कॅटरप्लॉट वापरून तुम्ही जलदपणे हा गुणांक पाहू शकता. जर डेटा बिंदू एका नीटसर रेषेत विखुरलेले असतील तर उच्च सहसंबंध असतो, परंतु जर डेटा बिंदू सर्वत्र विखुरलेले असतील तर सहसंबंध कमी असतो.
आणखी एक समजण्याचे टर्म म्हणजे दिलेल्या X आणि Y चलांमधील **सहसंबंध गुणांक**. स्कॅटरप्लॉट वापरून आपण हा गुणांक पटकन देखील पाहू शकता. जर पॉइंट्स एक नीटसर रेषेत विखुरलेले असतील तर त्यात उच्च सहसंबंध आहे, परंतु सर्वत्र विखुरलेल्या पॉइंट्ससह रेषेत कमी सहसंबंध आहे.
योग्य रिग्रेशन मॉडेल असेल ज्याचा सहसंबंध गुणांक (0 पेक्षा जवळजवळ 1) लिस्ट-स्क्वेअर रिग्रेशन पद्धतीने रेषा सह असतो.
एक चांगला लिनीअर रिग्रेशन मॉडेल तो असेल ज्यात लीस्ट-स्क्वेअर्स रिग्रेशन पद्धतीने रेषेचा सहसंबंध गुणांक जास्त (0 पेक्षा 1 च्या जवळ) असेल.
✅ या धड्याशी संबंधित नोटबुक चालवा आणि महिन्यांवरून किमतींचा स्कॅटरप्लॉट पहा. कद्दू विक्रीसाठी महिना व किमतींचा संबंध तुमच्या दृश्य समजुतीनुसार उच्च किंवा कमी सहसंबंध दर्शवितो का? जर तुम्ही `Month` ऐवजी *वर्षातील दिवस* (उदा. वर्षाच्या सुरुवातीपासून किती दिवस झाले) वापरला तर सहसंबंध बदलतो का?
✅ या धड्याला संलग्न notebook चालवा आणि महिना ते किंमत टेबल पाहा. भोपळा विक्रीसाठी महिना ते किंमत डेटा आपल्या दृश्यात्मक मुल्यांकनानुसार उच्च की कमी सहसंबंध दाखवतो? जर आपण `महिना` ऐवजी अधिक सूक्ष्म मोजमाप वापरले, उदा. *वर्षातील दिवस* (वर्षाच्या सुरुवातीपासून वादलेले दिवस) तर ते बदलते का?
खालील कोडमध्ये, समजा आपण डेटा स्वच्छ केला आहे, आणणि `new_pumpkins` नावाचा डेटा फ्रेम मिळवला आहे, जो पुढीलप्रमाणे असेल:
खालील कोडमध्ये, आपण गृहित धरू की आम्ही डेटा स्वच्छ केला आहे आणि `new_pumpkins` नावाचा डेटा फ्रेम तयार केला आहे, जो खालीलप्रमाणे दिसू शकतो:
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
> डेटा स्वच्छ करण्याचा कोड `notebook.ipynb` मध्ये उपलब्ध आहे. आपण मागील धड्यासारखेच स्वच्छ करण्याचे चरण पार पाडले आहेत आणि खालील अभिव्यक्तीने `DayOfYear` स्तंभ काढला आहे:
> डेटा स्वच्छ करण्यासाठीचा कोड [`notebook.ipynb`](notebook.ipynb) मध्ये उपलब्ध आहे. आपण मागील धड्याप्रमाणेच स्वच्छता केली आहे, आणि `DayOfYear` स्तंभ खालील व्यक्तीकरण वापरून काढला आहे:
आता तुम्हाला रेखीय रिग्रेशनमागील गणित समजले आहे, तर आपण एक रिग्रेशन मॉडेल तयार करूया आणि बघूया की कोणता कद्दू पॅकेज सर्वोत्तम किम्मती असेल याचा अंदाज लावता येतो का. कोणीतरी काही सणासाठी कद्दू विकत घेणार असेल तर हे माहिती त्यांच्या खरेदीचे ऑप्टिमायझेशन करण्यास मदत करेल.
आता आपण लिनीअर रिग्रेशन मागील गणित समजत असल्याने, चला एक रिग्रेशन मॉडेल तयार करू जेणेकरून आपण भोपळ्यांच्या पैकेजेसपैकी कोणत्या पैकची किंमत सर्वोत्तम असेल हे भाकीत करू शकू. एखाद्या सणासाठी भोपळा खरेदी करणाऱ्याला त्यांच्या खरेदीत अनुकूल करण्यासाठी ही माहिती आवश्यक असू शकते.
## सहसंबंध शोधत आहोत
[](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
> 🎥 वरील चित्रावर क्लिक करा सहसंबंधाचा थोडक्यात व्हिडिओसाठी.
> 🎥 वरील प्रतिमेवर क्लिक करा सहसंबंध या विषयाचा संक्षिप्त व्हिडिओ आढावा पाहण्यासाठी.
मागील धड्यात तुम्ही कदाचित पाहिले असेल की वेगवेगळ्या महिन्यांमध्ये सरासरी किंमती अशा आहेत:
मागील धड्यात आपण कदाचित पाहिले असाल की वेगवेगळ्या महिन्यांची सरासरी किंमत अशी दिसते:
<imgalt="Average price by month"src="../../../../translated_images/mr/barchart.a833ea9194346d76.webp"width="50%"/>
हे सूचित करते की किमान काही सहसंबंध असावा, आणि आपण रेखीय रिग्रेशनच्या मदतीने `Month` व `Price` किंवा `DayOfYear` व `Price` मध्ये संबंध भाकित करण्याचा प्रयत्न करू शकतो. खालील स्कॅटरप्लॉट `DayOfYear` व `Price` मधील संबंध दाखवते:
हे सूचित करते की काही सहसंबंध असावा, आणि आपण `Month` आणि `Price` किंवा `DayOfYear` आणि `Price` यांच्या मधील संबंध भाकीत करण्यासाठी लिनीअर रिग्रेशन मॉडेल प्रशिक्षण देऊ शकतो. खालील स्कॅटरप्लॉट दुसऱ्या संबंधाचा दाखला देतो:
<imgalt="Scatter plot of Price vs. Day of Year"src="../../../../translated_images/mr/scatter-dayofyear.bc171c189c9fd553.webp"width="50%"/>
सहसंबंध 0 पेक्षा कमी आणि फार लहान वाटत आहे, `Month` करीता -0.15 आणि `DayOfMonth` करीता -0.17, पण एक महत्त्वाचा संबंध असू शकतो. वेगवेगळ्या कद्दू प्रकारानुसार किंमतींचे वेगळे क्लस्टर दिसत आहेत. या संकल्पनेची पुष्टी करण्यासाठी, प्रत्येक कद्दू वर्ग वेगळ्या रंगात प्लॉट करूया. `scatter` प्लॉटिंग फंक्शनला `ax` पॅरामीटर पास करून आपण सर्व बिंदू एका ग्राफवर दाखवू शकतो:
अशी दिसते की सहसंबंध फारसा मोठा नाही, `Month` साठी -0.15 आणि `DayOfYear` साठी -0.17, पण कदाचित दुसरा महत्त्वाचा संबंध असू शकतो. वेगवेगळ्या भोपळा विविधतांच्या किंमती वेगवेगळ्या संचांमध्ये दिसत आहेत. ही कल्पना पुष्टी करण्यासाठी, प्रत्येक भोपळा वर्ग वेगळ्या रंगात दाखवू या. `scatter` फंक्शनला `ax` पॅरामीटर देऊन आपण सर्व पॉइंट्स एकाच ग्राफवर प्लॉट करू शकतो:
```python
ax=None
@ -142,7 +142,7 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
<imgalt="Scatter plot of Price vs. Day of Year"src="../../../../translated_images/mr/scatter-dayofyear-color.65790faefbb9d54f.webp"width="50%"/>
आपल्या तपासणीत असे दिसते की विविध प्रकार किम्मतीवर विक्रीच्या तारखेच्या तुलनेत अधिक प्रभाव टाकतात. हे खालील बार ग्राफवरून दिसू शकते:
आपल्या तपासणीने सुचवले आहे की विविधतेचा एकूण किंमतीवर खूप परिणाम होतो, जास्त की विक्री तारखा. हे आम्ही बार ग्राफवर पाहू शकतो:
<imgalt="Scatter plot of Price vs. Day of Year"src="../../../../translated_images/mr/pie-pumpkins-scatter.d14f9804a53f927e.webp"width="50%"/>
जर आपण `Price` आणि `DayOfYear` यांच्यात `corr` फंक्शनने सहसंबंध काढला तर आपल्याला सुमारे `-0.27` मिळेल - म्हणजे एक भाकीत करणारा मॉडेल तयार करणे योग्य आहे.
आता `Price` आणि `DayOfYear` मधील सहसंबंध काढल्यास `corr` फंक्शन वापरून साधारण `-0.27` येईल - जे दर्शवते की भाकीत करणारे मॉडेल तयार करणे अर्थपूर्ण आहे.
> रेखीय रिग्रेशन मॉडेल प्रशिक्षणापूर्वी आपला डेटा स्वच्छ असणे महत्त्वाचे आहे. रेखीय रिग्रेशनमध्ये रिकाम्या मूल्यांबरोबर चांगले काम होत नाही, त्यामुळे रिकाम्या सेल्स काढून टाकणे योग्य आहे:
> लिनीअर रिग्रेशन मॉडेल प्रशिक्षण देण्यापूर्वी, डेटा स्वच्छ असल्याची खात्री करणे महत्त्वाचे आहे. लिनीअर रिग्रेशन रिकाम्या मूल्यांसह चांगले काम करत नाही, म्हणून रिकाम्या सेल्स काढणे योग्य ठरते:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
दुसरी पद्धत म्हणजे त्या रिकाम्या सेल्सना संबंधित कॉलममधल्या सरासरी मूल्याने भरून काढणे.
अधिक एक पद्धत म्हणजे रिकाम्या जागा त्या संबंधित स्तंभाच्या सरासरीने भरणे.
## सोपी रेखीय रिग्रेशन
## साधी लिनीअर रिग्रेशन
[](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn")
> 🎥 वरील चित्रावर क्लिक करा रेखीय आणि बहुपद रिग्रेशनचा थोडक्यात व्हिडिओसाठी.
> 🎥 वरील प्रतिमेवर क्लिक करा लिनीअर आणि बहुपदीय रिग्रेशनचा संक्षिप्त व्हिडिओ आढावा पाहण्यासाठी.
आपल्या रेखीय रिग्रेशन मॉडेलचे प्रशिक्षण करण्यासाठी आम्ही **Scikit-learn** लायब्ररी वापरणार आहोत.
आम्ही लिनीअर रिग्रेशन मॉडेल प्रशिक्षणासाठी **Scikit-learn** लायब्ररी वापरणार आहोत.
```python
from sklearn.linear_model import LinearRegression
@ -183,48 +183,48 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
आम्ही इनपुट मूल्ये (वैशिष्ट्ये) आणि अपेक्षित आउटपुट (लेबल) वेगळ्या numpy array मध्ये विभागतो:
आम्ही इनपुट मूल्ये (वैशिष्ट्ये) आणि अपेक्षित आउटपुट (लेबल) वेगळ्या numpy arrays मध्ये विभाजित करून सुरुवात करतो:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> लक्षात घ्या की इनपुट डेटावर आम्हाला `reshape` करावे लागले कारण Linear Regression पॅकेजला ते योग्यरित्या समजावे लागते. Linear Regression ला 2D-array इनपुट म्हणून अपेक्षा असते, जिथे प्रत्येक रांगेत इनपुट वैशिष्ट्यांचा वेक्टर असतो. आमच्याकडे फक्त एक इनपुट असल्याने, N×1 आकाराचा array आवश्यक आहे, जिथे N हा डेटासेटचा आकार आहे.
> लक्षात घ्या की Linear Regression पॅकेज योग्यरित्या समजावून घेण्यासाठी आम्हाला इनपुट डेटावर `reshape` करावी लागली. लिनीअर रिग्रेशन 2D-array इनपुट म्हणून अपेक्षित असतो, ज्यामध्ये प्रत्येक ओळ इनपुट वैशिष्ट्यांच्या व्हेक्टरसाठी असते. आमच्या बाबतीत, फक्त एक इनपुट असल्यामुळे, N×1 आकाराचा arrary हवा आहे, जिथे N म्हणजे डेटासेटचा आकार.
नंतर, आम्हाला डेटा प्रशिक्षण आणि चाचणी संचात विभागावा लागतो, जेणेकरून प्रशिक्षणानंतर आमचे मॉडेल सत्यापित करता येईल:
आणि मग, आपण डेटा प्रशिक्षण आणि तपासणी सेटमध्ये विभागतो, जेणेकरून प्रशिक्षणानंतर आपल्याला मॉडेल तपासता येईल:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
शेवटी, Lineal Regression मॉडेलचे प्रशिक्षण फक्त दोन ओळींमध्ये होते. आम्ही`LinearRegression` ऑब्जेक्ट तयार करतो, आणि `fit` पद्धतीने आमच्या डेटावर ते बसवतो:
शेवटी, वास्तविक लिनीअर रिग्रेशन मॉडेलचे प्रशिक्षण फक्त दोन ओळींमध्ये होते. आपण`LinearRegression` ऑब्जेक्ट परिभाषित करतो, आणि `fit` पद्धत वापरून त्यास आपल्या डेटावर लागू करतो:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`LinearRegression` ऑब्जेक्ट`fit` केल्यानंतर सर्व रेग्रेशनचे गुणांक समाविष्ट करतो, जे `.coef_` प्रॉपर्टीने प्रवेश केले जाऊ शकतात. आपल्या बाबतीत, फक्त एकच गुणांक आहे, जो सुमारे `-0.017` असावा. याचा अर्थ किंमती काळाप्रमाणे थोड्या प्रमाणात कमी होतात, पण फार नाही, दररोज सुमारे 2 सेंट. आपण `lin_reg.intercept_` वापरून रेग्रेशनचा Y-अक्षाशी छेदन बिंदू देखील प्राप्त करू शकतो - आपल्या बाबतीत हा सुमारे `21` असेल, जो वर्षाच्या सुरुवातीच्या किमतीचा दर्शवितो.
`fit` केल्यानंतरचा `LinearRegression` ऑब्जेक्टमध्ये रिग्रेशनचे सर्व गुणांक असतात, जे `.coef_` प्रॉपर्टी वापरून पाहता येतात. आपल्या प्रकरणात, फक्त एक गुणांक आहे, जो सुमारे `-0.017` असावा. याचा अर्थ किंमती वेळेनुसार थोड्या प्रमाणात कमी होतात, पण फार नाही, दररोज सुमारे 2 सेंट्स. आपण रिग्रेशनचा Y-ऍक्सिसशी छेद बिंदू `lin_reg.intercept_` वापरून पाहू शकतो - आमच्या प्रकरणात तो सुमारे `21` असेल, जे वर्षाच्या सुरुवातीच्या किंमतींना दर्शवते.
आपल्या मॉडेलची अचूकता पाहण्यासाठी, आपण चाचणी डेटासेटवरील किंमतींची भाकित करू शकतो, आणि नंतर आपल्या भाकिते अपेक्षित किमतींपेक्षा किती जवळ आहेत हे मोजू शकतो. हे सर्व अपेक्षित आणि भाकित मूल्ये यांच्यातील चौकटांत फरकांचे सरासरी (MSE) मेट्रिक वापरून करू शकतो.
आपल्या मॉडेलची अचूकता पाहण्यासाठी, आपण टेस्ट डेटासेटवर किंमतींचा अंदाज लावू शकतो, आणि नंतर आपल्या अंदाजित किंमती अपेक्षित किंमतींशी किती जवळ आहेत हे मोजू शकतो. हे root mean square error (RMSE) मेट्रिक वापरून केले जाऊ शकते, जे अपेक्षित आणि अंदाजित किंमतींतील सर्व वर्ग फरकांचा मूळ सरासरी आहे.
आपला त्रुटी सुमारे 2 पॉइंट्स असून सुमारे ~17% आहे. फार चांगले नाही. मॉडेल क्वालिटीचा आणखी एक निर्देशांक म्हणजे **निर्धारण गुणांक**, जो अशी प्राप्त केला जाऊ शकतो:
आपला त्रुटी सुमारे 2 गुण आहे, जो ~17% आहे. फारच चांगले नाही. मॉडेल गुणवत्ता दर्शविणारा आणखी एक निर्देशांक म्हणजे **निर्धारण गुणांक** (coefficient of determination), जो खालीलप्रमाणे मिळवता येतो:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
जर मूल्य 0 असेल, तर त्याचा अर्थ आहे की मॉडेल इनपुट डेटाला लक्षात घेत नाही आणि *सर्वात वाईट रेषीय भाकितकार* म्हणून काम करते, जे फक्त परिणामाचे सरासरी मूल्य आहे. 1 ची किंमत म्हणजे आपण सर्व अपेक्षित आउटपुट्स परिपूर्णपणे भाकित करू शकतो. आपल्या बाबतीत, हा गुणांक सुमारे 0.06 आहे, जे खूप कमी आहे.
जर हा मूल्य 0 असेल, तर याचा अर्थ मॉडेल इनपुट डेटा लक्षात घेत नाही आणि तो *सर्वात वाईट रेषीय भाकीतकार* म्हणून काम करतो, जो फक्त निकालाचा सरासरी मूल्य आहे. 1 ची किंमत म्हणजे आपण सर्व अपेक्षित आउटपुट परिपूर्णपणे भाकीत करू शकतो. आमच्या प्रकरणात, हा गुणांक साधारणपणे 0.06 आहे, जो खूप कमी आहे.
आपण चाचणी डेटा आणि रेग्रेशन रेषा एकत्र प्लॉट करू शकतो ज्यामुळे रेग्रेशन आपल्या बाबतीत कसे कार्य करते हे चांगल्या प्रकारे दिसते:
आपण टेस्ट डेटासह रिग्रेशन लाइनचा ग्राफ सुद्धा पाहू शकतो, ज्यामुळे रिग्रेशन कसे काम करते हे चांगल्या प्रकारे समजेल:
रेषीय रेग्रेशनचा दुसरा प्रकार आहे बहुपदी रेग्रेशन. कधी कधी व्हेरीएबल्समध्ये रेषीय संबंध असतो - जितका भोपळा खंडफळाने मोठा तितकी किंमत जास्त - पण कधी कधी हे संबंध समतल किंवा सरळ रेषा म्हणून दर्शवू शकत नाहीत.
रेषीय फलनाचा आणखी एक प्रकार म्हणजे बहुपदीय रिग्रेशन (Polynomial Regression). कधी कधी चलांच्या दरम्यान रेषीय संबंध असतो - जसे की भोपळ्याचा आयतन जितका मोठा, तितकी किंमत जास्त - पण कधी या संबंधांना प्लेन किंवा सरळ रेषेत प्रदर्शित करता येत नाही.
✅ येथे [अधिक काही उदाहरणे](https://online.stat.psu.edu/stat501/lesson/9/9.8) आहेत ज्यासाठी बहुपदी रेग्रेशन वापरले जाऊ शकते
✅ येथे [अजून काही उदाहरणे](https://online.stat.psu.edu/stat501/lesson/9/9.8) आहेत, ज्यात बहुपदीय रिग्रेशन वापरता येऊ शकतो
दिनांक आणि किंमत यांच्यातील संबंध पुन्हा एकदा पाहा. हा स्कॅटरप्लॉट आवश्यकतेनुसार नेहमी सरळ रेषेत विश्लेषित व्हायला हवा का? किंमती कधी बदलत नाहीत का? अशा केसमध्ये आपण बहुपदी रेग्रेशन वापरून पाहू शकतो.
“तारीख” आणि “किंमत” यांच्यामधील संबंध पुन्हा पाहा. हा scatterplot असा दिसतो का की तो नेहमीच सरळ रेषेने विश्लेषित केला पाहिजे? किंमती बदलू शकतात का? या परिस्थितीत, आपण बहुपदीय रिग्रेशन वापरू शकतो.
✅ बहुपदी गणितीय अभिव्यक्ती आहेत ज्यात एक किंवा अधिक चल आणि गुणांक असू शकतात
✅ बहुपदी हे गणितीय अभिव्यक्ती आहेत ज्यात एक किंवा अधिक चल आणि गुणांक असू शकतात
बहुपदी रेग्रेशन वक्र रेषा तयार करते ज्यामुळे नॉन-रेषीय डेटा चांगल्या प्रकारे फिट होतो. आपल्या बाबतीत, जर आपण `DayOfYear` चा वर्गमूल इनपुटमध्ये समाविष्ट केला तर आपला डेटा एक पराबॉलिक वक्राद्वारे फिट करू शकतो, ज्याची किमान किंमत वर्षातील एका विशिष्ट बिंदूवर असेल.
बहुपदीय रिग्रेशन गैररेषीय डेटाला चांगल्या प्रकारे बसवण्यासाठी वक्र रेषा तयार करतो. आपल्या प्रकरणात, जर आपण इनपुट डेटामध्ये ‘DayOfYear’ या चलाचा वर्ग महत्त्वाचा समाविष्ट केला, तर आपल्याला आपला डेटा पॅराबोलिक वक्रासह बसवता येईल, ज्याचा किमान बिंदू वर्षाच्या एका विशिष्ट ठिकाणी असेल.
स्किट-लर्नमध्ये डेटा प्रोसेसिंगच्या विविध टप्प्यांना एकत्रित करण्यासाठी उपयुक्त [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) आहे. एक**pipeline** म्हणजे **estimators** ची साखळी आहे. आपल्या बाबतीत, आपण असा pipeline तयार करू जे प्रथम polynomial features जोडेल आणि नंतर रेग्रेशन ट्रेन करेल:
Scikit-learn मध्ये डेटा प्रक्रिया एकत्र करण्यासाठी उपयुक्त [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) उपलब्ध आहे. **pipeline** म्हणजे **estimators** चा साखळ. आपल्या प्रकरणात, आपण एक पाइपलाइन तयार करू ज्यात आधी बहुपदीय गुणधर्म जोडले जातील आणि नंतर रिग्रेशन प्रशिक्षित केला जाईल:
```python
from sklearn.preprocessing import PolynomialFeatures
`PolynomialFeatures(2)` वापरून म्हणजे इनपुट डेटामधून सर्व दुसऱ्या क्रमांकाचे बहुपदी जोडले जातील. आपल्या बाबतीत याचा अर्थ फक्त `DayOfYear`<sup>2</sup> असेल, पण दोन इनपुट व्हेरीएबल्स X आणि Y असल्यास, हे X<sup>2</sup>, XY आणि Y<sup>2</sup> जोडेल. आपण इच्छित असल्यास अधिक उच्च क्रमांकाचे बहुपदी देखील वापरू शकतो.
`PolynomialFeatures(2)` वापरल्याचा अर्थ आपल्याला इनपुट डेटातील सर्व दुसऱ्या दर्जाचा बहुपदीय समाविष्ट करायचा आहे. आपल्या बाबतीत म्हणजे फक्त `DayOfYear`<sup>2</sup> असेल, पण जर दोन इनपुट चल X आणि Y असतील, तर हे X<sup>2</sup>, XY आणि Y<sup>2</sup> जोडेल. आपण हवे असल्यास उच्च दर्जाचे बहुपदी देखील वापरू शकतो.
Pipelines मूळ `LinearRegression` ऑब्जेक्टसारखे वापरू शकतो, म्हणजे आपण pipeline ला `fit` करू शकतो आणि नंतर `predict` वापरून भाकित प्राप्त करू शकतो. खाली ग्राफमध्ये चाचणी डेटा आणि अंदाजे वक्र दाखवला आहे:
पाइपलाइनचा वापर `LinearRegression` ऑब्जेक्टसारखा केला जाऊ शकतो, म्हणजे आपण पाइपलाइनला `fit` करू शकतो आणि नंतर `predict` वापरून अंदाज मिळवू शकतो. खाली ग्राफिक दाखविते की टेस्ट डेटा आणि सुमारे जवळचे वक्र कसे दिसते:
बहुपदी रेग्रेशन वापरून आपल्याला थोडा कमी MSE आणि अधिक निर्धारण गुणांक मिळू शकतो, पण फारसे नाही. आपल्याला इतर वैशिष्ट्ये देखील विचारात घ्यावी लागतील!
बहुपदीय रिग्रेशन वापरून आपल्याला थोडे कमी MSE आणि जास्त निर्धारण मिळू शकते, पण महत्त्वपूर्ण फरक नाही. आपल्याला अन्य गुणधर्म देखील लक्षात घ्यावे लागतील!
> आपण पाहू शकता की किमान भोपळ्याच्या किंमती हॅलोवीनच्या सुमारास दिसतात. तुम्ही हे कसे समजावून सांगू शकता?
> आपण पाहू शकता की, भोपळ्यांच्या किमती Halloween च्या सुमारास जवळजवळ किमान असतात. आपण हे कसे समजावता?
🎃 अभिनंदन, तुम्ही अशी मॉडेल तयार केली आहे जी पाय भोपळ्याच्या किंमती भाकित करण्यात मदत करू शकते. तुम्ही हेच प्रोसिजर सर्व भोपळ्यांच्या प्रकारांसाठी पुनरावृत्ती करू शकता, पण ते फारच वेळखाऊ होईल. चला आता शिकूया की आपल्या मॉडेलमध्ये भोपळ्याचा प्रकार कसा विचारात घ्यावा!
🎃 अभिनंदन, आपण असा मॉडेल बनवला आहे ज्याचा वापर पाय भोपळ्यांच्या किंमती भाकीत करण्यासाठी होऊ शकतो. आपण कदाचित सारखा प्रक्रिया सर्व भोपळ्यांच्या प्रकारांसाठी करू शकता, पण ते वेळखाऊ होईल. आता आपण आपल्या मॉडेलमध्ये भोपळ्याचा प्रकार कसा समाविष्ट करायचा ते शिकू!
## श्रेणीगत वैशिष्ट्ये
## वर्गवारी गुणधर्म (Categorical Features)
आदर्श जगात, आपल्याला वेगवेगळ्या भोपळा प्रकारांसाठी किंमती सारखे मॉडेल वापरून भाकित करायचे आहे. तथापि, `Variety` स्तंभ `Month` सारख्या स्तंभांपेक्षा वेगळा आहे, कारण त्यात संख्या नसलेली (गैर-सांख्यिक) मूल्ये असतात. अशा स्तंभांना **categorical** म्हणतात.
आदर्श जगात आपल्याला वेगवेगळ्या भोपळ्यांच्या प्रकारांसाठी किंमती भाकीत करायच्या असतात, तोही समान मॉडेल वापरून. पण `Variety` कॉलम इतर कॉलम्ससारखा नाही जसे `Month`, कारण त्यात अंकात्मक नसलेले मूल्य आहे. अशा कॉलम्सना **categorical** म्हणतात.
[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 वरील प्रतिमा क्लिक करा, जेथे श्रेणीगत वैशिष्ट्य वापरण्याचे संक्षिप्त व्हिडिओ अवलोकन आहे.
> 🎥 वरच्या चित्रावर क्लिक करा, वर्गवारी गुणधर्म वापरून थोडक्यात व्हिडिओ पाहण्यासाठी.
येथे तुम्ही पाहू शकता की सरासरी किंमत प्रकारावर कशी अवलंबून असते:
येथे आपण पाहू शकतो की सरासरी किंमत प्रकारावर कशी अवलंबून आहे:
<imgalt="Average price by variety"src="../../../../translated_images/mr/price-by-variety.744a2f9925d9bcb4.webp"width="50%"/>
प्रकार विचारात घेण्यासाठी, आपल्याला प्रथम त्याला संख्यात्मक स्वरूपात रूपांतरित करणे आवश्यक आहे, किंवा **encode** करणे आवश्यक आहे. आपण हे करण्याचे काही मार्ग आहेत:
प्रकार विचारात घेण्यासाठी, आपल्याला प्रथम त्याला अंकात्मक स्वरूपात रूपांतरित करणे किंवा **कोडिंग** करणे आवश्यक आहे. असे करण्याचे काही मार्ग आहेत:
* सोप्या **संख्यात्मक एनकोडिंग** मध्ये वेगवेगळ्या प्रकारांची यादी तयार केली जाते आणि नंतर त्या यादीतील क्रमांकाने प्रकाराचे नाव बदलले जाते. रेषीय रेग्रेशनसाठी हे चांगले नाही, कारण रेषीय रेग्रेशन त्या क्रमांकाचे वास्तविक अंकात्मक मूल्य घेते आणि त्याला गुणांशी जमा करते. आपल्या बाबतीत, मूल्य आणि किंमत यांच्यातील संबंध स्पष्टपणे नॉन-रेखीय आहे, जरी सूचकांची विशिष्ट क्रमशः वितरण केली द्या.
* **One-hot एनकोडिंग** मध्ये `Variety` कॉलम ४ वेगळ्या कॉलमने बदलले जाते, प्रत्येक प्रकारासाठी एक कॉलम. प्रत्येक कॉलममध्ये `1` असेल जर संबंधित ओळ दिलेल्या प्रकाराची असेल, नाहीतर `0`. याचा अर्थ रेषीय रेग्रेशनमध्ये पुढील चार गुणांक असतील, प्रत्येक भोपळा प्रकारासाठी, जे त्या प्रकाराच्या "सुरुवातीच्या किंमतीसाठी" जबाबदार आहेत (किंवा "अतिरिक्त किंमत" म्हणावे).
* सोप्या **न्यूमेरिक एनकोडिंग** मध्ये वेगवेगळ्या प्रकारांसाठी एक तक्ता तयार केला जातो, आणि नंतर त्या तक्त्यातील इंडेक्सनी नाम बदला जातो. पण रेषीय रिग्रेशनसाठी हा चांगला विचार नाही, कारण रेषीय रिग्रेशन इंडेक्समधील अंकात्मक मूल्य घेतो आणि त्याला गुणांकाने गुणून निकालात जोडतो. आमच्या प्रकरणात इंडेक्स नंबर आणि किंमतीत गैररेषीय संबंध स्पष्ट आहे, अगदी आपण इंडेक्स विशिष्ट क्रमाने ठेवला तरीही.
* **वन-हॉट एनकोडिंग** मध्ये `Variety` कॉलमला 4 वेगळ्या कॉलम्समध्ये बदलले जाते, प्रत्येक कॉलम एका प्रकारासाठी. प्रत्येक कॉलम `1` असेल जर त्या रो वर दिलेल्या प्रकाराचा डेटा असेल, आणि 0 अन्यथा. याचा अर्थ, रेषीय रिग्रेशनमध्ये चार गुणांक असतील, एक प्रत्येक भोपळ्याच्या प्रकारासाठी, जो त्या खास प्रकारासाठी “प्रारंभ किंमती” (किंवा “अतिरिक्त किंमती”) साठी जबाबदार असेल.
खालील कोडमध्ये आपण variety कसा one-hot encode करू शकतो हे दाखवले आहे:
खालील कोड वन-हॉट एनकोडिंग कसा करायचा याचे उदाहरण दाखवतो:
वन-हॉट एनकोडेड variety वापरून रेषीय रेग्रेशन ट्रेन करण्यासाठी, आपल्याला फक्त `X` आणि `y` डेटा योग्यरित्या प्रारंभ करावा लागेल:
वन-हॉट एनकोडिंग केलेल्या प्रकाराचा इनपुट म्हणून वापरून रेषीय रिग्रेशन प्रशिक्षित करण्यासाठी, आपल्याला फक्त `X` आणि `y` डेटा योग्य प्रकारे इनिशियलाइझ करावा लागतो:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
उर्वरित कोड तेच आहे जे आपण वर रेषीय रेग्रेशनसाठी वापरले होते. आपण प्रयत्न केले तर पाहाल की MSE सुमारे तसंच आहे, पण निर्धारण गुणांक खूप जास्त (~77%) मिळतो. अधिक अचूक भाकितांसाठी आपल्याला अधिक श्रेणीगत वैशिष्ट्ये आणि संख्यात्मक वैशिष्ट्ये, जसे की `Month` किंवा `DayOfYear` देखील विचारात घ्यावे लागतील. सर्व वैशिष्ट्यांचा एक मोठा अरे मिळवण्यासाठी, आपण`join` वापरू शकतो:
उर्वरित कोड अगदी अगोदर वापरलेले रेषीय रिग्रेशनसारखेच आहे. जर आपण हे वापरले तर आपल्याला रविवारी चतुर्थांश त्रुटी सुमारे अगदी समान मिळेल, पण निर्धारण गुणांक खूप जास्त (~77%) मिळेल. अजूनही अचूक भाकितांसाठी, आपण अनेक वर्गवारी गुणधर्म तसेच अंकात्मक गुणधर्म जसे की `Month` किंवा `DayOfYear` देखील विचारात घेऊ शकतो. सगळे गुणधर्म एकत्र करण्यासाठी`join` वापरू शकतो:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -319,11 +319,11 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
येथे आपण `City` आणि `Package` प्रकार देखील विचारात घेत आहोत, ज्यामुळे MSE 2.84 (10%) आणि निर्धारण 0.94 मिळते!
येथे आपण `City` आणि `Package` प्रकार देखील विचारात घेतले आहेत, ज्यामुळे MSE 2.84 (10%) आणि निर्धारण 0.94 मिळतो!
## सर्व एकत्र करणे
## एकत्र करून सर्व काही
सर्वात चांगले मॉडेल तयार करण्यासाठी, आपण वरील उदाहरणातील एकत्रित (वन-हॉट एनकोडेड श्रेणीगत + संख्यात्मक) डेटा Polynomial Regression सह वापरू शकतो. आपल्यासाठी पूर्ण कोड खाली दिला आहे:
सर्वात उत्तम मॉडेल बनवण्यासाठी, आपण जोडलेले (वन-हॉट एनकोड केलेले वर्गवारी + अंकात्मक) डेटा वर बहुपदीय रिग्रेशनचा उपयोग करू शकतो. आपल्यासाठी येथे संपूर्ण कोड आहे:
```python
# प्रशिक्षण डेटा सेट करा
@ -336,14 +336,14 @@ y = new_pumpkins['Price']
# ट्रेन-टेस्ट विभाजन करा
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
हे आपल्याला जवळपास 97% चा सर्वोत्तम निर्धारण गुणांक आणि MSE=2.23 (~8% भाकित त्रुटी) देईल.
हे आपल्याला अंदाजे 97% ची सर्वोत्तम निर्धारण गुणांक आणि MSE=2.23 (~8% भाकीत त्रुटी) देईल.
| मॉडेल | MSE | निर्धारण |
|-------|-----|---------------|
|-------|-----|-----------|
| `DayOfYear` Linear | 2.77 (17.2%) | 0.07 |
| `DayOfYear` Polynomial | 2.73 (17.0%) | 0.08 |
| `Variety` Linear | 5.24 (19.7%) | 0.77 |
| सर्व वैशिष्ट्ये Linear | 2.84 (10.5%) | 0.94 |
| सर्व वैशिष्ट्ये Polynomial | 2.23 (8.25%) | 0.97 |
| सर्व गुणधर्म Linear | 2.84 (10.5%) | 0.94 |
| सर्व गुणधर्म Polynomial | 2.23 (8.25%) | 0.97 |
🏆 छान काम! तुम्ही एका धड्यात चार रेग्रेशन मॉडेल तयार केली, आणि मॉडेल क्वालिटी 97% पर्यंत सुधारली. अंतिम विभागात, आपण Logistic Regression बद्दल शिकाल ज्याद्वारे वर्ग निश्चित केले जातात.
🏆 छान! आपण एकाच धड्यात चार रिग्रेशन मॉडेल्स तयार केले आणि मॉडेल गुणवत्ता 97% पर्यंत सुधारली. रिग्रेशनच्या अंतिम विभागात, आपण Logistic Regression बद्दल शिकाल ज्याचा उपयोग वर्ग ठरविण्यासाठी होतो.
---
## 🚀आव्हान
या नोटबुकमध्ये विविध व्हेरीएबल्ससह प्रयत्न करा आणि correlation आणि मॉडेल अचूकतेत कसा संबंध आहे हे तपासा.
हा नोटबुक वापरून विविध चल तपासून पहा, आणि तपासा की सहसंबंध मॉडेलच्या अचूकतेशी कसा संबंधित आहे.
या धड्यात आपण Linear Regression बद्दल शिकले. इतरही महत्त्वाचे Regression प्रकार आहेत. Stepwise, Ridge, Lasso आणि Elasticnet तंत्रे वाचा. अधिक शिकण्यासाठी एक चांगला अभ्यासक्रम म्हणजे [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
या धड्यात आपण Linear Regression बद्दल शिकलो. रिग्रेशनचे आणखी महत्त्वाचे प्रकार आहेत. Stepwise, Ridge, Lasso आणि Elasticnet तंत्रांबद्दल वाचा. अधिक शिकण्यासाठी एक चांगला अभ्यासक्रम म्हणजे [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
हा दस्तऐवज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) चा वापर करून भाषांतरित केला आहे. आम्ही अचूकतेसाठी प्रयत्न करत असलो तरी, कृपया लक्षात घ्या की स्वयंचलित अनुवादांमध्ये चुका किंवा अचूकतेची कमतरता असू शकते. मूळ दस्तऐवज त्याच्या स्थानिक भाषेत अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी अनुवादाची शिफारस केली जाते. या अनुवादाच्या वापरातून उद्भवणाऱ्या कोणत्याही गैरसमजुती किंवा चुकांसाठी आम्ही जबाबदार नाही.
हा दस्तऐवज AI भाषांतर सेवेचा वापर करून [Co-op Translator](https://github.com/Azure/co-op-translator) द्वारे भाषांतरित केला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया याचा विचार करा की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा चुकीची माहिती असू शकते. मूळ दस्तऐवज त्याच्या स्थानिक भाषेतच अधिकृत स्रोत मानला पाहिजे. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतर शिफारसीय आहे. या भाषांतराच्या वापरामुळे उद्भवणाऱ्या चुका किंवा गैरसमजांसाठी आम्ही जबाबदार नाही.
या धड्यात, तुम्ही मागील धड्यातून जतन केलेल्या डेटासेटचा वापर कराल, ज्यामध्ये विविध प्रकारच्या स्वयंपाकशैलींविषयी संतुलित आणि स्वच्छ डेटा आहे.
या धड्यात, तुम्ही मागील धड्यापासून जतन केलेला डेटा संच वापराल ज्यामध्ये समतोल, स्वच्छ डेटा आहे जो पूर्णपणे काही विशिष्ट भोजनपरंपरांच्या बद्दल आहे.
तुम्ही या डेटासेटचा वापर विविध वर्गीकरण करणाऱ्या अल्गोरिदमसह कराल, जे _साहित्यांच्या गटावर आधारित राष्ट्रीय स्वयंपाकशैलीचा अंदाज_ लावतील. असे करताना, तुम्ही वर्गीकरण कार्यांसाठी अल्गोरिदम कसे वापरले जाऊ शकतात याबद्दल अधिक जाणून घ्याल.
तुम्ही या डेटा संचासह विविध वर्गीकरण करणाऱ्या अल्गोरिदम वापराल जे _एक गट घटकांवर आधारित राष्ट्रीय भोजनपरंपरा भाकीत_ करतात. तसे करताना, तुम्हाला वर्गीकरणाच्या कामांसाठी अल्गोरिदम कसे वापरले जाऊ शकतात याबद्दल अधिक माहिती मिळेल.
समजा तुम्ही [धडा 1](../1-Introduction/README.md) पूर्ण केला आहे, तर खात्री करा की _cleaned_cuisines.csv_ फाइल या चार धड्यांसाठी मूळ`/data` फोल्डरमध्ये आहे.
गृहीत धरा की तुम्ही [धडा 1](../1-Introduction/README.md) पूर्ण केला आहे, तर या चार धड्यांसाठी रूट`/data` फोल्डरमध्ये _cleaned_cuisines.csv_ नावाचा फाईल अवश्य आहे.
## व्यायाम - राष्ट्रीय स्वयंपाकशैलीचा अंदाज लावा
## सराव - राष्ट्रीय भोजनपरंपरा भाकीत करा
1. या धड्याच्या _notebook.ipynb_ फोल्डरमध्ये काम करताना, त्या फाइलसह Pandas लायब्ररी आयात करा:
1. या धड्याच्या _notebook.ipynb_ फोल्डरमध्ये काम करताना, तो फाईल आणि Pandas लायब्ररी इंपोर्ट करा:
आता तुमचा डेटा स्वच्छ आणि प्रशिक्षणासाठी तयार आहे, तुम्हाला कोणता अल्गोरिदम वापरायचा आहे ते ठरवावे लागेल.
तुमचा डेटा स्वच्छ आणि प्रशिक्षणासाठी तयार झाल्यानंतर, तुम्हाला या कामासाठी कोणता अल्गोरिदम वापरायचा हे ठरवावे लागेल.
Scikit-learn वर्गीकरणाला सुपरवाइज्ड लर्निंग अंतर्गत गटबद्ध करते, आणि त्या श्रेणीत तुम्हाला वर्गीकरणासाठी अनेक पद्धती सापडतील. [विविधता](https://scikit-learn.org/stable/supervised_learning.html) प्रथमदर्शनी थोडी गोंधळात टाकणारी वाटू शकते. खालील पद्धती वर्गीकरण तंत्रांचा समावेश करतात:
Scikit-learn वर्गीकरणाला Supervised Learning अंतर्गत समूहित करते आणि त्या श्रेणीत तुम्हाला वर्गीकरणाचे अनेक मार्ग सापडतील. [विविधता](https://scikit-learn.org/stable/supervised_learning.html) पहिल्या दृष्टीक्षेपात खूपच गुंतागुंतीची वाटू शकते. पुढील पद्धती सर्व वर्गीकरण तंत्रज्ञानाची उदाहरणे आहेत:
- रेषीय मॉडेल्स
- सपोर्ट व्हेक्टर मशीन
- स्टोकेस्टिक ग्रेडियंट डिसेंट
- जवळचे शेजारी
- गॉसियन प्रक्रिया
- निर्णय वृक्ष
- एन्सेम्बल पद्धती (मतदार वर्गीकरणकर्ता)
- मल्टीक्लास आणि मल्टीआउटपुट अल्गोरिदम (मल्टीक्लास आणि मल्टीलेबल वर्गीकरण, मल्टीक्लास-मल्टीआउटपुट वर्गीकरण)
- संयुक्त पद्धती (Ensemble methods, उदा. voting Classifier)
- मल्टिक्लास आणि मल्टिआउटपुट अल्गोरिदम (मल्टिक्लास आणि मल्टीलेबल वर्गीकरण, मल्टिक्लास-मल्टिआउटपुट वर्गीकरण)
> तुम्ही [डेटा वर्गीकृत करण्यासाठी न्यूरल नेटवर्क्सचा वापर](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification) देखील करू शकता, परंतु ते या धड्याच्या कक्षेबाहेर आहे.
> तुम्ही [न्यूरल नेटवर्क्स वापरून डेटा वर्गीकरण देखील करू शकता](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), पण तो या धड्याच्या परीघाबाहेर आहे.
### कोणता वर्गीकरणकर्ता निवडायचा?
### कोणता वर्गीकरण करणारा वापरायचा?
तर, तुम्ही कोणता वर्गीकरणकर्ता निवडावा? अनेक वेळा, काही वर्गीकरणकर्त्यांचा वापर करून चांगले परिणाम मिळतात का ते तपासणे हा एक मार्ग असतो. Scikit-learn [साइड-बाय-साइड तुलना](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) ऑफर करते, ज्यामध्ये KNeighbors, SVC दोन प्रकारे, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB आणि QuadraticDiscriminationAnalysis यांची तुलना केली जाते, आणि परिणाम व्हिज्युअल स्वरूपात दाखवले जातात:
तर, तुम्ही कोणता वर्गीकरण करणारा निवडावा? अनेक वेळा, अनेक वापरून आणि चांगले निकाल पाहून चाचणी करणे उपयुक्त असते. Scikit-learn तयार केलेल्या डेटासेटवर KNeighbors, SVC (दोन प्रकारे), GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB आणि QuadraticDiscriminantAnalysis यांची [पक्ष-द्वेष तुलना](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) देते आणि निकाल दृष्य स्वरूपात उत्पन्न करते:
> Scikit-learn च्या दस्तऐवजांवरून तयार केलेले प्लॉट्स

> प्लॉट्स Scikit-learn च्या दस्तऐवजात तयार केलेले आहेत
> AutoML हे काम सहज सोडवते, क्लाउडमध्ये या तुलना चालवून तुम्हाला तुमच्या डेटासाठी सर्वोत्तम अल्गोरिदम निवडण्याची परवानगी देते. [येथे प्रयत्न करा](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
> AutoML हा प्रश्न क्लाउडमध्ये हे तुलना चालवून तुमच्या डेटासाठी सर्वोत्तम अल्गोरिदम निवडण्यास मदत करतो. ते [इथे](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott) वापरून पहा
### एक चांगला दृष्टिकोन
### चांगला दृष्टिकोन
अंधाधुंद अंदाज लावण्यापेक्षा, डाउनलोड करण्यायोग्य [ML चीट शीट](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) वर आधारित विचार करणे चांगले आहे. येथे, आम्हाला कळते की आमच्या मल्टीक्लास समस्येसाठी आमच्याकडे काही पर्याय आहेत:
अंधाधुंद अंदाज लावण्याऐवजी, डाउनलोड करता येणाऱ्या [ML Cheat Sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) मधील कल्पना अनुसरण करणे चांगले आहे. येथे आपल्याला आपल्या मल्टिक्लास समस्येसाठी काही निवडी आढळतात:
> Microsoft's Algorithm Cheat Sheet चा एक भाग, ज्यामध्ये मल्टीक्लास वर्गीकरण पर्याय तपशीलवार दिले आहेत

> Microsoft च्या Algorithm Cheat Sheet चा एक भाग, जे मल्टिक्लास वर्गीकरण पर्याय तपशीलवार दाखवते
✅ ही चीट शीट डाउनलोड करा, प्रिंट करा, आणि तुमच्या भिंतीवर लावा!
✅ हा Cheat Sheet डाउनलोड करा, प्रिंट करा आणि तुमच्याजवळ लावा!
### विचारमंथन
### विचारसरणी
आमच्याकडे असलेल्या अडचणींवर आधारित विविध दृष्टिकोनांचा विचार करूया:
चला पाहूया आपल्याकडे असलेल्या अटींनुसार विविध दृष्टिकोनांबद्दल जर विवेचन करता येईल का:
- **न्यूरल नेटवर्क्स खूप जड आहेत**. आमच्या स्वच्छ, परंतु मर्यादित डेटासेटसाठी, आणि आम्ही स्थानिकपणे नोटबुकद्वारे प्रशिक्षण चालवत असल्यामुळे, न्यूरल नेटवर्क्स या कार्यासाठी खूप जड आहेत.
- **दोन-वर्ग वर्गीकरणकर्ता नाही**. आम्ही दोन-वर्ग वर्गीकरणकर्ता वापरत नाही, त्यामुळे one-vs-all वगळले जाते.
- **निर्णय वृक्ष किंवा लॉजिस्टिक रिग्रेशन चालू शकते**. निर्णय वृक्ष चालू शकतो, किंवा मल्टीक्लास डेटासाठी लॉजिस्टिक रिग्रेशन चालू शकते.
- **मल्टीक्लास बूस्टेड निर्णय वृक्ष वेगळ्या समस्येचे निराकरण करतात**. मल्टीक्लास बूस्टेड निर्णय वृक्ष मुख्यतः नॉनपॅरामेट्रिक कार्यांसाठी योग्य आहेत, जसे की रँकिंग तयार करणे, त्यामुळे ते आमच्यासाठी उपयुक्त नाहीत.
- **न्यूरल नेटवर्क्स खूप जड आहेत**. आमचा डेटा स्वच्छ आहे पण कमी, तसेच प्रशिक्षण स्थानिक नोटबुकवर चालवले जात आहे, त्यामुळे न्यूरल नेटवर्क्स या कामासाठी जड आहेत.
- **दोन वर्ग करत नाही**. आपण दोन-श्रेणी वर्गीकरण वापरत नाही, म्हणून one-vs-all युक्ती वापरत नाही.
- **निर्णय वृक्ष किंवा लॉजिस्टिक रिग्रेशन काम करू शकते**. निर्णय वृक्ष किंवा मल्टिक्लास डेटा साठी लॉजिस्टिक रिग्रेशन वापरता येऊ शकतो.
- **मल्टिक्लास बूस्टेड निर्णय वृक्ष वेगळ्या समस्येसाठी आहे**. मल्टिक्लास बूस्टेड निर्णय वृक्ष मुख्यतः नॉन-पॅरामीट्रिक कामांसाठी उपयुक्त आहे, जसे की रँकिंग तयार करण्यासाठी, त्यामुळे तो आपल्यासाठी उपयुक्त नाही.
### Scikit-learn वापरणे
आम्ही आमचा डेटा विश्लेषण करण्यासाठी Scikit-learn वापरणार आहोत. तथापि, Scikit-learn मध्ये लॉजिस्टिक रिग्रेशन वापरण्याचे अनेक मार्ग आहेत. [पास करण्यासाठी पॅरामीटर्स](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression) पहा.
आम्ही Scikit-learn वापरून डेटा विश्लेषण करू. मात्र, Scikit-learn मध्ये लॉजिस्टिक रिग्रेशन वापरण्याचे अनेक मार्ग आहेत. [पॅरामीटर्स](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression) एकदा बघा.
मूलतः दोन महत्त्वाचे पॅरामीटर्स आहेत - `multi_class` आणि `solver` - जे आम्हाला Scikit-learn ला लॉजिस्टिक रिग्रेशन करण्यास सांगताना निर्दिष्ट करणे आवश्यक आहे. `multi_class` मूल्य विशिष्ट वर्तन लागू करते. solver चे मूल्य कोणता अल्गोरिदम वापरायचा ते ठरवते. सर्व solvers सर्व `multi_class` मूल्यांसह जोडले जाऊ शकत नाहीत.
मूळतः दोन महत्त्वाचे पर्याय आहेत - `multi_class` आणि `solver` - जे आपण लॉजिस्टिक रिग्रेशन करताना सांगावे लागतात. `multi_class` मूल्य विशिष्ट वर्तन ठरवते. `solver` म्हणजे कोणता अल्गोरिदम वापरायचा आहे ते सूचित करते. सर्व solvers सर्व multi_class पर्यायांसोबत जुळत नाहीत.
दस्तऐवजांनुसार, मल्टीक्लास प्रकरणात, प्रशिक्षण अल्गोरिदम:
दस्तऐवजांनुसार, मल्टिक्लास केस मध्ये, प्रशिक्षण अल्गोरिदम:
- **one-vs-rest (OvR) योजना वापरते**, जर `multi_class` पर्याय `ovr` वर सेट केला असेल
- **क्रॉस-एंट्रॉपी लॉस वापरते**, जर `multi_class` पर्याय `multinomial` वर सेट केला असेल. (सध्या `multinomial` पर्याय फक्त ‘lbfgs’, ‘sag’, ‘saga’ आणि ‘newton-cg’ solvers द्वारे समर्थित आहे.)"
- **one-vs-rest (OvR) पद्धत वापरतो**, जर `multi_class` पर्याय `ovr` असेल तर
- **cross-entropy loss वापरतो**, जर `multi_class` पर्याय `multinomial` असेल तर. (सध्या `multinomial` पर्याय 'lbfgs’, ‘sag’, ‘saga’ आणि ‘newton-cg’ solvers ना समर्थन देतो.)"
> 🎓 येथे 'योजना' 'ovr' (one-vs-rest) किंवा 'multinomial' असू शकते. लॉजिस्टिक रिग्रेशन मुख्यतः बायनरी वर्गीकरणासाठी डिझाइन केले असल्याने, या योजनांमुळे ते मल्टीक्लास वर्गीकरण कार्ये अधिक चांगल्या प्रकारे हाताळू शकते. [स्रोत](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 'scheme' म्हणजे 'ovr' (one-vs-rest) किंवा 'multinomial' हे असू शकते. लॉजिस्टिक रिग्रेशन मुख्यतः द्विश्रेणी वर्गीकरणासाठी तयार असल्यामुळे, या युक्त्या मल्टिक्लास वर्गीकरण अधिक चांगल्या प्रकारे हाताळतात. [source](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 'solver' म्हणजे "ऑप्टिमायझेशन समस्येसाठी वापरायचा अल्गोरिदम". [स्रोत](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
> 🎓 ‘solver’ म्हणजे "ऑप्टिमायझेशन समस्येत वापरला जाणारा अल्गोरिदम". [source](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Scikit-learn या टेबलद्वारे स्पष्ट करते की solvers वेगवेगळ्या प्रकारच्या डेटा संरचनांमुळे निर्माण होणाऱ्या आव्हानांना कसे हाताळतात:
Scikit-learn खालील टेबल देते ज्यामध्ये वेगवेगळ्या डेटा प्रकारांसाठी कसे solvers काम करतात हे दाखवले आहे:
तुम्ही मल्टीक्लास प्रकरण वापरत असल्याने, तुम्हाला कोणती _योजना_ वापरायची आणि कोणता _solver_ सेट करायचा ते निवडावे लागेल. मल्टीक्लास सेटिंगसह आणि **liblinear** solver सह LogisticRegression वापरा.
तुम्ही मल्टिक्लास केस वापरत असल्याने कोणती _scheme_ आणि कोणता _solver_ वापरायचा हे ठरवा. मल्टिक्लास सेटिंगसाठी LogisticRegression वापरा आणि **liblinear** solver वापरून प्रशिक्षण द्या.
1. `multi_class``ovr` वर सेट करा आणि solver `liblinear` वर सेट करून लॉजिस्टिक रिग्रेशन तयार करा:
1. multi_class साठी `ovr` आणि solver साठी `liblinear` असलेली लॉजिस्टिक रिग्रेशन तयार करा:
```python
lr = LogisticRegression(multi_class='ovr',solver='liblinear')
✅ `lbfgs` सारखा वेगळा solver वापरून पहा, जो अनेकदा डिफॉल्ट म्हणून सेट केला जातो
> लक्षात घ्या, तुमच्या डेटाला सपाट करण्यासाठी आवश्यक असल्यास Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) फंक्शन वापरा.
अचूकता **80%** पेक्षा जास्त चांगली आहे!
✅ इतर solver `lbfgs` देखील वापरून पाहा, जे अनेकदा डिफॉल्ट असतो
> लक्षात घ्या, आवश्यक असताना तुमचा डेटा flatten करण्यासाठी Pandas ची [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) फंक्शन वापरा.
1. तुम्ही एका ओळीत डेटा (#50) तपासून या मॉडेलचे काम पाहू शकता:
अचूकता ८०% पेक्षा जास्त चांगली आहे!
1. तुम्ही या मॉडेलची एक ओळ (#50) चाचणी देऊन ते कसे कार्य करते ते पाहू शकता:
या धड्यात, तुम्ही स्वच्छ केलेल्या डेटाचा वापर करून एक मशीन लर्निंग मॉडेल तयार केले जे घटकांच्या मालिकेवर आधारित राष्ट्रीय खाद्यपदार्थाचा अंदाज लावू शकते. Scikit-learn डेटा वर्गीकृत करण्यासाठी प्रदान केलेल्या अनेक पर्यायांबद्दल वाचा. 'solver' या संकल्पनेत खोलवर जा आणि पडद्यामागे काय चालते ते समजून घ्या.
या धड्यात, तुम्ही स्वच्छ केलेल्या डेटाचा वापर करून असा मशीन लर्निंग मॉडेल तयार केला जो घटकांच्या मालिकेवरून राष्ट्रीय जेवणाचा अंदाज लावू शकतो. डेटा वर्गीकरणासाठी Scikit-learn अनेक पर्याय पुरवते त्यातील विविध पर्याय वाचण्यासाठी काही वेळ द्या. 'सॉल्वर' या संकल्पनेत अधिक खोलवर जाणून घ्या ज्यामुळे समजेल की मागच्या प्रक्रियेत काय होते.
लॉजिस्टिक रिग्रेशनमागील गणिताबद्दल अधिक जाणून घ्या [या धड्यात](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
## असाइनमेंट
[या धड्यात](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) लॉजिस्टिक रिग्रेशनच्या गणितामागील तत्त्वे अधिक खोलात बघा.
## असायन्मेंट
[solversचा अभ्यास करा](assignment.md)
[सॉल्वर अभ्यास करा](assignment.md)
---
**अस्वीकरण**:
हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) चा वापर करून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात घ्या की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेचा अभाव असू शकतो. मूळ भाषेतील मूळ दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर केल्यामुळे उद्भवणाऱ्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**सूचना**:
हा दस्तऐवज [Co-op Translator](https://github.com/Azure/co-op-translator) या AI भाषांतर सेवेचा वापर करून भाषांतरित केला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असतो, तरीही कृपया ध्यानात ठेवा की ऑटोमेटेड भाषांतरांमध्ये चुका किंवा अचूकतेची कमतरता असू शकते. मूळ दस्तऐवज त्याच्या स्थानिक भाषेत अधिकृत स्रोत मानला पाहिजे. महत्वाची माहिती असल्यास व्यावसायिक मानवी भाषांतर करण्याची शिफारस केली जाते. या भाषांतराच्या वापरातून उद्भवणार्या कुठल्याही गैरसमजुतीसाठी किंवा चुकीच्या अर्थ लावण्याबद्दल आम्ही जबाबदार नाही.
आमच्याकडे Discord वर AI सोबत शिकण्याचा सिरीज चालू आहे, अधिक जाणून घेण्यासाठी आणि आमच्यासोबत सामील होण्यासाठी [Learn with AI Series](https://aka.ms/learnwithai/discord) येथे १८ ते ३० सप्टेंबर २०२५ दरम्यान भेट द्या. तुम्हाला GitHub Copilot च्या वापरासंबंधी टिप्स आणि ट्रिक्स मिळतील.
आमच्याकडे डिस्कॉर्डवर AI सोबत शिकण्याची मालिका सुरू आहे, अधिक जाणून घ्या आणि 18 - 30 सप्टेंबर, 2025 रोजी आमच्यात सामील व्हा [Learn with AI Series](https://aka.ms/learnwithai/discord). तुम्हाला GitHub Copilot चा डेटा सायन्ससाठी वापर करण्याचे टिप्स आणि ट्रिक्स मिळतील.

# नवशिक्यांसाठी मशीन लर्निंग - एक अभ्यासक्रम
> 🌍 जगभर प्रवास करा आणि जगाच्या संस्कृतींमार्फत मशीन लर्निंगचा अभ्यास करा 🌍
> 🌍 जगभर प्रवास करा जसे आपण जगातील संस्कृतींच्या माध्यमातून मशीन लर्निंगचा अभ्यास करतो 🌍
Microsoft मधील Cloud Advocates १२ आठवड्यांचा, २६ धड्यांचा असा **मशीन लर्निंग** विषयी अभ्यासक्रम आनंदाने ऑफर करीत आहेत. या अभ्यासक्रमात तुम्हाला जेव्हा कधी **शास्त्रीय मशीन लर्निंग** म्हटले जाते ते समजेल, मुख्यत्वे Scikit-learn या लायब्ररीचा वापर करून आणि डीप लर्निंग टाळून, जे आमच्या [AI for Beginners' curriculum](https://aka.ms/ai4beginners) मध्ये समाविष्ट आहे. या धड्यांना आमच्या ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) सोबत जोडा!
Microsoft मधील क्लाउड अॅडव्होकेट्स यांनी 12 आठवड्यांचा, 26 धड्यांचा संपूर्ण अभ्यासक्रम सादर करत आहोत जो **मशीन लर्निंग** विषयी आहे. या अभ्यासक्रमात आपण ज्याला कधीकधी **क्लासिक मशीन लर्निंग** म्हणतात ते शिकाल, मुख्यतः Scikit-learn लायब्ररी वापरून आणि डीप लर्निंग टाळून, जी आमच्या [AI for Beginners' curriculum](https://aka.ms/ai4beginners) मध्ये समाविष्ट आहे. हे धडे आमच्या ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) सोबत जोडून घ्या!
जगभर प्रवास करा आणि वेगवेगळ्या जागांच्या डेटा वर या शास्त्रीय तंत्रांचा वापर करा. प्रत्येक धड्यात पूर्व-म्हणून आणि पाठपुरावा चाचण्या, लिहिलेल्या सूचना धडा पूर्ण करण्यासाठी, सोल्युशन, असाइनमेंट आणि अजून बरेच काही आहे. आमचा प्रोजेक्ट-आधारित शिक्षण पद्धत तुम्हाला बांधणी करताना शिकण्याची संधी देते, जी नवीन कौशल्ये दीर्घकाळ टिकवण्यासाठी सिद्ध आहे.
जगभर प्रवास करा जसे आपण हे क्लासिक तंत्रज्ञान जगभरच्या अनेक भागांतील डेटावर लागू करतो. प्रत्येक धड्यामध्ये पूर्व-आणि पश्चात-धडा क्विझेस, धडा पूर्ण करण्यासाठी लिखित सूचना, सोडवणूक, असाइनमेंट आणि बरेच काही समाविष्ट आहे. आमचा प्रोजेक्ट-आधारित शिक्षण पद्धत तुम्हाला शिकत असताना तयार करण्याची संधी देते, जी नवीन कौशल्ये 'लागून राहण्यासाठी' एक सिद्ध मार्ग आहे.
**🎨 आमच्या चित्रकारांना देखील धन्यवाद** टोमॉमी इमूरा, दासानी माडीपल्ली, आणि जेन लूपर यांना
**🎨 आमच्या चित्रकारांचे देखील आभार** टोमॉमी इमुरा, दासानी मदीपल्ली, आणि जेन लूपर
**🙏 खास आभार 🙏 आमच्या Microsoft Student Ambassador लेखक, पुनरावलोकक आणि मजकूर योगदानकर्त्यांना**, विशेषतः ऋषित डाग्ली, मुहम्मद साकिब खान इनान, रोहन राज, अलेक्झांड्रू पेट्रेस्कू, अभिषेक जैनवाल, नवरिन तबस्सुम, इओआन सामुइला, आणि स्निग्धा अग्रवाल यांना
**🙏 विशेष धन्यवाद 🙏 आमच्या Microsoft Student Ambassador लेखक, पुनरावलोकक आणि सामग्री पुरवठादारांना**, विशेषतः ऋषित डगलि, मुहम्मद साकिब खान इनान, रोहन राज, अलेक्झांडर पेट्रेस्क्यू, अभिषेक जैसवाल, नवरिन ताबास्सुम, इओन सामुइला, आणि स्निग्धा अग्रवाल यांना
**🤩 थोडे अधिक धन्यवाद Microsoft Student Ambassadors एरिक वांजाऊ, जसलीन सोंधी, आणि विदुषी गुप्ता यांना आमच्या R धड्यांसाठी!**
**🤩 Microsoft Student Ambassadors एरिक वांजाऊ, जसलीन सोंधी, आणि विदुषी गुप्ता यांना आमच्या R धड्यांसाठी विशेष आभार!**
# सुरुवात कशी करावी
हे पावले अनुसरा:
1. **रेपॉझिटरी फॉर्क करा**: या पृष्ठाच्या वरच्या उजव्या कोपर्यातील "Fork" बटणावर क्लिक करा.
> [या कोर्ससाठी सर्व अतिरिक्त संसाधने आम्हाला Microsoft Learn संग्रहात आढळतील](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [या कोर्ससाठी सर्व अतिरिक्त संसाधने आमच्या Microsoft Learn संग्रहात शोधा](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **मदतीची गरज आहे?** इन्स्टॉलेशन, सेटअप, आणि धडे चालवण्याच्या सामान्य समस्यांसाठी आमचा [Troubleshooting Guide](TROUBLESHOOTING.md) पहा.
> 🔧 **मदत हवी आहे?** आमच्या [Troubleshooting Guide](TROUBLESHOOTING.md) मध्ये इंस्टॉलेशन, सेटअप, आणि धडे चालवण्यासाठी सामान्य समस्यांवर उपाय पहा.
**[विद्यार्थी](https://aka.ms/student-page)**, या अभ्यासक्रमाचा उपयोग करण्यासाठी, संपूर्ण रेपॉझिटरी आपल्या GitHub खात्यात फॉर्क करा आणि स्वतः किंवा समूहाबरोबर व्यायाम पूर्ण करा:
- प्री-लेक्चर क्विझपासून सुरुवात करा.
- लेक्चर वाचा आणि क्रियाकलाप पूर्ण करा, प्रत्येक ज्ञान तपासणीवर थांबा आणि विचार करा.
- धडे समजून घेऊन प्रोजेक्ट्स तयार करण्याचा प्रयत्न करा, फक्त सोल्युशन कोड चालवण्यावर अवलंबून राहू नका; तथापि तो कोड `/solution` फोल्डरमध्ये प्रत्येक प्रोजेक्ट-आधारित धड्यात उपलब्ध आहे.
- पोस्ट-लेक्चर क्विझ द्या.
- चॅलेंज पूर्ण करा.
**[विद्यार्थी](https://aka.ms/student-page)**, या अभ्यासक्रमाचा वापर करण्यासाठी, संपूर्ण रिपॉझिटरी आपल्या GitHub खात्यात फोर्क करा आणि व्यायाम स्वतः किंवा गटात पूर्ण करा:
- पूर्व-व्याख्याने क्विझपासून सुरुवात करा.
- व्याख्याने वाचा आणि क्रियाकलाप पूर्ण करा, प्रत्येक ज्ञान तपासणीवर थांबा आणि चिंतन करा.
- धडे समजून घेऊन प्रकल्प तयार करण्याचा प्रयत्न करा, फक्त सोडवणूक कोड चालवण्याऐवजी; हा कोड प्रत्येक प्रकल्प-आधारित धड्याच्या `/solution` फोल्डरमध्ये उपलब्ध आहे.
- व्याख्यानानंतरची क्विझ करा.
- आव्हान पूर्ण करा.
- असाइनमेंट पूर्ण करा.
- धडा समूह पूर्ण केल्यावर, [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) वर जा आणि संबंधित PAT रूब्रिक भरून "लर्न आउट लाउड" करा. 'PAT' म्हणजे प्रगती मूल्यांकन साधन जे तुम्ही भरता जेणेकरून तुमचं शिक्षण पुढे जाईल. तुम्ही इतर PATs वर प्रतिक्रिया देऊ शकता जेणेकरून आपण एकत्र शिकू शकू.
- एका धडा गटानंतर, [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) ला भेट द्या आणि योग्य PAT रूपरेषा भरून "उच्चारून शिका". 'PAT' म्हणजे प्रगती मोजण्याचे साधन जे तुम्ही भरता जेणेकरून तुमचा अभ्यास वाढेल. तुम्ही इतर PAT जाहीर पाठिंबा देऊ शकता जेणेकरून आपण एकत्र शिकू शकू.
> पुढील अभ्यासासाठी, आम्ही या [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) मॉड्यूल आणि शिक्षण मार्गांचा अनुकरण करण्याचा सल्ला देतो.
> पुढील अभ्यासासाठी, आम्ही या [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) मॉड्यूल आणि शिकण्याच्या मार्गांचा पाठपुरावा करण्याचा सल्ला देतो.
**शिक्षक**, आपणांसाठी हा अभ्यासक्रम कसा वापरावा याबाबत काही [सूचना](for-teachers.md) दिल्या आहेत.
**शिक्षक**, आम्ही या अभ्यासक्रमाचा कसा वापर करावा यावर काही [सूचना](for-teachers.md) समाविष्ट केल्या आहेत.
---
## व्हिडिओ परिचय
## व्हिडिओ मार्गदर्शन
काही धडे लघु व्हिडिओ स्वरूपात उपलब्ध आहेत. तुम्ही हे सर्व धड्यात बाजूला पाहू शकता, किंवा [ML for Beginners प्लेलिस्ट Microsoft Developer YouTube चॅनेलवर](https://aka.ms/ml-beginners-videos) खालील प्रतिमा क्लिक करून पाहू शकता.
काही धडे व्हिडिओच्या स्वरूपात उपलब्ध आहेत. तुम्ही हे सर्व धडा मध्ये इन-लाइन पाहू शकता, किंवा [ML for Beginners प्लेलिस्ट Microsoft Developer YouTube चॅनेलवर](https://aka.ms/ml-beginners-videos) खालील प्रतिमेवर क्लिक करून पाहू शकता.
[](https://aka.ms/ml-beginners-videos)
> 🎥 प्रकल्प आणि त्या प्रकल्पामध्ये सहभागी लोकांबद्दल व्हिडिओ पाहण्यासाठी वरची प्रतिमा क्लिक करा!
> 🎥 प्रकल्प आणि त्यास तयार करणाऱ्या लोकांबद्दल व्हिडिओसाठी वरील चित्रावर क्लिक करा!
---
## शिक्षण पद्धती
## शिक्षण पद्धत
हा अभ्यासक्रम तयार करताना आम्ही दोन शैक्षणिक तत्त्व निवडले: हा पूर्णपणे हॅण्ड्स-ऑन **प्रोजेक्ट-आधारित** असावा आणि त्यामध्ये **बारंबार क्विझ** असाव्या. तसेच, हा अभ्यासक्रम एकसंधतेसाठी एक सामान्य **थीम** देखील प्रदान करतो.
या अभ्यासक्रमाची रचना करताना आम्ही दोन शैक्षणिक तत्त्वे निवडली आहेत: त्याचा प्रत्यक्ष कामावर आधारित **प्रकल्प-आधारित** असणे आणि यामध्ये **वारंवार क्विझ समाविष्ट** असणे. शिवाय, या अभ्यासक्रमाला एक सामान्य **थीम** आहे जी त्यास सुसंगतता देते.
सामग्री प्रोजेक्टसोबत संरेखित असल्याने, विद्यार्थ्यांसाठी प्रक्रिया अधिक आकर्षक होते आणि संकल्पनांचा अधिक चांगला टिकाव राहतो. वर्गाच्या आधीचा कमी-दाबाचा क्विझ विद्यार्थ्यांच्या मनात विषय शिकण्याचे उद्दिष्ट ठेवतो, तर वर्गानंतरचा दुसरा क्विझ अधिक टिकाव सुनिश्चित करतो. हा अभ्यासक्रम लवचिक आणि मजेशीर असावा आणि त्याचा पूर्ण किंवा भागअंश पद्धतीने वापर करता येईल. प्रोजेक्ट्स छोटे पासून सुरू होऊन १२ आठवड्यांच्या शेवटी अधिक गुंतागुंतीचे होतात. हा अभ्यासक्रम वास्तविक जीवनातील ML च्या वापरावर एक पोस्टस्क्रिप्ट सुद्धा समाविष्ट करतो, जी अतिरिक्त क्रेडिटसाठी किंवा चर्चेच्या आधारासाठी वापरता येईल.
सामग्री प्रकल्पांशी सुसंगत असल्याने, विद्यार्थ्यांची रस घेण्याची प्रक्रिया अधिक प्रभावी होते आणि संकल्पनांचे टिकाऊपणा वाढतो. व्याख्यानाच्या आधीचा कमी-दाबाचा क्विझ विद्यार्थ्याच्या या विषय शिकण्याची तयारी सेट करतो, तर व्याख्यानानंतरचा दुसरा क्विझ अधिक टिकाऊपणासाठी मदत करतो. हा अभ्यासक्रम लवचीक व मजेशीर आहे आणि संपूर्ण किंवा भागाने केला जाऊ शकतो. प्रकल्प सुरुवातीला लहान असतात आणि 12 आठवड्याच्या शेवटी अधिक क्लिष्ट होतात. या अभ्यासक्रमात वास्तविक जगातील ML चे वापरांवरील एक पोस्टस्क्रिप्ट देखील आहे, ज्याचा उपयोग अतिरिक्त गुणांसाठी किंवा चर्चेसाठी करता येतो.
> आमचा [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), आणि [Troubleshooting](TROUBLESHOOTING.md) मार्गदर्शक तत्त्वे पहा. तुमच्या रचनात्मक अभिप्रायासाठी आम्ही स्वागत करतो!
> आमच्या [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), आणि [Troubleshooting](TROUBLESHOOTING.md) मार्गदर्शक तत्त्वे पाहा. तुमचा बांधकामात्मक अभिप्राय आम्हाला स्वागत आहे!
> **भाषांबद्दल एक नोंद**: हे धडे मुख्यतः Python मध्ये लिहिलेले आहेत, पण बरेच धडे R मध्येही उपलब्ध आहेत. R चे धडे पूर्ण करण्यासाठी, `/solution` फोल्डरमध्ये जा आणि R ची धडे शोधा. त्यात .rmd एक्सटेंशन असते जे **R Markdown** फाईलचे प्रतिनिधित्व करते, जी सोप्या भाषेत सांगायची तर `code chunks` (R किंवा इतर भाषा) आणि `YAML header` (जी आउटपुट्स जसे PDF कसे फॉरमॅट करायचे हे मार्गदर्शित करते) च्या एम्बेडिंगसाठी वापरली जाते `Markdown document` मध्ये. त्यामुळे, डेटा सायन्ससाठी हे एक आदर्श लेखक फ्रेमवर्क म्हणून काम करते कारण हे तुम्हाला तुमचा कोड, त्याचा आउटपुट आणि तुमचे विचार Markdown मध्ये लिहून जोडण्याची परवानगी देते. शिवाय, R Markdown दस्तऐवज PDF, HTML, किंवा Word सारख्या आउटपुट फॉरमॅट्समध्ये रूपांतरित केले जाऊ शकतात.
> **क्विझ बद्दल एक नोंद**: सर्व क्विझ [Quiz App folder](../../quiz-app) मध्ये आहेत, एकूण ५२ क्विझ ज्यात प्रत्येकी तीन प्रश्न आहेत. हे धड्यांतून लिंक केलेले आहेत पण क्विझ अॅप लोकली चालवता येतो; `quiz-app` फोल्डरमधील सूचनांचे पालन करा जेणेकरून तुम्ही ते लोकली होस्ट किंवा Azure वर डिप्लॉय करू शकता.
| 01 | मशीन लर्निंगची ओळख| [Introduction](1-Introduction/README.md) | मशीन लर्निंगमागील मूलभूत संकल्पना शिकणे | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | मशीन लर्निंगचा इतिहास| [Introduction](1-Introduction/README.md) | या क्षेत्राचा इतिहास शिकणे | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | निष्पक्षता आणि मशीन लर्निंग | [Introduction](1-Introduction/README.md) | निष्पक्षतेबाबत महत्त्वाच्या तत्त्वज्ञानिक प्रश्नांचा विचार जे व्हावा जे ML मॉडेल बनवताना आणि वापरताना | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | मशीन लर्निंगसाठी तंत्रे | [Introduction](1-Introduction/README.md) | मशीन लर्निंग संशोधक कोणती तंत्रे वापरतात ML मॉडेल तयार करण्यासाठी? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | रिग्रेशनची ओळख | [Regression](2-Regression/README.md) | Python आणि Scikit-learn वापरून रिग्रेशन मॉडेलसाठी सुरुवात करा | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | नॉर्थ अमेरिकेतील भोपळ्यांचे भाव 🎃 | [Regression](2-Regression/README.md) | ML साठी डेटा पाहणे व स्वच्छ करणे | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | नॉर्थ अमेरिकेतील भोपळ्यांचे भाव 🎃 | [Regression](2-Regression/README.md) | रेषीय आणि बहुपदीय रिग्रेशन मॉडेल बांधा | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau |
| 08 | नॉर्थ अमेरिकेतील भोपळ्यांचे भाव 🎃 | [Regression](2-Regression/README.md) | लॉजिस्टिक रिग्रेशन मॉडेल तयार करा | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 10 | वर्गीकरणाची ओळख | [Classification](4-Classification/README.md) | तुमचा डेटा स्वच्छ करा, तयार करा आणि दृश्य करा; वर्गीकरणाची ओळख | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau |
| 11 | स्वादिष्ट आशियाई आणि भारतीय स्वयंपाक 🍜 | [Classification](4-Classification/README.md) | वर्गीकरणकर्त्यांची ओळख | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau |
| 12 | स्वादिष्ट आशियाई आणि भारतीय स्वयंपाक 🍜 | [Classification](4-Classification/README.md) | अधिक वर्गीकरणकर्ते | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau |
| 13 | स्वादिष्ट आशियाई आणि भारतीय स्वयंपाक 🍜 | [Classification](4-Classification/README.md) | तुमचा मॉडेल वापरून शिफारस करणारा वेब अॅप तयार करा | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | क्लस्टरिंगची ओळख | [Clustering](5-Clustering/README.md) | तुमचा डेटा स्वच्छ करा, तयार करा आणि दृश्य करा; क्लस्टरिंगची ओळख | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | नायजेरियन संगीत आवड शोधा 🎧 | [Clustering](5-Clustering/README.md) | K-Means क्लस्टरिंग पद्धतीचा अभ्यास करा | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | नैसर्गिक भाषा प्रक्रिया (NLP) ची ओळख ☕️ | [Natural language processing](6-NLP/README.md) | सोपा बॉट बनवून NLP च्या मूलभूत गोष्टी शिका | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | सामान्य NLP कामे ☕️ | [Natural language processing](6-NLP/README.md) | भाषा रचनांशी संबंधित सामान्य कामे समजून NLP ज्ञान वाढवा | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | भाषांतर आणि भावना विश्लेषण ♥️ | [Natural language processing](6-NLP/README.md) | Jane Austen सोबत भाषांतर आणि भावना विश्लेषण | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | युरोपचे रोमँटिक हॉटेल ♥️ | [Natural language processing](6-NLP/README.md) | हॉटेल पुनरावलोकनांसह भावना विश्लेषण 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | युरोपचे रोमँटिक हॉटेल ♥️ | [Natural language processing](6-NLP/README.md) | हॉटेल पुनरावलोकनांसह भावना विश्लेषण 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | टाइम सिरीज भाकीताची ओळख | [Time series](7-TimeSeries/README.md) | टाइम सिरीज भाकीताची ओळख | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| Postscript | वास्तविक जगातील ML परिस्थिती आणि अनुप्रयोग | [ML in the Wild](9-Real-World/README.md) | क्लासिक ML चे मनोरंजक आणि खोलवर जाणून घेणारे वास्तविक जगातील अनुप्रयोग | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| Postscript | RAI डॅशबोर्ड वापरून ML मध्ये मॉडेल डीबगिंग | [ML in the Wild](9-Real-World/README.md) | जबाबदार AI डॅशबोर्ड घटक वापरून मशीन लर्निंगमधील मॉडेल डीबगिंग | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [या कोर्ससाठी सर्व अतिरिक्त संसाधने शोधा आमच्या Microsoft Learn संग्रहामध्ये](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> **भाषांबद्दल एक टीप**: हे धडे प्राथमिकतः Python मध्ये लिहिलेले आहेत, परंतु अनेक धडे R मध्ये सुद्धा उपलब्ध आहेत. R चा अभ्यासक्रम पूर्ण करण्यासाठी, `/solution` फोल्डरमध्ये जा आणि R शी संबंधित धडे शोधा. त्यांना .rmd विस्तार असतो जे एक **R Markdown** फाइल दर्शवते, जी `कोड चंक` (R किंवा इतर भाषांचे) आणि `YAML हेडर` (ज्यामुळे PDF सारखे आउटपुट कसे फॉरमॅट करायचे ते निर्देशित करते) या गोष्टींचे एम्बेडिंग असते एका `Markdown दस्तऐवजात`. म्हणून, हे डेटा सायन्ससाठी एक आदर्श लेखक फ्रेमवर्क म्हणून काम करते कारण यामुळे तुम्ही तुमचा कोड, त्याचा आउटपुट व तुमचे विचार Markdown मध्ये लिहून संगठित करू शकता. शिवाय, R Markdown दस्तऐवज PDF, HTML किंवा Word सारख्या आउटपुट फॉरमॅटसाठी तयार केले जाऊ शकतात.
> **प्रश्नमंजूषा बद्दल एक टीप**: सर्व प्रश्नमंजूषा [Quiz App फोल्डर](../../quiz-app) मध्ये आहेत, एकूण ५२ प्रश्नमंजूषा असून प्रत्येकात तीन प्रश्न आहेत. त्या धड्यांमध्ये लिंक केलेल्या आहेत पण प्रश्नमंजूषा अॅप स्थानिकपणे चालवता येतो; स्थानिक होस्टिंग किंवा Azure वर तैनात करण्याबाबत सूचना `quiz-app` फोल्डरमध्ये आहेत.
| धडा क्रमांक | विषय | धड्यांचे वर्गीकरण | शिकण्याचे उद्दिष्टे | लिंक केलेला धडा | लेखक |
| 01 | मशीन लर्निंगची ओळख | [Introduction](1-Introduction/README.md) | मशीन लर्निंगमागील मूलभूत संकल्पना शिका | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | मशीन लर्निंगचा इतिहास | [Introduction](1-Introduction/README.md) | या क्षेत्राच्या इतिहासाचे ज्ञान मिळवा | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | न्याय्यतेबद्दल व मशीन लर्निंग | [Introduction](1-Introduction/README.md) | न्याय्यतेभोवतीच्या महत्त्वाच्या तत्वज्ञानिक मुद्यांबद्दल विचार करा जे विद्यार्थी ML मॉडेल तयार करताना आणि वापरताना लक्षात ठेवायला हवेत | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | मशीन लर्निंगसाठी तंत्रे | [Introduction](1-Introduction/README.md) | ML संशोधक कोणती तंत्रे वापरतात? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | प्रतिगमनाची परिचय | [Regression](2-Regression/README.md) | Python आणि Scikit-learn वापरून प्रतिगमन मॉडेल्समध्ये प्रारंभ करा | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | उत्तर अमेरिकन कोळंबी भाव 🎃 | [Regression](2-Regression/README.md) | मशीन लर्निंगपूर्वी डेटा दृश्यात्मक स्वरूपात पाहणे आणि स्वच्छ करणे | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | उत्तर अमेरिकन कोळंबी भाव 🎃 | [Regression](2-Regression/README.md) | रेषीय व बहुपद प्रतिगमन मॉडेल तयार करा | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau |
| 08 | उत्तर अमेरिकन कोळंबी भाव 🎃 | [Regression](2-Regression/README.md) | लॉजिस्टिक प्रतिगमन मॉडेल तयार करा | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | वेब अॅप 🔌 | [Web App](3-Web-App/README.md) | तुम्ही तयार केलेल्या मॉडेलचा वापर करून वेब अॅप तयार करा | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | वर्गीकरणाची ओळख | [Classification](4-Classification/README.md) | डेटा स्वच्छ, तयार आणि दृश्य स्वरूपात आणा; वर्गीकरणाचा परिचय | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau |
| 11 | स्वादिष्ट आशियाई व भारतीय जेवण 🍜 | [Classification](4-Classification/README.md) | वर्गीकरण करणाऱ्यांचा परिचय | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau |
| 12 | स्वादिष्ट आशियाई व भारतीय जेवण 🍜 | [Classification](4-Classification/README.md) | आणखी वर्गीकरण करणारे | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau |
| 13 | स्वादिष्ट आशियाई व भारतीय जेवण 🍜 | [Classification](4-Classification/README.md) | तुमच्या मॉडेलचा वापर करून शिफारस करणारे वेब अॅप तयार करा | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | क्लस्टरिंगची ओळख | [Clustering](5-Clustering/README.md) | डेटा स्वच्छ, तयार करा आणि दृश्य स्वरूपात आणा; क्लस्टरिंगची ओळख | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | नायजेरियाच्या संगीत अभिरुचीचा अभ्यास 🎧 | [Clustering](5-Clustering/README.md) | K-Means क्लस्टरिंग पद्धत शिका | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | नैसर्गिक भाषा प्रक्रिया परिचय ☕️ | [Natural language processing](6-NLP/README.md) | साधा बॉट तयार करून NLP चे मूलभूत सांगाणे | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | सामान्य NLP कार्ये ☕️ | [Natural language processing](6-NLP/README.md) | भाषा रचनेसंबंधी कामे कशी हाताळायची हे समजून NLP ज्ञान वाढवा | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | भाषांतर व भावना विश्लेषण ♥️ | [Natural language processing](6-NLP/README.md) | Jane Austen सह भाषांतर व भावना विश्लेषण | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | युरोपच्या रोमँटिक हॉटेल्स ♥️ | [Natural language processing](6-NLP/README.md) | हॉटेल पुनरावलोकनांसह भावना विश्लेषण 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | युरोपच्या रोमँटिक हॉटेल्स ♥️ | [Natural language processing](6-NLP/README.md) | हॉटेल पुनरावलोकनांसह भावना विश्लेषण 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | टाइम सिरिज फोरकास्टिंगची ओळख | [Time series](7-TimeSeries/README.md) | टाइम सिरिज फोरकास्टिंगची ओळख | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ जगातील विद्युत वापर ⚡️ - ARIMA सह फोरकास्टिंग | [Time series](7-TimeSeries/README.md) | ARIMA सह टाइम सिरिज फोरकास्टिंग | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ जगातील विद्युत वापर ⚡️ - SVR सह फोरकास्टिंग | [Time series](7-TimeSeries/README.md) | Support Vector Regressor सह टाइम सिरिज फोरकास्टिंग | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | पुनर्बळणीकरण शिक्षण परिचय | [Reinforcement learning](8-Reinforcement/README.md) | Q-Learning सह पुनर्बळणीकरण शिक्षणाची ओळख | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| पोस्टस्क्रिप्ट | वास्तविक जगातील ML परिस्थिती आणि अनुप्रयोग | [ML in the Wild](9-Real-World/README.md) | पारंपरिक ML चे मनोरंजक व उघडणारे वास्तविक जगातील अनुप्रयोग | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| पोस्टस्क्रिप्ट | RAI डॅशबोर्ड वापरून मॉडेल डीबगिंग | [ML in the Wild](9-Real-World/README.md) | जबाबदार AI डॅशबोर्ड घटक वापरून मशीन लर्निंगमधील मॉडेल डीबगिंग | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [या कोर्ससाठी सर्व अतिरिक्त संसाधने आमच्या Microsoft Learn संग्रहात शोधा](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## ऑफलाइन प्रवेश
तुम्ही हा दस्तऐवज ऑफलाइन पाहू शकता Docsify वापरून. हा रेपो Fork करा, [Docsify install करा](https://docsify.js.org/#/quickstart) तुमच्या स्थानिक मशीनवर, आणि मग या रेपोच्या मूळ फोल्डरमध्ये `docsify serve` टाइप करा. वेबसाइट तुमच्या लोकलहोस्टवर पोर्ट ३००० वर चालवली जाईल: `localhost:3000`.
तुम्ही [Docsify](https://docsify.js.org/#/) वापरून हे दस्तऐवज ऑफलाइन चालवू शकता. या रिपॉजिटरीचा फोर्क करा, तुमच्या स्थानिक संगणकावर [Docsify इंस्टॉल करा](https://docsify.js.org/#/quickstart) आणि नंतर या रिपॉजिटरीच्या मुळ फोल्डरमध्ये `docsify serve` टाइप करा. वेबसाइट तुमच्या लोकलहोस्टवर पोर्ट 3000 वर सुरू होईल: `localhost:3000`.
## PDF
अभ्यासक्रमाचा PDF आवृत्ती लिंकसह शोधा [इथे](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
पाठ्यक्रमाचा PDF [येथे](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) उपलब्ध आहे.
## 🎒 इतर कोर्सेस
## 🎒 इतर कोर्सेस
आमचा टीम इतरही कोर्सेस तयार करतो! खाली तपासा:
आमच्या टीमद्वारे इतर कोर्सेस तयार केले जातात! पाहा:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
@ -189,7 +190,7 @@ Microsoft मधील Cloud Advocates १२ आठवड्यांचा,
---
### Generative AI Series
### जनरेटिव AI सिरिज
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
@ -197,7 +198,7 @@ Microsoft मधील Cloud Advocates १२ आठवड्यांचा,
---
### Core Learning
### कोअर शिक्षण
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
@ -208,30 +209,41 @@ Microsoft मधील Cloud Advocates १२ आठवड्यांचा,
---
### Copilot Series
### कॉपीलट सिरिज
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
जर तुम्हाला अडचण आल्यास किंवा AI अॅप्स तयार करण्याबाबत काही प्रश्न असतील. एकत्र शिकणाऱ्या विद्यार्थ्यांशी आणि अनुभवी विकसकांशी MCP बद्दल चर्चा करा. ही एक सहायक समुदाय आहे जिथे प्रश्न विचारणे स्वागतार्ह आहे आणि ज्ञान मुक्तपणे शेअर केले जाते.
जर तुम्ही मशीन लर्निंग शिकत असताना किंवा AI ऍप्लिकेशन्स तयार करत असताना अडकले किंवा काही प्रश्न असतील, तर काळजी करू नका — मदत उपलब्ध आहे.
- प्रत्येक धड्यांनंतर नोटबुक पुनरावलोकन करा जास्त चांगल्या समजेसाठी.
- अल्गोरिदम स्वतः अमलात आणण्याचा सराव करा.
- शिकलेल्या संकल्पनांचा वापर करून वास्तव जगातील डेटासेट्स एक्सप्लोर करा.
## अतिरिक्त शिक्षण टिपा
- प्रत्येक धड्याच्या नंतर नोटबुक्स पुनरावलोकन करा म्हणजे समज अधिक चांगला होईल.
- अल्गोरिदम स्वतः अंमलात आणण्याचा सराव करा.
- शिकलेल्या संकल्पनांचा वापर करून वास्तविक डेटासेट्स एक्सप्लोर करा.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**सूचना**:
हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) वापरून अनुवादित केला आहे. जरी आम्ही अचूकतेसाठी प्रयत्न करत असलो तरी, कृपया लक्षात ठेवा की स्वयंचलित भाषांतरांमध्ये चुका किंवा अचूकतेचा अभाव असू शकतो. मूळ दस्तऐवज त्याच्या स्थानिक भाषेत अधिकृत स्रोत मानला पाहिजे. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतर शिफारस केले आहे. या भाषांतराचा वापर केल्यामुळे होणाऱ्या कोणत्याही गैरसमजुती किंवा चुकीच्या अर्थसंग्रहणासाठी आम्ही जबाबदार नाही.
**अस्वीकरण**:
हा दस्तऐवज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) चा वापर करून अनुवादित केला आहे. आम्ही अचूकतेसाठी प्रयत्नशील आहोत, तरी कृपया लक्षात ठेवा की स्वयंचलित अनुवादांमध्ये चुका किंवा अशुद्धी असू शकते. मूळ दस्तऐवज त्याच्या स्थानिक भाषेत अधिकृत स्रोत मानला पाहिजे. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी अनुवाद शिफारसीय आहे. या अनुवादाच्या वापरातून उद्भवणाऱ्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थलग्नीसाठी आम्ही जबाबदार नाही.
# स्कikit-learn प्रयोग गरेर एक Regression मोडेल निर्माण गर्नुहोस्: regression चार तरिकाहरू
# स्किकिट-लर्न प्रयोग गरी रिग्रेसन मोडेल तयार पार्नुहोस्: रिग्रेसन चार तरिकाले
## शुरुवाती नोट
## शुरुवातकर्ताको नोट
Linear regression तब प्रयोग गरिन्छ जब हामी **सङ्ख्यात्मक मान** (उदाहरणका लागि, घरको मूल्य, तापक्रम, वा बिक्री) भविष्यवाणी गर्न चाहन्छौं।
यो इनपुट सुविधाहरू र आउटपुट बिचको सम्बन्धलाई सबैभन्दा राम्रो प्रतिनिधित्व गर्ने एक सिधा रेखा खोजेर काम गर्छ।
लाइनर रिग्रेसन तब प्रयोग गरिन्छ जब हामी **संख्यात्मक मान** (उदाहरणका लागि, घरको मूल्य, तापक्रम, वा बिक्री) भविष्यवाणी गर्न चाहन्छौं।
यो इनपुट फीचर र आउटपुट बीचको सम्बन्धलाई सर्वोत्तम प्रतिनिधित्व गर्ने सिधा रेखा खोज्छ।
यस पाठमा, हामी अधिक उन्नत regression प्रविधिहरूको अन्वेषण गर्नु अघि अवधारणा बुझ्नमा केन्द्रित छौं।

> इन्फोग्राफिक द्वारा [दासानी माडीपाली](https://twitter.com/dasani_decoded)
यस पाठमा, हामी अवधारणा बुझ्नमा केन्द्रित छौं र पछि थप उन्नत रिग्रेसन प्रविधिहरू अन्वेषण गर्नेछौं।

> इन्फोग्राफिक द्वारा [डासानी मडिपल्ली](https://twitter.com/dasani_decoded)
## [पाठ अघि क्विज](https://ff-quizzes.netlify.app/en/ml/)
> ### [यो पाठ R मा उपलब्ध छ!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### परिचय
### परिचय
अहिले सम्म तपाईंले regression के हो भनी बुझ्नुभयो, विभिन्न नमुना डेटा संग जुन हामीले यो पाठमा प्रयोग गरेका छौं। तपाईंले यसलाई Matplotlib प्रयोग गरी दृश्यमान पनि बनाउनु भएको छ।
अहिलेसम्म तपाईंले रिग्रेसन के हो भनेर पम्पकिन मूल्य निर्धारण डाटासेटबाट संकलित नमुना डाटाको साथ अन्वेषण गर्नुभएको छ जुन यो पाठ भर प्रयोग गरिनेछ। तपाईंले यसलाई म्याटप्लट्लिब प्रयोग गरी भीजरूपमा पनि प्रदर्शन गर्नुभएको छ।
अब तपाईं ML का लागि regression मा अझ गहिरो रूपमा जान तयार हुनुहुन्छ। जबकि दृश्यले डेटा बुझ्न मद्दत गर्दछ, मशीन लर्निङको वास्तविक शक्ति _मोडेलहरू तालिम_ मा हुन्छ। मोडेलहरू इतिहासगत डाटामा तालिम दिइन्छ ताकि स्वतः डेटा निर्भरतालाई समातोस, र तपाईंलाई नयाँ डाटाका लागि भविष्यवाणी गर्न दिन्छन्, जुन मोडेलले पहिले देखेको छैन।
अब तपाईं एमएलका लागि रिग्रेसनमा अझ गहिराइमा जान तयार हुनुहुन्छ। जबकि भीजरूपले डाटालाई बुझ्न मद्दत गर्छ, मेसिन लर्निङको वास्तविक शक्ति _मोडेलहरू प्रशिक्षण_बाट आउँछ। मोडेलहरू ऐतिहासिक डाटामा प्रशिक्षण हुन्छन् जसले स्वचालित रूपमा डाटा निर्भरता समात्छ र नयाँ डाटाका लागि परिणाम भविष्यवाणी गर्न अनुमति दिन्छ जुन मोडेलले पहिले देखेन।
यस पाठमा, तपाईं दुई प्रकारका regression बारे थप जान्नुहुनेछ: _आधारभूत linear regression_ र _polynomial regression_, साथै यी प्रविधिहरूको पृष्ठभूमिमा रहेको केही गणित। ती मोडेलहरूले हामीलाई विभिन्न इनपुट डाटामा आधारित कद्दुखुराको मूल्य भविष्यवाणी गर्न मद्दत गर्नेछन्।
यस पाठमा, तपाईं दुई प्रकारका रिग्रेसनहरूमा थप जान्न हुनेछ: _मूलभूत लाइनर रिग्रेसन_ र _पोलिनोमियल रिग्रेसन_, साथै यी प्रविधिहरूमा आधारित गणित। ती मोडेलहरूले हामीलाई विभिन्न इनपुट डाटामा निर्भर गरी पम्पकिनको मूल्य भविष्यवाणी गर्न अनुमति दिनेछन्।
[](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
> 🎥 माथिको छविमा क्लिक गर्नुहोस् linear regression को छोटो भिडियो अवलोकनका लागि।
> यस पाठ्यक्रमले न्यूनतम गणितीय ज्ञान मानिन्छ, र अन्य क्षेत्रका विद्यार्थीहरूको पहुँचयोग्य बनाउन टिप, 🧮 कलआउट, आरेख, र अन्य सिकाइ उपकरणहरू देखिन्छन्।
> यस पाठक्रमभरि, हामी कम गणितीय ज्ञान रहने धारणा गर्छौं, र अन्य क्षेत्रबाट आएका विद्यार्थीहरूका लागि यसलाई सजिलो बनाउने प्रयास गर्दछौं, त्यसैले नोटहरू, 🧮 कलआउटहरू, चित्रहरू, र अन्य सिकाइ उपकरणहरूलाई ध्यानमा राख्नुहोस्।
### पूर्वशर्त
### पूर्वआवश्यकता
आफूले अहिले सम्म हेरेको कद्दुखुराको डेटा संरचनासँग परिचित हुनुहुन्छ। यो पाठसँग सम्बद्ध _notebook.ipynb_ फाइलमा पूर्वलोड र पूर्वसफा गरिएको छ। फाइलमा, कद्दुखुराको मूल्य प्रति बुसल नयाँ डेटा फ्रेममा देखाइएको छ। सुनिश्चित गर्नुहोस् कि तपाईंले यी नोटबुकहरू Visual Studio Code को कर्नलहरूमा चलाउन सक्नुहुन्छ।
अबसम्म तपाईं पम्पकिन डाटाको संरचनासँग परिचित हुनुहुन्छ जुन हामीले अध्ययन गर्दैछौं। यो डाटा यस पाठको _notebook.ipynb_ फाइलमा प्रीलोड र प्रि-क्लिन गरिएको अवस्थामा छ। फाइलमा, पम्पकिन मूल्य प्रति बुषेल नयाँ डाटा फ्रेममा देखाइएको छ। पक्का गर्नुहोस् कि तपाईं भिजुअल स्टुडियो कोडमा कर्नेलहरूमा यी नोटबुकहरू चलाउन सक्नुहुन्छ।
### तयारी
एक सम्झना स्वरुप, तपाईं यो डेटा प्रयोग गरेर यसबारे प्रश्नहरू सोध्न लाग्नुभएको छ।
स्मरणका लागि, तपाईं यस डाटालाई लोड गर्दै हुनुहुन्छ ताकि यससँग सम्बन्धित प्रश्नहरू सोध्न सक्नुहोस्।
- कद्दुखुरा कहिले खरीद गर्नु उपयुक्त हुन्छ?
- मिनिएचर कद्दुखुराहरूको केसको मूल्य कति अपेक्षा गर्न सकिन्छ?
- के म तिनीहरू आधा-बुसल बास्केटमा किन्ने कि 1 1/9 बुसल बाकसमा?
- पम्पकिन किन्ने सबैभन्दा उपयुक्त समय कहिले हो?
- मिनिएचर पम्पकिनको केसको मूल्य कति हुन सक्छ?
- के म तिनीहरूलाई आधा-बुषेल बास्केटमा किन्ने वा 1 1/9 बुषेल बाकसद्वारा किन्ने?
यस डाटामा अझै खोतलिरहौं।
यस डेटा बुझ्न जारी राखौं।
अघिल्लो पाठमा, तपाईंले Pandas डाटा फ्रेम सिर्जना गर्नुभयो र मूल डाटासेटको एक भाग प्रयोग गरी मूल्य बुषेल अनुसार सामान्यीकरण गर्नुभयो। यद्यपि, त्यति गर्दा तपाईंले करिब 400 डेटाप्वाइन्ट मात्र सङ्ग्रह गर्न सक्नुभयो र ती पनि केवल पतन महिनाहरूका लागि मात्र।
अघिल्लो पाठमा, तपाईंले Pandas डेटा फ्रेम सिर्जना गरी मूल dataset को केही भाग भर्नुभयो र मूल्य बुसल द्वारा मानकीकृत गर्नुभयो। त्यसरी तपाईंले लगभग ४०० डेटाप्वाइन्ट मात्र जम्मा गर्न सक्नुभयो र ती पनि सिर्फ पतझड महिनाका लागि मात्र।
यस पाठको सम्बन्धित नोटबुकमा हामीले प्रीलोड गरिएको डाटा पुनः हेर्नुहोस्। डाटा प्रीलोड छ र एक प्रारम्भिक स्क्याटरप्लट चार्ट गरिएको छ जुन महिना डाटा देखाउँछ। सायद हामी थप सफाई गरेर डाटाको प्रकृतिबारे थप विवरण प्राप्त गर्न सक्छौं।
यस पाठसँग सम्बद्ध नोटबुकमा पूर्वलोड गरिएको डेटा हेर्नुहोस्। डेटा पूर्वलोड गरिएको छ र प्रारम्भिक scatterplot ले महिनाको डेटा देखाउँछ। सायद डेटा सफा गरेर यसको प्रकृति बारे थप विवरण प्राप्त गर्न सकिन्छ।
## एक रेखीय रिग्रेसन रेखा
## एक linear regression रेखा
पाठ 1 मा सिकेझैं, लाइनर रिग्रेसन अभ्यासको लक्ष्य भनेको एउटा रेखा प्लट गर्न सक्नु हो जुन:
पाठ १ मा सिकेझैं, linear regression अभ्यासको लक्ष्य रेखा प्लट गर्न सक्षम हुनु हो जसले:
- **चरहरूबीच सम्बन्ध देखाउँछ।** चरहरूबीचको सम्बन्ध देखाउने
- **भविष्यवाणी गर्ने।** नयाँ डेटाप्वाइन्ट त्यहि रेखासँग कसरी सम्बन्धित हुन्छ भनी सही भविष्यवाणी गर्ने
- **चल भेरियबल सम्बन्ध देखाउने**। भेरियबलहरूको सम्बन्ध देखाउने
- **भविष्यवाणी गर्ने**। नयाँ डेटाप्वाइन्ट त्यो रेखाप्रति कहाँ पर्नेछ भन्ने सही भविष्यवाणी गर्ने।
यहाँको रेखा निर्माण **कमसेकम-वर्ग रिग्रेसन (Least-Squares Regression)** मा सामान्य छ। “कमसेकम-वर्ग” त्यस्तो प्रक्रिया प्रकट गर्छ जसले मोडेलको कुल त्रुटि न्यूनतम गर्छ। हरेक डाटाप्वाइन्टका लागि, हामी मौलिक बिन्दु र हाम्रो रिग्रेसन रेखाबीचको उभिएको दूरी (अवशिष्ट भनिने) मापन गर्छौं।
सामान्यतया **Least-Squares Regression** यस्तो प्रकारको रेखा तान्न प्रयोग हुन्छ। "Least-Squares" शब्दले मोडेलको कुल त्रुटि कम गर्न प्रक्रियालाई जनाउँछ। प्रत्येक डेटाप्वाइन्टको लागि, हामी वास्तविक बिन्दु र regression लाइन बीचको ठाडो दूरी (residual भनिन्छ) मापन गर्छौं।
यी अन्तरहरूलाई वर्ग गरेर दुई मुख्य कारणले:
हामी यी दूरीहरूलाई दुई कारणले वर्ग गर्नछौं:
1. **दिशा भन्दा परिमाण:** हामी -5 को त्रुटिलाई +5 जत्तिकै मान्न चाहन्छौं। वर्ग गर्दा सबै मान सकारात्मक हुन्छन्।
1. **दिशा भन्दा परिमाणलाई महत्व दिनु:** -५ को गल्तीलाई +५ को गल्ती जस्तै व्यवहार गर्न चाहन्छौं। वर्ग गर्दा सबै मानहरू सकरात्मक हुन्छन्।
2. **आउटलियरहरूलाई दण्ड:** वर्गले ठूला त्रुटि थप trọng दिन्छ, जसले रेखालाई टाढा रहेका पोइन्टहरू नजिक राख्न बाध्य पार्छ।
2. **अत्यधिक भिन्नतालाई दण्डित गर्नु:** वर्ग गर्दा ठूलो त्रुटिहरू बढि तौल पाउँछन्, जसले रेखालाई टाढा रहेका बिन्दुहरू नजिक राख्न बाध्य पार्छ।
त्यसपछि ती सबै वर्ग मानहरू जम्मा गर्छौं। हाम्रो लक्ष्य भनेको त्यो विशेष रेखा पत्ता लगाउनु हो जहाँ यो अन्तिम जम्मा सबैभन्दा सानो हुन्छ— त्यसैले यसको नाम “कमसेकम-वर्ग” हो।
त्यसपछि यी सबै वर्ग मानहरू जोडिन्छन्। हाम्रो लक्ष्य यो रेखा पत्ता लगाउनु हो जहाँ यो अन्तिम योग सबैभन्दा कम हुन्छ—त्यसैले "Least-Squares" को नाम।
> **🧮 मलाई गणित देखाऊ**
>
> यस रेखालाई, जसलाई _line of best fit_ भनिन्छ, [एक समीकरण](https://en.wikipedia.org/wiki/Simple_linear_regression) द्वारा व्यक्त गर्न सकिन्छ:
>
> **🧮 मलाई गणित देखाऊ**
>
> यो रेखालाई, जसलाई _सर्वोत्तम मेल रेखा_ भनिन्छ, [एक समीकरणद्वारा](https://en.wikipedia.org/wiki/Simple_linear_regression) व्यक्त गर्न सकिन्छ:
>
> ```
> Y = a + bX
> ```
>
> `X` 'व्याख्यात्मक भेरियबल' हो। `Y` 'आश्रित भेरियबल' हो। रेखाको ढलान `b` हो र `a` y-intercept हो, जुन `X = 0` हुँदा `Y` को मान हो।
> `X` 'व्याख्यात्मक चल' हो। `Y` 'निर्भर चल' हो। रेखाको ढलान `b` हो र `a` y-अवरोध हो, जुन `X = 0` हुँदा `Y` को मान हो।
> पहिलो, ढलान `b` गणना गर्नुहोस्। इन्फोग्राफिक [जेन लूपर](https://twitter.com/jenlooper) द्वारा
> पहिले, ढलान `b` गणना गर्नुहोस्। इन्फोग्राफिक द्वारा [जेन लुपर](https://twitter.com/jenlooper)
>
> अर्को शब्दमा, हाम्रो कद्दुखुराको डाटाबाट प्रश्न गर्दा: "महिना अनुसार प्रति बुसल कद्दुखुराको मूल्यको भविष्यवाणी", `X` मूल्य जनाउँछ र `Y` बिक्री महिना जनाउँछ।
> अर्को शब्दहरूमा, र हाम्रो पम्पकिन डाटाको मूल प्रश्नलाई सन्दर्भ गर्दै: "महिना अनुसार प्रति बुषेल पम्पकिनको मूल्य पूर्वानुमान गर्न", `X` मूल्यलाई निर्देश गर्दछ र `Y` बिक्री हुने महिनालाई।
>
>
>
>
> Y को मान गणना गर्नुहोस्। यदि तपाईं लगभग $४ तिर्दै हुनुहुन्छ भने त्यो अप्रिल हुनुपर्छ! इन्फोग्राफिक [जेन लूपर](https://twitter.com/jenlooper) द्वारा
> Y को मान गणना गर्नुहोस्। यदि तपाईं लगभग $4 तिर्दै हुनुहुन्छ भने, यो अप्रिल हुनुपर्छ! इन्फोग्राफिक [जेन लुपर](https://twitter.com/jenlooper) द्वारा
>
> गणितले रेखाको ढलान प्रदर्शन गर्नुपर्छ, जुन सँग intercept लाई पनि निर्भर गर्दछ, जहाँ `X = 0` हुँदा `Y` कहाँ हुन्छ।
> गणितले रेखाको ढलान देखाउनुपर्छ, जुन y-अवरोधमा निर्भर गर्दछ, जहाँ `X = 0` हुँदा `Y` कता हुन्छ।
>
> यी मानहरूको गणना विधि तपाईंले [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) वेब साइटमा देख्न सक्नुहुन्छ। यो [Least-squares गणक](https://www.mathsisfun.com/data/least-squares-calculator.html) मा पनि हेर्नुहोस् जसले सङ्ख्याहरूको मानले रेखामा कसरी प्रभाव पार्छ।
> तपाईं यी मानहरूको गणनाको विधि [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) वेबसाइटमा हेर्न सक्नुहुन्छ। साथै [यो कमसेकम-वर्ग क्यालकुलेटर](https://www.mathsisfun.com/data/least-squares-calculator.html) जानुहोस् र कसरी संख्याहरूले रेखामा प्रभाव पार्छन् हेर्नुहोस्।
## सहसंबन्ध
## सहसम्बन्ध
अझ एक पद बुझ्नुपर्छ जुन हो **सहसंबन्ध गुणांक** दिने X र Y भेरियबलहरू बीच। scatterplot प्रयोग गरेर तपाईं यस गुणांकलाई छिटो देख्न सक्नुहुन्छ। डेटाप्वाइन्टहरू राम्रोसँग रेखामा छरिएका छन् भने उच्च सहसंबन्ध हुन्छ, तर यदि डेटाप्वाइन्टहरू X र Y बीच जहाँसुकै छरिएका छन् भने कम सहसंबन्ध हुन्छ।
अझ एक शब्द बुझ्नुपर्छ जो हो **सहसम्बन्ध गुणांक** दिइएको X र Y चरहरू बीच। स्क्याटरप्लट प्रयोग गरी यो गुणांक छिटो दृश्य गर्न सकिन्छ। यदि डाटाप्वाइन्टहरू सधैं एक सिधा रेखामा छरिएका छन् भने उच्च सहसम्बन्ध हुन्छ, तर यदि डाटाप्वाइन्टहरू X र Y को बीचमा सबै ठाउँ छरिएका छन् भने कम सहसम्बन्ध हुन्छ।
एक राम्रो linear regression मोडेल त्यसले हुनेछ जसको सहसंबन्ध गुणांक उच्च (0 भन्दा निकट 1) हुनेछ र Least-Squares Regression विधि प्रयोग गरी regression लाइन हुनेछ।
एक राम्रो रिग्रेसन मोडेल त्यो हो जसको सहसम्बन्ध गुणांक उच्च हुन्छ (0 नजिक भन्दा 1 नजिक) कमसेकम-वर्ग रिग्रेसन विधि प्रयोग गरी र रिग्रेसन रेखाको साथ।
✅ यस पाठसँग सम्बद्ध नोटबुक सञ्चालन गरी महिना र मूल्य बीच scatterplot हेर्नुहोस्। कद्दुखुरा बिक्रीका लागि महिना र मूल्यको सम्बन्ध तपाईंको scatterplot दृश्य व्याख्याअनुसार उच्च वा न्यून सहसंबन्ध देखाउँछ? यदि तपाईं `महिना` सट्टा *वर्षको दिन* (जस्तै वर्षको शुरुदेखि दिनहरूको संख्या) जस्ता थप सूक्ष्म मापन प्रयोग गर्नु भयो भने के त्यो परिवर्तन हुन्छ?
✅ यस पाठसँग सम्बन्धित नोटबुक चलाउनुहोस् र महिना र मूल्य बीचको स्क्याटरप्लट हेर्नुहोस्। यो डाटा पम्पकिन बिक्रीका लागि महिना र मूल्य बीच उच्च वा कम सहसम्बन्ध भएको देखिन्छ? तपाईंको स्क्याटरप्लट दृश्य व्याख्याका अनुसार। यदि तपाईं `Month` को सट्टा अधिक सूक्ष्म मापन प्रयोग गर्नु भयो भने, उदाहरणको लागि *वर्षको दिन* (वर्षको सुरुबाट कति दिन भयो), के यो फरक पर्छ?
तलको कोडमा, हामीले डेटा सफा गरेको र `new_pumpkins` नामक डेटा फ्रेम प्राप्त गरेको मान्दैछौं, जस्तै:
तलको कोडमा, हामीले डाटा सफा गरिसकेको र `new_pumpkins` नाम गरिएको डाटा फ्रेम प्राप्त गरेको मान्नेछौं, जुन यस्तै छ:
ID | महिना | वर्षको_दिन | भेराइटी | सहर | प्याकेज | न्यून मूल्य | उच्च मूल्य | मूल्य
> डेटा सफा गर्नको लागि कोड [`notebook.ipynb`](notebook.ipynb) मा उपलब्ध छ। हामीले अघिल्लो पाठजस्तै सफाइ क्रियाकलापहरू गर्यौं र `DayOfYear` स्तम्भ तलको अभिव्यक्ति प्रयोग गरेर गणना गर्यौं:
> डेटा सफा गर्ने कोड [`notebook.ipynb`](notebook.ipynb) मा उपलब्ध छ। हामीले अघिल्लो पाठमा जस्तै सफाई चरणहरू सम्पन्न गरेका छौं र निम्न अभिव्यक्तिले `DayOfYear` स्तम्भ गणना गरेका छौं:
अब जब तपाईंले लाइनर रिग्रेसन पछिको गणित बुझ्नुभयो, हामी रिग्रेसन मोडेल बनाउन जाँदैछौं जसले पम्पकिन खरिद गर्ने प्याकेजहरू मध्ये कुनमा सबैभन्दा राम्रो मूल्य हुनेछ अनुमान गर्न सघाउ पुर्याउँछ। कसैले छुट्टीको पम्पकिन प्याचको लागि पम्पकिन किन्न खोज्दा यो जानकारी उपयोगी हुनेछ किनभने यसले खरिदको अनुकूलन गर्न मद्दत गर्नेछ।
अब तपाईंले linear regression पछाडिको गणित बुझ्नुभयो, आउनुहोस् Regression मोडेल बनाउँछौं जसले कुन कद्दुखुराको प्याकेजमा उत्तम मूल्य आउनेछ भनी भविष्यवाणी गर्न सकोस्। कोई पनि व्यक्ति जसले पर्व कद्दुखुरा खेतीका लागि किन्नेछ, यो जानकारी उपयोगी हुनेछ।
## सहसंबन्ध खोज्दै
## सहसम्बन्ध खोज्दै
[](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
> 🎥 माथिको तस्वीरमा क्लिक गरी सहसम्बन्धको छोटो भिडियो हेर्नुहोस्।
अघिल्लो पाठबाट तपाईंले देख्नुभएको होला कि विभिन्न महिनाहरुको औसत मूल्य यसप्रकार देखिन्छ:
अघिल्लो पाठबाट तपाईंले देख्नुभएको होला कि विभिन्न महिनाहरूको औसत मूल्य यस्तो देखिन्छ:
<imgalt="Average price by month"src="../../../../translated_images/ne/barchart.a833ea9194346d76.webp"width="50%"/>
यसले केही सहसंबन्ध हुनुपर्छ भन्ने संकेत गर्दछ, र हामी `Month` र `Price`, वा `DayOfYear` र `Price` बीचको सम्बन्ध पूर्वानुमान गर्न linear regression मोडेल तालिम दिन सक्दछौं। तल scatter plot ले पछिल्लो सम्बन्ध देखाउँछ:
यसले के संकेत गर्छ भने केही सहसम्बन्ध हुनुपर्छ, र हामी रिग्रेसन मोडेल ट्रेन्ड गरेर `Month` र `Price` मध्ये वा `DayOfYear` र `Price` बीच सम्बन्ध अनुमान गर्न सक्छौं। तलको स्क्याटरप्लटले पछि चित्रण गरेको सम्बन्ध देखाउँछ:
<imgalt="Scatter plot of Price vs. Day of Year"src="../../../../translated_images/ne/scatter-dayofyear.bc171c189c9fd553.webp"width="50%"/>
<imgalt="Scatter plot of Price vs. Day of Year"src="../../../../translated_images/ne/scatter-dayofyear.bc171c189c9fd553.webp"width="50%"/>
अब `corr` फंक्शन प्रयोग गरेर सहसंबन्ध छ कि छैन जाँचौं:
आउनुस् `corr` function प्रयोग गरी सहसम्बन्ध छ कि छैन जाँचौं:
सहसंबन्ध धेरै कम देखिन्छ, -0.15 `Month` द्वारा र -0.17 `DayOfMonth` द्वारा, तर अर्को महत्त्वपूर्ण सम्बन्ध हुन सक्छ। भिन्न-भिन्न कद्दुखुरा भेराइटीहरूका मूल्य भिन्न क्लस्टरहरू जस्तो देखिन्छ। यस अनुमानी पुष्टि गर्नको लागि, प्रत्येक कद्दुखुरा वर्गलाई भिन्न रंगले प्लट गरौं। `scatter` प्लटिङ फंक्शनलाई `ax` प्यारामिटर दिएर हामी सबै बिन्दुहरू एउटै ग्राफमा हाल्न सक्छौं:
`Month` प्रति सहसम्बन्ध प्राय: -0.15 र `DayOfMonth` प्रति -0.17 जति सानो देखिन्छ, तर अर्को महत्वपूर्ण सम्बन्ध हुन सक्छ। फरक पम्पकिन किसिमका फरक मूल्य क्लस्टरहरू जस्तै देखिन्छ। यस अनुमान पुष्टि गर्न, हामी प्रत्येक पम्पकिन किसिम अलग रंगमा प्लट गर्नेछौं। `scatter` फङ्क्शनमा `ax` प्यारामिटर दिँदा सबै पोइन्टहरू एउटै ग्राफमा देखाउन सकिन्छ:
```python
ax=None
@ -140,92 +139,93 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
<imgalt="Scatter plot of Price vs. Day of Year"src="../../../../translated_images/ne/pie-pumpkins-scatter.d14f9804a53f927e.webp"width="50%"/>
<imgalt="Scatter plot of Price vs. Day of Year"src="../../../../translated_images/ne/pie-pumpkins-scatter.d14f9804a53f927e.webp"width="50%"/>
यदि हामी अब `Price` र `DayOfYear` बिच सहसंबन्ध `corr` फंक्शनले गणना गर्छौं भने `-0.27` जस्तो भेटिन्छ - जसले भविष्यवाणी गर्न योग्य मोडेल तालिम दिन सुझाउँछ।
यदि अब हामी `corr` फङ्क्शन प्रयोग गरी `Price` र `DayOfYear` को सहसम्बन्ध गणना गर्यौं भने, लगभग `-0.27` पाउँछौं - जसले बताउँछ कि पूर्वानुमान मोडेल प्रशिक्षण गर्नु उचित हुन्छ।
> linear regression मोडेल तालिम दिने पहिले हाम्रो डेटा सफा हुनु पर्छ। Linear regression खाली मानहरू र मिसिंग मानहरूसँग राम्रोसँग काम गर्दैन, त्यसैले सबै खाली कोशहरू हटाउनु उचित हुन्छ:
> लाइनर रिग्रेसन मोडेल प्रशिक्षण गर्नु अघि, सुनिश्चित गर्नुहोस् कि डाटा सफा छ। लाइनर रिग्रेसन खाली मानहरू भएको डाटामा राम्रो काम गर्दैन, त्यसैले सबै खाली थानहरू हटाउन उपयुक्त हुन्छ:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
अर्को उपाय हो ती खाली मानहरूलाई सम्बन्धित स्तम्भको माध्य मानले भर्नु।
अर्को तरिका त हो कि ती खाली मानहरूलाई सोही स्तम्भको औसत मानले पूरै दिनु।
## सरल Linear regression
## साधारण लाइनर रिग्रेसन
[](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn")
> 🎥 माथिको छविमा क्लिक गर्नुहोस् linear र polynomial regression को छोटो भिडियो अवलोकनका लागि।
> 🎥 माथिको तस्वीरमा क्लिक गरी लाइनर र पोलिनोमियल रिग्रेसनको छोटो भिडियो हेर्नुहोस्।
हाम्रो Linear Regression मोडेल तालिम दिन हामी **Scikit-learn** पुस्तकालय प्रयोग गर्नेछौं।
हामी हाम्रो लाइनर रिग्रेसन मोडेल तयार पार्न **Scikit-learn** लाइब्रेरी प्रयोग गर्नेछौं।
```python
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
हामी इनपुट मानहरू (फिचरहरू) र अपेक्षित आउटपुट (लेबल) फरक numpy array मा अलग पार्छौं:
हामी इनपुट मानहरू (फीचरहरू) र अपेक्षित आउटपुट (लेबल) अलग-अलग नम्पाइ एर्रेहरूमा छुट्याएर सुरु गर्छौं:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> नोट गर्नुहोस्, हामीलाई लाइनर रिग्रेसन प्याकेजले सही बुझोस् भनेर इनपुट डाटामा `reshape` गर्नुपर्यो। लाइनर रिग्रेसनले २D एर्रे इनपुट अपेक्षा गर्छ, जहाँ एर्रेको प्रत्येक पंक्ति इनपुट फीचरहरूको वेक्टर हुन्छ। हाम्रो केसमा, हाम्रो केवल एक इनपुट भएकोले N×1 आकारको एर्रे चाहिन्छ, जहाँ N डाटासेटको आकार हो।
> ध्यान दिनुहोस् कि इनपुट डेटा लाई `reshape` गर्नुपर्यो ताकि Linear Regression प्याकेज यसलाई ठीकसँग बुझ्न सकोस्। Linear Regression ले 2D-array इनपुट चाहन्छ, जहाँ array को प्रत्येक पंक्ति इनपुट फिचरको भेक्टर हुन्छ। हाम्रो अवस्थामा, एक मात्र इनपुट छ - त्यसैले N×1 आकारको array चाहिन्छ, जहाँ N dataset को आकार हो।
त्यसपछि, हामी डाटालाई तालिम र परीक्षणको लागि दुई भागमा विभाजन गर्नुपर्छ ताकि तालिम पछि मोडेललाई मान्य गर्न सकियोस्:
त्यसपछि, हामी डेटा ट्रेन र टेस्ट सेटमा विभाजन गर्नुपर्छ ताकि प्रशिक्षण पछि मोडेललाई मान्यकरण गर्न सकौं:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
अन्तमा, Linear Regression मोडेलको तालिम लिन दुई पंक्तिहरू मात्र आवश्यक हुन्छ। हामी `LinearRegression` वस्तु परिभाषित गर्छौं, र `fit` विधि प्रयोग गरी यसलाई डाटामा फिट गर्छौं:
अन्तमा, लाइनर रिग्रेसन मोडेलको वास्तविक प्रशिक्षण केवल दुई लाइन कोडले हुन्छ। हामी `LinearRegression` वस्तु परिभाषित गर्छौं, र `fit` विधि प्रयोग गरी डेटा फिट गर्छौं:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`fit` गरेपछि `LinearRegression` वस्तु regresssion का सबै coefficients राख्छ, जुन `.coef_` प्रोपर्टी प्रयोग गरेर पहुँच गर्न सकिन्छ। हाम्रा अवस्थामा, त्यहाँ एउटा मात्र coefficient छ, जुन करीव `-0.017` हुनुपर्छ। यसको मतलब मूल्यहरू समयसँग अलिकति घट्ने देखिन्छ, तर धेरै होइन, दैनिक लगभग 2 सेन्ट। हामी regresssion को Y-अक्षसंगको intersection point`lin_reg.intercept_` प्रयोग गरेर पनि पहुँच गर्न सक्छौं - हाम्रो अवस्थामा यो करीब `21` हुनेछ, जुन वर्षको सुरुमै मूल्य जनाउँछ।
`LinearRegression` वस्तु `fit` गरेपछि रिग्रेसनका सबै गुणांकहरू समावेश गरेको हुन्छ, जुन `.coef_` सम्पत्तिको प्रयोग गरेर पहुँच गर्न सकिन्छ। हाम्रो मामलामा, एक मात्र गुणांक छ, जुन लगभग `-0.017` हुनुपर्छ। यसको अर्थ मूल्यहरू समयसँगै थोरै घट्ने देखिन्छ, तर धेरै होइन, दिनको २ सेन्ट वरिपरि। हामी रिग्रेसनको Y-अक्षसँगको अन्तरफलक बिन्दुलाई`lin_reg.intercept_` प्रयोग गरेर पहुँच गर्न सक्छौं - हाम्रो मामलामा यो लगभग `21` हुनेछ, जुन वर्षको सुरुको मूल्य सङ्केत गर्दछ।
हाम्रो मोडेल कति शुद्ध छ भनी हेर्नको लागि, हामी परीक्षण डेटासेटमा मूल्यहरू अनुमान गर्न सक्छौं, र त्यसपछि हाम्रा अनुमानहरू अपेक्षित मूल्यहरूसंग कति नजिक छन् मापन गर्न सक्छौं। यो mean square error (MSE) मेट्रिक प्रयोग गरेर गर्न सकिन्छ, जुन अपेक्षित र अनुमानित मूल्यहरू बीचको सबै वर्गयुक्त भिन्नताहरूको औसत हो।
हाम्रो मोडेल कति सही छ भनेर हेर्नको लागि, हामी टेस्ट डेटासेटमा मूल्यहरू पूर्वानुमान गर्न सक्छौं, र त्यस पछि हाम्रा पूर्वानुमानहरू अपेक्षित मानहरूसँग कति नजिक छन् मापन गर्न सक्छौं। यसलाई root mean square error (RMSE) मेट्रिक प्रयोग गरेर गर्न सकिन्छ, जुन अपेक्षित र पूर्वानुमानित मानहरूबीच सबै वर्गान्तरहरूको औसतको वर्गमूल हो।
हाम्रो त्रुटि करीव 2 points छ, जुन लगभग 17% हो। त्यति राम्रो छैन। मोडेल गुणस्तरको अर्को संकेतक हो **coefficient of determination**, जुन यसरी प्राप्त गर्न सकिन्छ:
हाम्रो त्रुटि लगभग २ पोइन्ट्स छ, जुन ~१७% हो। धेरै राम्रो छैन। मोडेल गुणस्तरको अर्को सूचकांक **coefficient of determination** हो, जुन यसरी प्राप्त गर्न सकिन्छ:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
यदि मान 0 हो भने, यसको अर्थ मोडेल इनपुट डेटालाई ध्यान दिँदैन, र *worst linear predictor* को रूपमा कार्य गर्छ, जुन केवल परिणामको औसत मान हो। मान 1 को अर्थ हामी सबै अपेक्षित आउटपुटलाई पूर्ण रूपमा अनुमान गर्न सक्छौं। हाम्रा अवस्थामा, coefficient लगभग 0.06 छ, जुन धेरै कम हो।
यदि मान ० छ भने, यसको अर्थ मोडेल इनपुट डाटालाई ध्यानमा राख्दैन, र सबैभन्दा निकृष्ट रेखीय पूर्वानुमायकको रूपमा काम गर्छ, जुन केवल परिणामको औसत मान हो। मान १ हुनुको अर्थ हामी सबै अपेक्षित आउटपुटहरू पूर्ण रूपमा पूर्वानुमान गर्न सक्छौं। हाम्रो मामलामा गुणांक लगभग ०.०६ छ, जुन धेरै कम हो।
हामी परीक्षण डेटालाई regresssion लाइनसँगै प्लट गरेर पनि राम्रोसँग हेर्न सक्छौं कि regresssion हाम्रो अवस्थामा कसरी काम गर्छ:
हामी टेस्ट डाटालाई रिग्रेसन लाइनसँग सँगै प्लट गरेर हाम्रो मामलामा रिग्रेसन कसरि काम गर्छ हेर्न सक्छौं:
```python
plt.scatter(X_test,y_test)
@ -236,17 +236,17 @@ plt.plot(X_test,pred)
## Polynomial Regression
अर्को प्रकारको Linear Regression हो Polynomial Regression। कतिपय अवस्थामा चरहरूबीच रेखीय सम्बन्ध हुन्छ - भोल्युम अनुसार कद्दू जति ठूलो हुन्छ, मूल्य उति नै बढी हुन्छ - तर कहिलेकाहीं यी सम्बन्धहरू सिधा रेखा वा तलको सतहको रूपमा देखाउन सकिंदैन।
अर्को प्रकारको Linear Regression हो Polynomial Regression। कहिलेकाहीँ भेरिएबलहरूबीच रेखीय सम्बन्ध हुन्छ - जस्तै भोल्युम अनुसार कद्दु बढ्यो भने मूल्य पनि बढ्छ - तर कहिलेकाहीँ यी सम्बन्धहरू समतल वा सिधा रेखाको रूपमा प्लट गर्न सकिँदैन।
✅ यहाँ [अरु केही उदाहरणहरू](https://online.stat.psu.edu/stat501/lesson/9/9.8) छन्, जसमा Polynomial Regression प्रयोग गर्न सकिन्छ।
✅ यहाँ [अझ केही उदाहरणहरू](https://online.stat.psu.edu/stat501/lesson/9/9.8) छन् जुन Polynomial Regression प्रयोग गर्न सकिन्छ
Date र Price बीचको सम्बन्धलाई पुनः हेर्नुहोस्। के यो scatterplot अवश्य पनि सिधा रेखाले विश्लेषण गरिनुपर्छ जस्तो देखिन्छ? की मूल्यहरू परिवर्तन हुन सक्दैनन्? यस अवस्थामा, तपाईं polynomial regression प्रयास गर्न सक्नुहुन्छ।
मेरो तारिख र मूल्यबीचको सम्बन्ध फेरि हेर्नुहोस्। के यो scatterplot आवश्यक रूपमा सिधा रेखाले विश्लेषण गर्नुपर्छ भन्ने देखिन्छ? मूल्यहरू त कहिलेकाहीँ घटबढ हुन सक्दैन? यस अवस्थामा, तपाईं polynomial regression प्रयास गर्न सक्नुहुन्छ।
✅ Polynomials तिनीहरू गणितीय अभिव्यक्तिहरू हुन् जसले एक वा बढी चरहरू र coefficients समावेश गर्न सक्छ।
✅ Polynomial गणितीय अभिव्यक्तिहरू हुन् जसमा एक वा बढी भेरिएबल र गुणांकहरू हुन सक्छन्
Polynomial regression ले वक्र रेखा बनाउँछ जसले गैर-रेखीय डेटा राम्रोसँग फिट गर्छ। हाम्रो अवस्थामा, यदि हामीले इनपुट डेटामा squared `DayOfYear` चर समावेश गर्यौं भने, हामी हाम्रो डेटालाई एक पराबोलिक वक्रसँग फिट गर्न सक्षम हुनेछौं, जसको न्यूनतम वर्षभित्र कुनै निश्चित बिन्दुमा हुनेछ।
Polynomial regression ले गैररेखीय डाटालाई राम्रोसँग फिट गर्न घुमाउरो रेखा बनाउँछ। हाम्रो मामलामा, यदि हामी `DayOfYear` को वर्गीकरण भेरिएबलहरू इनपुट डाटामा समावेश गर्छौं भने, हामीले एक पैराबोलिक घुमाउरो फिट गर्न सक्छौं जसको न्यूनतम वर्षभित्र कुनै निश्चित बिन्दुमा हुनेछ।
Scikit-learn मा उपयोगी [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) समावेश छ जुन डाटा प्रक्रिया गर्ने फरक चरणहरूलाई जोड्न प्रयोग हुन्छ। **pipeline** भनेको धेरै **estimators** को श्रृंखला हो। हाम्रो अवस्थामा, हामी यस्तो pipeline बनाउँछौं जसले पहिले polynomial features मोडेलमा थप्छ, अनि regresssion तालिम दिन्छ:
Scikit-learn मा विभिन्न डेटा प्रशोधन चरणहरूलाई सँगै जोड्न सहयोग गर्ने [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) समावेश छ। एक **pipeline** लाई **estimators** को श्रृंखला भनिन्छ। हाम्रो मामलामा, हामी एउटा pipeline बनाउनेछौं जुन पहिले polynomial features मोडेलमा थप्छ र त्यसपछि रिग्रेसन प्रशिक्षित गर्छ:
```python
from sklearn.preprocessing import PolynomialFeatures
`PolynomialFeatures(2)` प्रयोग गर्नाले हामी इनपुट डेटाबाट सबै दोस्रो-श्रेणी polynomial समावेश गर्छौं। हाम्रो अवस्थामा यसले मात्र `DayOfYear`² मतलब दिन्छ, तर दुई इनपुट चर X र Y भएमा यसले X², XY र Y² थप्छ। हामी उच्चतम डिग्री polynomial पनि प्रयोग गर्न सक्छौं।
`PolynomialFeatures(2)` प्रयोग गर्दा हामी इनपुट डाटाबाट सबै दोस्रो डिग्रीका polynomial समावेश गर्नेछौं। हाम्रो मामलामा यसको अर्थ केवल `DayOfYear`<sup>2</sup> हुनेछ, तर यदि दुई इनपुट भेरिएबलहरू X र Y छन् भने यसले X<sup>2</sup>, XY र Y<sup>2</sup> जोड्नेछ। हामी उच्च डिग्री polynomial पनि प्रयोग गर्न सक्छौं यदि आवश्यक छ भने।
Pipelines मूल`LinearRegression` वस्तु जस्तै प्रयोग गर्न सकिन्छ, अर्थात् हामी pipeline लाई `fit` गर्न सक्छौं, अनि `predict` प्रयोग गरेर परिणाम पाउन सक्छौं। यो ग्राफले परीक्षण डाटा र नजिकको वक्र देखाउँछ:
पाइपलाइनहरूलाई`LinearRegression` वस्तु जस्तै नै प्रयोग गर्न सकिन्छ, अर्थात् हामी pipeline लाई `fit` गर्न सक्छौं र त्यसपछि `predict` प्रयोग गरी पूर्वानुमान नतिजा प्राप्त गर्न सक्छौं। यहाँ टेस्ट डेटा र अनुमानित घुमाउरो देखाइएको छ:
Polynomial Regression को प्रयोगले हामी सँधै अलि कम MSE र बढी determination पाउन सक्छौं, तर त्यति धेरै हुँदैन। हामीले अरु features पनि ध्यान दिनु पर्छ!
Polynomial Regression प्रयोग गर्दा, हामी अलिकति कम MSE र उच्च गत्यात्मक गुणांक (determination) पाउन सक्छौं, तर धेरै फरक पर्दैन। हामीले अन्य विशेषताहरूलाई पनि ध्यानमा लिनुपर्छ!
> तपाईंले देख्नुभयो होला कि न्यूनतम कद्दू मूल्यहरू लगभग Halloween का आसपास अवलोकन गरिन्छ। यसलाई कसरी व्याख्या गर्नुहुन्छ?
> तपाईं देख्न सक्नुहुन्छ कि न्यूनतम कद्दुको मूल्यहरू लगभग Halloween को आसपास देखिन्छ। तपाईं यसलाई कसरी व्याख्या गर्नुहुन्छ?
🎃 बधाई छ, तपाईंले यस्तो मोडेल बनाउनु भयो जसले pie pumpkins को मूल्य अनुमान गर्न मद्दत गर्दछ। तपाईं सम्भवतः यही प्रक्रिया सबै कद्दू प्रकारको लागि दोहोर्याउन सक्नुहुन्छ, तर त्यो काम थकाउ हुनेछ। अब हामी सिकौं कसरी हाम्रो मोडेलमा कद्दूको भिन्नता लिन सकिन्छ!
🎃 बधाई छ, तपाईं एउटा यस्तो मोडेल सिर्जना गर्नुभएको छ जसले पाई कद्दुहरूको मूल्य पूर्वानुमान गर्न मद्दत गर्न सक्छ। तपाईं सजिलै सबै कद्दु प्रजातिहरूका लागि एउटै तरिका पुन: गर्न सक्नुहुन्छ, तर त्यो थोरै अलमलिलो हुनेछ। अब हामी कसरी हाम्रो मोडेलमा कद्दुको प्रजाति ध्यानमा राख्ने जान्न छौं!
## Categorical Features
सपनाको संसारमा, हामीले एउटै मोडेल प्रयोग गरेर फरक फरक कद्दू भेराइटीहरूको मूल्य अनुमान गर्न चाहन्छौं। तर `Variety` स्तम्भ `Month` जस्ता स्तम्भहरू जस्तै छैन, किनकि यसले गैर-सांख्यिक मानहरू समावेश गर्दछन्। यस्ता स्तम्भहरूलाई **categorical** भनिन्छ।
आदर्श संसारमा, हामी एउटै मोडेलले विभिन्न कद्दु प्रजातिहरूका मूल्य पूर्वानुमान गर्न सक्न चाहन्छौं। यद्यपि, `Variety` स्तम्भ `Month` जस्ता स्तम्भहरूभन्दा फरक छ किनभने यसमा गैर-संख्यात्मक मानहरू छन्। यस्तो स्तम्भहरूलाई **categorical** भनिन्छ।
[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 माथिको छवि क्लिक गरेर categorical features प्रयोग गर्ने छोटो भिडियो हेर्न सक्नुहुन्छ।
> 🎥 माथिको तस्वीरमा क्लिक गरेर क्याटेगोरिकल विशेषताहरू प्रयोग गर्ने छोटकरी भिडियो हेर्नुहोस्।
यहाँ तपाईंले देख्न सक्नुहुन्छ कि औसत मूल्य भेराइटीमा कसरी निर्भर गर्दछ:
यहाँ तपाईं देख्न सक्नुहुन्छ कि औसत मूल्य प्रजातिमा कसरि निर्भर छ:
<imgalt="Average price by variety"src="../../../../translated_images/ne/price-by-variety.744a2f9925d9bcb4.webp"width="50%"/>
भेराइटीलाई ध्यानमा लिन, पहिले हामीले यसलाई सांख्यिक मानमा रूपान्तरण गर्नुपर्छ, वा **encode** गर्नुपर्छ। यसका केही तरिकाहरू छन्:
प्रजातिलाई ध्यानमा राख्न, हामीले पहिले यसलाई सङ्ख्यात्मक रूपान्तरण (encoding) गर्नुपर्छ। यसका केही तरिकाहरू छन्:
* साधारण **numeric encoding** ले विभिन्न भेराइटीहरूको तालिका बनाउनेछ, र त्यसपछि भेराइटी नामलाई तालिकामा रहेको index द्वारा प्रतिस्थापन गर्नेछ। यो linear regression का लागि उत्तम होइन, किनकि linear regression ले वास्तवमा index को संख्यात्मक मान लिन्छ र परिणाममा यसलाई केही coefficient द्वारा गुणा गरेर थप्छ। हाम्रो अवस्थामा, index नम्बर र मूल्य बीचको सम्बन्ध स्पष्ट रूपमा गैर-रेखीय छ, यहाँसम्म कि यदि हामीले indices लाई कुनै विशिष्ट क्रममा राख्यौं भने पनि।
* **One-hot encoding** ले `Variety` स्तम्भलाई 4 फरक स्तम्भहरूमा बदल्नेछ, प्रत्येक भेराइटीका लागि एउटै। प्रत्येक स्तम्भमा `1` हुनेछ यदि त्यो पङ्क्ति उक्त भेराइटीको हो, नत्र `0`। यसको मतलब regresssion मा चार वटा coefficients हुनेछन्, प्रत्येक कद्दू भेराइटीको लागि, जुन उक्त भेराइटीका लागि "शुरुमा मूल्य" (वा "थप मूल्य") को जिम्मेवार हुनेछ।
* सरल **सङ्ख्यात्मक इन्कोडिङ** ले विभिन्न प्रजातिहरूको तालिका बनाउँछ र त्यसपछि प्रजातिको नामलाई तालिकामा रहेको अनुक्रमणिका (index) द्वारा प्रतिस्थापन गर्छ। यो रेखीय रिग्रेसनको लागि राम्रो विचार होइन, किनभने रिग्रेसनले अनुक्रमणिकाको वास्तविक संख्यात्मक मानलाई लिन्छ र यसको गुणांकसँग परिणाममा जोड्छ। हाम्रो मामलामा, अनुक्रमणिका र मूल्य बीचको सम्बन्ध स्पष्ट रूपमा गैर-रेखीय छ, भले अनुक्रमणिकाहरू विशेष तरिकाले क्रमबद्ध गरे पनि।
* **One-hot encoding** ले `Variety` स्तम्भलाई चार फरक स्तम्भहरूद्वारा प्रतिस्थापन गर्छ, प्रत्येक प्रजातिका लागि एक स्तम्भ। प्रत्येक स्तम्भमा `1` हुन्छ यदि सो पङ्क्ति त्यो प्रजातिको हो भने र `0` अन्यथा। यसको मतलब रेखीय रिग्रेसनमा चार गुणांकहरू हुनेछन्, प्रत्येक कद्दु प्रजातिको लागि, जुन त्यो विशेष प्रजातिको लागि "सुरुवाती मूल्य" (वा "अतिरिक्त मूल्य") को जिम्मेवार हुनेछ।
तलको कोडले कसरी variety लाई one-hot encode गर्न सकिन्छ देखाउँछ:
तलको कोडले देखाउँछ कसरी एक प्रजातिलाई one-hot encode गर्न सकिन्छ:
one-hot encoded variety लाई इनपुट बनाएर linear regression तालिम दिन, हामीले सही तरिकाले `X` र `y` डेटा initialize गर्नुपर्छ:
रिग्रेसनलाई one-hot encoded प्रजातिको रूपमा इनपुट प्रयोग गरी प्रशिक्षित गर्न, हामीलाई `X` र `y` लाई ठीकसँग आरम्भ गर्नुपर्छ:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
बाकी कोड भनेको Linear Regression तालिम दिन माथि प्रयोग गरिएको को संग नै छ। यदि तपाईं प्रयास गर्नुहुन्छ भने, mean squared error लगभग उस्तै हुने देख्नुहुनेछ, तर हामी धेरै उच्च coefficient of determination (~77%) पाउँछौं। अझ शुद्ध अनुमान पाउनका लागि, हामी धेरै categorical features र साथै सांख्यिक features जस्तै `Month` वा `DayOfYear` लाई पनि विचार गर्न सक्छौं। एउटा ठूलो array बनाउनका लागि हामी`join` प्रयोग गर्न सक्छौं:
बाकी कोड तेस्तै छ जुन हामीले माथि Linear Regression प्रशिक्षित गर्न प्रयोग गरेका थियौं। यदि तपाईं यसलाई प्रयास गर्नुहुनेछ भने, तपाईं देख्नु हुनेछ कि माध्य वर्गमूल त्रुटि लगभग उस्तै छ, तर हामीलाई धेरै उच्च determination गुणांक (~७७%) प्राप्त हुन्छ। अझ सटीक पूर्वानुमानहरूका लागि, हामी अन्य categorical विशेषताहरू पनि र संख्यात्मक विशेषताहरू जस्तै `Month` वा `DayOfYear` पनि ध्यानमा लिन सक्छौं। ठूलो फिचर एर्रे बनाउन`join` प्रयोग गर्न सकिन्छ:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -320,28 +320,28 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
यहाँ हामीले `City` र `Package` type पनि ध्यानमा राखेका छौं, जसले हामीलाई MSE 2.84 (10%) र determination 0.94 दिन्छ!
यहाँ हामी`City` र `Package` प्रकार पनि ध्यानमा राख्छौं, जसले हामीलाई MSE २.८४ (१०%) र determination ०.९४ दिन्छ!
## सबैलाई मिलाएर
## सबैलाई एक साथ राख्दै
सबैभन्दा राम्रो मोडेल बनाउन, हामी माथिको उदाहरणको संयुक्त (one-hot encoded categorical + numeric) डेटा र Polynomial Regression एकसाथ प्रयोग गर्न सक्छौं। तपाईंको सहूलियतका लागि पूर्ण कोड यहाँ छ:
सबैभन्दा राम्रो मोडेल बनाउन, हामी माथि दिइएको नमूनाको मिश्रित (one-hot encoded categorical + numeric) डाटालाई Polynomial Regression सँग प्रयोग गर्न सक्छौं। यहाँ तपाईंको सुविधा को लागि पूरा कोड छ:
```python
# प्रशिक्षण डेटालाई सेट अप गर्नुहोस्
# तालिम डेटा सेट अप गर्नुहोस्
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# प्रशिक्षण-टेस्ट विभाजन बनाउनुहोस्
# ट्रेन-टेस्ट विभाजन बनाउनुहोस्
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
यसले हामीलाई लगभग 97% निर्धारण coefficient र MSE=2.23 (~8% अनुमान त्रुटि) दिनेछ।
यसले हामीलाई लगभग ९७% को सबैभन्दा राम्रो determination गुणांक र MSE=२.२३ (~८% पूर्वानुमान त्रुटि) देला।
| मोडेल | MSE | निर्धारण |
| मोडेल | MSE | Determination |
|-------|-----|---------------|
| `DayOfYear` Linear | 2.77 (17.2%) | 0.07 |
| `DayOfYear` Polynomial | 2.73 (17.0%) | 0.08 |
| `Variety` Linear | 5.24 (19.7%) | 0.77 |
| सबै features Linear | 2.84 (10.5%) | 0.94 |
| सबै features Polynomial | 2.23 (8.25%) | 0.97 |
| `DayOfYear` Linear | २.७७ (१७.२%) | ०.०७ |
| `DayOfYear` Polynomial | २.७३ (१७.०%) | ०.०८ |
| `Variety` Linear | ५.२४ (१९.७%) | ०.७७ |
| सबै विशेषताहरू Linear | २.८४ (१०.५%) | ०.९४ |
| सबै विशेषताहरू Polynomial | २.२३ (८.२५%) | ०.९७ |
🏆 राम्रो काम! तपाईंले एउटा पाठमा चार Regression मोडेल बनाउनु भयो, र मोडेल गुणस्तरलाई 97% सम्म सुधार्नुभयो। Regression को अन्तिम खण्डमा, तपाईंले Logistic Regression को बारेमा सिक्नु हुनेछ जुन वर्गहरू निर्धारण गर्न प्रयोग हुन्छ।
🏆 राम्रो काम! तपाईंले एउटै पाठमा चार वटा Regression मोडेलहरू सिर्जना गर्नुभयो र मोडेलको गुणस्तर ९७% सम्म बढाउनुभयो। Regression को अन्तिम भागमा, तपाईं Logistic Regression बारे जान्नु हुनेछ जुन वर्गहरू निर्धारण गर्न प्रयोग हुन्छ।
---
## 🚀Challenge
यस नोटबुकमा विभिन्न चरहरू परीक्षण गरेर हेर्नुहोस् कि सहसंबन्ध र मोडेलको शुद्धताबीच कस्तो सम्बन्ध हुन्छ।
यस नोटबुकमा विभिन्न भेरिएबलहरू परीक्षण गर्नुहोस् ताकि कसरि सहसम्बन्ध (correlation) मोडेलको सटीकता अनुसार जान्छ बुझ्न सकियोस्।
## [पाठ पूरा गरे पछिको क्विज](https://ff-quizzes.netlify.app/en/ml/)
यस पाठमा हामीले Linear Regression सिक्यौं। Regression का अन्य महत्वपूर्ण प्रकारहरू पनि छन्। Stepwise, Ridge, Lasso र Elasticnet प्रविधिहरूको बारेमा पढ्नुहोस्। थप अध्ययनका लागि राम्रो कोर्स हो [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
यस पाठमा हामीले Linear Regression बारे सिक्यौं। अन्य महत्वपूर्ण Regression प्रकारहरू पनि छन्। Stepwise, Ridge, Lasso र Elasticnet प्रविधिहरूको बारेमा पढ्नुहोस्। थप जान्न एक राम्रो कोर्स हो [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## कार्य
## असाइनमेन्ट
[मोडेल बनाउनुहोस्](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**अस्वीकरण**:
यस दस्तावेजलाई AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) को माध्यमबाट अनुवाद गरिएको हो। हामी शुद्धताका लागि प्रयासरत छौं भने पनि, कृपया जानकार हुनुहोस् कि स्वचालित अनुवादमा त्रुटि वा अशुद्धता हुन सक्छ। मूल दस्तावेज यसको मूल भाषामा नै अधिकारिक स्रोत मान्नुपर्छ। महत्वपूर्ण जानकारीका लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा दुरव्याख्याका लागि हामी उत्तरदायी छैनौं।
**अस्वीकरण**:
यस दस्तावेजलाई AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरी अनुवाद गरिएको हो। हामी सटीकताको प्रयास गर्छौं भने पनि, कृपया जानकारि हुनुहोस् कि स्वचालित अनुवादमा त्रुटिहरू वा गलतफहमीहरू हुनसक्छन्। मूल दस्तावेज आफ्नो मूल भाषामै अधिकारिक स्रोत मानिनु पर्छ। महत्वपूर्ण जानकारीको लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलतफहमी वा व्याख्यामा हामी जिम्मेवार छैनौं।
यस पाठमा, तपाईंले अघिल्लो पाठमा बचत गरिएको डेटा सेट प्रयोग गर्नुहुनेछ, जुन सन्तुलित, सफा डेटा हो र विभिन्न प्रकारका खानाका बारेमा जानकारी समेटिएको छ।
यस पाठमा, तपाईंले अघिल्लो पाठबाट बचत गर्नुभएको सामग्रीहरू भरिएको सन्तुलित, सफा डाटासेट प्रयोग गर्नुहुनेछ जुन सबै पकवानहरूका बारेमा छ।
तपाईंले यो डेटा सेट विभिन्न वर्गीकरणकर्ताहरूसँग प्रयोग गर्नुहुनेछ ताकि _सामग्रीहरूको समूहको आधारमा कुनै राष्ट्रिय खानाको भविष्यवाणी गर्न सकियोस्_। यस क्रममा, तपाईंले वर्गीकरण कार्यहरूको लागि एल्गोरिदमहरू कसरी प्रयोग गर्न सकिन्छ भन्ने बारे थप जान्नुहुनेछ।
तपाईं यस डाटासेटलाई विभिन्न वर्गीकरणकर्ताहरूका साथ प्रयोग गरेर _दिएको सामग्री समूहको आधारमा राष्ट्रिय पकवान पूर्वानुमान गर्न_ प्रयोग गर्नुहुनेछ। यस क्रममा, तपाईंले वर्गीकरण कार्यहरूको लागि एल्गोरिदमहरूलाई कसरी उपयोग गर्न सकिन्छ भन्ने केहि तरिकाहरूको बारेमा थप जान्नुहुनेछ।
## [पाठ अघि क्विज](https://ff-quizzes.netlify.app/en/ml/)
यदि तपाईंले [पाठ १](../1-Introduction/README.md) पूरा गर्नुभएको छ भने, सुनिश्चित गर्नुहोस् कि _cleaned_cuisines.csv_ फाइल `/data` फोल्डरको मूलमा यी चार पाठहरूको लागि उपलब्ध छ।
मानौं तपाईंले [पाठ 1](../1-Introduction/README.md) पूरा गर्नुभयो भने, पक्का गर्नुहोस् कि _cleaned_cuisines.csv_ फाइल मूल `/data` फोल्डरमा यी चार पाठका लागि अवस्थित छ।
## अभ्यास - राष्ट्रिय खाना भविष्यवाणी गर्नुहोस्
## अभ्यास - राष्ट्रिय पकवान अनुमान गर्न
1. यस पाठको _notebook.ipynb_ फोल्डरमा काम गर्दै, उक्त फाइल र Pandas लाइब्रेरी आयात गर्नुहोस्:
1. यस पाठको _notebook.ipynb_ फोल्डर भित्र, त्यो फाइल र Pandas लाइब्रेरी आयात गर्नुहोस्:
अब तपाईं आफ्नो मोडेल प्रशिक्षण गर्न तयार हुनुहुन्छ!
अब तपाईं आफ्नो मोडल तालिम दिन तयार हुनुहुन्छ!
## वर्गीकरणकर्ता चयन गर्दै
## तपाईँको वर्गीकरणकर्ता चयन
अब तपाईंको डेटा सफा र प्रशिक्षणको लागि तयार छ, तपाईंले कुन एल्गोरिदम प्रयोग गर्ने निर्णय गर्नुपर्छ।
अब जब तपाईंको डाटा सफा र तालिमका लागि तयार छ, तपाईंले कुन एल्गोरिदम कामका लागि प्रयोग गर्ने निर्णय गर्नुपर्छ।
Scikit-learn ले वर्गीकरणलाई Supervised Learning अन्तर्गत समेट्छ, र यस श्रेणीमा तपाईंले वर्गीकरणका लागि धेरै विधिहरू पाउनुहुनेछ। [विविधता](https://scikit-learn.org/stable/supervised_learning.html) पहिलो नजरमा अलमलमा पार्न सक्छ। निम्न विधिहरूले वर्गीकरण प्रविधिहरू समावेश गर्छन्:
Scikit-learn ले वर्गीकरणलाई Supervised Learning अन्तर्गत राख्दछ, र त्यस वर्गमा तपाईंलाई वर्गीकरण गर्ने धेरै तरिकाहरू पाइनुहुनेछ। [विविधता](https://scikit-learn.org/stable/supervised_learning.html) पहिलो दृष्टिमा अलि भ्रमपूर्ण हुन सक्छ। निम्न तरिकाहरू सबैमा वर्गीकरण प्रविधिहरू समावेश छन्:
- रेखीय मोडेलहरू
- सपोर्ट भेक्टर मेसिनहरू
- स्टोकास्टिक ग्रेडियन्ट डिसेन्ट
- नजिकका छिमेकीहरू
- गाउसीयन प्रक्रियाहरू
- निर्णय वृक्षहरू
- Ensemble विधिहरू (मतदान वर्गीकरणकर्ता)
- बहु-वर्ग र बहु-आउटपुट एल्गोरिदमहरू (बहु-वर्ग र बहु-लेबल वर्गीकरण, बहु-वर्ग-बहु-आउटपुट वर्गीकरण)
- रैखिक मोडेलहरू (Linear Models)
- समर्थन भेक्टर मेशिनहरू (Support Vector Machines)
- बहुवर्गीय र बहु-आउटपुट एल्गोरिदमहरू (multiclass and multilabel classification, multiclass-multioutput classification)
> तपाईं [न्यूरल नेटवर्कहरू प्रयोग गरेर डेटा वर्गीकृत गर्न](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification) पनि सक्नुहुन्छ, तर यो पाठको दायरा बाहिर छ।
> तपाईं [न्यूरल नेटवर्कहरू](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification) पनि डाटालाई वर्गीकरण गर्न प्रयोग गर्न सक्नुहुन्छ, तर त्यो यस पाठको दायरामा पर्दैन।
### कुन वर्गीकरणकर्ता चयन गर्ने?
### कुन वर्गीकरणकर्ता छनौट गर्ने?
त्यसो भए, कुन वर्गीकरणकर्ता चयन गर्ने? प्रायः, धेरै विधिहरू चलाएर राम्रो नतिजा खोज्नु परीक्षण गर्ने तरिका हो। Scikit-learn ले [साइड-बाई-साइड तुलना](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) प्रदान गर्दछ, जहाँ KNeighbors, SVC दुई तरिकाले, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB र QuadraticDiscriminationAnalysis को तुलना गरिएको छ, र नतिजाहरू दृश्यात्मक रूपमा देखाइएको छ:
त्यसैले, कुन वर्गीकरणकर्ता चयन गर्ने? प्रायः, थुप्रै विकल्पहरूको प्रयोग गरेर राम्रो नतिजा खोज्न एउटा तरिका हो परीक्षण गर्न। Scikit-learn ले [पारस्परिक तुलना](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) प्रदान गर्दछ जुन सिर्जना गरिएको डाटासेटमा KNeighbors, SVC दुई तरिकाले, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB र QuadraticDiscrinationAnalysis लाई तुलना गरी नतिजा दृश्यहरु देखाउँछ:

> Scikit-learn को डकुमेन्टेसनमा बनेका प्लटहरू
> AutoML ले यो समस्या सजिलै समाधान गर्छ, यी तुलना क्लाउडमा चलाएर तपाईंलाई तपाईंको डेटा लागि सबैभन्दा उपयुक्त एल्गोरिदम चयन गर्न अनुमति दिन्छ। यसलाई [यहाँ प्रयास गर्नुहोस्](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
> AutoML ले यो समस्या कुशलतापूर्वक समाधान गर्दछ जसले यी तुलना बादलमा चलाएर तपाईंको डाटाका लागि सबैभन्दा उपयुक्त एल्गोरिदम छनौट गर्न अनुमति दिन्छ। यसलाई [यहाँ](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott) प्रयास गर्नुहोस्।
### राम्रो दृष्टिकोण
### राम्रो तरिका
अनुमान लगाउने भन्दा राम्रो तरिका भनेको यो डाउनलोड गर्न मिल्ने [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) को विचारहरू अनुसरण गर्नु हो। यहाँ, हामी पत्ता लगाउँछौं कि हाम्रो बहु-वर्ग समस्याको लागि, हामीसँग केही विकल्पहरू छन्:
तरिकाहरूको अनुमान गर्नुभन्दा राम्रो तरिका, यो डाउनलोड गर्न मिल्ने [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) मा भएका सुझावहरू पालना गर्नु हो। यहाँ हामी पाउँछौं कि हाम्रो बहुवर्गीय समस्याको लागि हामीसँग केहि विकल्पहरू छन्:

> माइक्रोसफ्टको एल्गोरिदम चिट शीटको एक भाग, बहु-वर्ग वर्गीकरण विकल्पहरू विवरण गर्दै

> Microsoft को Algorithm Cheat Sheet को एक भाग, बहुवर्ग वर्गीकरण विकल्पहरू विवरण गर्दै
✅ यो चिट शीट डाउनलोड गर्नुहोस्, प्रिन्ट गर्नुहोस्, र तपाईंको भित्तामा टाँस्नुहोस्!
✅ यो cheat sheet डाउनलोड गरेर प्रिन्ट गर्नुहोस् र आफ्नो पर्खालमा झुण्ड्याउनुहोस्!
### तर्क
### तार्किक सोच
हामीसँग भएका सीमाहरूलाई ध्यानमा राख्दै विभिन्न दृष्टिकोणहरूको तर्क गर्न प्रयास गरौं:
हेरौं कि हामीले विभिन्न दृष्टिकोणहरूलाई हाम्रा सिमितताहरूलाई मध्यनजर गर्दै कसरी सोच्न सक्छौं:
- **न्यूरल नेटवर्कहरू धेरै भारी छन्**। हाम्रो सफा, तर न्यूनतम डेटा सेटलाई ध्यानमा राख्दै, र तथ्य यो हो कि हामी स्थानीय रूपमा नोटबुकहरू मार्फत प्रशिक्षण चलाउँदैछौं, न्यूरल नेटवर्कहरू यस कार्यको लागि धेरै भारी छन्।
- **दुई-वर्ग वर्गीकरणकर्ता छैन**। हामी दुई-वर्ग वर्गीकरणकर्ता प्रयोग गर्दैनौं, त्यसैले यसले one-vs-all लाई अस्वीकार गर्छ।
- **निर्णय वृक्ष वा Logistic Regression काम गर्न सक्छ**। निर्णय वृक्ष काम गर्न सक्छ, वा बहु-वर्ग डेटा लागि Logistic Regression।
- **बहु-वर्ग Boosted Decision Trees फरक समस्या समाधान गर्छ**। बहु-वर्ग Boosted Decision Tree गैर-प्यारामेट्रिक कार्यहरूको लागि सबैभन्दा उपयुक्त छ, जस्तै रैंकिङ निर्माण गर्न डिजाइन गरिएका कार्यहरू, त्यसैले यो हाम्रो लागि उपयोगी छैन।
- **न्यूरल नेटवर्कहरू धेरै भारी हुन्छन्।** हाम्रो सफा तर न्यूनतम डाटासेट र स्थानीय नोटबुक मार्फत तालिम चलाउने तथ्यलाई ध्यानमा राख्दा, न्यूरल नेटवर्कहरू यस कार्यका लागि धेरै भारी हुन्छन्।
- **दुई-वर्गीय वर्गीकरणकर्ता छैन।** हामी दुई-वर्गीय वर्गीकरणकर्ता प्रयोग गर्दैनौं, यसले one-vs-all विकल्पलाई बाहिर गर्छ।
- **निर्णय वृक्ष वा Logistic Regression काम हुन सक्छ।** निर्णय वृक्ष काम गर्न सक्छ, वा बहुवर्गीय डाटाको लागि Logistic Regression।
- **बहुवर्ग बूस्टेड निर्णय वृक्ष फरक समस्या समाधान गर्छ।** बहुवर्ग बूस्टेड निर्णय वृक्ष गैर-प्यारामेट्रिक कार्यहरूमा उपयुक्त हुन्छ, जस्तै र्याङ्किङ निर्माण गर्न डिजाईन गरिएको कार्यहरूमा, त्यसैले हाम्रो लागि उपयोगी हुँदैन।
### Scikit-learn प्रयोग गर्दै
### Scikit-learn को प्रयोग
हामी Scikit-learn प्रयोग गरेर हाम्रो डेटा विश्लेषण गर्नेछौं। तर, Scikit-learn मा Logistic Regression प्रयोग गर्ने धेरै तरिकाहरू छन्। पास गर्नुपर्ने [प्यारामिटरहरू](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression) हेर्नुहोस्।
हामी हाम्रो डाटा विश्लेषण गर्न Scikit-learn प्रयोग गर्नेछौं। यद्यपि, Scikit-learn मा Logistic Regression प्रयोग गर्ने धेरै तरिकाहरू छन्। [पास गर्नुपर्ने प्यारामिटरहरू](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression) हेर्नुस्।
मूलतः दुई महत्त्वपूर्ण प्यारामिटरहरू छन् - `multi_class` र `solver` - जुन हामीले निर्दिष्ट गर्नुपर्छ, जब हामी Scikit-learn लाई Logistic Regression प्रदर्शन गर्न सोध्छौं। `multi_class` मानले निश्चित व्यवहार लागू गर्छ। solver को मान कुन एल्गोरिदम प्रयोग गर्ने हो। सबै solvers लाई सबै `multi_class` मानहरूसँग जोड्न सकिँदैन।
मूल रूपमा दुई महत्वपूर्ण प्यारामिटरहरू छन् - `multi_class` र `solver` - जुन हामीले Logistic Regression प्रदर्शन गर्न Scikit-learn लाई सोध्दा निर्दिष्ट गर्नुपर्छ। `multi_class` मानले एउटा व्यवहार लागू गर्छ। solver को मान कुन एल्गोरिदम प्रयोग गर्ने हो भनेर जनाउँछ। सबै solver हरू सबै प्रकारका `multi_class` मानहरूसँग जोडी हुँदैनन्।
दस्तावेज अनुसार, बहु-वर्ग केसमा, प्रशिक्षण एल्गोरिदम:
- **one-vs-rest (OvR) योजना प्रयोग गर्छ**, यदि`multi_class` विकल्प `ovr` मा सेट गरिएको छ भने।
- **cross-entropy loss प्रयोग गर्छ**, यदि`multi_class` विकल्प `multinomial` मा सेट गरिएको छ भने। (हाल `multinomial` विकल्प केवल ‘lbfgs’, ‘sag’, ‘saga’ र ‘newton-cg’ solvers द्वारा समर्थित छ।)
- **one-vs-rest (OvR) योजना प्रयोग गर्छ**, जब`multi_class` विकल्प `ovr` मा सेट गरिएको छ
- **cross-entropy हानि प्रयोग गर्छ**, जब`multi_class` विकल्प `multinomial` मा सेट गरिएको छ। (हाल `multinomial` विकल्पले ‘lbfgs’, ‘sag’, ‘saga’ र ‘newton-cg’ solver हरूलाई मात्र समर्थन गर्दछ।)"
> 🎓 यहाँ 'scheme' या त 'ovr' (one-vs-rest) वा 'multinomial' हुन सक्छ। Logistic Regression वास्तवमा द्वि-वर्ग वर्गीकरणलाई समर्थन गर्न डिजाइन गरिएको हो, यी योजनाहरूले यसलाई बहु-वर्ग वर्गीकरण कार्यहरू राम्रोसँग ह्यान्डल गर्न अनुमति दिन्छ। [स्रोत](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 यहाँ 'योजना' हुन सक्छ 'ovr' (one-vs-rest) वा 'multinomial'। Logistic regression वास्तवमा द्विक वर्गीकरणलाई समर्थन गर्न बनाइएकोले यी योजनाहरूले बहुवर्ग वर्गीकरण कार्यहरूलाई राम्रोसँग सम्हाल्न अनुमति दिन्छ। [स्रोत](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 'solver' लाई "अनुकूलन समस्यामा प्रयोग गर्नुपर्ने एल्गोरिदम" भनेर परिभाषित गरिएको छ। [स्रोत](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
> 🎓 'solver' लाई "अप्टिमाइजेशन समस्यामा प्रयोग गरिने एल्गोरिदम" भनिएको छ। [स्रोत](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression)
Scikit-learn ले विभिन्न प्रकारका डेटा संरचनाहरूले प्रस्तुत गर्ने चुनौतीहरू कसरी solvers ले ह्यान्डल गर्छन् भन्ने व्याख्या गर्न यो तालिका प्रदान गर्दछ:
Scikit-learn ले यस तालिकाले विभिन्न डाटा संरचनाहरूले प्रस्तुत गरेको विभिन्न चुनौतीहरूलाई कसरी solver हरूले सम्हाल्छन् भन्ने बुझाउँछ:
तपाईं बहु-वर्ग केस प्रयोग गर्दै हुनुहुन्छ, त्यसैले तपाईंले कुन _scheme_ प्रयोग गर्ने र कुन _solver_ सेट गर्ने निर्णय गर्नुपर्छ। बहु-वर्ग सेटिङ र **liblinear** solver प्रयोग गरेर Logistic Regression लागू गर्नुहोस्।
तपाईंले बहुवर्ग अवस्था प्रयोग गर्दै हुनुहुन्छ, त्यसैले तपाईंले कुन _योजना_ प्रयोग गर्ने र कुन _solver_ सेट गर्ने छनौट गर्नुपर्छ। LogisticRegression लाई बहुवर्ग सेटिङ र **liblinear** solver सहित तालिम दिन प्रयोग गर्नुहोस्।
1. `multi_class`लाई `ovr` मा सेट गरेर र solver लाई `liblinear` मा सेट गरेर Logistic Regression सिर्जना गर्नुहोस्:
1. `multi_class`लाई `ovr` र solver लाई `liblinear` मा सेट गर्दै logistic regression बनाउनुहोस्:
```python
lr = LogisticRegression(multi_class='ovr',solver='liblinear')
✅ `lbfgs` जस्तो फरक solver प्रयास गर्नुहोस्, जुन प्रायः डिफल्टको रूपमा सेट गरिएको हुन्छ।
> नोट, आवश्यक परेको बेला आफ्नो डेटा समतल बनाउन Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) फङ्सन प्रयोग गर्नुहोस्।
यो मोडेलको सटीकता **८०% भन्दा बढी** राम्रो छ!
✅ प्रायः डिफल्टका रूपमा सेट गरिने `lbfgs` जस्ता अर्को solver प्रयास गर्नुहोस्।
1. तपाईंले यो मोडेललाई एउटा पङ्क्ति (#५०) परीक्षण गरेर प्रयोगमा देख्न सक्नुहुन्छ:
> ध्यान दिनुहोस्, जब आवश्यक पर्छ तपाईँले डाटालाई फ्ल्याटन गर्न Pandas को [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) फंक्सन प्रयोग गर्न सक्नुहुन्छ।
शुद्धता ८०% भन्दा माथि राम्रो छ!
1. तपाईं एक डाटाको एउटा पंक्ति (#50) परीक्षण गरेर यो मोडल क्रियाशील देख्न सक्नुहुन्छ:
यस पाठमा, तपाईंले आफ्नो सफा गरिएको डाटालाई प्रयोग गरेर एउटा मेसिन लर्निङ मोडेल निर्माण गर्नुभयो, जसले सामग्रीहरूको आधारमा राष्ट्रिय खानाको भविष्यवाणी गर्न सक्छ। Scikit-learn ले डाटा वर्गीकरण गर्न प्रदान गर्ने धेरै विकल्पहरू पढ्न समय निकाल्नुहोस्। 'solver' को अवधारणामा गहिराइमा जानुहोस् र पर्दा पछाडि के हुन्छ बुझ्नुहोस्।
यस पाठमा, तपाईंले क्रमबद्ध सामग्रीहरूको श्रृंखलाको आधारमा राष्ट्रिय भोजन पूर्वानुमान गर्न सक्ने मेसिन लर्निङ मोडेल निर्माण गर्न आफ्नो सफा गरेको डाटा प्रयोग गर्नुभयो। स्कikit-learn ले डेटा वर्गीकृत गर्न प्रदान गर्ने धेरै विकल्पहरूलाई पढ्न केही समय निकाल्नुहोस्। 'solvers' को अवधारणा मा अझ गहिराईमा जानुहोस् ताकि तपाईंलाई पछाडि भइरहेको बुझ्न सकियोस्।
[यस पाठ](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) मा logistic regression को गणितीय पक्षमा अझ गहिराइमा जानुहोस्।
## असाइनमेन्ट
[यस पाठमा](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) logistic regression को गणितमा अझ गहिरो रूपमा पुग्नुहोस्।
## असाइनमेन्ट
[solvers अध्ययन गर्नुहोस्](assignment.md)
---
**अस्वीकरण**:
यो दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरेर अनुवाद गरिएको छ। हामी शुद्धताको लागि प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादहरूमा त्रुटि वा अशुद्धता हुन सक्छ। यसको मूल भाषा मा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुने छैनौं।
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**अस्वीकरण**:
यो दस्तावेज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरेर अनुवाद गरिएको हो। हामी शुद्धताको लागि प्रयासरत छौं, कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटिहरु वा अशुद्धता हुन सक्छ। मूल दस्तावेज यसको स्वदेशी भाषामा आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यो अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलतफहमी वा गलत व्याख्याका लागि हामी जिम्मेवार छैनौं।
> यो रिपोजिटरीले ५० भन्दा बढी भाषा अनुवादहरू समावेश गर्दछ जसले डाउनलोड आकारलाई उल्लेखनीय रूपमा बढाउँछ। अनुवाद बिना क्लोन गर्न, sparse checkout प्रयोग गर्नुहोस्:
> यो रिपोजिटरीमा ५० भन्दा बढी भाषा अनुवादहरू उपलब्ध छन् जसले डाउन्लोड साइज अत्यधिक बढाउँछ। अनुवाद बिना क्लोन गर्नका लागि sparse checkout प्रयोग गर्नुहोस्:
>
> **Bash / macOS / Linux:**
> ```bash
@ -20,117 +33,145 @@
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> यसले तपाईंलाई कोर्स पूरा गर्न आवश्यक सबै कुरा धेरै छिटो डाउनलोडको साथ उपलब्ध गराउँछ।
> यसले तपाईंलाई कोर्स पूरा गर्न आवश्यक सबै सामग्री छिटो डाउनलोड गर्न मद्दत गर्छ।
हामीसँग Discord मा Learn with AI श्रृंखला जारी छ, थप जान्न र सामेल हुनका लागि [Learn with AI Series](https://aka.ms/learnwithai/discord) मा जानुहोस् १८ - ३० सेप्टेम्बर, २०२५। तपाईं GitHub Copilot लाई Data Science मा प्रयोग गर्ने टिप्स र ट्रिक्स पाउनुहुनेछ।

# शुरुवातकर्ताहरूका लागि मेशिन लर्निङ - एक शिक्षण कार्यक्रम
> 🌍 विश्व संस्कृतिको माध्यमबाट मेशिन लर्निङ अभ्यास गर्दै विश्वभर यात्रा गरौं 🌍
Microsoft का Cloud Advocatesहरूले १२ हप्ता, २६ पाठहरू समेटिएको **मेशिन लर्निङ** को बारेमा एक पाठ्यक्रम प्रस्तुत गरेका छन्। यस पाठ्यक्रममा तपाईंले "क्लासिक मेशिन लर्निङ" भनेर चिनिने विधि सिक्नु हुनेछ, मुख्य रूपमा Scikit-learn पुस्तकालय प्रयोग गरेर र गहिरो सिकाइबाट जोगिनु हुनेछ, जुन हाम्रो [AI for Beginners' curriculum](https://aka.ms/ai4beginners) मा समेटिएको छ। यी पाठहरूलाई हाम्रो ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) सँग जोडेर पनि अध्ययन गर्न सक्नुहुन्छ।
हामीसँग संसारभरका विभिन्न क्षेत्रका डेटाहरूमा यी क्लासिक प्रविधिहरूलाई लागू गर्दै यात्रा गरौं। प्रत्येक पाठमा सुरु र अन्तिममा क्विजहरू, लेखिएको निर्देशनहरू, समाधान, कार्यपत्र र अन्य सामग्रीहरू छन्। हाम्रो परियोजना-आधारित शिक्षण पद्धतिले तपाईंलाई सिक्दै निर्माण गर्ने मौका दिन्छ, जुन नयाँ सीपहरूलाई राम्रोसँग लाग्ने प्रमाणित तरिका हो।
**✍️ हाम्रा लेखकहरूलाई हार्दिक धन्यवाद** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu र Amy Boyd
**🎨 हाम्रा चित्रकारहरूलाई पनि धन्यवाद** Tomomi Imura, Dasani Madipalli, र Jen Looper
#### हाम्रो समुदायमा सहभागी हुनुहोस्
**🙏 विशेष धन्यवाद 🙏 हाम्रा Microsoft Student Ambassador लेखकहरू, समीक्षकहरू र सामग्री योगदानकर्ताहरूलाई**, विशेष गरी Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, र Snigdha Agarwal
हामीसँग एउटा Discord सिकाईसँगै AI श्रृंखला चलिरहेको छ, थप जान्न र हामीसँग जोडिनुहोस् [Learn with AI Series](https://aka.ms/learnwithai/discord) सेप्टेम्बर १८ - ३०, २०२५। तपाईं GitHub Copilot लाई डाटा विज्ञानका लागि प्रयोग गर्ने सुझाव र तरिकाहरू पाउनुहुनेछ।
**🤩 अतिरिक्त कृतज्ञता Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, र Vidushi Gupta लाई R पाठहरूका लागि!**
# शुरुवात गर्दै
# सुरु गर्ने तरिका
यी चरणहरू पछ्याउनुहोस्:
1. **रिपोजिटरी फोर्क गर्नुहोस्**: यस पृष्ठको दायाँ माथि कुनामा रहेको "Fork" बटन थिच्नुहोस्।
यी चरणहरू पालना गर्नुहोस्:
1. **रिपोजिटरी फोर्क गर्नुहोस्**: यस पृष्ठको माथिल्लो-दायाँ कुनामा रहेको "Fork" बटनमा क्लिक गर्नुहोस्।
> [यो कोर्सका लागि सबै अतिरिक्त स्रोतहरू हाम्रो Microsoft Learn संग्रहमा फेला पार्नुहोस्](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [यो कोर्सका सबै थप स्रोतहरू हाम्रो Microsoft Learn सङ्ग्रहमा पाउन सकिन्छ](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **मद्दत चाहिन्छ?** सामान्य स्थापना, सेटअप, र पाठ चलाउने समस्याहरू समाधानका लागि हाम्रो [समस्या समाधान मार्गदर्शिका](TROUBLESHOOTING.md) हेर्नुहोस्।
> 🔧 **मद्दत चाहिन्छ?** सामान्य स्थापना, सेटअप र पाठ सञ्चालन सम्बन्धी समस्याका समाधानको लागि हाम्रो [Troubleshooting Guide](TROUBLESHOOTING.md) हेर्नुहोस्।
**[विद्यार्थीहरू](https://aka.ms/student-page)**, यो पाठ्यक्रम प्रयोग गर्न, पूरै रिपो तपाईंको GitHub खातामा फोर्क गर्नुहोस् र व्यायामहरू आफैंले वा समूहसँग पूरा गर्नुहोस्:
**[विद्यार्थीहरू](https://aka.ms/student-page)**, यस पाठ्यक्रम प्रयोग गर्न, पुरै रिपो आफ्नो GitHub खातामा फोर्क गरी आफू वा समूहमा अभ्यास पूरा गर्नुहोस्:
- पूर्व-वक्ता क्विजबाट सुरु गर्नुहोस्।
- व्याख्यान पढ्नुहोस् र गतिविधिहरू पूरा गर्नुहोस्, प्रत्येक ज्ञान जाँचमा रोक्नुहोस् र विचार गर्नुहोस्।
- समाधान कोड चलाउनुभन्दा पाठहरू बुझेर परियोजनाहरू बनाउन प्रयास गर्नुहोस्; तथापि त्यो कोड प्रत्येक परियोजना-केन्द्रित पाठका `/solution` फोल्डरहरूमा उपलब्ध छ।
- पश्च-वक्ता क्विज लिनुहोस्।
- सुरुमा प्रि-लेक्चर क्विज दिनुहोस्।
- व्याख्यान पढ्नुहोस् र क्रियाकलापहरू पूरा गर्नुहोस्, प्रत्येक ज्ञान जाँचमा रोकेर विचार गर्नुहोस्।
- समाधान कोड चलाउने सट्टा पाठहरू बुझेर परियोजनाहरू बनाउन प्रयास गर्नुहोस्; तर त्यो कोड प्रत्येक परियोजना-केन्द्रित पाठका `/solution` फोल्डरमा उपलब्ध छ।
- पोष्ट-लेक्चर क्विज लिनुहोस्।
- चुनौती पूरा गर्नुहोस्।
- असाइनमेन्ट पूरा गर्नुहोस्।
- एक पाठ समूह पूरा गरेपछि, [चर्चा बोर्ड](https://github.com/microsoft/ML-For-Beginners/discussions) मा जानुहोस् र "उच्चारण गरेर सिक्नुहोस्" उपयुक्त PAT रुब्रिक भरि। 'PAT' भनेको प्रगति मूल्यांकन उपकरण हो जुन तपाईंको सिकाइलाई अगाडि बढाउनको लागि रुब्रिक हो। तपाईंले अरू PAT हरूसँग प्रतिक्रिया दिन सक्नुहुन्छ जसबाट हामी सँगै सिक्न सक्छौँ।
- कार्यपत्र पूरा गर्नुहोस्।
- पाठ समूह पूरा गरेपछि, [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) मा जानुहोस् र उपयुक्त PAT रूब्रिक भर्नुहोस्। 'PAT' भनेको प्रगति मूल्यांकन उपकरण हो जुन तपाईंले सिकाइ थप प्रगाढ बनाउन भर्नुहुन्छ। तपाईंले अरूका PAT हरूलाई पनि प्रतिक्रिया दिन सक्नुहुन्छ ताकि हामी संगै सिक्न सकौं।
> थप अध्ययनका लागि, यी [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) मोड्युल र सिकाइ मार्गहरू पछ्याउन सिफारिस गरिन्छ।
> थप अध्ययनका लागि, यी [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) मोड्युलहरू र सिकाइ मार्गहरू अनुशरण गर्न सिफारिस गरिन्छ।
**शिक्षकहरू**, हामीले यस पाठ्यक्रम प्रयोग गर्ने केही सुझावहरू [सहित गरेका छौं](for-teachers.md)।
**शिक्षकहरू**, हामीसँग [यस पाठ्यक्रम प्रयोग गर्ने केही सुझावहरू](for-teachers.md) पनि उपलब्ध छन्।
---
## भिडियो वाकथ्रुहरू
## भिडियो विद्यार्थी मार्गदर्शनहरू
केही पाठहरू छोटो फर्म भिडियोको रूपमा उपलब्ध छन्। तपाईं यी सबैलाई पाठहरूमा इनलाइन वा [Microsoft Developer YouTube च्यानलको ML for Beginners प्लेलिस्ट](https://aka.ms/ml-beginners-videos) मा हेर्न सक्नुहुन्छ तल चित्रमा क्लिक गरेर।
केही पाठहरू छोटो भिडियो स्वरूपमा उपलब्ध छन्। तपाईं यी सबैलाई पाठहरू भित्र, वा [ML for Beginners प्लेलिस्टमा Microsoft Developer YouTube च्यानलमा](https://aka.ms/ml-beginners-videos) तलको छविमा क्लिक गरेर हेर्न सक्नुहुन्छ।
[](https://aka.ms/ml-beginners-videos)
> 🎥 परियोजना र यसलाई सिर्जना गर्ने व्यक्तिहरूको बारेमा भिडियो हेर्न माथि छविमा क्लिक गर्नुहोस्!
---
## पेडागोकी
## शिक्षण पद्धति
हामीले यो पाठ्यक्रम निर्माण गर्दा दुई शैक्षिक सिद्धान्तहरू छानेका छौं: यो हातमा काम गर्ने **प्रोजेक्ट-आधारित** हुनुपर्छ र यसमा **लगातार क्विजहरू** समावेश हुनुपर्छ। साथै, यस पाठ्यक्रमलाई एक साझा **थीम** दिन तयार गरिएको छ।
हामीले यस पाठ्यक्रम निर्माण गर्दा दुई प्रमुख काठमाडौँ अपाएछौं: यसलाई प्रायोगिक **परियोजना-आधारित** बनाउनु र **अप्रत्यक्ष क्विजहरू** समावेश गर्नु। साथै यसमा एक साझा **थिम** छ जसले एकता दिन्छ।
सामग्री प्रोजेक्टहरूसँग मेल खाने सुनिश्चित गरेर, विद्यार्थीहरूलाई थप संलग्न गरिन्छ र अवधारणाहरूको स्मरण बढ्छ। कक्षाको अघि सानो क्विज विद्यार्थीको मनस्थितिलाई विषय सिक्न प्रेरित गर्छ, जबकि कक्षापछि दोस्रो क्विज यसलाई थप स्मरणीय बनाउँछ। यो पाठ्यक्रम लचिलो र रमाइलो बनाउन डिजाइन गरिएको छ र पूरै वा भागमा लिन सकिन्छ। परियोजनाहरू शुरूमा साना हुन्छन् र १२ हप्ताको अन्त्यतिर जटिल बन्दै जान्छन्। यस पाठ्यक्रममा वास्तविक विश्वका ML आवेदकोंको पोस्टस्क्रिप्ट पनि समावेश छ, जुन अतिरिक्त क्रेडिट वा छलफलको आधारका रूपमा प्रयोग गर्न सकिन्छ।
सामग्रीलाई परियोजनासँग मेल खाने गरी व्यवस्थित गर्दा विद्यार्थीलाई आकर्षित गर्न र अवधारणाहरू सुदृढ गर्न मद्दत पुग्छ। कक्षाको सुरुमा सानो क्विज विद्यार्थीको सिकाइ उद्देश्य बनाउँछ भने कक्षापछि दोश्रो क्विज सिकेका कुरालाई थप सुदृढ पार्छ। यस पाठ्यक्रमलाई लचकदार र रमाईलो बनाउन डिजाइन गरिएको छ र पूरै वा अंशमा लिन सकिन्छ। परियोजनाहरू सानोतिरबाट सुरु भएर १२ हप्ते चक्रको अन्त्य तिर जटिल बन्छन्। यस पाठ्यक्रममा ML को वास्तविक प्रयोगहरू सम्बन्धी पोस्टस्क्रिप्ट पनि समावेश गरिएको छ, जुन अतिरिक्त क्रेडिट वा छलफलको आधारको रूपमा प्रयोग गर्न सकिन्छ।
> हाम्रो [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), र [Troubleshooting](TROUBLESHOOTING.md) दिशानिर्देशहरू फेला पार्नुहोस्। हामी तपाईंको रचनात्मक प्रतिक्रिया स्वागत गर्दछौं!
> हाम्रो [व्यवहार संहिता](CODE_OF_CONDUCT.md), [योगदान गर्ने तरिका](CONTRIBUTING.md), [अनुवादहरू](..), र [समस्या समाधान](TROUBLESHOOTING.md) मार्गनिर्देशनहरू पनि उपलब्ध छन्। तपाईंहरुको रचनात्मक प्रतिक्रिया स्वागत छ!
> **भाषाहरूको बारेमा एउटा नोट**: यी पाठहरू मुख्य रूपमा Python मा लेखिएका हुन्, तर धेरै R मा पनि उपलब्ध छन्। R पाठ पूरा गर्न, `/solution` फोल्डरमा जानुहोस् र R पाठहरूको खोजी गर्नुहोस्। तिनीहरूमा `.rmd` विस्तार हुन्छ जुन एक **R Markdown** फाइल प्रतिनिधित्व गर्छ, जसलाई साधारण रूपमा`code chunks` (R वा अन्य भाषाहरूका) र `YAML header` (जसले PDF जस्ता आउटपुटलाई कसरी फर्म्याट गर्ने दिशानिर्देशन गर्छ) को समावेशीकरणको रूपमा परिभाषित गर्न सकिन्छ `Markdown document` मा। यसकारण, यो डेटा विज्ञानको लागि एउटा उत्कृष्ट लेखन फ्रेमवर्कको रूपमा काम गर्छ किनकि यसले तपाईंलाई तपाईंको कोड, यसको आउटपुट, र तपाईंका विचारहरू Markdown मा लेख्न अनुमति दिँदै तिनीहरूलाई संयोजन गर्न अनुमति दिन्छ। थप रूपमा, R Markdown कागजातहरू PDF, HTML, वा Word जस्ता आउटपुट स्वरूपहरूमा रेंडर गर्न सकिन्छ।
> **कुइजहरूको बारेमा एउटा नोट**: सबै कुइजहरू [Quiz App folder](../../quiz-app) मा समावेश छन्, जम्मा ५२ कुइजहरू जसमा प्रत्येकमा तीन प्रश्नहरू हुन्छन्। ती पाठहरूबाट लिंक गरिएको छ तर कुइज एप्लिकेशन स्थानीय रूपमा चलाउन सकिन्छ; स्थानीय रूपमा होस्ट वा Azure मा वितरण गर्न `quiz-app` फोल्डरमा निर्देशनहरू पालना गर्नुहोस्।
| पाठ संख्या | विषय | पाठ समूह | सिकाइ उद्देश्य | लिंक गरिएको पाठ | लेखक |
| ०२ | मेशिन लर्निंगको इतिहास | [परिचय](1-Introduction/README.md) | यस क्षेत्रको इतिहास सिक्नुहोस् | [पाठ](1-Introduction/2-history-of-ML/README.md) | जेन र एमी |
| ०३ | निष्पक्षता र मेशिन लर्निंग | [परिचय](1-Introduction/README.md) | मेशिन लर्निंग मोडेलहरू बनाउने र लागू गर्ने क्रममा विद्यार्थीले विचार गर्नुपर्ने महत्वपूर्ण दार्शनिक मुद्दाहरू के छन्? | [पाठ](1-Introduction/3-fairness/README.md) | तोमोमी |
| ०४ | मेशिन लर्निंगका प्रविधिहरू | [परिचय](1-Introduction/README.md) | मेशिन लर्निंग अनुसन्धानकर्ताहरूले मेशिन लर्निंग मोडेलहरू बनाउन कुन प्रविधिहरू प्रयोग गर्छन्? | [पाठ](1-Introduction/4-techniques-of-ML/README.md) | क्रिस र जेन |
| ०५ | रिग्रेसन परिचय | [रिग्रेसन](2-Regression/README.md) | Python र Scikit-learn सँग रिग्रेसन मोडेलहरू बनाउन सुरु गर्नुहोस् | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | जेन • एरिक वान्जाउ |
| ०६ | उत्तर अमेरिका कुम्हडा मूल्य 🎃 | [रिग्रेसन](2-Regression/README.md) | मेशिन लर्निंगका लागि डेटा भिजुअलाइज र सफा गर्नुहोस् | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | जेन • एरिक वान्जाउ |
| ०७ | उत्तर अमेरिका कुम्हडा मूल्य 🎃 | [रिग्रेसन](2-Regression/README.md) | रेखीय र बहुपद रिग्रेसन मोडेलहरू बनाउनुहोस् | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | जेन र दिमित्री • एरिक वान्जाउ |
| ०८ | उत्तर अमेरिका कुम्हडा मूल्य 🎃 | [रिग्रेसन](2-Regression/README.md) | एक लॉजिस्टिक रिग्रेसन मोडेल बनाउनुहोस् | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | जेन • एरिक वान्जाउ |
| १० | वर्गीकरण परिचय | [वर्गीकरण](4-Classification/README.md) | तपाईंको डेटा सफा, तयार, र भिजुअलाइज गर्नुहोस्; वर्गीकरण परिचय | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | जेन र क्यासी • एरिक वान्जाउ |
| ११ | स्वादिष्ट एशियाली र भारतीय भान्सा 🍜 | [वर्गीकरण](4-Classification/README.md) | वर्गीकर्ताहरूको परिचय | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | जेन र क्यासी • एरिक वान्जाउ |
| १२ | स्वादिष्ट एशियाली र भारतीय भान्सा 🍜 | [वर्गीकरण](4-Classification/README.md) | थप वर्गीकर्ताहरू | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | जेन र क्यासी • एरिक वान्जाउ |
| १३ | स्वादिष्ट एशियाली र भारतीय भान्सा 🍜 | [वर्गीकरण](4-Classification/README.md) | तपाईंको मोडेल प्रयोग गरी सिफारिस गर्ने वेब एप बनाउनुहोस् | [Python](4-Classification/4-Applied/README.md) | जेन |
| १६ | प्राकृतिक भाषा प्रशोधन परिचय ☕️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | सानो बोट निर्माण गरेर NLP का आधारभूत कुरा सिक्नुहोस् | [Python](6-NLP/1-Introduction-to-NLP/README.md) | स्टिफेन |
| १७ | सामान्य NLP कार्यहरू ☕️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | भाषा संरचनासँग व्यवहार गर्दा आवश्यक सामान्य कार्य बुझेर तपाईंको NLP ज्ञान गहिरो बनाउनुहोस् | [Python](6-NLP/2-Tasks/README.md) | स्टिफेन |
| १८ | अनुवाद र भावना विश्लेषण ♥️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | जेन ऑस्टेनसँग गरिएको अनुवाद र भावना विश्लेषण | [Python](6-NLP/3-Translation-Sentiment/README.md) | स्टिफेन |
| १९ | युरोपका रोमान्टिक होटलहरू ♥️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | होटल समीक्षासँग भावना विश्लेषण १ | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | स्टिफेन |
| २० | युरोपका रोमान्टिक होटलहरू ♥️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | होटल समीक्षासँग भावना विश्लेषण २ | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | स्टिफेन |
| २१ | समय श्रृंखला पूर्वानुमान परिचय | [समय श्रृंखला](7-TimeSeries/README.md) | समय श्रृंखला पूर्वानुमान परिचय | [Python](7-TimeSeries/1-Introduction/README.md) | फ्रान्सेस्का |
| २२ | ⚡️ विश्व ऊर्जा प्रयोग ⚡️ - ARIMA सँग समय श्रृंखला पूर्वानुमान | [समय श्रृंखला](7-TimeSeries/README.md) | ARIMA सँग समय श्रृंखला पूर्वानुमान | [Python](7-TimeSeries/2-ARIMA/README.md) | फ्रान्सेस्का |
| २३ | ⚡️ विश्व ऊर्जा प्रयोग ⚡️ - SVR सँग समय श्रृंखला पूर्वानुमान | [समय श्रृंखला](7-TimeSeries/README.md) | Support Vector Regressor सँग समय श्रृंखला पूर्वानुमान | [Python](7-TimeSeries/3-SVR/README.md) | अनिर्बान |
| २४ | सुदृढीकरण शिक्षण परिचय | [सुदृढीकरण शिक्षण](8-Reinforcement/README.md) | Q-Learning सँग सुदृढीकरण शिक्षण परिचय | [Python](8-Reinforcement/1-QLearning/README.md) | दिमित्री |
| पोस्टस्क्रिप्ट | वास्तविक जीवनका ML परिदृश्य र अनुप्रयोगहरू | [जंगली ML](9-Real-World/README.md) | क्लासिकल ML का रोचक र प्रकट गर्ने वास्तविक जीवनका अनुप्रयोगहरू | [पाठ](9-Real-World/1-Applications/README.md) | टिम |
| पोस्टस्क्रिप्ट | RAI ड्यासबोर्डको प्रयोग गरेर ML मा मोडेल डिबगिङ | [जंगली ML](9-Real-World/README.md) | जिम्मेवार AI ड्यासबोर्ड कम्पोनेन्टहरू प्रयोग गरेर मेशिन लर्निंगमा मोडेल डिबगिङ | [पाठ](9-Real-World/2-Debugging-ML-Models/README.md) | रुथ याकुबु |
> [यस कोर्सका लागि सबै अतिरिक्त स्रोतहरू हाम्रो Microsoft Learn संग्रहमा खोज्नुहोस्](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> **भाषाहरूको बारेमा एक नोट**: यी पाठहरू मुख्य रूपमा Python मा लेखिएका छन्, तर धेरै पाठहरू R मा पनि उपलब्ध छन्। Rको पाठ पूरा गर्नका लागि `/solution` फोल्डरमा गएर R पाठहरू खोज्नुहोस्। तिनीहरूमा .rmd एक्सटेन्सन हुन्छ जुन **R Markdown** फाइललाई जनाउँछ जुन`code chunks` (R वा अन्य भाषाहरूका) र `YAML header` (जसले PDF जस्ता आउटपुटहरू कसरी फर्म्याट गर्ने भनेर निर्देशन दिन्छ) सङ्ग समाहित गरिएको Markdown दस्तावेजको रूपमा परिभाषित गर्न सकिन्छ। यसप्रकार, यो डेटा विज्ञानका लागि उत्कृष्ट लेखकत्व ढाँचा हो किनभने यसले तपाईंलाई आफ्नो कोड, यसको आउटपुट, र आफ्ना विचारहरू Markdown मा लेख्न अनुमति दिन्छ। थप रूपमा, R Markdown दस्तावेजहरूलाई PDF, HTML, वा Word जस्ता आउटपुट ढाँचाहरूमा रेंडर गर्न सकिन्छ।
> **कुइजहरूको बारेमा एक नोट**: सबै कुइजहरू [Quiz App folder](../../quiz-app) मा समाविष्ट छन्, जम्मा ५२ कुइजहरू तीन प्रश्नहरूसहित। ती पाठहरूबाट लिंक गरिएको छ तर कुइज एप स्थानीय रूपमा चलाउन सकिन्छ; स्थानीय रूपमा होस्ट वा Azure मा डिप्लोय गर्न `quiz-app` फोल्डरमा दिइएका निर्देशनहरू पालना गर्नुहोस्।
| पाठ संख्या | विषय | पाठ समूह | सिकाइ उद्देश्यहरू | लिंक गरिएको पाठ| लेखक |
| ०२ | मेसिन लर्निङ्गको इतिहास | [परिचय](1-Introduction/README.md) | यस क्षेत्रमा रहेको इतिहास सिक्नुहोस् | [पाठ](1-Introduction/2-history-of-ML/README.md) | जेन र एमी |
| ०३ | निष्पक्षता र मेसिन लर्निङ्ग | [परिचय](1-Introduction/README.md) | मेसिन लर्निङ्ग मोडेलहरू बनाउँदा र लागू गर्दा विद्यार्थीहरूले विचार गर्नुपर्ने महत्त्वपूर्ण दार्शनिक मुद्दाहरू के हुन्? | [पाठ](1-Introduction/3-fairness/README.md) | टोमोमी |
| ०४ | मेसिन लर्निङ्गका प्रविधिहरू | [परिचय](1-Introduction/README.md) | मेसिन लर्निङ्ग अनुसन्धानकर्ताहरूले प्रयोग गर्ने प्रविधिहरू के के हुन्? | [पाठ](1-Introduction/4-techniques-of-ML/README.md) | क्रिस र जेन |
| ०५ | रेग्रेसन परिचय | [रेग्रेसन](2-Regression/README.md) | रेग्रेसन मोडेलहरूको लागि Python र Scikit-learn प्रयोग गरेर सुरूवात गर्नुहोस् | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | जेन • एरिक वान्जाउ |
| ०६ | उत्तर अमेरिकी फर्सी दाउर्या मूल्यहरू 🎃 | [रेग्रेसन](2-Regression/README.md) | मेसिन लर्निङ्गको तयारीका लागि डाटा दृश्यिकरण र सफा गर्नुहोस् | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | जेन • एरिक वान्जाउ |
| ०७ | उत्तर अमेरिकी फर्सी दाउर्या मूल्यहरू 🎃 | [रेग्रेसन](2-Regression/README.md) | लीनियर र पोलिनोमियल रेग्रेसन मोडेल बनाउनुहोस् | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | जेन र Dmitry • एरिक वान्जाउ |
| ०९ | वेब एप्लिकेसन 🔌 | [वेब एप](3-Web-App/README.md) | तपाईंको तालिम प्राप्त मोडेल प्रयोग गर्न वेब एप्लिकेसन बनाउनुहोस् | [Python](3-Web-App/1-Web-App/README.md) | जेन |
| १० | वर्गीकरण परिचय | [वर्गीकरण](4-Classification/README.md) | तपाईंको डाटा सफा, तयार, र दृश्यिकरण गर्नुहोस्; वर्गीकरणमा परिचय | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | जेन र क्यास्सी • एरिक वान्जाउ |
| ११ | स्वादिष्ट एशियन र भारतीय खानाहरू 🍜 | [वर्गीकरण](4-Classification/README.md) | वर्गीकरणकर्ताहरूमा परिचय | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | जेन र क्यास्सी • एरिक वान्जाउ |
| १२ | स्वादिष्ट एशियन र भारतीय खानाहरू 🍜 | [वर्गीकरण](4-Classification/README.md) | अझै थप वर्गीकरणकर्ताहरू | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | जेन र क्यास्सी • एरिक वान्जाउ |
| १३ | स्वादिष्ट एशियन र भारतीय खानाहरू 🍜 | [वर्गीकरण](4-Classification/README.md) | तपाईंको मोडेल प्रयोग गरेर सिफारिस गर्ने वेब एप बनाउनुहोस् | [Python](4-Classification/4-Applied/README.md) | जेन |
| १६ | प्राकृतिक भाषा प्रशोधन परिचय ☕️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | एक साधारण बोट बनाएर NLP का आधारभूत कुराहरू सिक्नुहोस् | [Python](6-NLP/1-Introduction-to-NLP/README.md) | स्टीफेन |
| १७ | सामान्य NLP कार्यहरू ☕️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | भाषा संरचनासँग डिल गर्दा आवश्यक सामान्य कार्यहरू बुझेर आफ्नो NLP ज्ञान गहिरो बनाउनुस् | [Python](6-NLP/2-Tasks/README.md) | स्टीफेन |
| १८ | अनुवाद र भावना विश्लेषण ♥️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | Jane Austen सँग अनुवाद र भावना विश्लेषण | [Python](6-NLP/3-Translation-Sentiment/README.md) | स्टीफेन |
| १९ | यूरोपका रोमान्टिक होटलहरू ♥️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | होटल समीक्षाहरूको साथ भावना विश्लेषण १ | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | स्टीफेन |
| २० | यूरोपका रोमान्टिक होटलहरू ♥️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | होटल समीक्षाहरूको साथ भावना विश्लेषण २ | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | स्टीफेन |
| पोस्टस्क्रिप्ट | वास्तविक-विश्व ML परिदृश्यहरू र अनुप्रयोगहरू | [ML in the Wild](9-Real-World/README.md) | क्लासिकल ML का रमाईला र खुलासा गर्ने वास्तविक विश्व अनुप्रयोगहरू | [पाठ](9-Real-World/1-Applications/README.md) | टोली |
| पोस्टस्क्रिप्ट | RAI ड्यासबोर्ड प्रयोग गरेर ML मा मोडेल डिबगिङ | [ML in the Wild](9-Real-World/README.md) | Responsible AI ड्यासबोर्ड कम्पोनेंटहरू प्रयोग गरेर मेसिन लर्निङ्गमा मोडेल डिबगिङ | [पाठ](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [यस कोर्सका लागि सबै थप स्रोतहरू हाम्रो Microsoft Learn सङ्ग्रहमा फेला पार्नुहोस्](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## अफलाइन पहुँच
तपाईं यस दस्तावेजलाई अफलाइन [Docsify](https://docsify.js.org/#/) प्रयोग गरेर चलाउन सक्नुहुन्छ। यो रिपो फोर्क गर्नुहोस्, तपाईँको स्थानीय मेसिनमा [Docsify स्थापना गर्नुहोस्](https://docsify.js.org/#/quickstart), अनि यो रिपोको मूल फोल्डरमा जानुहोस् र `docsify serve` टाइप गर्नुहोस्। यो वेबसाइट तपाईंको स्थानीयहोस्टमा पोर्ट 3000 मा सेवा दिनेछ: `localhost:3000`.
तपाईं [Docsify](https://docsify.js.org/#/) प्रयोग गरेर यो दस्तावेजलाई अफलाइन चलाउन सक्नुहुन्छ। यस रिपोमा फोर्क गर्नुहोस्, आफ्नो स्थानीय मेसिनमा [Docsify स्थापना](https://docsify.js.org/#/quickstart) गर्नुहोस्, र त्यसपछि यस रिपोको रुट फोल्डरमा गएर `docsify serve` टाइप गर्नुहोस्। वेबसाइट तपाईँको लोकलहोस्टमा पोर्ट ३००० मा सेवा गरिनेछ: `localhost:3000`।
## PDFहरू
पाठ्यक्रमको PDF लिंकसहितको फाइल [यहाँ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) पाउनुहोस्।
पाठ्यक्रमको PDF यहाँ लिंकसहित भेट्न सकिन्छ [यहाँ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)।
## 🎒 अन्य कोर्सहरू
हाम्रो टोलीले अन्य कोर्सहरू उत्पादन गर्दछ! जाँच गर्नुहोस्:
हाम्रो टोलीले अन्य कोर्सहरूसमेत उत्पादन गर्दछ! हेर्नुहोस्:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
@ -142,31 +183,65 @@
### Azure / Edge / MCP / Agents
[](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### जेनेरेटिभ एआई सिरिज
### जनरेटिभ AI सिरिज
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### कोर सिकाइ
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### कोपिलट सिरिज
### कोपायलट सिरिज
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
यदि तपाईंले बग, त्रुटिहरू पाउनुभयो वा सुधारका लागि सुझावहरू छ भने, तपाईं यस रिपोजिटोरीमा **Issue** खुलाएर समस्या रिपोर्ट गर्न सक्नुहुन्छ।
## मद्दत प्राप्त गर्दै
उत्पाद प्रतिक्रिया वा विद्यमान समुदाय पोस्टहरू खोज्न, Developer Forumमा जानुहोस्:
यदि तपाईं अड्किनुहुन्छ वा एआई एपहरू बनाउनका बारेमा कुनै प्रश्नहरू छन् भने। सहपाठीहरू र अनुभवी विकासकर्ताहरूसँग MCP सम्बन्धी छलफलहरूमा सहभागी हुनुहोस्। यो एउटा सहायक समुदाय हो जहाँ प्रश्नहरू स्वागतयोग्य छन् र ज्ञान स्वतन्त्र रूपमा साझा गरिन्छ।
- हरेक पाठपछि नोटबुकहरू पुनरावृत्ति गर्नुहोस् राम्रो बुझाइका लागि।
- आफैंले एल्गोरिदमहरू अभ्यास गरेर कार्यान्वयन गर्नुहोस्।
- सिकेका अवधारणाहरू प्रयोग गर्दै वास्तविक-विश्वका डाटासेटहरू अन्वेषण गर्नुहोस्।
- प्रत्येक पाठ पछि नोटबुकहरू समीक्षा गर्नुहोस् राम्रो बुझाइका लागि।
- आफ्नैले एल्गोरिदमहरू लागू गर्ने अभ्यास गर्नुहोस्।
- सिकेका अवधारणाहरू प्रयोग गर्दै वास्तविक विश्वका डेटासेटहरूको अन्वेषण गर्नुहोस्।
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**अस्वीकरण**:
यस दस्तावेजलाई AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) को प्रयोग गरी अनुवाद गरिएको छ। हामी सटीकता को लागि प्रयासरत छौं, तर कृपया जानकार हुनुहोस् कि स्वचालित अनुवादहरूमा त्रुटिहरू वा गलतिहरू हुनसक्छन्। मूल दस्तावेज यसको स्वदेशी भाषामा अधिकारिक स्रोत मानिनु पर्छ। महत्वपूर्ण जानकारीको लागि, पेशेवर मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याका लागि हामी जिम्मेवार होइनौं।
यो कागजातलाई एआई अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरी अनुवाद गरिएको हो। हामी सटीकताको लागि प्रयासरत छौं, तर कृपया बुझ्नुस् कि स्वचालित अनुवादमा त्रुटि वा अशुद्धता हुन सक्नेछ। मूल कागजात यसको मौलिक भाषामा नै आधिकारिक स्रोत मानिनेछ। महत्वपूर्ण जानकारीको लागि, पेशेवर मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलत बुझाइ वा गलत व्याख्याका लागि हामी जिम्मेवार हुनेछैनौं।