diff --git a/translations/bn/.co-op-translator.json b/translations/bn/.co-op-translator.json
index a62b57df0..7fbe01b12 100644
--- a/translations/bn/.co-op-translator.json
+++ b/translations/bn/.co-op-translator.json
@@ -36,8 +36,8 @@
"language_code": "bn"
},
"1-Introduction/4-techniques-of-ML/README.md": {
- "original_hash": "9d91f3af3758fdd4569fb410575995ef",
- "translation_date": "2025-09-04T21:07:33+00:00",
+ "original_hash": "84b1715a6be62ef1697351dcc5d7b567",
+ "translation_date": "2026-04-26T19:57:30+00:00",
"source_file": "1-Introduction/4-techniques-of-ML/README.md",
"language_code": "bn"
},
@@ -90,8 +90,8 @@
"language_code": "bn"
},
"2-Regression/3-Linear/README.md": {
- "original_hash": "26c53a922f1f1e8542b0ea41ff52221a",
- "translation_date": "2026-04-20T16:52:26+00:00",
+ "original_hash": "8b776e731c35b171d316d01d0e7b1369",
+ "translation_date": "2026-04-26T19:56:52+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "bn"
},
@@ -107,6 +107,12 @@
"source_file": "2-Regression/3-Linear/solution/Julia/README.md",
"language_code": "bn"
},
+ "2-Regression/3-Linear/solution/notebook.ipynb": {
+ "original_hash": "6781223ffbe8cfdaa38d0200f08e1288",
+ "translation_date": "2026-04-26T19:54:42+00:00",
+ "source_file": "2-Regression/3-Linear/solution/notebook.ipynb",
+ "language_code": "bn"
+ },
"2-Regression/4-Logistic/README.md": {
"original_hash": "abf86d845c84330bce205a46b382ec88",
"translation_date": "2025-09-04T20:58:49+00:00",
diff --git a/translations/bn/1-Introduction/4-techniques-of-ML/README.md b/translations/bn/1-Introduction/4-techniques-of-ML/README.md
index d5b49b1e5..2aa0a6e73 100644
--- a/translations/bn/1-Introduction/4-techniques-of-ML/README.md
+++ b/translations/bn/1-Introduction/4-techniques-of-ML/README.md
@@ -1,123 +1,127 @@
-# মেশিন লার্নিং এর কৌশলসমূহ
+# মেশিন লার্নিংয়ের প্রযুক্তি
-মেশিন লার্নিং মডেল তৈরি, ব্যবহার এবং রক্ষণাবেক্ষণের প্রক্রিয়া এবং এই মডেলগুলোর জন্য ব্যবহৃত ডেটা অন্যান্য ডেভেলপমেন্ট ওয়ার্কফ্লো থেকে অনেকটাই আলাদা। এই পাঠে, আমরা এই প্রক্রিয়াকে সহজবোধ্য করব এবং প্রধান কৌশলগুলো তুলে ধরব যা আপনাকে জানতে হবে। আপনি:
+মেশিন লার্নিং মডেল তৈরির, ব্যবহারের এবং রক্ষণাবেক্ষণের প্রক্রিয়া এবং তারা যে ডেটা ব্যবহার করে তা অনেক অন্যান্য ডেভেলপমেন্ট ওয়ার্কফ্লো থেকে অনেক ভিন্ন প্রক্রিয়া। এই পাঠে, আমরা এই প্রক্রিয়াটি স্পষ্ট করব এবং আপনার জানা প্রয়োজন এমন প্রধান প্রযুক্তিগুলি তুলে ধরব। আপনি করতে পারবেন:
-- উচ্চ পর্যায়ে মেশিন লার্নিং এর প্রক্রিয়াগুলো বুঝতে পারবেন।
-- 'মডেল', 'প্রেডিকশন', এবং 'ট্রেনিং ডেটা' এর মতো মৌলিক ধারণাগুলো অন্বেষণ করবেন।
+- উচ্চ স্তরে মেশিন লার্নিংয়ের ভিত্তি প্রক্রিয়াগুলি বুঝতে।
+- 'মডেল', 'পূর্বাভাস', এবং 'প্রশিক্ষণ ডেটা' এর মতো মূল ধারণাগুলি অন্বেষণ করতে।
-## [পূর্ব-পাঠ কুইজ](https://ff-quizzes.netlify.app/en/ml/)
+## [পাঠের পূর্বে কুইজ](https://ff-quizzes.netlify.app/en/ml/)
-[](https://youtu.be/4NGM0U2ZSHU "শুরু থেকে মেশিন লার্নিং - মেশিন লার্নিং এর কৌশল")
+[](https://youtu.be/4NGM0U2ZSHU "শিখনশীলদের জন্য মেশিন লার্নিং - প্রযুক্তি")
-> 🎥 উপরের ছবিতে ক্লিক করুন এই পাঠের একটি সংক্ষিপ্ত ভিডিও দেখার জন্য।
+> 🎥 এই পাঠের একটি সংক্ষিপ্ত ভিডিও দেখতে উপরের ছবিতে ক্লিক করুন।
-## ভূমিকা
+## পরিচিতি
-উচ্চ পর্যায়ে, মেশিন লার্নিং (ML) প্রক্রিয়া তৈরি করার কাজটি কয়েকটি ধাপে বিভক্ত:
+উচ্চ স্তরে, মেশিন লার্নিং (এমএল) প্রক্রিয়া তৈরির কলা অনেক ধাপে বিভক্ত:
-1. **প্রশ্ন নির্ধারণ করুন**। বেশিরভাগ ML প্রক্রিয়া এমন একটি প্রশ্ন দিয়ে শুরু হয় যা একটি সাধারণ শর্তযুক্ত প্রোগ্রাম বা নিয়ম-ভিত্তিক ইঞ্জিন দ্বারা উত্তর দেওয়া সম্ভব নয়। এই প্রশ্নগুলো সাধারণত ডেটার উপর ভিত্তি করে ভবিষ্যদ্বাণী করার দিকে মনোনিবেশ করে।
-2. **ডেটা সংগ্রহ এবং প্রস্তুত করুন**। আপনার প্রশ্নের উত্তর দিতে, আপনাকে ডেটা প্রয়োজন। আপনার ডেটার গুণমান এবং কখনও কখনও পরিমাণ নির্ধারণ করবে আপনি কতটা ভালোভাবে আপনার প্রশ্নের উত্তর দিতে পারবেন। ডেটা ভিজ্যুয়ালাইজ করা এই ধাপের একটি গুরুত্বপূর্ণ অংশ। এই ধাপে ডেটাকে ট্রেনিং এবং টেস্টিং গ্রুপে ভাগ করাও অন্তর্ভুক্ত।
-3. **ট্রেনিং পদ্ধতি নির্বাচন করুন**। আপনার প্রশ্ন এবং ডেটার প্রকৃতির উপর নির্ভর করে, আপনাকে একটি মডেল ট্রেন করার পদ্ধতি নির্বাচন করতে হবে যা আপনার ডেটাকে সঠিকভাবে প্রতিফলিত করে এবং এর বিরুদ্ধে সঠিক ভবিষ্যদ্বাণী করতে পারে। এই অংশটি নির্দিষ্ট দক্ষতা এবং প্রায়শই উল্লেখযোগ্য পরিমাণ পরীক্ষার প্রয়োজন।
-4. **মডেল ট্রেন করুন**। আপনার ট্রেনিং ডেটা ব্যবহার করে, আপনি বিভিন্ন অ্যালগরিদম ব্যবহার করে একটি মডেল ট্রেন করবেন যা ডেটার প্যাটার্নগুলো চিনতে পারে। মডেলটি অভ্যন্তরীণ ওজন ব্যবহার করতে পারে যা ডেটার নির্দিষ্ট অংশগুলোকে প্রাধান্য দিতে সামঞ্জস্য করা যায়।
-5. **মডেল মূল্যায়ন করুন**। আপনার সংগ্রহ করা সেট থেকে আগে কখনও দেখা না হওয়া ডেটা (আপনার টেস্টিং ডেটা) ব্যবহার করে আপনি মডেলটি কেমন পারফর্ম করছে তা দেখতে পারেন।
-6. **প্যারামিটার টিউনিং**। আপনার মডেলের পারফরম্যান্সের উপর ভিত্তি করে, আপনি বিভিন্ন প্যারামিটার বা ভেরিয়েবল ব্যবহার করে প্রক্রিয়াটি পুনরায় করতে পারেন যা মডেল ট্রেন করার জন্য ব্যবহৃত অ্যালগরিদমের আচরণ নিয়ন্ত্রণ করে।
-7. **প্রেডিকশন করুন**। নতুন ইনপুট ব্যবহার করে আপনার মডেলের সঠিকতা পরীক্ষা করুন।
+1. **প্রশ্ন নির্ধারণ করুন**। বেশিরভাগ এমএল প্রক্রিয়া একটি প্রশ্ন নিয়ে শুরু হয় যা সাধারণ শর্তসাপেক্ষ প্রোগ্রাম বা নিয়ম ভিত্তিক ইঞ্জিন দ্বারা উত্তর দেওয়া যায় না। এই প্রশ্নগুলি প্রায়শই ডেটার সংগ্রহের উপর ভিত্তি করে পূর্বাভাস নিয়ে আবর্তিত হয়।
+2. **ডেটা সংগ্রহ ও প্রস্তুতি**। আপনার প্রশ্নের উত্তর দিতে হলে আপনাকে ডেটা দরকার। আপনার ডেটার গুণগতমান এবং কখনও কখনও পরিমাণ নির্ধারণ করবে আপনি কত ভাল আপনার প্রাথমিক প্রশ্নের উত্তর দিতে পারবেন। ডেটা ভিজ্যুয়ালাইজ করা এই ধাপের একটি গুরুত্বপূর্ণ অংশ। এই ধাপে ডেটাকে প্রশিক্ষণ এবং পরীক্ষার গ্রুপে ভাগ করার কাজও অন্তর্ভুক্ত রয়েছে মডেল তৈরি করতে।
+3. **প্রশিক্ষণ পদ্ধতি নির্বাচন করুন**। আপনার প্রশ্ন ও ডেটার প্রকৃতির উপর নির্ভর করে, আপনাকে একটি মডেল ট্রেন করতে হবে যা আপনার ডেটাকে সেরা প্রতিফলিত করবে এবং তার বিরুদ্ধে সঠিক পূর্বাভাস দেবে। এটি আপনার এমএল প্রক্রিয়ার অংশ যা নির্দিষ্ট দক্ষতা এবং প্রায়ই প্রচুর পরীক্ষা নিরীক্ষা প্রয়োজন।
+4. **মডেল প্রশিক্ষণ দিন**। আপনার প্রশিক্ষণ ডেটা ব্যবহার করে, আপনি বিভিন্ন অ্যালগরিদম ব্যবহার করে একটি মডেল ট্রেন করবেন যা ডেটায় প্যাটার্ন চিনতে পারে। মডেলটি অন্তর্নিহিত ওজন ব্যবহার করতে পারে যা ডেটার নির্দিষ্ট অংশকে অন্য অংশের থেকে বেশি গুরুত্ব দিতে সমন্বয়যোগ্য যাতে একটি ভাল মডেল তৈরি হয়।
+5. **মডেল মূল্যায়ন করুন**। আপনি আগে কখনও দেখা না হওয়া ডেটা (আপনার পরীক্ষার ডেটা) ব্যবহার করে দেখতে পারেন মডেল কতটা কার্যকর।
+6. **প্যারামিটার সমন্বয়**। মডেলের কার্যক্ষমতার উপর ভিত্তি করে, আপনি বিভিন্ন প্যারামিটার বা ভেরিয়েবল ব্যবহার করে প্রক্রিয়াটি পুনরায় করতে পারেন যা মডেল ট্রেন করতে ব্যবহৃত অ্যালগরিদমগুলোর আচরণ নিয়ন্ত্রণ করে।
+7. **পূর্বাভাস দিন**। নতুন ইনপুট ব্যবহার করে মডেলের সঠিকতা পরীক্ষা করুন।
## কোন প্রশ্ন করবেন
-কম্পিউটার ডেটার মধ্যে লুকানো প্যাটার্ন আবিষ্কার করতে বিশেষভাবে দক্ষ। এই দক্ষতা গবেষকদের জন্য খুবই সহায়ক যারা একটি নির্দিষ্ট বিষয়ে এমন প্রশ্ন করেন যা শর্তযুক্ত নিয়ম ইঞ্জিন তৈরি করে সহজে উত্তর দেওয়া সম্ভব নয়। উদাহরণস্বরূপ, একটি অ্যাকচুয়ারিয়াল কাজের ক্ষেত্রে, একজন ডেটা বিজ্ঞানী ধূমপায়ী বনাম অ-ধূমপায়ীদের মৃত্যুহারের চারপাশে হাতে তৈরি নিয়ম তৈরি করতে পারেন।
+কম্পিউটার ডেটায় লুকানো প্যাটার্ন আবিষ্কারে বিশেষ দক্ষ। গবেষকদের জন্য যারা একটি নির্দিষ্ট ক্ষেত্রে প্রশ্ন রাখেন এবং যেগুলোর উত্তর সহজে শর্তসাপেক্ষ নিয়ম ইঞ্জিন তৈরির মাধ্যমে পাওয়া যায় না, এটি খুব সাহায্যকারী।
-যখন অনেক অন্যান্য ভেরিয়েবল সমীকরণে যুক্ত হয়, তখন একটি ML মডেল অতীত স্বাস্থ্য ইতিহাসের উপর ভিত্তি করে ভবিষ্যতের মৃত্যুহার পূর্বাভাস দিতে আরও দক্ষ হতে পারে। একটি আরও আনন্দদায়ক উদাহরণ হতে পারে এপ্রিল মাসে একটি নির্দিষ্ট স্থানের জন্য আবহাওয়ার পূর্বাভাস তৈরি করা, যেখানে ডেটা অন্তর্ভুক্ত করে অক্ষাংশ, দ্রাঘিমাংশ, জলবায়ু পরিবর্তন, সমুদ্রের নিকটবর্তীতা, জেট স্ট্রিমের প্যাটার্ন এবং আরও অনেক কিছু।
+উদাহরণস্বরূপ, একটি অ্যাকচুয়ারিয়াল কাজ দেওয়া হলে, একজন ডেটা সায়েন্টিস্ট ধূমপায়ী ও অ-ধূমপায়ীদের মৃত্যু হার নিয়ন্ত্রণ করে তৈরি কাস্টম নিয়ম তৈরি করতে পারেন।
-✅ এই [স্লাইড ডেক](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) আবহাওয়া বিশ্লেষণে ML ব্যবহারের জন্য একটি ঐতিহাসিক দৃষ্টিভঙ্গি প্রদান করে।
+কিন্তু যখন আরও অনেক ভেরিয়েবল যুক্ত হয়, তখন এমএল মডেল অতীত স্বাস্থ্যের ইতিহাসের ভিত্তিতে ভবিষ্যত মৃত্যুহার পূর্বাভাস দেওয়া আরও কার্যকর প্রমাণিত হতে পারে। একটি আনন্দদায়ক উদাহরণ হতে পারে এপ্রিল মাসে একটি নির্দিষ্ট স্থানে আবহাওয়ার পূর্বাভাস দেওয়া, যেখানে ডেটাতে অন্তর্ভুক্ত রয়েছে অক্ষাংশ, দ্রাঘিমাংশ, জলবায়ু পরিবর্তন, মহাসাগরের নিকটতা, জেট স্ট্রিমের প্যাটার্ন প্রভৃতি।
-## মডেল তৈরির পূর্ববর্তী কাজ
+✅ এই [স্লাইড ডেক](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) আবহাওয়ার মডেল নিয়ে একটি ঐতিহাসিক দৃষ্টিভঙ্গি দেয় যা আবহাওয়া বিশ্লেষণে এমএল ব্যবহারের বিষয়ে।
-আপনার মডেল তৈরি শুরু করার আগে, কয়েকটি কাজ সম্পন্ন করতে হবে। আপনার প্রশ্ন পরীক্ষা করতে এবং একটি মডেলের পূর্বাভাসের উপর ভিত্তি করে একটি হাইপোথিসিস তৈরি করতে, আপনাকে কয়েকটি উপাদান চিহ্নিত এবং কনফিগার করতে হবে।
+## মডেল তৈরির পূর্বের কাজ
+
+মডেল তৈরি শুরু করার আগে আপনাকে কিছু কাজ শেষ করতে হবে। আপনার প্রশ্ন পরীক্ষা করার এবং মডেলের পূর্বাভাসের ভিত্তিতে একটি অনুমান গড়ে তোলার জন্য আপনাকে কয়েকটি উপাদান চিহ্নিত এবং কনফিগার করতে হবে।
### ডেটা
-আপনার প্রশ্নের উত্তর নিশ্চিতভাবে দিতে, সঠিক ধরনের পর্যাপ্ত ডেটা প্রয়োজন। এই পর্যায়ে আপনাকে দুটি কাজ করতে হবে:
+আপনার প্রশ্নের নিশ্চিত উত্তর দেওয়ার জন্য সঠিক ধরনের প্রচুর ডেটা প্রয়োজন। এ সময় আপনাকে দুটি জিনিস করতে হবে:
-- **ডেটা সংগ্রহ করুন**। ডেটা বিশ্লেষণে ন্যায্যতার উপর পূর্ববর্তী পাঠটি মনে রেখে, আপনার ডেটা যত্ন সহকারে সংগ্রহ করুন। এই ডেটার উৎস, এর অন্তর্নিহিত পক্ষপাত এবং এর উৎপত্তি নথিভুক্ত করুন।
-- **ডেটা প্রস্তুত করুন**। ডেটা প্রস্তুতির প্রক্রিয়ায় কয়েকটি ধাপ রয়েছে। আপনি যদি বিভিন্ন উৎস থেকে ডেটা সংগ্রহ করেন, তাহলে এটি একত্রিত এবং স্বাভাবিকীকরণ করতে হতে পারে। ডেটার গুণমান এবং পরিমাণ উন্নত করতে বিভিন্ন পদ্ধতি ব্যবহার করতে পারেন, যেমন স্ট্রিংকে সংখ্যায় রূপান্তর করা (যেমন আমরা [ক্লাস্টারিং](../../5-Clustering/1-Visualize/README.md) এ করি)। আপনি মূল ডেটার উপর ভিত্তি করে নতুন ডেটা তৈরি করতে পারেন (যেমন আমরা [ক্লাসিফিকেশন](../../4-Classification/1-Introduction/README.md) এ করি)। আপনি ডেটা পরিষ্কার এবং সম্পাদনা করতে পারেন (যেমন আমরা [ওয়েব অ্যাপ](../../3-Web-App/README.md) পাঠের আগে করি)। অবশেষে, আপনার ট্রেনিং কৌশলের উপর নির্ভর করে, আপনি এটি র্যান্ডমাইজ এবং শাফল করতে পারেন।
+- **ডেটা সংগ্রহ করুন**। পূর্বের পাঠের ফেয়ারনেস বা ন্যায়পরায়ণতা বিষয়টি মাথায় রেখে, সাবধানে ডেটা সংগ্রহ করুন। এই ডেটা উৎস সম্পর্কে সচেতন থাকুন, কোনও অন্তর্নিহিত পক্ষপাত থাকলে জানুন এবং তার উত্স ডকুমেন্ট করুন।
+- **ডেটা প্রস্তুত করুন**। ডেটা প্রস্তুতির কয়েকটি ধাপ রয়েছে। আপনি যদি ডেটা বিভিন্ন উৎস থেকে সংগ্রহ করেন তবে সেটি একত্রিত ও স্বাভাবিককরণ করতে হবে। আপনি ডেটার মান ও পরিমাণ উন্নত করতে পারবেন বিভিন্ন পদ্ধতি ব্যবহার করে যেমন স্ট্রিং থেকে সংখ্যা রূপান্তর (যেমন আমরা [ক্লাস্টারিং](../../5-Clustering/1-Visualize/README.md) এ করি)। আপনি নতুন ডেটাও তৈরি করতে পারেন মূল ডেটার ওপর ভিত্তি করে (যেমন আমরা [ক্লাসিফিকেশন](../../4-Classification/1-Introduction/README.md) এ করি)। আপনি ডেটা পরিষ্কার ও সম্পাদনা করতে পারেন (যেমন আমরা [ওয়েব অ্যাপ](../../3-Web-App/README.md) পাঠের আগে করব)। শেষ পর্যন্ত, আপনি যদি প্রয়োজন হয় তবে ডেটা র্যান্ডমাইজ ও শাফলও করতে পারেন প্রশিক্ষণ প্রযুক্তির ওপর নির্ভর করে।
-✅ ডেটা সংগ্রহ এবং প্রক্রিয়াকরণের পরে, একটি মুহূর্ত নিন এবং দেখুন এর আকৃতি আপনার উদ্দেশ্যপ্রাপ্ত প্রশ্নের উত্তর দিতে সক্ষম কিনা। হতে পারে যে ডেটা আপনার নির্দিষ্ট কাজের জন্য ভালো পারফর্ম করবে না, যেমন আমরা আমাদের [ক্লাস্টারিং](../../5-Clustering/1-Visualize/README.md) পাঠে আবিষ্কার করি!
+✅ ডেটা সংগ্রহ ও প্রক্রিয়াকরণের পরে, কয়েক মুহুর্ত নিন দেখে নিতে ডেটার আকৃতি আপনার প্রশ্নের উত্তর দেওয়ার জন্য যথেষ্ট কিনা। হয়তো ডেটা আপনার কাজের জন্য ভাল কার্যকর নাও হতে পারে, যেমন আমরা আমাদের [ক্লাস্টারিং](../../5-Clustering/1-Visualize/README.md) পাঠে আবিষ্কার করি!
-### ফিচার এবং টার্গেট
+### ফিচার ও টার্গেট
-একটি [ফিচার](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) হলো আপনার ডেটার একটি পরিমাপযোগ্য বৈশিষ্ট্য। অনেক ডেটাসেটে এটি একটি কলামের শিরোনাম হিসেবে প্রকাশিত হয়, যেমন 'তারিখ', 'আকার' বা 'রঙ'। আপনার ফিচার ভেরিয়েবল, সাধারণত কোডে `X` দ্বারা প্রতিনিধিত্ব করা হয়, ইনপুট ভেরিয়েবলকে উপস্থাপন করে যা মডেল ট্রেন করতে ব্যবহৃত হবে।
+একটি [ফিচার](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) হল আপনার ডেটার একটি পরিমাপযোগ্য বৈশিষ্ট্য। অনেক ডেটাসেটে এটি একটি কলামের শিরোনামের মতো প্রকাশ পায় যেমন 'তারিখ', 'আকার' বা 'রঙ'। আপনার ফিচার ভেরিয়েবল, যা সাধারণত কোডে `X` দ্বারা প্রকাশিত হয়, হল ইনপুট ভেরিয়েবল যেটা মডেল ট্রেন করতে ব্যবহৃত হয়।
-টার্গেট হলো সেই জিনিস যা আপনি পূর্বাভাস দিতে চেষ্টা করছেন। টার্গেট সাধারণত কোডে `y` দ্বারা প্রতিনিধিত্ব করা হয় এবং এটি সেই প্রশ্নের উত্তর উপস্থাপন করে যা আপনি আপনার ডেটার কাছে করতে চান: ডিসেম্বর মাসে কোন **রঙের** কুমড়া সবচেয়ে সস্তা হবে? সান ফ্রান্সিসকোতে কোন এলাকায় রিয়েল এস্টেটের **মূল্য** সবচেয়ে ভালো হবে? কখনও কখনও টার্গেটকে লেবেল অ্যাট্রিবিউটও বলা হয়।
+একটি টার্গেট হল আপনি যা পূর্বাভাস দিতে চান। টার্গেট, সাধারণত কোডে `y` দ্বারা প্রকাশিত, আপনার প্রশ্নের উত্তর যা আপনি আপনার ডেটাতে করতে চান: ডিসেম্বর মাসে কোন **রঙের** কুমড়ো সবচেয়ে সস্তা হবে? সান ফ্রান্সিস্কোতে কোন পাড়াগুলো সবচেয়ে ভাল রিয়েল এস্টেট **মূল্য** থাকবে? টার্গেটকে কখনও কখনও লেবেল অ্যাট্রিবিউটও বলা হয়।
-### আপনার ফিচার ভেরিয়েবল নির্বাচন করুন
+### আপনার ফিচার ভেরিয়েবল নির্বাচন
-🎓 **ফিচার সিলেকশন এবং ফিচার এক্সট্রাকশন** মডেল তৈরি করার সময় কোন ভেরিয়েবল নির্বাচন করবেন তা কীভাবে জানবেন? আপনি সম্ভবত ফিচার সিলেকশন বা ফিচার এক্সট্রাকশনের একটি প্রক্রিয়ার মধ্য দিয়ে যাবেন সেরা পারফর্মিং মডেলের জন্য সঠিক ভেরিয়েবলগুলো নির্বাচন করতে। তবে, এগুলো একই জিনিস নয়: "ফিচার এক্সট্রাকশন মূল ফিচারগুলোর ফাংশন থেকে নতুন ফিচার তৈরি করে, যেখানে ফিচার সিলেকশন ফিচারগুলোর একটি সাবসেট প্রদান করে।" ([উৎস](https://wikipedia.org/wiki/Feature_selection))
+🎓 **ফিচার সিলেকশন ও ফিচার এক্সট্র্যাকশন** একটি মডেল তৈরি করার সময় কোন ভেরিয়েবল বেছে নিবেন কিভাবে বুঝবেন? আপনি সম্ভবত সেরা কর্মক্ষম মডেলের জন্য সঠিক ভেরিয়েবল বাছাই করতে ফিচার সিলেকশন বা এক্সট্র্যাকশন প্রক্রিয়ার মধ্য দিয়ে যাবেন। তবে এরা একই নয়: "ফিচার এক্সট্র্যাকশন মূল ফিচার থেকে নতুন ফিচার তৈরি করে, আর ফিচার সিলেকশন ফিচারের একটি উপসেট প্রদান করে।" ([সূত্র](https://wikipedia.org/wiki/Feature_selection))
### আপনার ডেটা ভিজ্যুয়ালাইজ করুন
-একজন ডেটা বিজ্ঞানীর টুলকিটের একটি গুরুত্বপূর্ণ দিক হলো ডেটাকে ভিজ্যুয়ালাইজ করার ক্ষমতা, যা Seaborn বা MatPlotLib এর মতো চমৎকার লাইব্রেরি ব্যবহার করে করা যায়। আপনার ডেটাকে ভিজ্যুয়ালি উপস্থাপন করা আপনাকে লুকানো সম্পর্কগুলো আবিষ্কার করতে সাহায্য করতে পারে যা আপনি কাজে লাগাতে পারেন। আপনার ভিজ্যুয়ালাইজেশনগুলো আপনাকে পক্ষপাত বা ভারসাম্যহীন ডেটা আবিষ্কার করতেও সাহায্য করতে পারে (যেমন আমরা [ক্লাসিফিকেশন](../../4-Classification/2-Classifiers-1/README.md) এ আবিষ্কার করি)।
+ডেটা সায়েন্টিস্টের টুলকিটের একটি গুরুত্বপূর্ণ অংশ হলো পাওয়ারফুল ভিজ্যুয়াল লাইব্রেরি ব্যবহার করে ডেটাকে ভিজ্যুয়ালাইজ করার ক্ষমতা যেমন Seaborn বা MatPlotLib। আপনার ডেটাকে ভিজ্যুয়ালভাবে প্রতিনিধিত্ব করা হয়তো আপনাকে লুকানো সম্পর্ক আবিষ্কার করতে সাহায্য করবে যা আপনি কাজে লাগাতে পারেন। আপনার ভিজ্যুয়ালাইজেশন হয়তো পক্ষপাত বা অসমতল ডেটাও উন্মোচন করতে সাহায্য করবে (যেমন আমরা [ক্লাসিফিকেশন](../../4-Classification/2-Classifiers-1/README.md) এ আবিষ্কার করি)।
### আপনার ডেটাসেট ভাগ করুন
-ট্রেনিংয়ের আগে, আপনাকে আপনার ডেটাসেটকে অসম আকারের দুই বা ততোধিক অংশে ভাগ করতে হবে যা এখনও ডেটাকে ভালোভাবে উপস্থাপন করে।
+প্রশিক্ষণের আগে, আপনাকে আপনার ডেটাসেটকে দুই বা ততোধিক অসম আকারের অংশে ভাগ করতে হবে যা ডেটার ভাল প্রতিনিধিত্ব করবে।
-- **ট্রেনিং**। ডেটাসেটের এই অংশটি আপনার মডেলে ফিট করা হয় এটি ট্রেন করার জন্য। এটি মূল ডেটাসেটের বেশিরভাগ অংশ নিয়ে গঠিত।
-- **টেস্টিং**। একটি টেস্ট ডেটাসেট হলো একটি স্বাধীন ডেটার গ্রুপ, যা প্রায়শই মূল ডেটা থেকে সংগ্রহ করা হয়, যা আপনি তৈরি করা মডেলের পারফরম্যান্স নিশ্চিত করতে ব্যবহার করেন।
-- **ভ্যালিডেটিং**। একটি ভ্যালিডেশন সেট হলো একটি ছোট স্বাধীন উদাহরণের গ্রুপ যা আপনি মডেলের হাইপারপ্যারামিটার বা আর্কিটেকচার টিউন করতে ব্যবহার করেন, মডেলটি উন্নত করতে। আপনার ডেটার আকার এবং আপনি যে প্রশ্ন করছেন তার উপর নির্ভর করে, আপনি এই তৃতীয় সেট তৈরি করতে নাও পারেন (যেমন আমরা [টাইম সিরিজ ফোরকাস্টিং](../../7-TimeSeries/1-Introduction/README.md) এ উল্লেখ করি)।
+- **প্রশিক্ষণ**। ডেটাসেটের এই অংশটি আপনার মডেল ট্রেন করতে ব্যবহার হয়। এটি মূল ডেটাসেটের সর্বাধিক অংশ।
+- **পরীক্ষা**। একটি পরীক্ষার ডেটাসেট একটি স্বাধীন ডেটা গ্রুপ যা সাধারণত মূল ডেটা থেকে সংগৃহীত হয়, যেটি আপনি তৈরি মডেলের কার্যক্ষমতা যাচাই করার জন্য ব্যবহার করবেন।
+- **ভ্যালিডেশন**। একটি ভ্যালিডেশন সেট হল ছোট একটি স্বাধীন উদাহরণসমূহের দল যা আপনি মডেলের হাইপারপ্যারামিটার বা আর্কিটেকচার উন্নত করার জন্য ব্যবহার করবেন। আপনার ডেটার আকার এবং প্রশ্নের ওপর নির্ভর করে, হয়তো আপনাকে এই তৃতীয় সেট তৈরি করতে হবে না (যেমন আমরা [টাইম সিরিজ ফরকাস্টিং](../../7-TimeSeries/1-Introduction/README.md) এ উল্লেখ করেছি)।
-## মডেল তৈরি করা
+## মডেল তৈরি
-আপনার ট্রেনিং ডেটা ব্যবহার করে, আপনার লক্ষ্য হলো একটি মডেল তৈরি করা, বা আপনার ডেটার একটি পরিসংখ্যানগত উপস্থাপনা, যা বিভিন্ন অ্যালগরিদম ব্যবহার করে **ট্রেন** করা হয়। মডেল ট্রেনিং ডেটার সাথে এক্সপোজার পায় এবং এটি আবিষ্কৃত প্যাটার্নগুলো সম্পর্কে অনুমান করতে পারে, যাচাই করতে পারে এবং গ্রহণ বা প্রত্যাখ্যান করতে পারে।
+আপনার প্রশিক্ষণ ডেটা ব্যবহার করে, আপনার লক্ষ্য হলো একটি মডেল বা আপনার ডেটার একটি পরিসংখ্যানগত প্রতিনিধিত্ব তৈরি করা বিভিন্ন অ্যালগরিদম ব্যবহার করে **ট্রেন** করার জন্য। মডেল প্রশিক্ষণ মানে মডেলকে ডেটার নিদর্শন চিনতে শেখানো, অনুমান করা এবং যাচাই করার সুযোগ দেয়, এবং তারপরে তা গ্রহণ বা প্রত্যাখ্যান করে।
-### ট্রেনিং পদ্ধতি নির্ধারণ করুন
+### একটি প্রশিক্ষণ পদ্ধতি নির্ধারণ করুন
-আপনার প্রশ্ন এবং ডেটার প্রকৃতির উপর নির্ভর করে, আপনি এটি ট্রেন করার একটি পদ্ধতি নির্বাচন করবেন। [Scikit-learn এর ডকুমেন্টেশন](https://scikit-learn.org/stable/user_guide.html) এর মধ্য দিয়ে হাঁটলে - যা আমরা এই কোর্সে ব্যবহার করি - আপনি মডেল ট্রেন করার অনেক উপায় অন্বেষণ করতে পারেন। আপনার অভিজ্ঞতার উপর নির্ভর করে, আপনি সেরা মডেল তৈরি করতে একাধিক পদ্ধতি চেষ্টা করতে হতে পারে। আপনি সম্ভবত একটি প্রক্রিয়ার মধ্য দিয়ে যাবেন যেখানে ডেটা বিজ্ঞানীরা একটি মডেলের পারফরম্যান্স মূল্যায়ন করেন, এটি অদেখা ডেটা দিয়ে পরীক্ষা করেন, সঠিকতা, পক্ষপাত এবং অন্যান্য গুণমান-হ্রাসকারী সমস্যাগুলো পরীক্ষা করেন এবং নির্দিষ্ট কাজের জন্য সবচেয়ে উপযুক্ত ট্রেনিং পদ্ধতি নির্বাচন করেন।
+আপনার প্রশ্ন ও ডেটার প্রকৃতির উপর নির্ভর করে আপনি একটি পদ্ধতি নির্বাচন করবেন মডেল ট্রেন করার জন্য। [Scikit-learn এর ডকুমেন্টেশন](https://scikit-learn.org/stable/user_guide.html) - যেটা আমরা এই কোর্সে ব্যবহার করি - অনুসরণ করলে আপনি অনেক পদ্ধতিতে মডেল ট্রেন করা অন্বেষণ করতে পারবেন। আপনার অভিজ্ঞতার ওপর ভিত্তি করে, সম্ভবত আপনাকে সেরা মডেল তৈরির জন্য বিভিন্ন পদ্ধতি চেষ্টা করতে হবে। সাধারণত ডেটা সায়েন্টিস্টরা একটি মডেলের কার্যকারিতা মূল্যায়ন করেন অদেখা ডেটা খাওয়িয়ে, সঠিকতা, পক্ষপাত এবং অন্যান্য গুণগত সমস্যা যাচাই করে, এবং কাজের জন্য সবচেয়ে উপযুক্ত প্রশিক্ষণ পদ্ধতি বেছে নেন।
-### একটি মডেল ট্রেন করুন
+### মডেল প্রশিক্ষণ দিন
-আপনার ট্রেনিং ডেটা নিয়ে, আপনি এটি 'ফিট' করতে প্রস্তুত একটি মডেল তৈরি করতে। আপনি লক্ষ্য করবেন যে অনেক ML লাইব্রেরিতে আপনি 'model.fit' কোডটি পাবেন - এটি সেই সময় যখন আপনি আপনার ফিচার ভেরিয়েবলকে একটি মানের অ্যারে (সাধারণত 'X') এবং একটি টার্গেট ভেরিয়েবল (সাধারণত 'y') পাঠান।
+আপনার প্রশিক্ষণ ডেটা নিয়ে আপনি প্রস্তুত 'ফিট' করার জন্য একটি মডেল তৈরি করতে। অনেক এমএল লাইব্রেরিতে আপনি কোডে 'model.fit' দেখবেন - এই সময় আপনি আপনার ফিচার ভেরিয়েবলকে মানের এরে (সাধারণত 'X') এবং টার্গেট ভেরিয়েবল (সাধারণত 'y') হিসাবে পাঠান।
### মডেল মূল্যায়ন করুন
-ট্রেনিং প্রক্রিয়া সম্পন্ন হওয়ার পরে (একটি বড় মডেল ট্রেন করতে অনেক পুনরাবৃত্তি বা 'epochs' লাগতে পারে), আপনি টেস্ট ডেটা ব্যবহার করে মডেলের গুণমান মূল্যায়ন করতে পারবেন। এই ডেটা মূল ডেটার একটি সাবসেট যা মডেল আগে বিশ্লেষণ করেনি। আপনি মডেলের গুণমান সম্পর্কে একটি মেট্রিক টেবিল প্রিন্ট করতে পারেন।
+প্রশিক্ষণ প্রক্রিয়া শেষ হলে (একটি বড় মডেল ট্রেন করতে অনেক পুনরাবৃত্তি বা 'ইপোক' লাগতে পারে), আপনি মডেলের গুণমান মূল্যায়ন করতে পারবেন। এর জন্য আপনি পরীক্ষার ডেটা ব্যবহার করবেন যা মডেল আগেই বিশ্লেষণ করে নি। আপনি মডেলের গুণমান সম্পর্কে মেট্রিক্সের একটি টেবিল প্রিন্ট করতে পারবেন।
🎓 **মডেল ফিটিং**
-মেশিন লার্নিং এর প্রসঙ্গে, মডেল ফিটিং একটি মডেলের অন্তর্নিহিত ফাংশনের সঠিকতা নির্দেশ করে, যেটি এমন ডেটা বিশ্লেষণ করার চেষ্টা করে যা এটি আগে থেকে জানে না।
+মেশিন লার্নিং প্রসঙ্গে, মডেল ফিটিং মানে হলো মডেলের অন্তর্নিহিত ফাংশনের সঠিকতা, যখন এটি অপরিচিত ডেটা বিশ্লেষণ করার চেষ্টা করে।
-🎓 **আন্ডারফিটিং** এবং **ওভারফিটিং** সাধারণ সমস্যা যা মডেলের গুণমানকে হ্রাস করে, কারণ মডেলটি যথাযথভাবে ফিট হয় না বা খুব বেশি ফিট হয়। এটি মডেলকে এমন পূর্বাভাস দিতে বাধ্য করে যা তার ট্রেনিং ডেটার সাথে খুব বেশি বা খুব কম সংযুক্ত থাকে। একটি ওভারফিট মডেল ট্রেনিং ডেটাকে খুব ভালোভাবে পূর্বাভাস দেয় কারণ এটি ডেটার বিস্তারিত এবং শব্দ খুব ভালোভাবে শিখেছে। একটি আন্ডারফিট মডেল সঠিক নয় কারণ এটি তার ট্রেনিং ডেটা বা এটি যে ডেটা এখনও 'দেখেনি' তা সঠিকভাবে বিশ্লেষণ করতে পারে না।
+🎓 **আন্ডারফিটিং** এবং **ওভারফিটিং** হল সাধারণ সমস্যা যা মডেলের গুণমান কমিয়ে দেয়, কারণ মডেল বা খারাপভাবে ফিট হয় বা অত্যধিক ভালভাবে ফিট হয়। এর ফলে মডেল পূর্বাভাস দেয় প্রশিক্ষণ ডেটার সাথে খুব ঘনিষ্ঠভাবে মেলানো বা খুব দূরত্বপূর্ণ। ওভারফিট মডেল প্রশিক্ষণ ডেটার বিস্তারিত এবং শব্দ খুব ভালোভাবে শিখে ফেলায় খুব ভালো পূর্বাভাস দেয়। আন্ডারফিট মডেল যথাযথ বিশ্লেষণ করতে পারে না না প্রশিক্ষণ ডেটা, না অপরিচিত ডেটা।
-
-> ইনফোগ্রাফিক: [Jen Looper](https://twitter.com/jenlooper)
+
+> ইনফোগ্রাফিক [জেন লুপার](https://twitter.com/jenlooper) দ্বারা
## প্যারামিটার টিউনিং
-আপনার প্রাথমিক ট্রেনিং সম্পন্ন হওয়ার পরে, মডেলের গুণমান পর্যবেক্ষণ করুন এবং এর 'হাইপারপ্যারামিটার' সমন্বয় করে এটি উন্নত করার কথা বিবেচনা করুন। এই প্রক্রিয়া সম্পর্কে আরও পড়ুন [ডকুমেন্টেশনে](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott)।
+আপনার প্রাথমিক প্রশিক্ষণ সম্পন্ন হলে, মডেলের গুণমান দেখুন এবং এর 'হাইপারপ্যারামিটারগুলিকে' টিক্ব করার মাধ্যমে উন্নতি করার কথা বিবেচনা করুন। আরও পড়ুন [ডকুমেন্টেশন](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott) দেখুন।
-## প্রেডিকশন
+## পূর্বাভাস
-এটি সেই মুহূর্ত যখন আপনি সম্পূর্ণ নতুন ডেটা ব্যবহার করে আপনার মডেলের সঠিকতা পরীক্ষা করতে পারেন। একটি 'প্রয়োগকৃত' ML সেটিংয়ে, যেখানে আপনি প্রোডাকশনে মডেল ব্যবহার করার জন্য ওয়েব অ্যাসেট তৈরি করছেন, এই প্রক্রিয়াটি ব্যবহারকারীর ইনপুট সংগ্রহ করার (যেমন একটি বোতাম চাপা) মাধ্যমে একটি ভেরিয়েবল সেট করা এবং মডেলে ইনফারেন্স বা মূল্যায়নের জন্য পাঠানোর অন্তর্ভুক্ত হতে পারে।
+এখন আপনি সম্পূর্ণ নতুন ডেটা ব্যবহার করে মডেলের সঠিকতা পরীক্ষা করতে পারেন। একটি 'প্রয়োগকৃত' এমএল পরিবেশে, যেখানে আপনি মডেলকে উৎপাদনে ব্যবহার করতে ওয়েব অ্যাসেট তৈরি করছেন, এই প্রক্রিয়াটি ব্যবহারকারীর ইনপুট (যেমন বোতাম চাপ) সংগ্রহ করা এবং সেটি একটি ভেরিয়েবল হিসাবে সেট করে, মডেলে ইনফারেন্স বা মূল্যায়নের জন্য পাঠানো অন্তর্ভুক্ত থাকতে পারে।
-এই পাঠগুলোতে, আপনি কীভাবে প্রস্তুতি, তৈরি, পরীক্ষা, মূল্যায়ন এবং পূর্বাভাস দিতে হয় তা আবিষ্কার করবেন - একজন ডেটা বিজ্ঞানীর সমস্ত কার্যকলাপ এবং আরও অনেক কিছু, যেহেতু আপনি 'ফুল স্ট্যাক' ML ইঞ্জিনিয়ার হওয়ার যাত্রায় অগ্রসর হচ্ছেন।
+এই পাঠে, আপনি শিখবেন কীভাবে এই ধাপগুলোকে প্রস্তুত, তৈরি, পরীক্ষা, মূল্যায়ন, এবং পূর্বাভাসে ব্যবহার করবেন - ডেটা সায়েন্টিস্টের সকল কাজ এবং আরো কিছু, যেভাবে আপনি 'ফুল স্ট্যাক' এমএল ইঞ্জিনিয়ার হওয়ার পথে অগ্রসর হবেন।
---
## 🚀চ্যালেঞ্জ
-একটি ফ্লো চার্ট আঁকুন যা একটি ML প্র্যাকটিশনারের ধাপগুলো প্রতিফলিত করে। আপনি বর্তমানে প্রক্রিয়ার কোন ধাপে আছেন বলে মনে করেন? আপনি কোথায় অসুবিধা অনুভব করবেন বলে মনে করেন? আপনার কাছে কী সহজ মনে হয়?
+একটি ফ্লো চার্ট আঁকুন যা একটি এমএল প্র্যাকটিশনারের ধাপগুলো প্রদর্শন করে। বর্তমানে আপনি প্রক্রিয়ার কোন অংশে আছেন বলে মনে করেন? কোথায় আপনি কষ্টের সম্মুখীন হবেন বলে অনুমান করেন? কোন কাজটি আপনার কাছে সহজ মনে হয়?
-## [পাঠ-পরবর্তী কুইজ](https://ff-quizzes.netlify.app/en/ml/)
+## [পাঠের পরে কুইজ](https://ff-quizzes.netlify.app/en/ml/)
-## পর্যালোচনা এবং স্ব-অধ্যয়ন
+## রিভিউ ও স্ব-অধ্যয়ন
-অনলাইনে ডেটা বিজ্ঞানীদের সাক্ষাৎকার অনুসন্ধান করুন যারা তাদের দৈনন্দিন কাজ নিয়ে আলোচনা করেন। এখানে একটি [সাক্ষাৎকার](https://www.youtube.com/watch?v=Z3IjgbbCEfs) রয়েছে।
+অনলাইনে সন্ধান করুন ডেটা সায়েন্টিস্টদের সাক্ষাৎকার যারা তাদের দৈনন্দিন কাজ নিয়ে কথা বলেন। এখানে একটি [সাক্ষাৎকার](https://www.youtube.com/watch?v=Z3IjgbbCEfs) দেওয়া হলো।
## অ্যাসাইনমেন্ট
-[একজন ডেটা বিজ্ঞানীর সাক্ষাৎকার নিন](assignment.md)
+[একজন ডেটা সায়েন্টিস্টের সাক্ষাৎকার নিন](assignment.md)
---
-**অস্বীকৃতি**:
-এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।
\ No newline at end of file
+
+**অস্বীকৃতি**:
+এই ডকুমেন্টটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা সঠিকতার জন্য চেষ্টা করি, তবে অনুগত হোন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ডকুমেন্টটির তার নিজস্ব ভাষায় থাকা সংস্করণই কর্তৃত্বপূর্ণ উত্স হিসাবে বিবেচিত হওয়া উচিত। গুরুতর তথ্যের জন্য পেশাদার মানুষের অনুবাদের পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে কোনও ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়বদ্ধ নই।
+
\ No newline at end of file
diff --git a/translations/bn/2-Regression/3-Linear/README.md b/translations/bn/2-Regression/3-Linear/README.md
index 3525a2d44..a2013376c 100644
--- a/translations/bn/2-Regression/3-Linear/README.md
+++ b/translations/bn/2-Regression/3-Linear/README.md
@@ -1,136 +1,135 @@
-# স্কাইকিট-লার্ন ব্যবহার করে একটি রিগ্রেশন মডেল নির্মাণ: চার ধরণের রিগ্রেশন
+# Scikit-learn ব্যবহার করে একটি রিগ্রেশন মডেল তৈরি করুন: চারভাবে রিগ্রেশন
-## প্রারম্ভিক নোট
+## শুরুকারীদের জন্য নোট
-রৈখিক রিগ্রেশন তখন ব্যবহার করা হয় যখন আমরা একটি **সংখ্যাগত মান** পূর্বাভাস করতে চাই (যেমন, বাড়ির দাম, তাপমাত্রা, বা বিক্রয়)।
-এটি কাজ করে এমন একটি সরলরেখা খুঁজে বের করে যা ইনপুট বৈশিষ্ট্য এবং আউটপুটের মধ্যে সম্পর্ককে সর্বোত্তমভাবে উপস্থাপন করে।
+লিনিয়ার রিগ্রেশন তখন ব্যবহার করা হয় যখন আমরা একটি **সংখ্যাসূচক মান** (উদাহরণস্বরূপ, ঘরের দাম, তাপমাত্রা, বা বিক্রয়) পূর্বাভাস দিতে চাই। এটি কাজ করে এমন একটি সরলরেখা খুঁজে বের করে যা ইনপুট বৈশিষ্ট্য এবং আউটপুটের সম্পর্ককে সবচেয়ে ভালোভাবে উপস্থাপিত করে।
-এই পাঠে, আমরা মূল ধারণাটি বোঝার উপর ফোকাস করব, এর পরে আরো উন্নত রিগ্রেশন পদ্ধতি অনুসন্ধান করবে।
-
-> ইনফোগ্রাফিক [দাসানি মাদিপল্লী](https://twitter.com/dasani_decoded) এর দ্বারা
-## [পূর্ব-লেকচার কুইজ](https://ff-quizzes.netlify.app/en/ml/)
+এই পাঠে, আমরা আরও উন্নত রিগ্রেশন কৌশলগুলি অনুসন্ধানের আগে ধারণাটি বুঝতে মনোযোগ দিচ্ছি।
+
+> ইনফোগ্রাফিক: [দাসানি মাদিপল্লি](https://twitter.com/dasani_decoded)
+## [প্রাক-লেকচার কুইজ](https://ff-quizzes.netlify.app/en/ml/)
-> ### [এই পাঠটি R ভাষায় পাওয়া যায়!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
+> ### [এই পাঠটি R-এ উপলব্ধ!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### পরিচিতি
-এখন পর্যন্ত আপনি pumpkin মুল্য নির্ধারণের ডেটাসেট থেকে সংগৃহীত নমুনা ডেটা ব্যবহার করে রিগ্রেশন কী তা অন্বেষণ করেছেন যা আমরা এই পাঠজুড়ে ব্যবহার করব। আপনি এটিও Matplotlib ব্যবহার করে ভিজ্যুয়ালাইজ করে দেখেছেন।
+এখন পর্যন্ত আপনি রিগ্রেশন কি তা অনুসন্ধান করেছেন এবং আমরা পুরো পাঠে ব্যবহার করা পাম্পকিন দাম নির্ণয়ের তথ্য সংগ্রহ করা নমুনা ডেটা নিয়ে কাজ করেছেন। এছাড়াও আপনি এটি মাটপ্লটলিব দিয়ে ভিজ্যুয়ালাইজ করেছেন।
-এখন আপনি এমএল এর জন্য রিগ্রেশনের গভীরে প্রবেশ করতে প্রস্তুত। ভিজ্যুয়ালাইজেশন আপনাকে ডেটা বুঝতে সাহায্য করলেও, মেশিন লার্নিংয়ের প্রকৃত শক্তি আসে _মডেল প্রশিক্ষণ_ থেকে। মডেলগুলি ঐতিহাসিক ডেটার উপর প্রশিক্ষিত হয় যা ডেটার নির্ভরশীলতা স্বয়ংক্রিয়ভাবে ধারণ করে, এবং তারা নতুন, অদেখা ডেটা জন্য ফলাফল পূর্বাভাস করতে সহায়তা করে।
+এখন আপনি এমএল-এর জন্য রিগ্রেশনে আরও গভীরে প্রবেশ করতে প্রস্তুত। ভিজ্যুয়ালাইজেশন আপনাকে ডেটা বুঝতে সাহায্য করলেও, মেশিন লার্নিংয়ের প্রকৃত শক্তি আসে _মডেল প্রশিক্ষণ থেকে_। মডেলগুলি ঐতিহাসিক ডেটায় প্রশিক্ষিত হয় যাতে তারা স্বয়ংক্রিয়ভাবে ডেটা নির্ভরতা ধারণ করে এবং মডেল পূর্বে না দেখা নতুন ডেটার জন্য ফলাফল পূর্বাভাস দেয়।
-এই পাঠে, আপনি দুই ধরনের রিগ্রেশন সম্পর্কে শিখবেন: _মৌলিক রৈখিক রিগ্রেশন_ এবং _বহুপদী রিগ্রেশন_, এবং কিছু গণিত যা এই পদ্ধতিগুলির ভিত্তি। এই মডেলগুলি আমাদের বিভিন্ন ইনপুট ডেটা অনুসারে pumpkin এর মূল্য পূর্বাভাস করার সুযোগ দেবে।
+এই পাঠে, আপনি দুটি রিগ্রেশনের ধরন সম্পর্কে জানবেন: _মৌলিক লিনিয়ার রিগ্রেশন_ এবং _পলিনোমিয়াল রিগ্রেশন_, এবং এই কৌশলগুলির পেছনের কিছু গণিতের ভিত্তি। এই মডেলগুলি আমাদের বিভিন্ন ইনপুট ডেটার উপর ভিত্তি করে পাম্পকিনের দাম পূর্বানুমান করতে সাহায্য করবে।
-[](https://youtu.be/CRxFT8oTDMg "শিক্ষানবিসদের জন্য এমএল - রৈখিক রিগ্রেশন বোঝা")
+[](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
-> 🎥 রৈখিক রিগ্রেশনের সংক্ষিপ্ত ভিডিও ওভারভিউ দেখতে উপরের চিত্রে ক্লিক করুন।
+> 🎥 লিনিয়ার রিগ্রেশনের সংক্ষিপ্ত ভিডিও ওভারভিউ দেখতে উপরের ছবিতে ক্লিক করুন।
-> এই পাঠক্রম জুড়ে, আমরা গণিতের নূন্যতম জ্ঞান ধরে নিই, এবং অন্যান্য ক্ষেত্রে থেকে আগত শিক্ষার্থীদের জন্য এটি বুঝতে সহজ করার চেষ্টা করি, সুতরাং লক্ষ্য করুন নোট, 🧮 কলআউট, ডায়াগ্রাম এবং অন্যান্য শিক্ষা সরঞ্জামগুলি।
+> এই পাঠ্যক্রম জুড়ে, আমরা গণিতের খুব কম জ্ঞান ধরে নিই এবং অন্য ক্ষেত্রে থেকে আসা শিক্ষার্থীদের জন্য সহজবোধ্য করতে চাই, তাই নোট, 🧮 কলআউট, চিত্র, এবং অন্যান্য পাঠ্য সহায়ক সরঞ্জাম লক্ষ্য করুন।
-### পূর্বশর্ত
+### পূর্বপ্রয়োজনীয়তা
-আপনি এখন পর্যন্ত pumpkin ডেটার কাঠামো সম্পর্কে পরিচিত হওয়া উচিত যা আমরা পর্যবেক্ষণ করছি। এটি পূর্বনির্ধারিত এবং পরিষ্কৃত অবস্থায় এই পাঠের _notebook.ipynb_ ফাইলে পাওয়া যায়। ফাইলে, pumpkin এর দাম প্রতি বাসেল হিসেবে প্রদর্শিত হয়েছে। নিশ্চিত করুন যে আপনি Visual Studio Code এর কের্নেলগুলিতে এই নোটবুকগুলি চালাতে পারেন।
+এখন পর্যন্ত আপনি যেই পাম্পকিন ডেটার গঠন দেখেছেন তার সঙ্গে পরিচিত হওয়া উচিত। এটি এই পাঠের _notebook.ipynb_ ফাইলে আগে থেকে লোড এবং পরিষ্কার করা আছে। ফাইলে, পাম্পকিনের দাম প্রতি বাসেল প্রদর্শিত হয়েছে। নিশ্চিত করুন যে আপনি ভিজুয়াল স্টুডিও কোডে এই নোটবুকগুলি চালাতে পারবেন।
### প্রস্তুতি
-স্মরণ করিয়ে দিতে চাই, আপনি এই ডেটা লোড করছেন যাতে এর উপর প্রশ্ন উত্থাপন করতে পারেন।
+আপনি এই ডেটা লোড করছেন যাতে এটি নিয়ে প্রশ্ন করতে পারেন, একটি স্মরণীয় ব্যাপার:
-- কখন pumpkin কেনা সবচেয়ে ভালো সময়?
-- একটি ছোট আকারের pumpkin এর দাম কত আশা করা যায়?
-- আমি কি তাদের অর্ধ-বাসেল ঝুড়িতে কিনব নাকি ১ ১/৯ বাসেল বাক্সে?
-চলুন এই ডেটা আরও খতিয়ে দেখা যাক।
+- কখন পাম্পকিন কেনা সবচেয়ে ভালো সময়?
+- মিনি পাম্পকিনের একটি প্যাকের দাম কত হতে পারে?
+- কী আমি এগুলো অর্ধেক বাসেল বাস্কেট বা ১ ১/৯ বাসেল বাক্স থেকে কিনব?
+চলুন এই ডেটা আরও অনুসন্ধান করা যাক।
-পূর্বের পাঠে, আপনি একটি Pandas ডেটাফ্রেম তৈরি করেছিলেন এবং প্রাথমিক ডেটাসেটের একটি অংশ নিয়ে এটিকে বাসেল অনুযায়ী দাম মানকরণ করেছিলেন। কিন্তু এতে আপনি প্রায় ৪০০ ডেটাপয়েন্ট এবং শুধুমাত্র শরৎ মাসের জন্য তথ্য পেয়েছিলেন।
+পূর্ববর্তী পাঠে, আপনি একটি প্যান্ডাস ডেটাফ্রেম তৈরি করেছিলেন এবং মূল ডেটাসেট থেকে একটি অংশ ব্যবহার করে প্রতি বাসেলের দাম স্ট্যান্ডার্ডাইজ করেছিলেন। এর ফলে, আপনি প্রায় ৪০০ তথ্য বিন্দু এবং শুধুমাত্র শরৎ মাসের জন্যই তথ্য সংগ্রহ করতে পেরেছিলেন।
-এই পাঠের সঙ্গী নোটবুকে আমরা পূর্বনির্ধারিত যে ডেটা লোড করেছি তা দেখুন। ডেটাটি লোড করা হয়েছে এবং প্রথম একটি scatterplot তৈরি করা হয়েছে যা মাসের ডেটা দেখায়। হয়তো এটি আরও পরিষ্কার করলে ডেটার প্রকৃতি সম্পর্কে কিছু বিস্তারিত জানতে পারি।
+এই পাঠের সহযোগী নোটবুকটিতে আগে থেকে লোড করা ডেটাটি দেখুন। ডেটা লোড করা আছে এবং একটি প্রাথমিক স্ক্যাটারপ্লট মাসের তথ্য প্রদর্শন করে। হয়তো ডেটা আরও পরিষ্কার করার মাধ্যমে প্রকৃত তথ্যের প্রকৃতি সম্পর্কে কিছু বেশি জানতে পারি।
-## একটি রৈখিক রিগ্রেশন লাইন
+## একটি লিনিয়ার রিগ্রেশন রেখা
-আপনি প্রথম পাঠে শিখেছেন, রৈখিক রিগ্রেশন অনুশীলনের লক্ষ্য হল এমন একটি রেখা আঁকতে পারা যা:
+পাঠ ১ থেকে আপনি শিখেছেন, লিনিয়ার রিগ্রেশন অনুশীলনের লক্ষ্য একটি রেখা আঁকা যাতে:
-- **চলকগুলোর মধ্যে সম্পর্ক প্রদর্শন করে**। চলকগুলোর মধ্যে সম্পর্ক দেখানো।
-- **পূর্বাভাস দেয়**। একটি নতুন ডেটাপয়েন্ট যেখানে পড়বে সেই সম্পর্কে সঠিক পূর্বাভাস দেওয়া।
+- **চলকগুলোর সম্পর্ক প্রদর্শন:** চলকগুলোর মধ্যে সম্পর্ক দেখানো
+- **পূর্বাভাস তৈরি:** নতুন ডেটাপয়েন্ট কোথায় পড়বে তা সঠিকভাবে পূর্বাভাস করা
-**Least-Squares Regression** এ এই ধরনের রেখা আঁকা সাধারণ। "Least-Squares" শব্দগুচ্ছ আমাদের মডেলে মোট ত্রুটি সবচেয়ে কম করার প্রক্রিয়াকে বোঝায়। প্রতিটি ডেটাপয়েন্টের জন্য, আমরা আসল বিন্দু এবং রিগ্রেশন লাইনের মধ্যে উল্লম্ব দূরত্ব (যা অবশিষ্টাংশ বলে) পরিমাপ করি।
+**লিস্ট-স্কয়ার রিগ্রেশন** এ ধরনের রেখা আঁকা সাধারণ। "লিস্ট-স্কয়ার" শব্দগুচ্ছ আমাদের মডেলে মোট ভুল সর্বনিম্ন করার প্রক্রিয়াকে বোঝায়। প্রতিটি ডেটাপয়েন্টের জন্য, আমরা প্রকৃত পয়েন্ট এবং আমাদের রিগ্রেশন রেখার মধ্যে উল্লম্ব দূরত্ব (যা অবশিষ্টাংশ নামে পরিচিত) পরিমাপ করি।
-আমরা এই দূরত্বগুলিকে বর্গ করি দুইটি প্রধান কারণে:
+আমরা এই দূরত্বগুলিকে বর্গ করি দুটি প্রধান কারণে:
-1. **পরিমাণের গুরুত্ব, দিক নয়:** আমরা -৫ এর ত্রুটিকে +৫ এর ত্রুটির মত বিবেচনা করতে চাই। বর্গ করলে সকল মান ধনাত্মক হয়।
+1. **মেরু পরিবর্তনের উপরে মানের গুরুত্ব:** আমরা -৫ এর ভুলের জন্য +৫ এর ভুলের সমান গুরুত্ব দিতে চাই। বর্গকরণের ফলে সব মান ধনাত্মক হয়ে যায়।
-2. **বহিরাগত মানগুলিকে শাস্তি দেওয়া:** বড় ত্রুটিকে বেশি ওজন দেয়, রেখাটিকে সেসব দূরের পয়েন্টের কাছাকাছি থাকতে বাধ্য করে।
+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` হল 'explanatory variable'। `Y` হল 'dependent variable'। রেখার ঢালের মান `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)
>
-> অন্য কথায়, এবং আমাদের pumpkin ডেটার মূল প্রশ্নের পরিপ্রেক্ষিতে: "মাস অনুযায়ী একটি pumpkin এর দাম পূর্বাভাস", এখানে `X` দাম বোঝাবে এবং `Y` বিক্রয়ের মাস।
+> অন্য কথায়, আমাদের পাম্পকিন ডেটার মূল প্রশ্ন: "মাস অনুসারে প্রতি বাসেলে পাম্পকিনের দাম পূর্বানুমান", এ ক্ষেত্রে `X` হবে দাম এবং `Y` হবে বিক্রয় মাস।
>
->
+>
>
-> Y এর মান গণনা করুন। আপনি যদি প্রায় $4 দিচ্ছেন, তবে অবশ্যই এপ্রিল! ইনফোগ্রাফিক [জেন লুপার](https://twitter.com/jenlooper) এর দ্বারা
+> `Y` এর মান হিসাব করুন। আপনি যদি প্রায় ৪ ডলারের দাম দেখেন, তাহলে মাস অবশ্যই এপ্রিল! ইনফোগ্রাফিক: [জেন লুপার](https://twitter.com/jenlooper)
>
-> লাইন গণনা যে গণিতটি করে তা ঢালটি প্রদর্শন করে, যা ইন্টারসেপ্টের উপর নির্ভরশীল, অর্থাৎ `X = 0` এর সময় `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) যেখানে সংখ্যাগুলোর মান লাইনকে কীভাবে প্রভাবিত করে তা দেখা যায়।
+> এই মানগুলো গণনার পদ্ধতি দেখতে [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) ওয়েবসাইট ভিজিট করুন। এছাড়াও দেখুন [এই লিস্ট-স্কয়ার ক্যালকুলেটর](https://www.mathsisfun.com/data/least-squares-calculator.html) যেখানে সংখ্যা মানগুলো কিভাবে রেখাকে প্রভাবিত করে তা উপলব্ধি করতে পারেন।
-## সহগ
+## সম্পর্ক
-আরেকটি শব্দ যা জানতেও হবে তা হল `X` এবং `Y` চলকগুলোর মধ্যে **সহগ সহগ (Correlation Coefficient)**। একটি scatterplot ব্যবহার করে আপনি দ্রুত এই সহগকে ভিজ্যুয়ালাইজ করতে পারেন। যে প্লটের ডেটাপয়েন্টগুলো একটি সুন্দর লাইনে ছড়িয়ে আছে সে প্লটের সহগ বেশি, কিন্তু যেখানে ডেটাপয়েন্টগুলো X এবং Y এর মধ্যে এলোমেলো ছড়ানো সেখানে সহগ কম।
+আরেকটি শব্দ যা বুঝতে হবে তা হলো দেওয়া X এবং Y চলকগুলোর মধ্যে **সম্পর্ক সহগ**। একটি স্ক্যাটারপ্লট ব্যবহার করে আপনি দ্রুত এই সহগটি ভিজ্যুয়ালাইজ করতে পারেন। যেখানে ডেটাপয়েন্টগুলো সুন্দর সারিতে ছড়িয়ে থাকে সেখানে উচ্চ সম্পর্ক থাকে, আর যেসব প্লটে ডেটা একদম ছড়িয়ে থাকে সেখানে সম্পর্ক কম।
-একটি ভাল রৈখিক রিগ্রেশন মডেল হবে এমনটি যার সহগ খুব বেশি (০ থেকে ১ এর কাছে) এবং Least-Squares Regression এর মাধ্যমে রিগ্রেশন রেখা থাকবে।
+একটি ভাল লিনিয়ার রিগ্রেশন মডেল হবে এমন একটি যা লিস্ট-স্কয়ারস রিগ্রেশন ব্যবহার করে উচ্চ (০-এর থেকে ১-এর নিকটবর্তী) সম্পর্ক সহগ রাখে।
-✅ এই পাঠের সঙ্গী নোটবুকটি চালান এবং Month থেকে Price পর্যন্ত scatterplot দেখুন। কি মনে হয়, মাস এবং দাম পাম্পকিন বিক্রয়ের ডেটার মধ্যে আপনার scatterplot অনুযায়ী কি উচ্চ না কম সহগ আছে? যদি আপনি `Month` এর পরিবর্তে আরো সূক্ষ্ম পরিমাপ ব্যবহার করেন যেমন *বছরের দিন* (অর্থাৎ বছরের শুরু থেকে দিনের সংখ্যা), তাহলে কি এটি পরিবর্তিত হয়?
+✅ এই পাঠের সহায়ক নোটবুক রান করুন এবং মাস ও দাম স্ক্যাটারপ্লট দেখুন। আপনার দৃষ্টিতে পাম্পকিন বিক্রয়ের জন্য মাস এবং দামের ডেটা কি উচ্চ নাকি নিম্ন সম্পর্ক প্রদর্শন করে? যদি আপনি মাসের পরিবর্তে সূক্ষ্ম মেজার যেমন *বছরের দিন* (অর্থাৎ বছরের শুরু থেকে দিন সংখ্যা) ব্যবহার করেন, তাহলে কি তা পরিবর্তন হয়?
-নিচের কোডে আমরা ধরে নেব ডেটা পরিষ্কার করা হয়েছে এবং একটি ডেটাফ্রেম `new_pumpkins` তৈরি হয়েছে, যা নিম্নরূপ:
+নিচের কোডে ধরে নেওয়া হয়েছে আমরা ডেটা পরিষ্কার করেছি এবং একটি ডেটাফ্রেম `new_pumpkins` পেয়েছি যা নিচের মতো:
-ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
----|-------|-----------|---------|------|---------|-----------|------------|-------
-70 | 9 | 267 | PIE TYPE| BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
-71 | 9 | 267 | PIE TYPE| BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
-72 | 10 | 274 | PIE TYPE| BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
-73 | 10 | 274 | PIE TYPE| BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
-74 | 10 | 281 | PIE TYPE| BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
+ID | মাস | বছরের দিন | প্রকার | শহর | প্যাকেজ | সর্বনিম্ন দাম | সর্বোচ্চ দাম | দাম
+---|-------|-----------|---------|------|---------|-----------|------------|-------
+70 | 9 | 267 | পাই টাইপ | বাল্টিমোর | ১ ১/৯ বাসেল কার্টন | 15.0 | 15.0 | 13.636364
+71 | 9 | 267 | পাই টাইপ | বাল্টিমোর | ১ ১/৯ বাসেল কার্টন | 18.0 | 18.0 | 16.363636
+72 | 10 | 274 | পাই টাইপ | বাল্টিমোর | ১ ১/৯ বাসেল কার্টন | 18.0 | 18.0 | 16.363636
+73 | 10 | 274 | পাই টাইপ | বাল্টিমোর | ১ ১/৯ বাসেল কার্টন | 17.0 | 17.0 | 15.454545
+74 | 10 | 281 | পাই টাইপ | বাল্টিমোর | ১ ১/৯ বাসেল কার্টন | 15.0 | 15.0 | 13.636364
-> ডেটা পরিষ্কারের কোড [`notebook.ipynb`](notebook.ipynb) ফাইলে উপলব্ধ। আমরা পূর্বের পাঠে ব্যবহৃত একই পরিষ্কারকরণ প্রক্রিয়া অনুসরণ করেছি এবং নিম্নলিখিত এক্সপ্রেশন ব্যবহার করে `DayOfYear` কলাম গণনা করেছি:
+> ডেটা পরিষ্কারের কোড [`notebook.ipynb`](notebook.ipynb) এ পাওয়া যাবে। আমরা পূর্ববর্তী পাঠের মত একই পরিষ্কারকরণ ধাপ করেছি এবং `DayOfYear` কলাম হিসাব করেছি নিম্নলিখিত অভিব্যক্তি ব্যবহার করে:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
-এখন আপনি রৈখিক রিগ্রেশনের পেছনের গণিত বুঝতে পারছেন, চলুন একটি রিগ্রেশন মডেল তৈরী করি যা পূর্বাভাস করবে কোন pumpkin এর প্যাকেজে ভালো দাম পাওয়া যাবে। ছুটির জন্য pumpkin কিনছেন এমন কেউ এই তথ্য পেতে চাইবেন যাতে তাদের পাম্পকিন প্যাকেজ কেনাকাটা অপ্টিমাইজ করতে পারেন।
+এখন যেহেতু আপনি লিনিয়ার রিগ্রেশনের পেছনের গণিত বুঝতে পেরেছেন, চলুন একটি রিগ্রেশন মডেল তৈরি করি এবং দেখি কোন পাম্পকিন প্যাকেজে সবচেয়ে ভাল দাম হবে পূর্বানুমান করতে পারি কিনা। ছুটির দিনে পাম্পকিনের একটি প্যাচের জন্য কেউ পাম্পকিন কিনতে চাইলে এই তথ্য তাদের প্যাকেজের ক্রয় অপ্টিমাইজ করতে সাহায্য করবে।
-## সহগ অনুসন্ধান
+## সম্পর্ক খোঁজা
-[](https://youtu.be/uoRq-lW2eQo "শিক্ষানবিসদের জন্য এমএল - সহগ অনুসন্ধান: লিনিয়ার রিগ্রেশনের চাবিকাঠি")
+[](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
-> 🎥 সহগের সংক্ষিপ্ত ভিডিও ওভারভিউ দেখতে উপরের চিত্রে ক্লিক করুন।
+> 🎥 সম্পর্কের সংক্ষিপ্ত ভিডিও ওভারভিউ দেখতে উপরের ছবিতে ক্লিক করুন।
-পূর্বের পাঠ থেকে আপনি সম্ভবত দেখেছেন বিভিন্ন মাসের গড় দাম এভাবে:
+গত লেসনে আপনি সম্ভবত দেখেছেন বিভিন্ন মাসের গড় দাম এ রকম:
-
+
-এটি নির্দেশ করে যে কিছুটা সহগ থাকতে হবে, এবং আমরা `Month` এবং `Price` অথবা `DayOfYear` এবং `Price` এর মধ্যে সম্পর্ক পূর্বাভাস করার জন্য লিনিয়ার রিগ্রেশন মডেল প্রশিক্ষণ দেওয়ার চেষ্টা করতে পারি। নিচের scatter plot দেখায় পরবর্তী সম্পর্ক:
+এটি নির্দেশ করে যে এটার সাথে কিছু সম্পর্ক থাকতে পারে, এবং আমরা চেষ্টা করতে পারি লিনিয়ার রিগ্রেশন মডেল প্রশিক্ষণ দিতে `Month` এবং `Price` অথবা `DayOfYear` এবং `Price` এর মধ্যে সম্পর্ক পূর্বানুমান করার জন্য। নিচের স্ক্যাটারপ্লট পরবর্তী সম্পর্কটি দেখায়:
-
+
-চলুন `corr` ফাংশন ব্যবহার করে সহগ দেখে নেওয়া যাক:
+চলুন `corr` ফাংশন ব্যবহার করে দেখি সম্পর্ক আছে কি না:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
-মনে হচ্ছে সহগ খুব ছোট, `Month` দ্বারা -০.১৫ এবং `DayOfMonth` দ্বারা -০.১৭, কিন্তু একটি অন্য গুরুত্বপূর্ণ সম্পর্ক থাকতে পারে। মনে হচ্ছে বিভিন্ন pumpkin জাতের জন্য বিভিন্ন দামের ক্লাস্টার রয়েছে। এই অনুমান নিশ্চিত করার জন্য, আসুন প্রতিটি pumpkin শ্রেণী ভিন্ন রঙে প্লট করি। `scatter` ফাংশনে `ax` প্যারামিটার ব্যবহার করে আমরা একই গ্রাফে সব পয়েন্ট প্লট করতে পারি:
+দেখা যাচ্ছে, সম্পর্ক ছোট, মাস অনুসারে -০.১৫ এবং বছরের দিন অনুসারে -০.১৭, কিন্তু হয়তো একটি আরেকটি গুরুত্বপূর্ণ সম্পর্ক আছে। বিভিন্ন পাম্পকিন প্রজাতির জন্য ভিন্ন দাম ক্লাস্টার লক্ষ্য করা গেছে। এই অনুমান নিশ্চিত করতে, আমরা প্রতিটি পাম্পকিন প্রকার ভিন্ন রঙে স্ক্যাটারপ্লটে দেখাবো। `scatter` প্লটিং ফাংশনে `ax` প্যারামিটার পাস করে সব পয়েন্ট একই গ্রাফে প্লট করা যায়:
```python
ax=None
@@ -140,42 +139,42 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
-
+
-আমাদের তদন্ত ইঙ্গিত দেয় যে জাত জেনারেল মূল্যের ওপর বিক্রির তারিখের চেয়ে বেশি প্রভাব ফেলে। আমরা এটি একটি বারের গ্রাফে দেখতে পারি:
+আমাদের অনুসন্ধান প্রস্তাব করে যে প্রজাতি বিক্রয় তারিখের চেয়ে দাম এর উপর বেশি প্রভাব ফেলে। আমরা এটি একটি বারের গ্রাফ দিয়ে দেখতে পারি:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
-
+
-এখন কেবল একটি pumpkin জাত, 'pie type', নিয়ে ফোকাস করি এবং দেখি বিক্রয় তারিখ মূল্যের উপরে কেমন প্রভাব ফেলে:
+এই মুহূর্তে শুধুমাত্র একটি পাম্পকিন প্রজাতি, 'পাই টাইপ'-এ মনোযোগ দিয়া দেখি, বিক্রয় তারিখের দাম এর উপর কি প্রভাব:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
-
+
-এখন যদি আমরা `Price` এবং `DayOfYear` এর সহগ `corr` ফাংশন ব্যবহার করে বের করি, তবে ফলাফল হবে প্রায় `-0.27` - অর্থাৎ পূর্বাভাস মডেল প্রশিক্ষণ দেওয়া যৌক্তিক।
+এখন যদি আমরা `Price` এবং `DayOfYear` এর মধ্যে `corr` ফাংশন ব্যবহার করে সম্পর্ক হিসাব করি, আমরা পাবো প্রায় `-0.27` - যার মানে একটি পূর্বাভাসমূলক মডেল প্রশিক্ষণ দেওয়া যুক্তিযুক্ত।
-> রৈখিক রিগ্রেশন মডেল প্রশিক্ষণের আগে, নিশ্চিত হওয়া গুরুত্বপূর্ণ যে আমাদের ডেটা পরিষ্কার। রৈখিক রিগ্রেশন অনুপস্থিত মানের সঙ্গে ভালো কাজ করে না, তাই সব ফাঁকা ঘর মুছে ফেলা যুক্তিযুক্ত:
+> লিনিয়ার রিগ্রেশন মডেল প্রশিক্ষণের আগে, নিশ্চিত করা উচিত যে ডেটা পরিষ্কার। লিনিয়ার রিগ্রেশন অনুপস্থিত মানের সাথে ভাল কাজ করে না, তাই সব খালি সেল সরিয়ে ফেলা যুক্তিযুক্ত:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
-অন্য একটি পদ্ধতি হল ঐ ফাঁকা মানগুলো সংশ্লিষ্ট কলামের গড় মান দিয়ে পূরণ করা।
+অন্য একটি পন্থা হবে খালি মানগুলোকে সংশ্লিষ্ট কলামের গড় মান দিয়ে পূরণ করা।
-## সাধারণ রৈখিক রিগ্রেশন
+## সরল লিনিয়ার রিগ্রেশন
-[](https://youtu.be/e4c_UP2fSjg "শিক্ষানবিসদের জন্য এমএল - Scikit-learn ব্যবহার করে রৈখিক এবং বহুপদী রিগ্রেশন")
+[](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,31 +182,31 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
-আমরা প্রথমে ইনপুট মান (বৈশিষ্ট্য) এবং প্রত্যাশিত আউটপুট (লেবেল) আলাদা numpy অ্যারেতে রাখব:
+আমরা প্রথমে ইনপুট মান (ফিচার) এবং প্রত্যাশিত আউটপুট (লেবেল) আলাদা numpy অ্যারের মধ্যে রাখব:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
-> লক্ষণীয় যে ইনপুট ডেটাতে `reshape` প্রয়োগ করতে হয়েছে যাতে লিনিয়ার রিগ্রেশন প্যাকেজ এটি সঠিকভাবে বুঝতে পারে। লিনিয়ার রিগ্রেশন ২-ডি অ্যারে ইনপুট হিসেবে চায়, যেখানে প্রতিটি সারি হলো ইনপুট বৈশিষ্ট্যের ভেক্টর। আমাদের ক্ষেত্রে, যেহেতু ইনপুট মাত্র একটির মত, তাই একটি N×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` হতে পারে, যা বছরের শুরুতে দাম নির্দেশ করে।
+`LinearRegression` অবজেক্ট `fit` করার পরে সমস্ত রিগ্রেশন সহগ রয়েছে, যা `.coef_` প্রপার্টি ব্যবহার করে অ্যাক্সেস করা যেতে পারে। আমাদের ক্ষেত্রে, কেবল একটি সহগ আছে, যা প্রায় `-0.017` হওয়া উচিত। এর অর্থ হলো মূল্যসমূহ সময়ের সাথে সামান্য হ্রাস পায়, তবে খুব বেশি নয়, প্রায় দিনে ২ সেন্টের মতো। আমরা Y-অক্ষের সাথে রিগ্রেশনের ছেদ বিন্দু `lin_reg.intercept_` ব্যবহার করেও অ্যাক্সেস করতে পারি - এটি আমাদের ক্ষেত্রে প্রায় `২১` হবে, যা বছরের শুরুতে দামের নির্দেশ করে।
-আমাদের মডেল কতটা সঠিক তা দেখতে, আমরা টেস্ট ডেটাসেটে দাম পূর্বাভাস দিতে পারি, এবং তারপর আমাদের পূর্বাভাসগুলি প্রত্যাশিত মানের কতটা কাছাকাছি তা মাপতে পারি। এটি মূল গড় বর্গমূল ত্রুটি (RMSE) মেট্রিক ব্যবহার করে করা যায়, যা প্রত্যাশিত এবং পূর্বাভাসিত মানের মধ্যে সমস্ত বর্গ পার্থক্যের গড়ের বর্গমূল।
+আমাদের মডেল কতটা সঠিক তা দেখতে, আমরা একটি টেস্ট ডেটাসেটে দামগুলি পূর্বাভাস দিতে পারি এবং তারপর আমাদের পূর্বাভাসগুলি প্রত্যাশিত মানের কতটা কাছাকাছি তা পরিমাপ করতে পারি। এটি মূল রুট গড় বর্গ ত্রুটি (RMSE) মেট্রিক্স ব্যবহার করে করা যায়, যা প্রত্যাশিত এবং পূর্বাভাস করা মানের মধ্যে সমস্ত বর্গমূল পার্থক্যের গড়ের মূল।
```python
pred = lin_reg.predict(X_test)
@@ -216,16 +215,15 @@ rmse = np.sqrt(mean_squared_error(y_test,pred))
print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)')
```
-আমাদের ত্রুটি প্রায় ২ পয়েন্ট, যা প্রায় ~১৭%। খুব ভাল নয়। মডেলের গুণমানের আরেকটি সূচক হল **নির্ধারণ সহগ**, যা এভাবে পাওয়া যায়:
+আমাদের ত্রুটি প্রায় ২ পয়েন্টের মতো মনে হচ্ছে, যা ~১৭%। খুব ভাল নয়। মডেল গুণমানের আরেকটি সূচক হলো **নির্ধারণ সহগ** (coefficient of determination), যা এভাবে পাওয়া যেতে পারে:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
+ যদি মানটি ০ হয়, এর অর্থ মডেল ইনপুট ডেটা বিবেচনায় নেয় না, এবং *সর্বনিম্ন রৈখিক পূর্বাভাসক* হিসেবে কাজ করে, যা শুধু ফলাফলের গড় মান। ১ মানে আমরা সমস্ত প্রত্যাশিত আউটপুট নিখুঁতভাবে পূর্বাভাস দিতে পারি। আমাদের ক্ষেত্রে, সহগ প্রায় ০.০৬, যা খুব কম।
-যদি মান ০ হয়, তার মানে মডেল ইনপুট ডেটাকে বিবেচনা করে না, এবং *অতীব বাজে রেখীয় পূর্বাভাসকারী* হিসেবে কাজ করে, যা কেবল ফলাফলের গড় মান। মান ১ হলে তার মানে আমরা সমস্ত প্রত্যাশিত আউটপুট নিখুঁতভাবে পূর্বাভাস দিতে পারি। আমাদের ক্ষেত্রে, সহগ প্রায় ০.০৬, যা যথেষ্ট কম।
-
-আমরা টেস্ট ডেটা এবং রিগ্রেশন লাইন একসাথে প্লট করতে পারি যাতে আমাদের ক্ষেত্রে রিগ্রেশন কিভাবে কাজ করছে তা ভালোভাবে দেখা যায়:
+আমরা রিগ্রেশন লাইন সহ টেস্ট ডেটা প্লট করেও দেখতে পারি কিভাবে আমাদের ক্ষেত্রে রিগ্রেশন কাজ করে:
```python
plt.scatter(X_test,y_test)
@@ -234,19 +232,19 @@ plt.plot(X_test,pred)
-## পলিনোমিয়াল রিগ্রেশন
+## Polynomial Regression
-রিগ্রেশনের আরেকটি ধরন হল পলিনোমিয়াল রিগ্রেশন। কখনো কখনো ভেরিয়েবলগুলির মধ্যে রেখীয় সম্পর্ক থাকে - বড় পাম্পকিনের ভলিউম বেশি হলে দামও বেশি - আবার কখনো সম্পর্কগুলো প্লেন বা সরল রেখা হিসেবে আঁকতে পারা যায় না।
+রৈখিক রিগ্রেশনের আরেক ধরন হলো পলিনোমিয়াল রিগ্রেশন। কখনও কখনও ভেরিয়েবলগুলির মধ্যে একটি রৈখিক সম্পর্ক থাকে – যেমন ভলিউমে বড় মিষ্টি কুমড়ো, দামও বেশি – তবে কখনও কখনও এই সম্পর্কগুলি একটি সমতল বা সরল রেখা আকারে প্লট করা যায় না।
-✅ এখানে [আরও কিছু উদাহরণ](https://online.stat.psu.edu/stat501/lesson/9/9.8) আছে যেগুলিতে পলিনোমিয়াল রিগ্রেশন ব্যবহার করা যেতে পারে
+✅ এখানে [আরো কিছু উদাহরণ](https://online.stat.psu.edu/stat501/lesson/9/9.8) রয়েছে এমন ডেটার যেগুলোর জন্য পলিনোমিয়াল রিগ্রেশন প্রযোজ্য হতে পারে
-আবার ডেট এবং দাম এর সম্পর্ক দেখুন। এই স্ক্যাটারপ্লট কি অবশ্যই একটি সরল রেখা দ্বারা বিশ্লেষিত হওয়া উচিত বলে মনে হয়? দাম কি ওঠানামা করতে পারে না? এই ক্ষেত্রে, আপনি পলিনোমিয়াল রিগ্রেশন চেষ্টা করতে পারেন।
+`Date` এবং `Price` এর মধ্যে সম্পর্ক আবার দেখুন। এই স্ক্যাটারপ্লট কি সরল রেখা দ্বারা বিশ্লেষণ করা উচিত বলে মনে হচ্ছে? দাম ওঠানামা করতে পারে না কি? এই ক্ষেত্রে, আপনি পলিনোমিয়াল রিগ্রেশন চেষ্টা করতে পারেন।
-✅ পলিনোমিয়াল হল গাণিতিক প্রকাশ যা একটি বা একাধিক ভেরিয়েবল এবং সহগ নিয়ে গঠিত হতে পারে
+✅ পলিনোমিয়ালগুলি হল গাণিতিক এক্সপ্রেশন যা এক বা একাধিক ভেরিয়েবল এবং সহগ সম্বলিত হতে পারে
-পলিনোমিয়াল রিগ্রেশন নন-লিনিয়ার ডেটার ভালো ফিট দেওয়ার জন্য একটি বক্ররেখা তৈরি করে। আমাদের ক্ষেত্রে, যদি আমরা ইনপুট ডেটায় বর্গাকার `DayOfYear` ভেরিয়েবল অন্তর্ভুক্ত করি, তাহলে ভেরিয়েশন ডেটার সাথে আমরা একটি পরবলাকার বাঁক ফিট করতে পারব, যার মধ্যে বছরের একটি নির্দিষ্ট জায়গায় নূন্যতম থাকবে।
+পলিনোমিয়াল রিগ্রেশন একটি বাকা রেখা তৈরি করে যা অলিনিয়ার ডেটার সাথে ভাল মানায়। আমাদের ক্ষেত্রে, যদি আমরা ইনপুট ডেটাতে একটি বর্গ `DayOfYear` ভেরিয়েবল যোগ করি, তাহলে আমরা একধরনের প্যারাবোলিক কার্ভ দিয়ে ডেটা মানাতে পারব, যার একটি নির্দিষ্ট পয়েন্টে বছরভিত্তিক ন্যূনতম থাকবে।
-Scikit-learn একটি সহায়ক [পাইপলাইন API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) অন্তর্ভুক্ত করে যা ডেটা প্রসেসিংয়ের বিভিন্ন ধাপ একত্রিত করতে সাহায্য করে। একটি **পাইপলাইন** হল **এস্টিমেটরগুলির** একটি শৃঙ্খল। আমাদের ক্ষেত্রে, আমরা একটি পাইপলাইন তৈরি করব যা প্রথমে আমাদের মডেলে পলিনোমিয়াল ফিচার যুক্ত করবে, এবং তারপর রিগ্রেশন প্রশিক্ষণ দেবে:
+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 তৈরি করব যা প্রথমে পলিনোমিয়াল ফিচার আমাদের মডেলে যোগ করবে, তারপর রিগ্রেশন ট্রেন করবে:
```python
from sklearn.preprocessing import PolynomialFeatures
@@ -257,37 +255,58 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
-`PolynomialFeatures(2)` ব্যবহার মানে আমরা ইনপুট ডেটার সব দ্বিতীয়-ডিগ্রী পলিনোমিয়াল অন্তর্ভুক্ত করব। আমাদের ক্ষেত্রে এটি শুধু `DayOfYear`2 হবে, কিন্তু দুই ইনপুট ভেরিয়েবল X এবং Y দেওয়া হলে এটি X2, XY এবং Y2 যোগ করবে। আমরা চাইলে উচ্চতর ডিগ্রির পলিনোমিয়ালও ব্যবহার করতে পারি।
+`PolynomialFeatures(2)` ব্যবহার মানে আমরা ইনপুট ডেটার সমস্ত দ্বিতীয়-ডিগ্রী পলিনোমিয়াল অন্তর্ভুক্ত করব। আমাদের ক্ষেত্রে এটি শুধু `DayOfYear`2 বোঝাবে, কিন্তু যদি দুটি ইনপুট ভেরিয়েবল X এবং Y থাকে, তাহলে এটি X2, XY এবং Y2 যোগ করবে। আমরা চাইলে উচ্চতর ডিগ্রির পলিনোমিয়ালও ব্যবহার করতে পারি।
+
+Pipeline গুলো একইভাবে ব্যবহার করা যায় যেমন মূল `LinearRegression` অবজেক্ট, অর্থাৎ আমরা pipeline কে `fit` করতে পারি, তারপর `predict` ব্যবহার করে পূর্বাভাস পেতে পারি:
+
+```python
+pred = pipeline.predict(X_test)
+
+rmse = np.sqrt(mean_squared_error(y_test,pred))
+print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)')
+
+score = pipeline.score(X_train,y_train)
+print('Model determination: ', score)
+```
+
+মসৃণ অনুমান কার্ভ প্লট করতে, আমরা `np.linspace` ব্যবহার করি ইনপুট মানগুলোর একটি সুষম রেঞ্জ তৈরির জন্য, সরাসরি এলোমেলো টেস্ট ডেটায় প্লট করার পরিবর্তে (যা একটি জিগজ্যাগ লাইন তৈরি করত):
-পাইপলাইনগুলি মূল `LinearRegression` অবজেক্টের মত একই রকম ব্যবহার করা যায়, অর্থাৎ আমরা পাইপলাইন `fit` করতে পারি, এবং তারপর `predict` ব্যবহার করে পূর্বাভাস ফলাফল নিতে পারি। নিচের গ্রাফ টি টেস্ট ডেটা এবং আনুমানিক বাঁক দেখাচ্ছে:
+```python
+X_range = np.linspace(X_test.min(), X_test.max(), 100).reshape(-1,1)
+y_range = pipeline.predict(X_range)
+
+plt.scatter(X_test, y_test)
+plt.plot(X_range, y_range)
+```
+
+এখানে গ্রাফটি আছে যা টেস্ট ডেটা এবং অনুমান কার্ভ দেখায়:
-পলিনোমিয়াল রিগ্রেশন ব্যবহার করে আমরা সামান্য কম MSE এবং বেশি নির্ধারণ সহগ পেতে পারি, কিন্তু তা খুব বেশি নয়। আমাদের অন্যান্য বৈশিষ্ট্যগুলোও বিবেচনায় নিতে হবে!
+পলিনোমিয়াল রিগ্রেশন ব্যবহার করে আমরা সামান্য কম RMSE এবং উচ্চতর নির্ধারণ সহগ পেতে পারি, কিন্তু তা খুব উল্লেখযোগ্য নয়। আমাদের অন্যান্য ফিচারও বিবেচনায় নিতে হবে!
-> আপনি দেখতে পাচ্ছেন যে বছরের আশেপাশে হ্যালোউইনের সময় পাম্পকিনের দাম ন্যূনতম হয়। আপনি কীভাবে এটি ব্যাখ্যা করবেন?
+> আপনি দেখতে পাচ্ছেন যে কুমড়োর দাম সর্বনিম্ন পর্যায়ে পাওয়া যায় প্রায় হ্যালোইন সময়। এটি আপনি কীভাবে ব্যাখ্যা করবেন?
-🎃 অভিনন্দন, আপনি এমন একটি মডেল তৈরি করলেন যা পাই পাম্পকিনের দাম পূর্বাভাসে সাহায্য করতে পারে। একই পদ্ধতি সব ধরনের পাম্পকিনের জন্য পুনরাবৃত্তি করতে পারেন, কিন্তু সেটা ক্লান্তিকর হবে। এখন শিখি কিভাবে আমাদের মডেলে পাম্পকিন জাত বিবেচনা করব!
+🎃 অভিনন্দন, আপনি একটি মডেল তৈরি করলেন যা পাই কুমড়োর দাম পূর্বাভাস দিতে সক্ষম। সম্ভবত আপনি একই পদ্ধতি সমস্ত কুমড়োর ধরনেও অনুকরণ করতে পারেন, কিন্তু সেটা বিরক্তিকর হবে। এখন শিখুন কিভাবে আমাদের মডেলে কুমড়োর বিভিন্ন জাতকে অন্তর্ভুক্ত করা যায়!
-## শ্রেণীবদ্ধ বৈশিষ্ট্য (Categorical Features)
+## Categorical Features
-এক আদর্শ বিশ্বের, আমরা একই মডেল ব্যবহার করে বিভিন্ন পাম্পকিন জাতের দাম পূর্বাভাস দিতে চাই। তবে, `Variety` কলামটি অন্য কলাম যেমন `Month` থেকে ভিন্ন, কারণ এতে অ-সংখ্যাসূচক মান থাকে। এই ধরনের কলামকে বলা হয় **শ্রেণীবদ্ধ (Categorical)**।
+আদর্শ জগতে, আমরা একই মডেল ব্যবহার করে বিভিন্ন কুমড়োর জাতের দাম পূর্বাভাস দিতে চাই। কিন্তু `Variety` কলাম অন্যান্য যেমন `Month` কলামের মতো নয়, কারণ এতে অ-সংখ্যাসূচক মান থাকে। এমন কলামগুলোকে **categorical** বলা হয়।
-[](https://youtu.be/DYGliioIAE0 "শিক্ষানবিশদের জন্য এমএল - শ্রেণীবদ্ধ বৈশিষ্ট্য ব্যবহার করে রিগ্রেশন পূর্বাভাস")
+[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
-> 🎥 উপরের ছবিটিতে ক্লিক করে শ্রেণীবদ্ধ বৈশিষ্ট্য ব্যবহারের সংক্ষিপ্ত ভিডিও দেখুন।
+> 🎥 উপরের ছবিতে ক্লিক করলে একটি সংক্ষিপ্ত ভিডিও দেখতে পারবেন যা ক্যাটেগরিক্যাল ফিচার ব্যবহারের সারাংশ কীভাবে করবেন তা দেখায়।
-এখানে আপনি দেখতে পাচ্ছেন গড় দাম কীভাবে পাম্পকিন জাত অনুযায়ী পরিবর্তিত হয়:
+এখানে আপনি দেখতে পারেন কিভাবে গড় দাম জাতের উপর নির্ভর করে:
-জাতকে বিবেচনায় নিতে, প্রথমে আমাদের এটিকে সংখ্যাসূচক রূপে রূপান্তর করতে হবে, বা **এনকোড** করতে হবে। আমরা এটি করার কয়েকটি পদ্ধতি আছে:
-
-* সাধারণ **সংখ্যাসূচক এনকোডিং** বিভিন্ন জাতের একটি টেবিল তৈরি করবে, এবং তারপর জাতের নামকে সেই টেবিলে ইন্ডেক্স দিয়ে প্রতিস্থাপন করবে। এটি রেখীয় রিগ্রেশনের জন্য সবচেয়ে ভালো ধারণা নয়, কারণ রেখীয় রিগ্রেশন ইন্ডেক্সের আসল সংখ্যাসূচক মান নিয়ে কাজ করে, এবং কিছু সহগ দিয়ে তা গুণ করে রেজাল্ট দেয়। আমাদের ক্ষেত্রে, ইন্ডেক্স নম্বর ও দাম এর মধ্যে সম্পর্ক স্পষ্টভাবে অ-রৈখিক, এমনকি আমরা নিশ্চিত করি যে ইন্ডেক্সসমূহ নির্দিষ্ট ক্রমে সাজানো।
+জাতকে বিবেচনায় নিতে, প্রথমে আমাদের এটি সংখ্যাসূচক রূপান্তর করতে হবে, বা **এনকোড** করতে হবে। আমরা এটি করার কয়েকটি উপায় আছে:
-* **ওয়ান-হট এনকোডিং** `Variety` কলামকে ৪টি ভিন্ন কলামে পরিবর্তন করবে, প্রতিটার জন্য আলাদা আলাদা। প্রতিটি কলামে থাকবে `1` যদি সংশ্লিষ্ট সারিটি ঐ জাতের হয়, অন্যথায় `0`। এর মানে, রিগ্রেশনে চারটি সহগ থাকবে, প্রতিটি পাম্পকিন জাতের জন্য একটি, যেগুলো ঐ বিশেষ জাতের জন্য "শুরু দাম" (অথবা "অতিরিক্ত দাম") নির্দেশ করে।
+* সহজ **সংখ্যাসূচক এনকোডিং** একটি টেবিল তৈরি করবে বিভিন্ন জাতের, তারপর জাতের নামটিকে ওই টেবিলের একটি সূচকে পরিবর্তন করবে। এটি রৈখিক রিগ্রেশনের জন্য ভাল ধারণা নয়, কারণ রৈখিক রিগ্রেশন সূচকের প্রকৃত সংখ্যাটি গ্রহণ করে এবং কিছু সহগ দ্বারা গুণ করে ফলাফল যোগ করে। আমাদের ক্ষেত্রে, সূচক সংখ্যা এবং দাম সম্পর্ক স্পষ্টভাবে অলিনিয়ার, যদিও আমরা নিশ্চিত করি সূচক গুলো কোনো বিশেষ ক্রম অনুসারে সাজানো হয়েছে।
+* **ওয়ান-হট এনকোডিং** `Variety` কলামকে ৪টি পৃথক কলাম দ্বারা প্রতিস্থাপন করবে, প্রতিটি একটি জাতের জন্য। প্রতিটি কলামে থাকবে `১` যদি সংশ্লিষ্ট সারিটি ঐ জাতের হয়, আর না হলে `০` থাকবে। অর্থাৎ রৈখিক রিগ্রেশনে চারটি সহগ থাকবে, প্রতিটি কুমড়োর জাতের জন্য, যা ঐ জাতের "শুরুর দাম" (বা বরং "অতিরিক্ত দাম") নির্ধারণ করবে।
-নীচের কোড দেখায় কিভাবে আমরা জাত কে ওয়ান-হট এনকোড করতে পারি:
+নিচের কোডটি দেখায় কিভাবে আমরা জাতকে ওয়ান-হট এনকোড করতে পারি:
```python
pd.get_dummies(new_pumpkins['Variety'])
@@ -304,14 +323,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
-ওয়ান-হট এনকোডেড জাত ব্যবহার করে লিনিয়ার রিগ্রেশন ট্রেন করতে, আমাদের শুধু সঠিকভাবে `X` এবং `y` ডেটা আরম্ভ করতে হবে:
+ওয়ান-হট এনকোডেড জাত ব্যবহার করে লিনিয়ার রিগ্রেশন ট্রেন করতে, আমাদের শুধু সঠিকভাবে `X` এবং `y` ডেটা ইনিশিয়ালাইজ করতে হবে:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
-বাকি কোড একই, যেটি আমরা পূর্বে লিনিয়ার রিগ্রেশন ট্রেনিংয়ের জন্য ব্যবহার করেছিলাম। আপনি যদি এটি চেষ্টা করেন, দেখতে পাবেন গড় বর্গমূল ত্রুটি প্রায় একই, কিন্তু নির্ধারণ সহগ অনেক বেশি (~৭৭%) পেয়েছি। আরও সঠিক পূর্বাভাসের জন্য আমরা আরো শ্রেণীবদ্ধ বৈশিষ্ট্য এবং সংখ্যাসূচক বৈশিষ্ট্য, যেমন `Month` বা `DayOfYear`, বিবেচনায় নিতে পারি। সব বৈশিষ্ট্যের এক বড় অ্যারে পেতে, আমরা `join` ব্যবহার করতে পারি:
+বাকি কোড একই যা আমরা আগে `LinearRegression` ট্রেন করতে ব্যবহার করেছি। আপনি চেষ্টা করলে দেখতে পাবেন গড় বর্গ ত্রুটি একইরকম, কিন্তু আমরা অনেক বেশি নির্ধারণ সহগ (~৭৭%) পাই। আরও সঠিক পূর্বাভাস পেতে, আমরা আরো ক্যাটেগরিক্যাল ফিচার এবং সংখ্যাসূচক ফিচার, যেমন `Month` বা `DayOfYear` বিবেচনায় নিতে পারি। সমস্ত ফিচার একত্রিত করতে, আমরা `join` ব্যবহার করতে পারি:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@@ -321,68 +340,68 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
-এখানে আমরা `City` এবং `Package` টাইপও বিবেচনায় নিয়েছি, যার ফলে MSE হয়েছে 2.84 (১০%) এবং নির্ধারণ 0.94!
+এখানে আমরা `City` এবং `Package` টাইপও বিবেচনায় নিচ্ছি, যা আমাদের RMSE ২.৮৪ (১০.৫%) এবং নির্ধারণ সহগ ০.৯৪ দেয়!
-## সব একসাথে সংযোজন
+## Putting it all together
-সেরা মডেল তৈরি করতে, আমরা একত্রিত (ওয়ান-হট এনকোডেড শ্রেণীবদ্ধ + সংখ্যাসূচক) ডেটা উপরের উদাহরণ থেকে ব্যবহার করে পলিনোমিয়াল রিগ্রেশন ব্যবহার করব। আপনার সুবিধার জন্য সম্পূর্ণ কোড দেওয়া হলো:
+সেরা মডেল তৈরি করতে, আমরা উপরের উদাহরণ থেকে একাধিক (ওয়ান-হট এনকোডেড ক্যাটেগরিক্যাল + সংখ্যাসূচক) ডেটা পলিনোমিয়াল রিগ্রেশনের সাথে ব্যবহার করতে পারি। নিচে আপনার সুবিধার জন্য সম্পূর্ণ কোড দেওয়া হলো:
```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)
# পাইপলাইন সেটআপ এবং প্রশিক্ষণ দিন
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
-# টেস্ট ডেটার জন্য ফলাফল পূর্বাভাস করুন
+# টেস্ট ডেটার জন্য ফলাফল অনুমান করুন
pred = pipeline.predict(X_test)
-# MSE এবং নির্ধারণ গণনা করুন
-mse = np.sqrt(mean_squared_error(y_test,pred))
-print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
+# RMSE এবং নির্ধারণ গণনা করুন
+rmse = mean_squared_error(y_test, pred, squared=False)
+print(f'RMSE: {rmse:3.3} ({rmse/pred.mean()*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
-এটি আমাদের প্রায় ৯৭% সেরা নির্ধারণ সহগ এবং MSE=2.23 (~৮% পূর্বাভাস ত্রুটি) দেবে।
+এটি আমাদের প্রায় ৯৭% নির্ধারণ সহগ এবং RMSE=২.২৩ (~৮% পূর্বাভাস ত্রুটি) দিবে।
-| মডেল | MSE | নির্ধারণ |
+| Model | RMSE | Determination |
|-------|-----|---------------|
-| `DayOfYear` লিনিয়ার | 2.77 (১৭.২%) | 0.07 |
-| `DayOfYear` পলিনোমিয়াল | 2.73 (১৭.০%) | 0.08 |
-| `Variety` লিনিয়ার | 5.24 (১৯.৭%) | 0.77 |
-| সব বৈশিষ্ট্য লিনিয়ার | 2.84 (১০.৫%) | 0.94 |
-| সব বৈশিষ্ট্য পলিনোমিয়াল | 2.23 (৮.২৫%) | 0.97 |
+| `DayOfYear` Linear | ২.৭৭ (১৭.২%) | ০.০৭ |
+| `DayOfYear` Polynomial | ২.৭৩ (১৭.০%) | ০.০৮ |
+| `Variety` Linear | ৫.২৪ (১৯.৭%) | ০.৭৭ |
+| All features Linear | ২.৮৪ (১০.৫%) | ০.৯৪ |
+| All features Polynomial | ২.২৩ (৮.২৫%) | ০.৯৭ |
-🏆 অসাধারণ! এক লেসনে চারটি রিগ্রেশন মডেল তৈরি করলেন এবং মডেলের গুণমান ৯৭% এ উন্নত করলেন। রিগ্রেশন এর শেষ অংশে আপনি ক্যাটেগরি নির্ধারণের জন্য লজিস্টিক রিগ্রেশন সম্পর্কে জানতে পারবেন।
+🏆 বেশ সুন্দর! আপনি একটি পাঠে চারটি রিগ্রেশন মডেল তৈরি করলেন এবং মডেল গুণমান উন্নত করে ৯৭% এ নিলেন। রিগ্রেশনের শেষ অংশে আপনি ক্যাটেগরি নির্ধারণের জন্য লজিস্টিক রিগ্রেশন সম্পর্কে শিখবেন।
---
-## 🚀চ্যালেঞ্জ
+## 🚀Challenge
-এই নোটবুকে বিভিন্ন ভেরিয়েবল পরীক্ষা করুন এবং দেখুন কিভাবে সহগ মডেলের সঠিকতার সাথে সম্পর্কিত।
+এই নোটবুকে বিভিন্ন ভেরিয়েবল পরীক্ষা করুন এবং দেখুন সম্পর্ক এবং মডেল সঠিকতার মধ্যে কেমন সংযোগ আছে।
-## [পোস্ট-লেকচার কুইজ](https://ff-quizzes.netlify.app/en/ml/)
+## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
-## রিভিউ ও স্ব-অধ্যয়ন
+## Review & Self Study
-এই লেসনে আমরা লিনিয়ার রিগ্রেশন শিখেছি। রিগ্রেশনের অন্য গুরুত্বপূর্ণ ধরন রয়েছে। স্টেপওয়াইজ, রিজ, লাসো এবং ইলাস্টিকনেট পদ্ধতি সম্পর্কে পড়ুন। ভালো কোর্স হলো [স্ট্যানফোর্ড স্ট্যাটিস্টিক্যাল লার্নিং কোর্স](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
+এই পাঠে আমরা লিনিয়ার রিগ্রেশন শিখলাম। রিগ্রেশনের অন্যান্য গুরুত্বপূর্ণ ধরণও আছে। স্টেপওয়াইজ, রিজ, লাসো এবং এলাস্টিকনেট প্রযুক্তিগুলো সম্পর্কে পড়ুন। আরও শেখার জন্য একটি ভালো কোর্স হল [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
-## অ্যাসাইনমেন্ট
+## Assignment
-[একটি মডেল তৈরি করুন](assignment.md)
+[Build a Model](assignment.md)
---
-**প্রত্যাহার সতর্কতা**:
-এই নথিটি এআই অনুবাদ সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। আমরা যথাসাধ্য সঠিকতার জন্য চেষ্টা করি, তবে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা ভুল থাকতে পারে। মূল নথিটি তার প্রাসঙ্গিক ভাষায় কর্তৃত্বস্বরূপ বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানুষের অনুবাদ সুপারিশ করা হয়। এই অনুবাদের ব্যবহারে যে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই।
+**বিকল্প বিবৃতি**:
+এই ডকুমেন্টটি AI অনুবাদ সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। আমরা সঠিকতার জন্য প্রচেষ্টা করি, তবে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা ভুল থাকা সম্ভব। মূল নথি তার নিজস্ব ভাষায় কর্তৃত্বপূর্ণ উৎস হিসেবে বিবেচিত হওয়া উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদের পরামর্শ দেওয়া হয়। এই অনুবাদের ব্যবহারে কোনও ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়বদ্ধ নই।
\ No newline at end of file
diff --git a/translations/bn/2-Regression/3-Linear/solution/notebook.ipynb b/translations/bn/2-Regression/3-Linear/solution/notebook.ipynb
index 2db62bf3b..9bbf6e1f3 100644
--- a/translations/bn/2-Regression/3-Linear/solution/notebook.ipynb
+++ b/translations/bn/2-Regression/3-Linear/solution/notebook.ipynb
@@ -4,14 +4,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## কুমড়ার মূল্য নির্ধারণের জন্য লিনিয়ার এবং পলিনোমিয়াল রিগ্রেশন - পাঠ ৩\n",
+ "## কুমড়োর মূল্য নির্ধারণের জন্য লিনিয়ার এবং পলিনোমিয়াল রিগ্রেশন - পাঠ ৩\n",
"\n",
- "প্রয়োজনীয় লাইব্রেরি এবং ডেটাসেট লোড করুন। ডেটাকে একটি ডেটাফ্রেমে রূপান্তর করুন যা ডেটার একটি অংশ ধারণ করে:\n",
+ "প্রয়োজনীয় লাইব্রেরি এবং ডেটাসেট লোড করুন। ডেটাকে একটি ডেটাফ্রেমে রূপান্তর করুন যা ডেটার একটি উপসেট ধারণ করে:\n",
"\n",
- "- শুধুমাত্র সেই কুমড়াগুলো নিন যেগুলো বাসেল অনুযায়ী মূল্য নির্ধারণ করা হয়েছে\n",
- "- তারিখকে মাসে রূপান্তর করুন\n",
- "- উচ্চ এবং নিম্ন মূল্যের গড় হিসাব করে মূল্য নির্ধারণ করুন\n",
- "- মূল্যকে বাসেল পরিমাণ অনুযায়ী রূপান্তর করুন\n"
+ "- শুধুমাত্র সেই কুমড়োগুলো নিন যেগুলোর মূল্য বাসেল ভিত্তিক\n",
+ "- তারিখকে একটি মাসে রূপান্তর করুন\n",
+ "- উচ্চ এবং নিম্ন দামের গড় হিসেবে মূল্য গণনা করুন\n",
+ "- বাসেল পরিমাণ অনুযায়ী মূল্য প্রয়োগ করুন\n"
]
},
{
@@ -377,7 +377,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "একটি স্ক্যাটারপ্লট আমাদের মনে করিয়ে দেয় যে আমাদের কাছে শুধুমাত্র আগস্ট থেকে ডিসেম্বর পর্যন্ত মাসের ডেটা রয়েছে। সম্ভবত আমাদের আরও ডেটা প্রয়োজন যাতে আমরা একটি সরলরৈখিক পদ্ধতিতে সিদ্ধান্ত নিতে পারি।\n"
+ "একটি স্ক্যাটারপ্লট আমাদের মনে করিয়ে দেয় যে আমাদের কাছে শুধু আগস্ট থেকে ডিসেম্বর পর্যন্ত মাসের ডেটা রয়েছে। আমরা সম্ভবত লিনিয়ার ফ্যাশনে উপসংহার টানার জন্য আরও ডেটার প্রয়োজন।\n"
]
},
{
@@ -448,7 +448,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "চলুন দেখি কোনো সম্পর্ক আছে কিনা:\n"
+ "চলুন দেখি কোনো সম্পর্ক আছে কি না:\n"
]
},
{
@@ -474,7 +474,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "মনে হচ্ছে সম্পর্কটি বেশ ছোট, তবে আরও গুরুত্বপূর্ণ কিছু সম্পর্ক রয়েছে - কারণ উপরের প্লটে মূল্য পয়েন্টগুলি কয়েকটি স্বতন্ত্র ক্লাস্টারে বিভক্ত। চলুন একটি প্লট তৈরি করি যা বিভিন্ন কুমড়ার প্রজাতি দেখাবে:\n"
+ "দেখা যাচ্ছে সম্পর্ক খুব কম, তবে আরও কিছু গুরুত্বপূর্ণ সম্পর্ক আছে - কারণ উপরের প্লটে দাম পয়েন্টগুলিতে বেশ কয়েকটি পৃথক ক্লাস্টার রয়েছে। চলুন একটি প্লট তৈরি করি যা বিভিন্ন কুমড়ো শ্রেণী দেখাবে:\n"
]
},
{
@@ -537,7 +537,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "বর্তমানে, চলুন শুধুমাত্র একটি বর্ণের উপর মনোযোগ কেন্দ্রীভূত করি - **পাই টাইপ**।\n"
+ ]
},
{
"cell_type": "code",
@@ -586,7 +588,7 @@
"source": [
"### লিনিয়ার রিগ্রেশন\n",
"\n",
- "আমরা স্কিকিট লার্ন ব্যবহার করে লিনিয়ার রিগ্রেশন মডেল প্রশিক্ষণ করব:\n"
+ "আমরা লিনিয়ার রিগ্রেশন মডেল প্রশিক্ষণের জন্য Scikit Learn ব্যবহার করব:\n"
]
},
{
@@ -664,7 +666,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "রেখার ঢাল লিনিয়ার রিগ্রেশন সহগ থেকে নির্ধারণ করা যেতে পারে:\n"
+ "রৈখিক রিগ্রেশন সহগ থেকে রেখার ঢাল নির্ধারণ করা যায়:\n"
]
},
{
@@ -691,7 +693,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "আমরা প্রশিক্ষিত মডেলটি ব্যবহার করে মূল্য পূর্বাভাস দিতে পারি:\n"
+ "আমরা প্রশিক্ষিত মডেলটি ব্যবহার করে দাম অনুমান করতে পারি:\n"
]
},
{
@@ -722,9 +724,9 @@
"source": [
"### পলিনোমিয়াল রিগ্রেশন\n",
"\n",
- "কখনও কখনও ফিচার এবং ফলাফলের মধ্যে সম্পর্ক স্বাভাবিকভাবেই অ-রৈখিক হয়। উদাহরণস্বরূপ, কুমড়ার দাম শীতকালে (মাস=১,২) বেশি হতে পারে, তারপর গ্রীষ্মে (মাস=৫-৭) কমে যেতে পারে, এবং পরে আবার বাড়তে পারে। লিনিয়ার রিগ্রেশন এই সম্পর্কটি সঠিকভাবে খুঁজে পেতে অক্ষম।\n",
+ "কখনও কখনও বৈশিষ্ট্যগুলির সাথে ফলাফলের সম্পর্ক স্বভাবতই অ-রৈখিক হয়। উদাহরণস্বরূপ, শরত্কালের (মাস=১,২) মধ্যে কুমড়োর দাম বেশি হতে পারে, তারপর গ্রীষ্মকালে (মাস=৫-৭) কমে যেতে পারে, এবং তারপর আবার বাড়তে পারে। রৈখিক রিগ্রেশন এই সম্পর্কটি সঠিকভাবে খুঁজে পায় না।\n",
"\n",
- "এই ক্ষেত্রে, আমরা অতিরিক্ত ফিচার যোগ করার কথা বিবেচনা করতে পারি। সহজ উপায় হল ইনপুট ফিচার থেকে পলিনোমিয়াল ব্যবহার করা, যা **পলিনোমিয়াল রিগ্রেশন** তৈরি করবে। সাইকিট লার্ন-এ, আমরা পাইপলাইনের মাধ্যমে স্বয়ংক্রিয়ভাবে পলিনোমিয়াল ফিচার প্রি-কম্পিউট করতে পারি:\n"
+ "এই ক্ষেত্রে, আমরা অতিরিক্ত বৈশিষ্ট্য যোগ করার কথা ভাবতে পারি। একটি সহজ উপায় হল ইনপুট বৈশিষ্ট্য থেকে পলিনোমিয়াল ব্যবহার করা, যা **পলিনোমিয়াল রিগ্রেশন** ফলাফল করবে। Scikit Learn-এ, আমরা পাইপলাইন ব্যবহার করে স্বয়ংক্রিয়ভাবে পলিনোমিয়াল বৈশিষ্ট্যগুলি পূর্ব গণনা করতে পারি: \n"
]
},
{
@@ -779,22 +781,25 @@
"score = pipeline.score(X_train,y_train)\n",
"print('Model determination: ', score)\n",
"\n",
- "plt.scatter(X_test,y_test)\n",
- "plt.plot(sorted(X_test),pipeline.predict(sorted(X_test)))"
+ "X_range = np.linspace(X_test.min(), X_test.max(), 100).reshape(-1,1)\n",
+ "y_range = pipeline.predict(X_range)\n",
+ "\n",
+ "plt.scatter(X_test, y_test)\n",
+ "plt.plot(X_range, y_range)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "### এনকোডিং প্রকারভেদ\n",
+ "### এনকোডিং বৈচিত্র্য\n",
"\n",
- "আদর্শ পরিস্থিতিতে, আমরা চাই একই মডেল ব্যবহার করে বিভিন্ন কুমড়ার প্রকারভেদের দাম পূর্বাভাস দিতে সক্ষম হতে। প্রকারভেদকে বিবেচনায় আনতে, প্রথমে আমাদের এটিকে সংখ্যায় রূপান্তর করতে হবে, বা **এনকোড** করতে হবে। এটি করার কয়েকটি পদ্ধতি রয়েছে:\n",
+ "আদর্শ বিশ্বের ক্ষেত্রে, আমরা একই মডেল ব্যবহার করে বিভিন্ন কুমড়ো বৈচিত্র্যের দাম পূর্বাভাস দিতে চাই। বৈচিত্র্যকে বিবেচনায় নিতে, আমাদের প্রথমে এটি সংখ্যাসূচক রূপে রূপান্তর করতে হবে, বা **এনকোড** করতে হবে। আমরা এটি করার কয়েকটি উপায় আছে:\n",
"\n",
- "* সাধারণ সংখ্যাগত এনকোডিং, যা বিভিন্ন প্রকারভেদের একটি টেবিল তৈরি করবে এবং তারপর সেই টেবিলের সূচকের মাধ্যমে প্রকারভেদের নাম প্রতিস্থাপন করবে। এটি লিনিয়ার রিগ্রেশনের জন্য সেরা পদ্ধতি নয়, কারণ লিনিয়ার রিগ্রেশন সূচকের সংখ্যাগত মানকে বিবেচনায় নেয়, এবং সংখ্যাগত মান সম্ভবত দামের সাথে সংখ্যাগতভাবে সম্পর্কিত নয়।\n",
- "* ওয়ান-হট এনকোডিং, যা `Variety` কলামকে ৪টি ভিন্ন কলামে প্রতিস্থাপন করবে, প্রতিটি প্রকারভেদের জন্য একটি কলাম থাকবে, যেখানে সংশ্লিষ্ট সারি যদি নির্দিষ্ট প্রকারভেদের হয়, তাহলে ১ থাকবে, অন্যথায় ০ থাকবে।\n",
+ "* সিম্পল সংখ্যাসূচক এনকোডিং যা বিভিন্ন বৈচিত্র্যের একটি টেবিল তৈরি করবে, এবং তারপর টেবিলের একটি সূচকে বৈচিত্র্যের নাম প্রতিস্থাপন করবে। এটি লিনিয়ার রিগ্রেশনের জন্য সেরা ধারণা নয়, কারণ লিনিয়ার রিগ্রেশন সূচকের সংখ্যাসূচক মানকে বিবেচনায় নেয়, এবং সংখ্যাসূচক মান দাম সাথে সংখ্যাত্মকভাবে সম্পর্কযুক্ত নাও থাকতে পারে।\n",
+ "* ওয়ান-হট এনকোডিং, যা `Variety` কলামটি ৪টি আলাদা কলামে প্রতিস্থাপন করবে, প্রতিটি বৈচিত্র্যের জন্য একটি, যা থাকবে ১ যদি সংশ্লিষ্ট সারিটি সেই বৈচিত্র্যের হয়, অন্যথায় ০।\n",
"\n",
- "নিচের কোডটি দেখায় কীভাবে আমরা একটি প্রকারভেদকে ওয়ান-হট এনকোড করতে পারি:\n"
+ "নিচের কোডটি দেখায় আমরা কীভাবে একটি বৈচিত্র্য ওয়ান-হট এনকোড করতে পারি:\n"
]
},
{
@@ -942,9 +947,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### বিভিন্নতার উপর লিনিয়ার রিগ্রেশন\n",
+ "### ভেরাইটি উপর লিনিয়ার রিগ্রেশন\n",
"\n",
- "এখন আমরা উপরের একই কোড ব্যবহার করব, তবে `DayOfYear` এর পরিবর্তে ইনপুট হিসেবে আমাদের এক-হট-এনকোড করা বিভিন্নতা ব্যবহার করব:\n"
+ "আমরা এখন উপরের একই কোড ব্যবহার করব, তবে `DayOfYear` এর পরিবর্তে আমাদের ওয়ান-হট-এনকোডেড ভেরাইটি ইনপুট হিসেবে ব্যবহার করব:\n"
]
},
{
@@ -992,7 +997,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "আমরা একই পদ্ধতিতে অন্যান্য বৈশিষ্ট্য ব্যবহার করার চেষ্টা করতে পারি এবং সেগুলিকে সংখ্যাগত বৈশিষ্ট্যের সাথে যেমন `Month` বা `DayOfYear` এর সাথে সংযুক্ত করতে পারি:\n"
+ "আমরা একইভাবে অন্যান্য বৈশিষ্ট্য ব্যবহার করার চেষ্টা করতে পারি, এবং সেগুলোকে সংখ্যাসূচক বৈশিষ্ট্যগুলোর সাথে একত্রিত করতে পারি, যেমন `Month` বা `DayOfYear`:\n"
]
},
{
@@ -1023,9 +1028,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### পলিনোমিয়াল রিগ্রেশন\n",
+ "### পলিনোমিয়াল রিগ্রেশন\n",
"\n",
- "পলিনোমিয়াল রিগ্রেশন এক-হট-এনকোড করা ক্যাটেগরিকাল বৈশিষ্ট্যগুলোর সাথেও ব্যবহার করা যেতে পারে। পলিনোমিয়াল রিগ্রেশন প্রশিক্ষণের কোড মূলত উপরে দেখা কোডের মতোই হবে।\n"
+ "এক-হট এনকোড করা ক্যাটেগরিক্যাল বৈশিষ্ট্যগুলির সাথেও পলিনোমিয়াল রিগ্রেশন ব্যবহার করা যেতে পারে। পলিনোমিয়াল রিগ্রেশন প্রশিক্ষণের কোডটি মূলত একই হবে যা আমরা উপরে দেখেছি।\n"
]
},
{
@@ -1072,7 +1077,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "\n---\n\n**অস্বীকৃতি**: \nএই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।\n"
+ "---\n\n\n**অস্বীকৃতি**:\nএই নথিটি AI অনুবাদ সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। যদিও আমরা সঠিকতার জন্য চেষ্টা করি, দয়া করে সচেতন থাকুন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা ভুল থাকতে পারে। মূল নথিটি এর স্থানীয় ভাষায়ই কর্তৃত্বপূর্ণ উৎস হিসাবে বিবেচিত হওয়া উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদের পরামর্শ দেওয়া হয়। এই অনুবাদের ব্যবহারে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই।\n\n"
]
}
],
@@ -1102,13 +1107,7 @@
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
- "orig_nbformat": 2,
- "coopTranslator": {
- "original_hash": "d77bd89ae7e79780c68c58bab91f13f8",
- "translation_date": "2025-08-29T22:46:07+00:00",
- "source_file": "2-Regression/3-Linear/solution/notebook.ipynb",
- "language_code": "bn"
- }
+ "orig_nbformat": 2
},
"nbformat": 4,
"nbformat_minor": 2
diff --git a/translations/mr/.co-op-translator.json b/translations/mr/.co-op-translator.json
index 8accf3036..33249b612 100644
--- a/translations/mr/.co-op-translator.json
+++ b/translations/mr/.co-op-translator.json
@@ -36,8 +36,8 @@
"language_code": "mr"
},
"1-Introduction/4-techniques-of-ML/README.md": {
- "original_hash": "9d91f3af3758fdd4569fb410575995ef",
- "translation_date": "2025-09-06T06:13:42+00:00",
+ "original_hash": "84b1715a6be62ef1697351dcc5d7b567",
+ "translation_date": "2026-04-26T19:58:51+00:00",
"source_file": "1-Introduction/4-techniques-of-ML/README.md",
"language_code": "mr"
},
@@ -90,8 +90,8 @@
"language_code": "mr"
},
"2-Regression/3-Linear/README.md": {
- "original_hash": "26c53a922f1f1e8542b0ea41ff52221a",
- "translation_date": "2026-04-20T16:56:22+00:00",
+ "original_hash": "8b776e731c35b171d316d01d0e7b1369",
+ "translation_date": "2026-04-26T19:58:22+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "mr"
},
@@ -107,6 +107,12 @@
"source_file": "2-Regression/3-Linear/solution/Julia/README.md",
"language_code": "mr"
},
+ "2-Regression/3-Linear/solution/notebook.ipynb": {
+ "original_hash": "6781223ffbe8cfdaa38d0200f08e1288",
+ "translation_date": "2026-04-26T19:55:14+00:00",
+ "source_file": "2-Regression/3-Linear/solution/notebook.ipynb",
+ "language_code": "mr"
+ },
"2-Regression/4-Logistic/README.md": {
"original_hash": "abf86d845c84330bce205a46b382ec88",
"translation_date": "2025-09-06T06:05:45+00:00",
diff --git a/translations/mr/1-Introduction/4-techniques-of-ML/README.md b/translations/mr/1-Introduction/4-techniques-of-ML/README.md
index edbf9e0d2..ae45e6ea5 100644
--- a/translations/mr/1-Introduction/4-techniques-of-ML/README.md
+++ b/translations/mr/1-Introduction/4-techniques-of-ML/README.md
@@ -1,117 +1,117 @@
-# मशीन लर्निंगच्या तंत्रज्ञान
+# मशीन लर्निंगच्या तंत्रांचा परिचय
-मशीन लर्निंग मॉडेल्स तयार करणे, वापरणे आणि त्यांचे व्यवस्थापन करणे हा इतर विकास प्रक्रियांपेक्षा खूप वेगळा आहे. या धड्यात आपण या प्रक्रियेचा उलगडा करू आणि तुम्हाला आवश्यक असलेल्या मुख्य तंत्रज्ञानांची ओळख करून देऊ. तुम्ही:
+मशीन लर्निंग मॉडेल्स तयार करणे, वापरणे, आणि त्यांच्याद्वारे वापरल्या जाणाऱ्या डेटाचे व्यवस्थापन करणे हे अनेक इतर विकास प्रक्रियांपेक्षा खूप वेगळे आहे. या धड्यात, आपण या प्रक्रियेला समजून घेऊ आणि त्यातील मुख्य तंत्रे ओळखून घेऊ. आपणः
-- मशीन लर्निंगच्या प्रक्रियेची उच्चस्तरीय समज प्राप्त कराल.
-- 'मॉडेल्स', 'भाकीत', आणि 'ट्रेनिंग डेटा' यासारख्या मूलभूत संकल्पनांचा अभ्यास कराल.
+- मशीन लर्निंगच्या प्रक्रिया उच्च पातळीवर समजून घेणार.
+- 'मॉडेल्स', 'भविष्यातील भाकिते', आणि 'प्रशिक्षण डेटा' यांसारख्या मूलभूत संकल्पना पाहणार.
-## [पूर्व-व्याख्यान प्रश्नमंजुषा](https://ff-quizzes.netlify.app/en/ml/)
+## [पूर्व लेक्चर क्विझ](https://ff-quizzes.netlify.app/en/ml/)
-[](https://youtu.be/4NGM0U2ZSHU "मशीन लर्निंगसाठी सुरुवात - मशीन लर्निंगच्या तंत्रज्ञान")
+[](https://youtu.be/4NGM0U2ZSHU "ML for beginners - Techniques of Machine Learning")
-> 🎥 वरील प्रतिमेवर क्लिक करा आणि या धड्याचा व्हिडिओ पहा.
+> 🎥 वर दिलेल्या प्रतिमेवर क्लिक करा, ज्यात या धड्याचे थोडक्यात स्पष्टीकरण आहे.
## परिचय
-उच्चस्तरीय दृष्टिकोनातून, मशीन लर्निंग (ML) प्रक्रिया तयार करण्याची कला अनेक टप्प्यांमध्ये विभागलेली आहे:
+उच्च पातळीवर, मशीन लर्निंग (एमएल) प्रक्रिया तयार करण्याचे काम अनेक टप्प्यांमध्ये विभागलेले आहे:
-1. **प्रश्न ठरवा**. बहुतेक ML प्रक्रिया अशा प्रश्नाने सुरू होतात ज्याचे उत्तर साध्या अटींवर आधारित प्रोग्राम किंवा नियम-आधारित इंजिनद्वारे देता येत नाही. हे प्रश्न सहसा डेटावर आधारित भाकीतांभोवती फिरतात.
-2. **डेटा गोळा करा आणि तयार करा**. तुमच्या प्रश्नाचे उत्तर देण्यासाठी तुम्हाला डेटा आवश्यक आहे. तुमच्या डेटाची गुणवत्ता आणि कधी कधी प्रमाण ठरवते की तुम्ही तुमच्या सुरुवातीच्या प्रश्नाचे उत्तर किती चांगल्या प्रकारे देऊ शकता. डेटाचे व्हिज्युअलायझेशन या टप्प्याचा महत्त्वाचा भाग आहे. या टप्प्यात डेटा ट्रेनिंग आणि टेस्टिंग गटांमध्ये विभागणे समाविष्ट आहे जेणेकरून मॉडेल तयार करता येईल.
-3. **ट्रेनिंग पद्धत निवडा**. तुमच्या प्रश्नावर आणि डेटाच्या स्वरूपावर आधारित, तुम्हाला तुमच्या डेटाचे सर्वोत्तम प्रतिबिंबित करण्यासाठी आणि त्यावर अचूक भाकीत करण्यासाठी मॉडेल कसे ट्रेन करायचे ते निवडावे लागेल. ही तुमच्या ML प्रक्रियेची ती भाग आहे ज्यासाठी विशिष्ट कौशल्य आवश्यक आहे आणि अनेकदा बरीच प्रयोगशीलता लागते.
-4. **मॉडेल ट्रेन करा**. तुमच्या ट्रेनिंग डेटाचा वापर करून, तुम्ही विविध अल्गोरिदम वापरून मॉडेल ट्रेन कराल जे डेटामधील नमुने ओळखतील. मॉडेल अंतर्गत वजनांचा उपयोग करू शकते जे डेटाच्या विशिष्ट भागांना इतरांपेक्षा प्राधान्य देण्यासाठी समायोजित केले जाऊ शकते जेणेकरून चांगले मॉडेल तयार होईल.
-5. **मॉडेलचे मूल्यांकन करा**. तुमच्या गोळा केलेल्या सेटमधून कधीही न पाहिलेल्या डेटाचा (तुमचा टेस्टिंग डेटा) वापर करून तुम्ही मॉडेल कसे कार्य करत आहे ते पाहता.
-6. **पॅरामीटर ट्यूनिंग**. तुमच्या मॉडेलच्या कार्यक्षमतेच्या आधारे, तुम्ही वेगवेगळ्या पॅरामीटर्स किंवा व्हेरिएबल्स वापरून प्रक्रिया पुन्हा करू शकता जे मॉडेल ट्रेन करण्यासाठी वापरल्या जाणाऱ्या अल्गोरिदमच्या वर्तनावर नियंत्रण ठेवतात.
-7. **भाकीत करा**. नवीन इनपुट्स वापरून तुमच्या मॉडेलची अचूकता तपासा.
+1. **प्रश्न ठरवा.** बहुतेक एमएल प्रक्रिया अशा प्रश्नाशी सुरु होतात ज्याचे उत्तर सोप्या शर्तींवर आधारित प्रोग्राम किंवा नियमांमुळे दिले जाऊ शकत नाही. हे प्रश्न बहुधा डेटाच्या संकलनावर आधारित भाकितांभोवती फिरतात.
+2. **डेटा गोळा करा व तयार करा.** आपला प्रश्न उत्तर देण्यासाठी तुम्हाला डेटा आवश्यक आहे. डेटाची गुणवत्ता आणि कधी कधी त्याची प्रमाणही, तुमचा मूळ प्रश्न किती चांगल्या प्रकारे उत्तर देता येईल हे ठरवते. डेटा दृश्यरूपात सादर करणे या टप्प्याचा महत्त्वाचा भाग आहे. या टप्प्यात डेटा प्रशिक्षण आणि चाचणी गटांमध्ये विभाजित करण्याचा समावेश देखील आहे, ज्याचा वापर मॉडेल तयार करण्यासाठी होतो.
+3. **प्रशिक्षण पद्धत निवडा.** तुमच्या प्रश्नावर आणि डेटाच्या स्वरूपावर अवलंबून, तुम्हाला एक असा मार्ग निवडावा लागेल ज्याद्वारे मॉडेलला प्रशिक्षित करून डेटा प्रतिबिंबित केला जाईल आणि त्यावर अचूक भाकिते केली जातील. हे तुमच्या एमएल प्रक्रियेचा तो भाग आहे ज्यासाठी विशेष कौशल्याची आवश्यकता असते आणि अनेकदा मोठ्या प्रमाणात प्रयोग होते.
+4. **मॉडेल प्रशिक्षित करा.** आपल्या प्रशिक्षण डेटाचा वापर करून, विविध अल्गोरिदमचा वापर करून मॉडेलला डेटामधील पॅटर्न ओळखण्यासाठी प्रशिक्षित करता येते. मॉडेलमध्ये अंतर्गत वजनांची (weights) समाविष्टता असू शकते, ज्यामुळे काही भाग डेटा अधिक महत्त्वाचा ठरवू शकतात, त्यामुळे मॉडेल सुधारता येते.
+5. **मॉडेलचे मूल्यमापन करा.** तुमच्या संग्रहित डेटामधून कधीही न पाहिलेला डेटा (तुमचा चाचणी डेटासेट) वापरून, मॉडेल कसे काम करत आहे ते तपासता येते.
+6. **परिमाण समायोजन (Parameter tuning).** मॉडेलच्या कामगिरीवर आधारित, तुम्ही वेगवेगळे परिमाण किंवा चल (variables) बदलून पुन्हा प्रयत्न करू शकता, ज्यामुळे अल्गोरिदमच्या वर्तनावर नियंत्रण ठेवता येतो.
+7. **भाकित करा.** नवीन इनपुट वापरणून तुमच्या मॉडेलच्या अचूकतेची चाचणी घेता येते.
## कोणता प्रश्न विचारायचा
-कॉम्प्युटर्स डेटामधील लपलेले नमुने शोधण्यात विशेषतः कुशल असतात. ही उपयोगिता संशोधकांसाठी खूप उपयुक्त आहे ज्यांना एखाद्या डोमेनबद्दल प्रश्न असतो ज्याचे उत्तर अटींवर आधारित नियम इंजिन तयार करून सहज देता येत नाही. उदाहरणार्थ, एखाद्या अॅक्चुअरियल कार्यासाठी, डेटा सायंटिस्ट स्मोकर्स विरुद्ध नॉन-स्मोकर्सच्या मृत्यू दरांभोवती हस्तनिर्मित नियम तयार करू शकतो.
+संगणक डेटामधील लपलेले पॅटर्न शोधण्यात विशेष प्रवीण आहेत. विशेषतः संशोधकांसाठी, ज्यांना दिलेल्या क्षेत्राबद्दल प्रश्न असतात आणि ज्याचे उत्तर सोप्या नियमांद्वारे देता येत नाही, हे फार उपयुक्त ठरू शकते. उदाहरणार्थ, एक डेटा सायंटिस्ट धूम्रपान करणाऱ्यांचा आणि न धूम्रपान करणाऱ्यांचा मृत्यू दर यावर हस्तकलेने तयार केलेले नियम तयार करू शकतो.
-तथापि, जेव्हा अनेक इतर व्हेरिएबल्स समीकरणात आणले जातात, तेव्हा ML मॉडेल भूतकाळातील आरोग्य इतिहासाच्या आधारे भविष्यातील मृत्यू दरांचे भाकीत करण्यासाठी अधिक कार्यक्षम ठरू शकते. एक आनंददायक उदाहरण म्हणजे एप्रिल महिन्यासाठी एखाद्या ठिकाणासाठी हवामानाचा अंदाज लावणे ज्यामध्ये अक्षांश, रेखांश, हवामान बदल, समुद्राजवळील अंतर, जेट प्रवाहाचे नमुने आणि बरेच काही समाविष्ट आहे.
+परंतु जेव्हा अनेक इतर चल या समीकरणात येतात, तेव्हा भूतकाळातील आरोग्य इतिहासावर आधारित भविष्यातील मृत्यू दर भाकीत करण्यासाठी एमएल मॉडेल अधिक कार्यक्षम ठरू शकते. आणखी आनंददायक उदाहरण म्हणजे एखाद्या ठिकाणच्या एप्रिल महिन्यासाठी हवामान भाकिते करणे, ज्यासाठी अक्षांश, रेखांश, हवामान बदल, समुद्राच्या जवळीक, जेट स्ट्रीमचे पॅटर्न आणि इतर डेटा एंट्रीज वापरल्या जातात.
-✅ हवामान मॉडेल्सवर आधारित [ही स्लाइड डेक](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) हवामान विश्लेषणात ML वापरण्याचा ऐतिहासिक दृष्टिकोन देते.
+✅ हा [स्लाइड डेक](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) हवामान मॉडेल्सवर मशीन लर्निंगचा ऐतिहासिक दृष्टिकोन देतो.
-## मॉडेल तयार करण्यापूर्वीचे कार्य
+## आधीची तयारी
-तुमचे मॉडेल तयार करण्यास सुरुवात करण्यापूर्वी, तुम्हाला काही कार्ये पूर्ण करणे आवश्यक आहे. तुमचा प्रश्न तपासण्यासाठी आणि मॉडेलच्या भाकीतांवर आधारित गृहीतक तयार करण्यासाठी, तुम्हाला काही घटक ओळखणे आणि कॉन्फिगर करणे आवश्यक आहे.
+तुमचा मॉडेल तयार करण्यापूर्वी, काही कामे निपटवणे आवश्यक आहे. तुमच्या प्रश्नाची चाचणी करण्यासाठी आणि मॉडेलच्या भाकितांवर आधारित गृहीत धडा तयार करण्यासाठी काही घटक ओळखणे आणि कॉन्फिगर करणे आवश्यक आहे.
### डेटा
-तुमच्या प्रश्नाचे कोणत्याही प्रकारच्या खात्रीसह उत्तर देण्यासाठी, तुम्हाला योग्य प्रकारचा डेटा मोठ्या प्रमाणात आवश्यक आहे. या टप्प्यावर तुम्हाला दोन गोष्टी कराव्या लागतील:
+तुमचा प्रश्न नक्की उत्तर देण्यासाठी, तुमच्याकडे योग्य प्रकारचा पुरेसा डेटा असणे आवश्यक आहे. येथे दोन गोष्टी कराव्या लागतात:
-- **डेटा गोळा करा**. डेटाच्या विश्लेषणातील निष्पक्षतेवर आधारित मागील धड्याचा विचार करून, तुमचा डेटा काळजीपूर्वक गोळा करा. या डेटाचे स्रोत, त्यामध्ये असलेले कोणतेही अंतर्निहित पूर्वग्रह आणि त्याचा उगम दस्तऐवजीकरण करा.
-- **डेटा तयार करा**. डेटा तयार करण्याच्या प्रक्रियेत अनेक पायऱ्या असतात. जर डेटा विविध स्रोतांमधून आला असेल तर तुम्हाला डेटा एकत्र करावा लागेल आणि सामान्य करावा लागेल. तुम्ही स्ट्रिंग्सला नंबरमध्ये रूपांतरित करणे (जसे आपण [क्लस्टरिंग](../../5-Clustering/1-Visualize/README.md) मध्ये करतो) यासारख्या विविध पद्धतींनी डेटाची गुणवत्ता आणि प्रमाण सुधारू शकता. तुम्ही मूळ डेटावर आधारित नवीन डेटा तयार करू शकता (जसे आपण [वर्गीकरण](../../4-Classification/1-Introduction/README.md) मध्ये करतो). तुम्ही डेटा स्वच्छ आणि संपादित करू शकता (जसे आपण [वेब अॅप](../../3-Web-App/README.md) धड्याच्या आधी करू). शेवटी, तुमच्या ट्रेनिंग तंत्रांवर अवलंबून, तुम्हाला ते रँडमाइज आणि शफल करावे लागेल.
+- **डेटा गोळा करा.** आधीच्या धड्यातील डेटा विश्लेषणातील नीयमधर्मांवर लक्ष ठेवून, काळजीपूर्वक डेटा संकलित करा. डेटा कसा गोळा केला जातो, त्यात कोणतेही पूर्वग्रह आहेत का याचा विचार करा आणि त्याचा स्रोत नोंदवा.
+- **डेटा तयार करा.** डेटा तयार करण्याचा काही टप्पे आहेत. वेगवेगळ्या स्रोतांमधून आल्यानंतर डेटा संयोजित करणे आणि सामान्य स्वरूपात आणणे आवश्यक असू शकते. डेटा गुणवत्ता आणि प्रमाण सुधारण्यासाठी विविध पद्धती वापरू शकता, जसे स्ट्रिंग्सना संख्या मध्ये रूपांतर करणे (आपण [क्लस्टरिंग](../../5-Clustering/1-Visualize/README.md) मध्ये करत आहोत). मूळ डेटावर आधारित नवीन डेटा तयार करण्याची गरज भासू शकते (आपण [वर्गीकरणात](../../4-Classification/1-Introduction/README.md) तसे करतो). डेटा स्वच्छ आणि संपादितही करत असाल (आम्ही [वेब अॅप](../../3-Web-App/README.md) धड्यापूर्वी तसे करू). आणि शेवटी, ट्रेनिंग तंत्रानुसार डेटा रँडमाइझ (randomize) आणि शफल (shuffle) करणे आवश्यक आहे.
-✅ डेटा गोळा केल्यानंतर आणि प्रक्रिया केल्यानंतर, त्याचा आकार तुमच्या इच्छित प्रश्नाला उत्तर देण्यासाठी योग्य आहे का ते तपासा. असे होऊ शकते की डेटा तुमच्या दिलेल्या कार्यात चांगले कार्य करणार नाही, जसे आपण [क्लस्टरिंग](../../5-Clustering/1-Visualize/README.md) धड्यांमध्ये शोधतो!
+✅ डेटा संकलित आणि प्रक्रिया केल्यानंतर, काही वेळ घेऊन पाहा की डेटाचा प्रकार आणि आकार तुमच्या प्रश्नाला उत्तर देण्यास योग्य आहे का. कधी कधी डेटा तुमच्या विशिष्ट कामगिरीसाठी योग्य नसू शकतो, जसं आपण [क्लस्टरिंग](../../5-Clustering/1-Visualize/README.md) धड्यांमध्ये पाहतो!
-### वैशिष्ट्ये आणि लक्ष्य
+### वैशिष्ट्ये (Features) आणि लक्ष्य (Target)
-[वैशिष्ट्य](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) म्हणजे तुमच्या डेटाचे मोजण्यायोग्य गुणधर्म. अनेक डेटासेटमध्ये ते 'तारीख', 'आकार' किंवा 'रंग' यासारख्या स्तंभ शीर्षक म्हणून व्यक्त केले जाते. तुमचे वैशिष्ट्य व्हेरिएबल, सहसा कोडमध्ये `X` म्हणून दर्शवले जाते, इनपुट व्हेरिएबलचे प्रतिनिधित्व करते जे मॉडेल ट्रेन करण्यासाठी वापरले जाईल.
+[वैशिष्ट्ये](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) म्हणजे तुमच्या डेटाचा मोजता येणारा एक प्रकार. अनेक डेटासेटमध्ये, ही एका कॉलम सारखी असते, जसे 'तारीख', 'आकार' किंवा 'रंग'. तुमचा वैशिष्ट्यांचा चल, सामान्यतः कोडमध्ये `X` या रूपात असतो, तो इनपुट चल दर्शवतो, ज्याचा वापर मॉडेलला प्रशिक्षित करण्यासाठी होतो.
-लक्ष्य म्हणजे तुम्ही भाकीत करण्याचा प्रयत्न करत असलेली गोष्ट. लक्ष्य सहसा कोडमध्ये `y` म्हणून दर्शवले जाते, तुमच्या डेटाला विचारत असलेल्या प्रश्नाचे उत्तर दर्शवते: डिसेंबरमध्ये कोणत्या **रंगाचे** भोपळे स्वस्त असतील? सॅन फ्रान्सिस्कोमध्ये कोणत्या परिसरात सर्वात चांगले रिअल इस्टेट **किंमत** असेल? कधी कधी लक्ष्याला लेबल अॅट्रिब्युट असेही म्हणतात.
+लक्ष्य म्हणजे तुम्ही जे भाकीत करू इच्छिता ते. लक्ष्य, सामान्यतः कोडमध्ये `y` या रूपात असतो, हा तुमच्या डेटाला विचारला जाणारा प्रश्नाचा उत्तर दर्शवितो: डिसेंबरमध्ये कोणत्या **रंगाचे** भोपळ्याचे दर स्वस्त होतील? सॅन फ्रान्सिस्कोमध्ये कोणत्या भागात सर्वोत्तम रिअल इस्टेट **किंमत** असेल? लक्ष्याला कधी कधी लेबल अॅट्रिब्युट असेही म्हणतात.
-### तुमचे वैशिष्ट्य व्हेरिएबल निवडणे
+### तुमचा वैशिष्ट्य चल कसा निवडाल
-🎓 **वैशिष्ट्य निवड आणि वैशिष्ट्य काढणे** मॉडेल तयार करताना कोणते व्हेरिएबल निवडायचे हे तुम्हाला कसे कळेल? तुम्ही कदाचित योग्य व्हेरिएबल्स निवडण्यासाठी वैशिष्ट्य निवड किंवा वैशिष्ट्य काढण्याची प्रक्रिया पार पाडाल जे सर्वात कार्यक्षम मॉडेलसाठी योग्य असतील. तथापि, ते समान गोष्टी नाहीत: "वैशिष्ट्य काढणे मूळ वैशिष्ट्यांच्या कार्यांमधून नवीन वैशिष्ट्ये तयार करते, तर वैशिष्ट्य निवड मूळ वैशिष्ट्यांचा उपसंच परत करते." ([स्रोत](https://wikipedia.org/wiki/Feature_selection))
+🎓 **वैशिष्ट्य निवड आणि वैशिष्ट्य काढणी** मॉडेल तयार करताना कोणता चल निवडायचा हे कसे ठरवाल? बहुतेक वेळा तुम्ही वैशिष्ट्य निवड किंवा वैशिष्ट्य काढणी प्रक्रिया वापरून योग्य चल निवडाल. या दोनमध्ये फरक आहे: "वैशिष्ट्य काढणीमध्ये मूळ वैशिष्ट्यांपासून नवीन वैशिष्ट्ये तयार केली जातात, तर वैशिष्ट्य निवडेमध्ये वैशिष्ट्यांचा काही भाग निवडला जातो." ([स्रोत](https://wikipedia.org/wiki/Feature_selection))
-### तुमचा डेटा व्हिज्युअल करा
+### तुमचा डेटा दृश्यरूपात पहा
-डेटा सायंटिस्टच्या टूलकिटचा एक महत्त्वाचा पैलू म्हणजे डेटा व्हिज्युअल करण्याची क्षमता, ज्यासाठी Seaborn किंवा MatPlotLib सारख्या उत्कृष्ट लायब्ररी आहेत. तुमचा डेटा व्हिज्युअल करून तुम्ही लपलेल्या संबंधांचा शोध घेऊ शकता ज्याचा तुम्ही फायदा घेऊ शकता. तुमच्या व्हिज्युअलायझेशन्स तुम्हाला पूर्वग्रह किंवा असंतुलित डेटा शोधण्यात मदत करू शकतात (जसे आपण [वर्गीकरण](../../4-Classification/2-Classifiers-1/README.md) मध्ये शोधतो).
+डेटा सायंटिस्टच्या साधनसामुग्रीमध्ये डेटा दृश्यरूपात सादर करण्याची क्षमता महत्त्वाची आहे. यासाठी Seaborn किंवा MatPlotLib सारख्या उत्कृष्ट लायब्ररी आहेत. डेटा दृश्यरूपात मांडल्याने तुम्हाला लपलेले संदर्भ, संभाव्य पूर्वग्रह किंवा संतुलित नसलेला डेटा शोधता येऊ शकतो (जसे आपण [वर्गीकरण](../../4-Classification/2-Classifiers-1/README.md) धड्यात पाहतो).
### तुमचा डेटासेट विभाजित करा
-ट्रेनिंगपूर्वी, तुम्हाला तुमचा डेटासेट दोन किंवा अधिक असमान आकाराच्या भागांमध्ये विभाजित करणे आवश्यक आहे जे डेटा चांगल्या प्रकारे दर्शवतात.
+प्रशिक्षणापूर्वी, डेटासेट समसमान जागा न घेणाऱ्या दोन किंवा अधिक भागांत विभाजित करणे आवश्यक आहे, जे तरीही डेटाचे प्रतिनिधित्व करतात.
-- **ट्रेनिंग**. डेटासेटचा हा भाग तुमच्या मॉडेलला ट्रेन करण्यासाठी फिट केला जातो. हा सेट मूळ डेटासेटचा बहुतेक भाग असतो.
-- **टेस्टिंग**. टेस्ट डेटासेट हा स्वतंत्र डेटा गट आहे, जो अनेकदा मूळ डेटामधून गोळा केला जातो, जो तुम्ही तयार केलेल्या मॉडेलच्या कार्यक्षमतेची पुष्टी करण्यासाठी वापरता.
-- **व्हॅलिडेटिंग**. व्हॅलिडेशन सेट हा उदाहरणांचा एक छोटा स्वतंत्र गट आहे जो तुम्ही मॉडेलचे हायपरपॅरामीटर्स किंवा आर्किटेक्चर ट्यून करण्यासाठी वापरता, जेणेकरून मॉडेल सुधारता येईल. तुमच्या डेटाच्या आकारावर आणि तुम्ही विचारत असलेल्या प्रश्नावर अवलंबून, तुम्हाला हा तिसरा सेट तयार करण्याची गरज नसू शकते (जसे आपण [टाइम सिरीज फोरकास्टिंग](../../7-TimeSeries/1-Introduction/README.md) मध्ये नमूद करतो).
+- **प्रशिक्षण.** हा भाग मॉडेलला प्रशिक्षण देण्यासाठी वापरला जातो. हा मूळ डेटासेटचा बहुमत असतो.
+- **चाचणी.** चाचणी डेटासेट स्वतंत्र असतो, अनेकदा मूळ डेटामधून घेतला जातो, आणि त्याद्वारे तयार मॉडेलची कामगिरी तपासली जाते.
+- **प्रमाणपत्र.** प्रमाणपत्र गट हा छोटा स्वतंत्र समूह आहे जो मॉडेलच्या हायपरपॅरामीटर्स किंवा आर्किटेक्चरचे समायोजन करण्यासाठी वापरला जातो. तुमच्या डेटाच्या आकारावर आणि प्रश्नावर अवलंबून, कदाचित तिसऱ्या गटाची गरज नसेल (जसे आपण [टाइम सिरीज फोरकास्टिंग](../../7-TimeSeries/1-Introduction/README.md) धड्यात पाहतो).
## मॉडेल तयार करणे
-तुमच्या ट्रेनिंग डेटाचा वापर करून, तुमचे उद्दिष्ट म्हणजे विविध अल्गोरिदम वापरून तुमच्या डेटाचे **ट्रेन** करून मॉडेल तयार करणे, किंवा तुमच्या डेटाचे सांख्यिकीय प्रतिनिधित्व तयार करणे. मॉडेल ट्रेन करणे म्हणजे त्याला डेटाचा सामना करून त्याने शोधलेले नमुने मान्य करणे, सत्यापित करणे आणि स्वीकारणे किंवा नाकारणे.
+तुमच्या प्रशिक्षण डेटाचा वापर करून, तुम्ही मॉडेल तयार कराल, किंवा तुमच्या डेटाचा सांख्यिकी प्रतिनिधित्व तयार कराल, अनेक अल्गोरिदम वापरून **प्रशिक्षित** करून. मॉडेलला प्रशिक्षण देणे म्हणजे त्याला डेटा पाहणे आणि त्यातील पॅटर्न्स समजून घेऊन त्यांची पुष्टी किंवा नाकारणे.
-### ट्रेनिंग पद्धत ठरवा
+### प्रशिक्षण पद्धत ठरवा
-तुमच्या प्रश्नावर आणि तुमच्या डेटाच्या स्वरूपावर आधारित, तुम्ही ते ट्रेन करण्यासाठी पद्धत निवडाल. [Scikit-learn च्या दस्तऐवजीकरण](https://scikit-learn.org/stable/user_guide.html) मधून - जे आपण या कोर्समध्ये वापरतो - तुम्ही मॉडेल ट्रेन करण्याचे अनेक मार्ग शोधू शकता. तुमच्या अनुभवावर आधारित, तुम्हाला सर्वोत्तम मॉडेल तयार करण्यासाठी अनेक वेगवेगळ्या पद्धती वापरून पाहाव्या लागतील. तुम्ही कदाचित अशा प्रक्रियेतून जाल जिथे डेटा सायंटिस्ट्स मॉडेलची कार्यक्षमता न पाहिलेल्या डेटावरून मूल्यांकन करतात, अचूकता, पूर्वग्रह आणि इतर गुणवत्ता-घटवणाऱ्या समस्यांची तपासणी करतात आणि दिलेल्या कार्यासाठी सर्वात योग्य ट्रेनिंग पद्धत निवडतात.
+तुमच्या प्रश्नावर आणि डेटाच्या स्वरूपावर अवलंबून, तुम्ही प्रशिक्षणासाठी एक पद्धत निवडाल. [Scikit-learn च्या दस्तऐवज](https://scikit-learn.org/stable/user_guide.html) मधून तुम्ही बऱ्याच प्रशिक्षण पद्धतींचा अभ्यास करू शकता, ज्या या अभ्यासक्रमात वापरल्या जातात. तुमचा अनुभवानुसार, सर्वोत्तम मॉडेल तयार करण्यासाठी तुम्हाला अनेक पद्धतींना प्रयत्न करावा लागू शकतो. डेटा सायंटिस्ट्स एका प्रक्रियेतून जातात जिथे ते मॉडेलला न पाहिलेला डेटा देऊन त्याची कामगिरी, अचूकता, पूर्वग्रह आणि इतर गुणवत्ता तपासतात आणि त्या कामासाठी योग्य प्रशिक्षण पद्धत निवडतात.
-### मॉडेल ट्रेन करा
+### मॉडेल प्रशिक्षित करा
-तुमच्या ट्रेनिंग डेटासह, तुम्ही ते 'फिट' करण्यासाठी तयार आहात जेणेकरून मॉडेल तयार करता येईल. तुम्हाला असे आढळेल की अनेक ML लायब्ररींमध्ये तुम्हाला 'model.fit' कोड सापडेल - याच वेळी तुम्ही तुमचे वैशिष्ट्य व्हेरिएबल (सहसा 'X') आणि लक्ष्य व्हेरिएबल (सहसा 'y') मूल्यांच्या अॅरे म्हणून पाठवता.
+प्रशिक्षण डेटा वापरून, तुम्ही 'फिट' करू शकता. बऱ्याच एमएल लायब्ररींमध्ये तुम्हाला 'model.fit' असा कोड दिसेल – यावेळी तुम्ही फीचर चल (सामान्यतः 'X') आणि लक्ष्य चल (सामान्यतः 'y') ला अॅरे स्वरुपात पाठवता.
-### मॉडेलचे मूल्यांकन करा
+### मॉडेलचे मूल्यमापन करा
-एकदा ट्रेनिंग प्रक्रिया पूर्ण झाली (मोठे मॉडेल ट्रेन करण्यासाठी अनेक पुनरावृत्ती किंवा 'epochs' लागू शकतात), तुम्ही मॉडेलची गुणवत्ता तपासण्यासाठी टेस्ट डेटाचा वापर करू शकता. हा डेटा मूळ डेटाचा उपसंच आहे जो मॉडेलने यापूर्वी विश्लेषण केलेला नाही. तुम्ही तुमच्या मॉडेलच्या गुणवत्तेबद्दल मेट्रिक्सची टेबल प्रिंट करू शकता.
+प्रशिक्षण प्रक्रिया पूर्ण झाल्यावर (मोठ्या मॉडेलसाठी अनेक पुनरावृत्त्या किंवा 'एपोक्स' लागू शकतात), तुम्ही मॉडेलच्या गुणवत्तेचे मूल्यमापन करू शकता. चाचणीचा डेटा वापरून कामगिरीची तपासणी करता येते. हे मूळ डेटाचे एक उपसमूह असते ज्याचे मॉडेलने पूर्वी विश्लेषण केलेले नसते. तुम्ही तुमच्या मॉडेलची गुणवत्ता मोजण्यासाठी मेमरीनची (metrics) सारणी छापू शकता.
🎓 **मॉडेल फिटिंग**
-मशीन लर्निंगच्या संदर्भात, मॉडेल फिटिंग म्हणजे मॉडेलच्या अंतर्गत फंक्शनची अचूकता जी त्याला परिचित नसलेल्या डेटाचे विश्लेषण करण्याचा प्रयत्न करते.
+मशीन लर्निंगच्या संदर्भात, फिटिंग म्हणजे मॉडेलच्या अंतर्निहित फंक्शनची अचूकता ज्यास तो अपरिचित डेटा विश्लेषित करत असतो.
-🎓 **अंडरफिटिंग** आणि **ओव्हरफिटिंग** ही सामान्य समस्या आहेत ज्यामुळे मॉडेलची गुणवत्ता कमी होते, कारण मॉडेल ट्रेनिंग डेटाशी किंवा त्याने अद्याप 'पाहिलेल्या' डेटाशी खूप जास्त किंवा खूप कमी संरेखित भाकीत करते. ओव्हरफिट मॉडेल ट्रेनिंग डेटाचे खूप चांगले भाकीत करते कारण त्याने डेटाचे तपशील आणि आवाज खूप चांगल्या प्रकारे शिकले आहे. अंडरफिट मॉडेल अचूक नाही कारण ते त्याच्या ट्रेनिंग डेटाचे किंवा त्याने अद्याप 'पाहिलेल्या' डेटाचे अचूक विश्लेषण करू शकत नाही.
+🎓 **अंडरफिटिंग** आणि **ओवरफिटिंग** ही सामान्य समस्या आहेत ज्या मॉडेलच्या गुणवत्तेवर परिणाम करतात, कारण मॉडेल कधी अति सामंजस्यपूर्ण (overfit) किंवा अयोग्य (underfit) असतो. ओवरफिट मॉडेल प्रशिक्षणाच्या तपशील आणि आवाज इतका चांगल्या प्रकारे शिकलेला असतो की ते फक्त प्रशिक्षण डेटावर बरोबर भाकीत करते. अंडरफिट मॉडेल अचूक नाही कारण ते आपल्या प्रशिक्षण डेटा किंवा न पाहिलेल्या डेटाचे चांगले विश्लेषण करू शकत नाही.
-
-> [Jen Looper](https://twitter.com/jenlooper) यांनी तयार केलेले इन्फोग्राफिक
+
+> माहितीचित्र [Jen Looper](https://twitter.com/jenlooper) यांनी तयार केलेले
-## पॅरामीटर ट्यूनिंग
+## परिमाण समायोजन (Parameter tuning)
-तुमचे सुरुवातीचे ट्रेनिंग पूर्ण झाल्यानंतर, मॉडेलची गुणवत्ता निरीक्षण करा आणि त्याचे 'हायपरपॅरामीटर्स' बदलून ते सुधारण्याचा विचार करा. या प्रक्रियेबद्दल अधिक वाचा [दस्तऐवजीकरणात](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott).
+प्रारंभिक प्रशिक्षण पूर्ण झाल्यानंतर, मॉडेलची गुणवत्ता तपासा आणि त्याचे 'हायपरपॅरामिटर्स' बदलून सुधारण्याचा विचार करा. या प्रक्रियेबद्दल अधिक वाचा [दस्तऐवजात](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott).
-## भाकीत
+## भाकिते
-हा तो क्षण आहे जिथे तुम्ही पूर्णपणे नवीन डेटा वापरून तुमच्या मॉडेलची अचूकता तपासू शकता. 'अॅप्लाइड' ML सेटिंगमध्ये, जिथे तुम्ही मॉडेल उत्पादनात वापरण्यासाठी वेब अॅसेट्स तयार करत आहात, ही प्रक्रिया कदाचित युजर इनपुट गोळा करणे (उदाहरणार्थ, बटण दाबणे) यामध्ये समाविष्ट असेल जेणेकरून व्हेरिएबल सेट करता येईल आणि मॉडेलला इनफरन्स किंवा मूल्यांकनासाठी पाठवता येईल.
+ही वेळ आहे ज्या वेळी तुम्ही पूर्णपणे नवीन डेटा वापरून मॉडेलची अचूकता तपासू शकता. एखाद्या 'अॅप्लाइड' एमएल सेटिंगमध्ये, जिथे तुम्ही उत्पादनासाठी मॉडेल वापरणार आहात, या प्रक्रियेत वापरकर्त्याचा इनपुट (उदा. बटण दाबणे) गोळा करणे, चल सेट करणे आणि मॉडेलला मूल्यांकनासाठी पाठविणे यांचा समावेश असू शकतो.
-या धड्यांमध्ये, तुम्ही डेटा सायंटिस्टच्या सर्व क्रिया आणि अधिक शिकाल - तयार करणे, तयार करणे, चाचणी करणे, मूल्यांकन करणे आणि भाकीत करणे - जेणेकरून तुम्ही 'फुल स्टॅक' ML इंजिनियर बनण्याच्या प्रवासात प्रगती करू शकता.
+या धड्यांमध्ये, तुम्हाला ही पावले कशी वापरायची ते शिकवलं जाईल – डेटा सायंटिस्टच्या सर्व कृतींपासून ते पुढे जाऊन 'फुल स्टॅक' एमएल इंजिनीअर होण्यासाठीचा प्रवास.
---
-## 🚀चॅलेंज
+## 🚀आव्हान
-ML प्रॅक्टिशनरच्या टप्प्यांचे फ्लो चार्ट तयार करा. तुम्ही सध्या प्रक्रियेत कुठे आहात असे तुम्हाला वाटते? तुम्हाला कुठे अडचण येईल असे वाटते? तुम्हाला काय सोपे वाटते?
+एमएल वापरकर्त्याच्या प्रक्रियेतील टप्पे दर्शवणारा फ्लो चार्ट तयार करा. सध्याच्या प्रक्रियेत तुम्ही कुठे आहात? कोठे अडचण येईल असे वाटते? तुम्हाला काय सोपे वाटते?
-## [व्याख्यानानंतर प्रश्नमंजुषा](https://ff-quizzes.netlify.app/en/ml/)
+## [पोस्ट-लेक्चर क्विझ](https://ff-quizzes.netlify.app/en/ml/)
-## पुनरावलोकन आणि स्व-अभ्यास
+## पुनरावलोकन आणि स्वाध्याय
-डेटा सायंटिस्ट्सच्या मुलाखती ऑनलाइन शोधा ज्यामध्ये ते त्यांच्या दैनंदिन कामाबद्दल चर्चा करतात. येथे [एक](https://www.youtube.com/watch?v=Z3IjgbbCEfs) आहे.
+ऑनलाइन शोधा अशा डेटा सायंटिस्टांचे मुलाखती, जे त्यांचा दैनंदिन कार्यकाळात काय करतात याबद्दल बोलतात. येथे [एक](https://www.youtube.com/watch?v=Z3IjgbbCEfs) आहे.
## असाइनमेंट
@@ -119,5 +119,7 @@ ML प्रॅक्टिशनरच्या टप्प्यांचे
---
-**अस्वीकरण**:
-हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) चा वापर करून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात घ्या की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेचा अभाव असू शकतो. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर केल्यामुळे उद्भवणाऱ्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही.
\ No newline at end of file
+
+**संकल्पना शब्द**:
+हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) यांच्या मदतीने भाषांतरित केला आहे. आम्ही अचूकतेसाठी प्रयत्न करतो, तरी कृपया लक्षात ठेवा की स्वयंचलित भाषांतरांमध्ये चुका किंवा अचूकतेतील त्रुटी असू शकतात. मूळ दस्तऐवज त्याच्या मूळ भाषेत अधिकृत स्रोत म्हणून गणला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतराचे शिफारस केली जाते. या भाषांतराचा वापर केल्यामुळे उद्भवणाऱ्या कोणत्याही गैरसमजुती किंवा चुकीच्या अर्थाप्रत आम्ही जबाबदार नाही.
+
\ No newline at end of file
diff --git a/translations/mr/2-Regression/3-Linear/README.md b/translations/mr/2-Regression/3-Linear/README.md
index 959f14815..9e42f3c55 100644
--- a/translations/mr/2-Regression/3-Linear/README.md
+++ b/translations/mr/2-Regression/3-Linear/README.md
@@ -1,136 +1,138 @@
-# Scikit-learn वापरून रिग्रेशन मॉडेल तयार करा: रिग्रेशन चार पद्धती
+# Scikit-learn वापरून एक रिग्रेशन मॉडेल तयार करा: रिग्रेशन चार पद्धतींचा अभ्यास
-## नवशिक्यांसाठी नोट
+## प्रारंभिक टीप
-लिनीअर रिग्रेशनचा वापर आपण जेव्हा **संख्यात्मक मूल्य** (उदाहरणार्थ, घराची किंमत, तापमान, किंवा विक्री) भाकीत करू इच्छितो तेव्हा केला जातो.
-हे इनपुट वैशिष्ट्ये आणि आउटपुट यामधील संबंध सर्वोत्तम दर्शविणारी सरळ रेषा शोधून काम करते.
+लिनीयर रिग्रेशन तेव्हा वापरले जाते जेव्हा आपल्याला एखादा **संख्यात्मक मूल्य** (उदाहरणार्थ, घराची किंमत, तापमान किंवा विक्री) भाकीत करायचा असतो.
+हे इनपुट फिचर्स आणि आउटपुट या नात्याचे उत्तम प्रतिनिधित्व करणारी सरळ रेषा शोधून काम करते.
-या धड्यात, आम्ही अधिक प्रगत रिग्रेशन तंत्रे शिकण्यापूर्वी संकल्पना समजून घेण्यावर लक्ष केंद्रित करू.
+या धड्यात, आपण अधिक प्रगत रिग्रेशन तंत्रे पाहण्यापूर्वी संकल्पना समजण्यावर लक्ष केंद्रित करू.

-> इन्फोग्राफिक [दासानी मदीपाली](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)
-### परिचय
+> ### [हा धडा R मध्ये उपलब्ध आहे!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
+### परिचय
-आत्तापर्यंत आपण रिग्रेशन म्हणजे काय हे कदाचित पाहिले आहे, ज्यासाठी आपण भोपळा किंमत डेटासेटमधून संकलित नमुना डेटा वापरला आहे जो संपूर्ण धडक्यादरम्यान वापरला जाईल. आपण त्याचे Matplotlib वापरून दृश्यांकन देखील केलेले आहे.
+आत्तापर्यंत आपण रिग्रेशन म्हणजे काय हे पाहिले आहे, आणि संपूर्ण धड्यात वापरणार्या कद्दू किमतींच्या डेटासेटमधून घेतलेल्या नमुना डेटाचा अभ्यास केला आहे. आपण याला Matplotlib वापरून व्हिज्युअलाइजही केलं आहे.
-आता आपण मशीन लर्निंगसाठी रिग्रेशनमध्ये अधिक खोलवर जाण्यास तयार आहात. दृश्यांकन केल्याने डेटा समजण्यास मदत होते, पण मशीन लर्निंगची खरी ताकद _मॉडेल्स प्रशिक्षण_ मध्ये आहे. मॉडेल्सला ऐतिहासिक डेटावर प्रशिक्षण दिले जाते ज्यामुळे ते डेटा अवलंबित्वे स्वयंचलितपणे पकडू शकतात, आणि त्यांनी अद्याप पाहिलेला नसलेला नवीन डेटा साठी परिणामांची भाकीत करण्याची परवानगी देतात.
+आता आपण ML साठी रिग्रेशन मध्ये अधिक खोलात जाण्यास तयार आहात. व्हिज्युअलायझेशन डेटा समजण्यासाठी मदत करते, पण मशीन लर्निंग ची खरी ताकद _मॉडेल्सची ट्रेनिंग_ मध्ये आहे.
+मॉडेल्स ऐतिहासिक डेटावर प्रशिक्षित केल्या जातात जेणेकरून ते डेटाच्या अवलंबित्वांना स्वयंचलितपणे टिपू शकतील, आणि आपल्याला नवीन डेटासाठी, ज्याला मॉडेलने कधी पाहिले नाही, भविष्यातील परिणाम भाकीत करण्याची परवानगी मिळते.
-या धड्यात, आपण दोन प्रकारच्या रिग्रेशनबद्दल अधिक शिकणार आहोत: _मूलभूत लिनीअर रिग्रेशन_ आणि _बहुपदीय रिग्रेशन_, तसेच या तंत्रांमागील काही गणित समजून घेणार आहोत. या मॉडेल्समुळे आपण भिन्न इनपुट डेटानुसार भोपळ्याच्या किंमती भाकीत करू शकू.
+या धड्यात, आपण दोन प्रकारच्या रिग्रेशनबद्दल अधिक जाणून घेणार आहोत: _मूलभूत लिनीयर रिग्रेशन_ आणि _बहुपद रिग्रेशन_, तसेच या तंत्रज्ञानामागील काही गणित. हे मॉडेल्स आपल्याला विविध इनपुट डेटानुसार कद्दूच्या किमती भाकीत करू देतील.
[](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
-> 🎥 वरील प्रतिमेवर क्लिक करा लिनीअर रिग्रेशनचा संक्षिप्त व्हिडिओ आढावा पाहण्यासाठी.
+> 🎥 खालील प्रतिमा क्लिक करा लिनीयर रिग्रेशनचा संक्षिप्त व्हिडिओ विहंगावलोकन पाहण्यासाठी.
-> संपूर्ण अभ्यासक्रमामध्ये, आम्ही गणिताचे कमी ज्ञान धरतो, आणि इतर क्षेत्रांमधून येणाऱ्या विद्यार्थ्यांसाठी ते सुलभ बनवण्याचा प्रयत्न करतो, त्यामुळे लक्ष ठेवा नोट्स, 🧮 कॉलआउट्स, आकृती आणि इतर शिकण्याच्या साधनांसाठी जी समज वाढविण्यात मदत करतात.
+> संपूर्ण अभ्यासक्रमात, आम्ही गणिताचे न्यूनतम ज्ञान मानतो, आणि विद्यारंभिक विद्यार्थी ज्यांना इतर क्षेत्रातून येत आहेत त्यांच्यासाठी सुलभ करण्याचा प्रयत्न करीत आहोत, त्यामुळे लक्ष ठेवा टीपा, 🧮 गणितीय सूचना, आकृत्या आणि इतर शिकवणी साधनांवर.
-### पूर्वअट
+### पूर्वशर्ती
-आपण आता भोपळा डेटाच्या संरचनेशी परिचित असाल ज्याचा आपण अभ्यास करतोय. हा डेटा या धड्याच्या _notebook.ipynb_ फाईलमध्ये प्रीलोड आणि प्री-क्लीन केलेला सापडेल. फाईलमध्ये भोपळ्याची किंमत प्रत्येक बुशेलसाठी नवीन डेटा फ्रेममध्ये दाखवली आहे. हे notebook Visual Studio Code मधील कर्नलमध्ये चालवू शकता याची खात्री करा.
+आपण आता पाहत असलेल्या कद्दू डेटाची रचना परिचित असावी. हा डेटा हा या धड्याच्या _notebook.ipynb_ फाईलमध्ये आधीच लोड आणि स्वच्छ केला आहे. त्या फाईलमध्ये कद्दूची किंमत प्रति बुशेल नवीन डेटा फ्रेममध्ये प्रदर्शित केली आहे.
+ध्यान ठेवा की आपण Visual Studio Code चे कर्नल्समध्ये हे नोटबुक्स चालवू शकता.
### तयारी
-स्मरणार्थ, आपण हा डेटा लोड करता जेणेकरून त्याबाबत प्रश्न विचारता येतील.
+स्मरण म्हणून, आपण हा डेटा लोड करत आहात जेणेकरून त्याबाबत प्रश्न विचारू शकता.
-- भोपळा खरेदीसाठी सर्वोत्तम वेळ कधी आहे?
-- लहान भोपळ्यांच्या केसची किंमत काय अपेक्षित करू शकतो?
-- मी त्यांना अर्धा बुशेल टोपल्या मध्ये खरेदी करावे का की 1 1/9 बुशेल बॉक्सने?
-चला या डेटामध्ये अधिक खोलवर पाहू.
+- कधी कद्दू विकत घेण्याचा सर्वोत्तम वेळ आहे?
+- लहान कद्दूंच्या एका पान्याच्या बाबतीत किंमती किती असतील याची अपेक्षा करू शकतो का?
+- मी त्यांना अर्ध्या बुशेलच्या टोपल्या मध्ये घेतले पाहिजेत की 1 1/9 बुशेल बॉक्सने?
+चला हा डेटा आणखी तपासून पाहू.
-यापूर्वीच्या धड्यात आपण Pandas डेटा फ्रेम तयार केला होता आणि मूळ डेटासेटचा भाग वापरून किंमती बुशेलनुसार प्रमाणित केला. मात्र, त्यामुळे केवळ सुमारे ४०० डेटापॉइंट्स मिळाले आणि तेही फक्त शरद ऋतूतील महिनेकरिता.
+मागील धड्यात, आपण पँडास डेटा फ्रेम तयार केला आणि त्यामध्ये मूळ डेटासेटचा एक भाग भरला, किंमती बुशेलनुसार प्रमाणित केल्या. पण त्याद्वारे आपल्याला फक्त सुमारे 400 डेटा पॉईंट्स मिळाले आणि फक्त हिवाळी महिन्यांसाठी.
-या धड्याच्या संलग्न नोटबुकमध्ये प्रीलोड केलेला डेटा पहा. डेटा प्रीलोड केला आहे आणि प्रारंभिक स्कॅटरप्लॉट तयार केला आहे जे महिना डेटाचा दाखला देतो. कदाचित आपण डेटा अजून स्वच्छ करुन त्याची निसर्ग अधिक जाणून घेऊ शकू.
+या धड्याच्या नोटबुकमध्ये आपण पूर्वलोड केलेला डेटा पहा. डेटा पूर्वलोड आणि प्राथमिक स्कॅटरप्लॉट तयार केला आहे ज्यात महिना डेटा दर्शविला आहे. कदाचित आपण अजून स्वच्छ करून डेटा अधिक तपशीलवार करू शकू.
-## एक लिनीअर रिग्रेशन रेषा
+## लिनीयर रिग्रेशन लाईन
-आपण धडा 1 मध्ये शिकलो तसे, लिनीअर रिग्रेशनचा उद्दिष्ट रेषा अशी काढणे आहे जी:
+आपल्याला धडा 1 मध्ये शिकवले होते की, लिनीयर रिग्रेशनचा उद्देश असा लाईन काढणे आहे जिचा उपयोग:
-- **चल संबंध दाखवते**. चलांच्या संबंध दर्शविणे
-- **भाकीत करणे**. नवीन डेटापॉइंट एखाद्या विशिष्ट ठिकाणी येईल का ते अचूक भाकीत करणे.
+- **चल (variables) यांचे नाते दाखविण्यासाठी**: चलांमधील संबंध दिखविणे
+- **भाकीत करण्यासाठी**: नवीन डेटा पॉईंट लाइनशी कुठे सापडेल हे अचूक भाकीत करणे
-हे सहसा **लीस्ट-स्क्वेअर्स रिग्रेशन** वापरून केले जाते. "लीस्ट-स्क्वेअर्स" शब्द म्हणजे आपल्या मॉडेलमधील एकूण त्रुटी कमी करते असे तंत्र. प्रत्येक डेटा पॉइंटसाठी आपण खऱ्या पॉइंट आणि रिग्रेशन लाइनमधील उभी अंतर (रेजिड्युअल) मोजतो.
+सर्वसामान्यत: **लीस्ट-स्क्वेअर्स रिग्रेशन** या प्रकारच्या रेषा काढण्यात येतात. "लीस्ट-स्क्वेअर्स" शब्द याचा अर्थ आहे की आपला मॉडेल एकंदर त्रुटी (एरर) कमी करण्याचा प्रयत्न करतो. प्रत्येक डेटा पॉईंटसाठी, आपण वास्तविक पॉईंट आणि आपली रिग्रेशन लाईन या दरम्यानच्या उभ्या अंतराची (ज्याला रेसिड्युअल म्हणतात) मोजणी करतो.
-आपण या अंतराला दोन मुख्य कारणांसाठी वर्गाकार करतो:
+आपण या अंतरांचे वर्ग (square) काढतो दोन प्रमुख कारणांमुळे:
-1. **परिमाणाकडे अधिक महत्त्व**: -5 वजा 5 या त्रुटींना समान समजण्यासाठी वर्गाकार सर्व मूल्ये सकारात्मक करतो.
+1. **प्रमाण महत्त्वाचे, दिशा नाही:** -5 चा त्रुटी आणि +5 चा त्रुटी दोन्ही सारखे वागवायचे आहे. वर्गाकाराने सर्व मूल्ये सकारात्मक होतात.
-2. **आउटलायरला दंड देणे**: वर्गाकार मोठ्या त्रुटींना अधिक वजन देतो, त्यामुळे रेषा दूर असलेल्या पॉइंट्सजवळ राहायला भाग पाडतो.
+2. **आउटलाईअर्सचा दंड:** मोठ्या त्रुटीला अधिक वजन देतो, जेणेकरून रेषा दूरच्या पॉईंटजवळ राहणे बळकट होते.
-आम्ही नंतर या सर्व वर्गाकार मूल्यांची बेरीज करतो. आमचा उद्देश असा आहे की ही अंतिम बेरीज कमीत कमी (सर्वात लहान शक्य मूल्य) होईल—म्हणून त्याला "लीस्ट-स्क्वेअर्स" म्हणतात.
+यानंतर आपण सर्व वर्गाकार नावे एकत्र करतो. आपला उद्देश असे रेषा शोधणे आहे ज्यासाठी हा एकूण योग लहान (किमान) असेल, म्हणूनच त्याला "लीस्ट-स्क्वेअर्स" असे म्हणतात.
-> **🧮 मला गणित दाखवा**
->
-> ही रेषा, ज्याला _सर्वोत्तम बसणारी रेषा_ म्हणतात, [एका समीकरणाने](https://en.wikipedia.org/wiki/Simple_linear_regression) व्यक्त केली जाऊ शकते:
->
+> **🧮 गणित दाखवा**
+>
+> या रेषेला _line of best fit_ म्हणतात आणि ते [समीकरणाने](https://en.wikipedia.org/wiki/Simple_linear_regression) दर्शवता येते:
+>
> ```
> Y = a + bX
> ```
->
-> `X` हा 'स्पष्टीकरणात्मक चल' (explanatory variable) आहे. `Y` हा 'आश्रित चल' (dependent variable). रेषेचा उतार `b` आहे आणि `a` हा y-अक्षावर छेदनबिंदू आहे, जो `X = 0` असताना `Y` चे मूल्य दाखवतो.
+
+> `X` हा 'स्पष्टीकरण चल' आहे. `Y` हा 'आश्रित चल' आहे. लाईनचा उतार `b` आहे आणि `a` हा y-अडकवटा (y-intercept) आहे, जो `X = 0` असताना `Y` चे मूल्य आहे.
>
>
>
-> सर्वप्रथम, उतार `b` मोजा. इन्फोग्राफिक [जेन लूपर](https://twitter.com/jenlooper) यांनी तयार केला आहे.
+> पहिले, उतार `b` मोजा. इन्फोग्राफिक [जेन लूपर](https://twitter.com/jenlooper) यांनी तयार केला.
>
-> दुसऱ्या शब्दांत, आणि आपल्या भोपळा डेटाच्या मूळ प्रश्नाकडे पाहता: "महिन्यानुसार भोपळा प्रति बुशेल किंमत भाकीत करा," `X` ही किंमत आणि `Y` ही विक्रीचा महिना असेल.
+> दुसऱ्या शब्दांत आणि आपल्या कद्दू डेटाच्या मूळ प्रश्नाला संदर्भ देत: "महिन्यानुसार प्रति बुशेल कद्दूची किंमत भाकीत करा", `X` म्हणजे किंमत आणि `Y` म्हणजे विक्रीचा महिना आहे.
>
>
>
-> `Y` ची किंमत काढा. जर आपण सुमारे $4 देत असाल, तर तो एप्रिल असायला हवा! इन्फोग्राफिक [जेन लूपर](https://twitter.com/jenlooper)
+> `Y` चे मूल्य मोजा. जर आपण सुमारे $4 देत असाल, तर तो नक्की एप्रिल महिना आहे! इन्फोग्राफिक [जेन लूपर](https://twitter.com/jenlooper) यांनी तयार केले.
>
-> हे गणित जो रेषा काढते तो रेषेचा उतार दाखवतो, जो छेदनबिंदूवरही अवलंबून असतो, म्हणजे `X=0` असताना `Y` कुठे असते.
+> गणिताने 'लाईनचा उतार' प्रदर्शित करणे आवश्यक आहे, जो intercept वर अवलंबून आहे, म्हणजे जेव्हा `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) येथे जाऊन संख्यांचे मूल्य रेषेवर कसे परिणाम करतात ते पाहू शकता.
+> या मूल्यांचे गणिती मोजमाप [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) या संकेतस्थळावर तपासा. तसेच [ही लीस्ट-स्क्वेअर कॅल्क्युलेटर](https://www.mathsisfun.com/data/least-squares-calculator.html) बघा ज्यात संख्यांचे मूल्य कसे रेषेवर परिणाम करतात ते दिसेल.
-## सहसंबंध
+## सहसंबंध (Correlation)
-आणखी एक समजण्याचे टर्म म्हणजे दिलेल्या X आणि Y चलांमधील **सहसंबंध गुणांक**. स्कॅटरप्लॉट वापरून आपण हा गुणांक पटकन देखील पाहू शकता. जर पॉइंट्स एक नीटसर रेषेत विखुरलेले असतील तर त्यात उच्च सहसंबंध आहे, परंतु सर्वत्र विखुरलेल्या पॉइंट्ससह रेषेत कमी सहसंबंध आहे.
+आणखी एक संज्ञा समजून घेणे गरजेचे आहे ती म्हणजे दिलेल्या X आणि Y चलांमधील **सहसंबंध गुणांक**. स्कॅटरप्लॉट वापरून आपण ही संख्या पटकन पाहू शकता. जर स्कॅटरप्लॉटमध्ये डेटा पॉईंट्स एक सरळ रेषेत असतील तर सहसंबंध उच्च (उच्च स्पष्टता) असतो, पण जर सर्वत्र विखुरलेले असतील तर तो कमी असतो.
-एक चांगला लिनीअर रिग्रेशन मॉडेल तो असेल ज्यात लीस्ट-स्क्वेअर्स रिग्रेशन पद्धतीने रेषेचा सहसंबंध गुणांक जास्त (0 पेक्षा 1 च्या जवळ) असेल.
+एक चांगला लिनीयर रिग्रेशन मॉडेल तोच असेल ज्याचा सहसंबंध गुणांक (0 पेक्षा 1 जवळ अधिक) लीस्ट-स्क्वेअर्स पद्धतीने काढलेला असेल.
-✅ या धड्याला संलग्न notebook चालवा आणि महिना ते किंमत टेबल पाहा. भोपळा विक्रीसाठी महिना ते किंमत डेटा आपल्या दृश्यात्मक मुल्यांकनानुसार उच्च की कमी सहसंबंध दाखवतो? जर आपण `महिना` ऐवजी अधिक सूक्ष्म मोजमाप वापरले, उदा. *वर्षातील दिवस* (वर्षाच्या सुरुवातीपासून वादलेले दिवस) तर ते बदलते का?
+✅ या धड्यासोबत असलेल्या नोटबुक चालवा आणि महिना आणि किंमतीच्या स्कॅटरप्लॉटचे निरीक्षण करा. कद्दू विक्रीसाठी महिना आणि किंमतीतील डेटाचा सहसंबंध तुमच्या अभिप्रेतानुसार उच्च आहे की कमी? जर तुम्ही `Month` ऐवजी अधिक तपशीलवार मोजदाड वापरली (उदा. *वर्षाचा दिवस* म्हणजे वर्षाच्या सुरुवातीपासून किती दिवस झाले?), तर सहसंबंध बदलतो का?
-खालील कोडमध्ये, आपण गृहित धरू की आम्ही डेटा स्वच्छ केला आहे आणि `new_pumpkins` नावाचा डेटा फ्रेम तयार केला आहे, जो खालीलप्रमाणे दिसू शकतो:
+खाली दिलेल्या कोडमध्ये, आपण गृहित धरतो की डेटाची स्वच्छता केली आहे आणि आपल्याकडे `new_pumpkins` नावाचा डेटा फ्रेम आहे, ज्यात पुढील सारखी माहिती आहे:
-ID | महिना | वर्षातील दिवस | विविधता | शहर | पाकेट | कमी किंमत | जास्त किंमत | किंमत
----|-------|--------------|----------|-------|---------|------------|-------------|--------
-70 | 9 | 267 | पाई प्रकार | बाल्टिमोर | 1 1/9 बुशेल कार्टन्स | 15.0 | 15.0 | 13.636364
-71 | 9 | 267 | पाई प्रकार | बाल्टिमोर | 1 1/9 बुशेल कार्टन्स | 18.0 | 18.0 | 16.363636
-72 | 10 | 274 | पाई प्रकार | बाल्टिमोर | 1 1/9 बुशेल कार्टन्स | 18.0 | 18.0 | 16.363636
-73 | 10 | 274 | पाई प्रकार | बाल्टिमोर | 1 1/9 बुशेल कार्टन्स | 17.0 | 17.0 | 15.454545
-74 | 10 | 281 | पाई प्रकार | बाल्टिमोर | 1 1/9 बुशेल कार्टन्स | 15.0 | 15.0 | 13.636364
+ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
+---|-------|-----------|---------|------|---------|-----------|------------|-------
+70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
+71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
+72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
+73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
+74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
-> डेटा स्वच्छ करण्यासाठीचा कोड [`notebook.ipynb`](notebook.ipynb) मध्ये उपलब्ध आहे. आपण मागील धड्याप्रमाणेच स्वच्छता केली आहे, आणि `DayOfYear` स्तंभ खालील व्यक्तीकरण वापरून काढला आहे:
+> स्वच्छता करणारा कोड [`notebook.ipynb`](notebook.ipynb) मध्ये उपलब्ध आहे. आपण मागील धड्यातील स्वच्छता पद्धती केली आणि `DayOfYear` स्तंभ खालील अभिव्यक्तीने काढला:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
-
-आता आपण लिनीअर रिग्रेशन मागील गणित समजत असल्याने, चला एक रिग्रेशन मॉडेल तयार करू जेणेकरून आपण भोपळ्यांच्या पैकेजेसपैकी कोणत्या पैकची किंमत सर्वोत्तम असेल हे भाकीत करू शकू. एखाद्या सणासाठी भोपळा खरेदी करणाऱ्याला त्यांच्या खरेदीत अनुकूल करण्यासाठी ही माहिती आवश्यक असू शकते.
+
+आपण आता लिनीयर रिग्रेशन मागील गणित समजल्यामुळे, चला एक रिग्रेशन मॉडेल तयार करू, जे कद्दूच्या पॅकेजेसपैकी कोणत्या मध्ये सर्वोत्तम किंमती येतील, भाकीत करू शकेल. कोणीतरी कद्दू विक्रीसाठी हा डेटा वापरून खरेदी अधिक प्रभावी करू शकेल.
## सहसंबंध शोधत आहोत
[](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
-> 🎥 वरील प्रतिमेवर क्लिक करा सहसंबंध या विषयाचा संक्षिप्त व्हिडिओ आढावा पाहण्यासाठी.
+> 🎥 वरची प्रतिमा क्लिक करा सहसंबंधाचा संक्षिप्त व्हिडिओ पाहण्यासाठी.
-मागील धड्यात आपण कदाचित पाहिले असाल की वेगवेगळ्या महिन्यांची सरासरी किंमत अशी दिसते:
+मागील धड्यात आपल्याला कदाचित दिसले असेल की वेगवेगळ्या महिन्यांच्या सरासरी किंमती अशा प्रकारे आहेत:
-हे सूचित करते की काही सहसंबंध असावा, आणि आपण `Month` आणि `Price` किंवा `DayOfYear` आणि `Price` यांच्या मधील संबंध भाकीत करण्यासाठी लिनीअर रिग्रेशन मॉडेल प्रशिक्षण देऊ शकतो. खालील स्कॅटरप्लॉट दुसऱ्या संबंधाचा दाखला देतो:
+हे सूचित करते की काही सहसंबंध आहे, आणि आपण लिनीयर रिग्रेशन मॉडेल ट्रेन करू शकतो जे `Month` आणि `Price` यांच्यातील नाते भाकीत करेल, किंवा `DayOfYear` आणि `Price` यांच्यातील नाते भाकीत करेल. खाली दिलेला स्कॅटरप्लॉट पोस्टरर संबंध दर्शवितो:
-
+
-चला `corr` फंक्शन वापरून सहसंबंध पाहू:
+आता `corr` फंक्शन वापरून आहे का ते पाहूया:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
-
-अशी दिसते की सहसंबंध फारसा मोठा नाही, `Month` साठी -0.15 आणि `DayOfYear` साठी -0.17, पण कदाचित दुसरा महत्त्वाचा संबंध असू शकतो. वेगवेगळ्या भोपळा विविधतांच्या किंमती वेगवेगळ्या संचांमध्ये दिसत आहेत. ही कल्पना पुष्टी करण्यासाठी, प्रत्येक भोपळा वर्ग वेगळ्या रंगात दाखवू या. `scatter` फंक्शनला `ax` पॅरामीटर देऊन आपण सर्व पॉइंट्स एकाच ग्राफवर प्लॉट करू शकतो:
+
+असे दिसते की सहसंबंध त्यामुळे फार काही जास्त नाही, -0.15 `Month` नुसार आणि -0.17 `DayOfYear` नुसार आहे, पण कदाचित आणखी एक महत्त्वाचा संबंध असू शकतो. वेगवेगळे कद्दू प्रकार वेगवेगळ्या किंमतींचे गट तयार करतात. ही कल्पना पुष्टी करण्यासाठी, चला प्रत्येक कद्दू प्रकार वेगळ्या रंगात स्कॅटर प्लॉट करू. `scatter` फंक्शनला `ax` पॅरामीटर दिल्यास सर्व पॉईंट्स एका ग्राफवर प्लॉट करता येतात:
```python
ax=None
@@ -139,75 +141,75 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
df = new_pumpkins[new_pumpkins['Variety']==var]
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
+
+
-
-
-आपल्या तपासणीने सुचवले आहे की विविधतेचा एकूण किंमतीवर खूप परिणाम होतो, जास्त की विक्री तारखा. हे आम्ही बार ग्राफवर पाहू शकतो:
+आमच्या तपासणीत कद्दूचा प्रकार (Variety) किंमतीवर Verkaufs तारखेच्या पेक्षा अधिक प्रभाव टाकतो हे दिसते. हे बार ग्राफने दर्शविले आहे:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
+
+
-
-
-सध्या आपण फक्त एका भोपळा विविधतेवर लक्ष ठेवू, ही म्हणजे 'पाई प्रकार', आणि पाहू की विक्रीच्या तारखेचा किंमतीवर कसा परिणाम होतो:
+आता फक्त एका प्रकारावरील, 'pie type' कद्दूवर लक्ष केंद्रित करू आणि पाहू की विक्री तारखेचा किंमतीवर काय परिणाम होतो:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
-
+
-आता `Price` आणि `DayOfYear` मधील सहसंबंध काढल्यास `corr` फंक्शन वापरून साधारण `-0.27` येईल - जे दर्शवते की भाकीत करणारे मॉडेल तयार करणे अर्थपूर्ण आहे.
+आता जर आपण `corr` फंक्शन वापरून `Price` आणि `DayOfYear` मध्ये सहसंबंध मोजला तर ते सुमारे `-0.27` येईल - म्हणजे predictive मॉडेल तयार करणे योग्य आहे.
-> लिनीअर रिग्रेशन मॉडेल प्रशिक्षण देण्यापूर्वी, डेटा स्वच्छ असल्याची खात्री करणे महत्त्वाचे आहे. लिनीअर रिग्रेशन रिकाम्या मूल्यांसह चांगले काम करत नाही, म्हणून रिकाम्या सेल्स काढणे योग्य ठरते:
+> लिनीयर रिग्रेशन मॉडेल train करण्यापूर्वी डेटा स्वच्छ आहे याची खात्री करणे महत्त्वाचे आहे. लिनीयर रिग्रेशन माहीत नसलेल्या (मिसिंग) मूल्यांसह चांगले काम करत नाही, त्यामुळे रिकाम्या सेल्स काढून टाकणे चांगले:
```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
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
-
-आम्ही इनपुट मूल्ये (वैशिष्ट्ये) आणि अपेक्षित आउटपुट (लेबल) वेगळ्या numpy arrays मध्ये विभाजित करून सुरुवात करतो:
+
+आपण इनपुट मूल्ये (फीचर्स) आणि अपेक्षित आउटपुट (लेबल) स्वतंत्र numpy arrays मध्ये वेगळे करतो:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
+
+> लक्षात घ्या की लॉजिकल लिनीयर रिग्रेशन पॅकेजला योग्य समजण्यासाठी इनपुट डेटा `reshape` करावा लागतो. लिनीयर रिग्रेशनला 2D-अॅरेची अपेक्षा असते, जेथे प्रत्येक रांग एक फीचर वेक्टर असतो. आपल्याकडे एकच इनपुट असल्यामुळे आपल्याला आकार N×1 असला पाहिजे, जिथे N डेटासेटची आकार आहे.
-> लक्षात घ्या की Linear Regression पॅकेज योग्यरित्या समजावून घेण्यासाठी आम्हाला इनपुट डेटावर `reshape` करावी लागली. लिनीअर रिग्रेशन 2D-array इनपुट म्हणून अपेक्षित असतो, ज्यामध्ये प्रत्येक ओळ इनपुट वैशिष्ट्यांच्या व्हेक्टरसाठी असते. आमच्या बाबतीत, फक्त एक इनपुट असल्यामुळे, N×1 आकाराचा arrary हवा आहे, जिथे N म्हणजे डेटासेटचा आकार.
-
-आणि मग, आपण डेटा प्रशिक्षण आणि तपासणी सेटमध्ये विभागतो, जेणेकरून प्रशिक्षणानंतर आपल्याला मॉडेल तपासता येईल:
+यानंतर, आपल्याला डेटा train आणि test मध्ये विभाजित करावा लागेल जेणेकरून ट्रेनिंगनंतर मॉडेल चाचणी करता येईल:
```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)
```
-`fit` केल्यानंतरचा `LinearRegression` ऑब्जेक्टमध्ये रिग्रेशनचे सर्व गुणांक असतात, जे `.coef_` प्रॉपर्टी वापरून पाहता येतात. आपल्या प्रकरणात, फक्त एक गुणांक आहे, जो सुमारे `-0.017` असावा. याचा अर्थ किंमती वेळेनुसार थोड्या प्रमाणात कमी होतात, पण फार नाही, दररोज सुमारे 2 सेंट्स. आपण रिग्रेशनचा Y-ऍक्सिसशी छेद बिंदू `lin_reg.intercept_` वापरून पाहू शकतो - आमच्या प्रकरणात तो सुमारे `21` असेल, जे वर्षाच्या सुरुवातीच्या किंमतींना दर्शवते.
+`LinearRegression` वस्तूमध्ये `fit` केल्यानंतर सर्व रिग्रेशनचे गुणांक असतात, जे `.coef_` प्रॉपर्टी वापरून प्राप्त करता येतात. आपल्या बाबतीत, केवळ एक गुणांक आहे, जो सुमारे `-0.017` असावा. याचा अर्थ किंमती थोड्या प्रमाणात काळानुसार कमी होत असल्याचे दिसते, सुमारे २ सेंट प्रति दिवस इतके. आपण रिग्रेशनच्या Y-अक्षाशी छेदन बिंदू देखील `lin_reg.intercept_` वापरून प्राप्त करू शकतो - आपल्या बाबतीत ते सुमारे `21` असले पाहिजे, जे वर्षाच्या सुरुवातीला किंमत दर्शविते.
-आपल्या मॉडेलची अचूकता पाहण्यासाठी, आपण टेस्ट डेटासेटवर किंमतींचा अंदाज लावू शकतो, आणि नंतर आपल्या अंदाजित किंमती अपेक्षित किंमतींशी किती जवळ आहेत हे मोजू शकतो. हे root mean square error (RMSE) मेट्रिक वापरून केले जाऊ शकते, जे अपेक्षित आणि अंदाजित किंमतींतील सर्व वर्ग फरकांचा मूळ सरासरी आहे.
+आपल्या मॉडेलचे अचूकता तपासण्यासाठी, आपण चाचणी डेटासेटवर किंमती अंदाजित करू शकतो आणि नंतर आमच्या अंदाजांना अपेक्षित मूल्यांशी किती जवळ आहेत हे मोजू शकतो. हे रूट मीन स्क्वेअर एरर (RMSE) मेट्रिक्स वापरून केले जाऊ शकते, जे अपेक्षित आणि अंदाजित मूल्यांमधील सर्व स्क्वेअर्ड फरकांच्या मध्यम मूळ आहे.
```python
pred = lin_reg.predict(X_test)
@@ -215,37 +217,38 @@ pred = lin_reg.predict(X_test)
rmse = np.sqrt(mean_squared_error(y_test,pred))
print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)')
```
-
-आपला त्रुटी सुमारे 2 गुण आहे, जो ~17% आहे. फारच चांगले नाही. मॉडेल गुणवत्ता दर्शविणारा आणखी एक निर्देशांक म्हणजे **निर्धारण गुणांक** (coefficient of determination), जो खालीलप्रमाणे मिळवता येतो:
+
+आमची चूक सुमारे २ पॉइंट आहे, जी ~१७% आहे. फार चांगले नाही. मॉडेलच्या गुणवत्तेचे दुसरे निर्देशांक म्हणजे **निर्धारण गुणांक**, जो असे मिळवला जाऊ शकतो:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
-जर हा मूल्य 0 असेल, तर याचा अर्थ मॉडेल इनपुट डेटा लक्षात घेत नाही आणि तो *सर्वात वाईट रेषीय भाकीतकार* म्हणून काम करतो, जो फक्त निकालाचा सरासरी मूल्य आहे. 1 ची किंमत म्हणजे आपण सर्व अपेक्षित आउटपुट परिपूर्णपणे भाकीत करू शकतो. आमच्या प्रकरणात, हा गुणांक साधारणपणे 0.06 आहे, जो खूप कमी आहे.
+
+जर मूल्य ० असेल तर याचा अर्थ मॉडेल इनपुट डेटाला विचारात घेत नाही आणि *सर्वात वाईट रेखीय अनुमानकार* म्हणून कार्य करते, जे फक्त परिणामीचा सरासरी मूल्य आहे. मूल्य १ असणे म्हणजे आम्ही सर्व अपेक्षित आउटपुट पूर्णपणे अंदाजित करू शकतो. आपल्या बाबतीत, गुणांक सुमारे ०.०६ आहे, जो खूप कमी आहे.
-आपण टेस्ट डेटासह रिग्रेशन लाइनचा ग्राफ सुद्धा पाहू शकतो, ज्यामुळे रिग्रेशन कसे काम करते हे चांगल्या प्रकारे समजेल:
+आपण चाचणी डेटा रिग्रेशन रेषेसह प्लॉट करू शकतो जेणेकरून रिग्रेशन आपल्यासाठी कसे कार्य करते हे चांगल्या प्रकारे पाहता येईल:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
-
+
## बहुपदीय रिग्रेशन
-रेषीय फलनाचा आणखी एक प्रकार म्हणजे बहुपदीय रिग्रेशन (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` या चलाचा वर्ग (square) इनपुटमध्ये समाविष्ट केला, तर आपल्याला पॅराबोलिक वक्र fitting करता येईल, ज्याची किमान बिंदू वर्षात कुठल्यातरी ठिकाणी असू शकतो.
-Scikit-learn मध्ये डेटा प्रक्रिया एकत्र करण्यासाठी उपयुक्त [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) उपलब्ध आहे. **pipeline** म्हणजे **estimators** चा साखळ. आपल्या प्रकरणात, आपण एक पाइपलाइन तयार करू ज्यात आधी बहुपदीय गुणधर्म जोडले जातील आणि नंतर रिग्रेशन प्रशिक्षित केला जाईल:
+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
@@ -255,61 +258,83 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
+
+`PolynomialFeatures(2)` वापरणे म्हणजे आपण दुसऱ्या-श्रेणीतील सर्व बहुपदीय समाविष्ट करू, आपल्या बाबतीत म्हणजे `DayOfYear`2. पण जर दोन इनपुट वेरिएबल्स X आणि Y असतील तर हे X2, XY आणि Y2 जोडेल. आपण हवे असल्यास अधिक उच्च-श्रेणीचे बहुपदीय देखील वापरू शकतो.
+
+पाइपलाईन्सचा वापर मूळ `LinearRegression` ऑब्जेक्टसारखा केला जाऊ शकतो, म्हणजे आपण `fit` करू शकतो आणि नंतर `predict` करून अंदाजित परिणाम मिळवू शकतो:
+
+```python
+pred = pipeline.predict(X_test)
+
+rmse = np.sqrt(mean_squared_error(y_test,pred))
+print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)')
+
+score = pipeline.score(X_train,y_train)
+print('Model determination: ', score)
+```
+
+सोप्या वक्र कर्वासाठी, आपण `np.linspace` वापरतो जेणेकरून एकसमान इनपुट मूल्यांची श्रेणी तयार होते, थेट अनियोजित चाचणी डेटावर प्लॉट करण्याऐवजी (जे झिगझॅग रेषा तयार करेल):
-`PolynomialFeatures(2)` वापरल्याचा अर्थ आपल्याला इनपुट डेटातील सर्व दुसऱ्या दर्जाचा बहुपदीय समाविष्ट करायचा आहे. आपल्या बाबतीत म्हणजे फक्त `DayOfYear`2 असेल, पण जर दोन इनपुट चल X आणि Y असतील, तर हे X2, XY आणि Y2 जोडेल. आपण हवे असल्यास उच्च दर्जाचे बहुपदी देखील वापरू शकतो.
+```python
+X_range = np.linspace(X_test.min(), X_test.max(), 100).reshape(-1,1)
+y_range = pipeline.predict(X_range)
-पाइपलाइनचा वापर `LinearRegression` ऑब्जेक्टसारखा केला जाऊ शकतो, म्हणजे आपण पाइपलाइनला `fit` करू शकतो आणि नंतर `predict` वापरून अंदाज मिळवू शकतो. खाली ग्राफिक दाखविते की टेस्ट डेटा आणि सुमारे जवळचे वक्र कसे दिसते:
+plt.scatter(X_test, y_test)
+plt.plot(X_range, y_range)
+```
+
+खाली टेस्ट डेटा आणि अंदाज लावणारा वक्र देणारा ग्राफ आहे:
-बहुपदीय रिग्रेशन वापरून आपल्याला थोडे कमी MSE आणि जास्त निर्धारण मिळू शकते, पण महत्त्वपूर्ण फरक नाही. आपल्याला अन्य गुणधर्म देखील लक्षात घ्यावे लागतील!
+बहुपदीय रिग्रेशन वापरून आपण किंचित कमी RMSE आणि जास्त निर्धारण गुणांक मिळवू शकतो, पण फारसे महत्त्वाचे वाढत नाही. आपल्याला इतर वैशिष्ट्ये विचारात घ्यावी लागतील!
-> आपण पाहू शकता की, भोपळ्यांच्या किमती Halloween च्या सुमारास जवळजवळ किमान असतात. आपण हे कसे समजावता?
+> आपण पाहू शकता की किमान भोपळ्यांच्या किमती काहीसे Halloween च्या आसपास आढळतात. आपण हे कसे स्पष्ट करू शकता?
-🎃 अभिनंदन, आपण असा मॉडेल बनवला आहे ज्याचा वापर पाय भोपळ्यांच्या किंमती भाकीत करण्यासाठी होऊ शकतो. आपण कदाचित सारखा प्रक्रिया सर्व भोपळ्यांच्या प्रकारांसाठी करू शकता, पण ते वेळखाऊ होईल. आता आपण आपल्या मॉडेलमध्ये भोपळ्याचा प्रकार कसा समाविष्ट करायचा ते शिकू!
+🎃 अभिनंदन, तुम्ही असा मॉडेल तयार केला आहे जो पाय भोपळ्यांच्या किमतींची भाकित करू शकतो. तुम्ही कदाचित सर्व भोपळ्यांच्या प्रकारांसाठी हा प्रक्रियाही पुनरावृत्ती करू शकता, पण ते tedious होईल. आता आपण शिकू की कसे आपल्या मॉडेलमध्ये भोपळ्याचे प्रकार विचारात घेतले जाऊ शकतात!
-## वर्गवारी गुणधर्म (Categorical Features)
+## श्रेणी वैशिष्ट्ये
-आदर्श जगात आपल्याला वेगवेगळ्या भोपळ्यांच्या प्रकारांसाठी किंमती भाकीत करायच्या असतात, तोही समान मॉडेल वापरून. पण `Variety` कॉलम इतर कॉलम्ससारखा नाही जसे `Month`, कारण त्यात अंकात्मक नसलेले मूल्य आहे. अशा कॉलम्सना **categorical** म्हणतात.
+आदर्श जगात, आपल्याला वेगवेगळ्या भोपळ्यांच्या प्रकारांसाठी किंमती एका मॉडेल वापरून भाकित करता याव्यात. मात्र, `Variety` कॉलम थोडा वेगळा आहे जसा `Month` सारखा कॉलम आहे, कारण यात संख्यात्मक नसलेली मूल्ये असतात. अशा कॉलम्सना **श्रेणी** कॉलम म्हणतात.
[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
-> 🎥 वरच्या चित्रावर क्लिक करा, वर्गवारी गुणधर्म वापरून थोडक्यात व्हिडिओ पाहण्यासाठी.
+> 🎥 वरिल प्रतिमा क्लिक करा श्रेणी वैशिष्ट्ये वापरण्याबाबत संक्षिप्त व्हिडिओ पाहण्यासाठी.
-येथे आपण पाहू शकतो की सरासरी किंमत प्रकारावर कशी अवलंबून आहे:
+येथे तुम्ही पाहू शकता की सरासरी किंमत प्रकारावर कशी अवलंबून आहे:
-प्रकार विचारात घेण्यासाठी, आपल्याला प्रथम त्याला अंकात्मक स्वरूपात रूपांतरित करणे किंवा **कोडिंग** करणे आवश्यक आहे. असे करण्याचे काही मार्ग आहेत:
+प्रकार विचारात घेण्यासाठी, प्रथम ते संख्यात्मक स्वरूपात रूपांतरित किंवा **एन्कोड** करणे आवश्यक आहे. यासाठी काही मार्ग आहेत:
-* सोप्या **न्यूमेरिक एनकोडिंग** मध्ये वेगवेगळ्या प्रकारांसाठी एक तक्ता तयार केला जातो, आणि नंतर त्या तक्त्यातील इंडेक्सनी नाम बदला जातो. पण रेषीय रिग्रेशनसाठी हा चांगला विचार नाही, कारण रेषीय रिग्रेशन इंडेक्समधील अंकात्मक मूल्य घेतो आणि त्याला गुणांकाने गुणून निकालात जोडतो. आमच्या प्रकरणात इंडेक्स नंबर आणि किंमतीत गैररेषीय संबंध स्पष्ट आहे, अगदी आपण इंडेक्स विशिष्ट क्रमाने ठेवला तरीही.
-* **वन-हॉट एनकोडिंग** मध्ये `Variety` कॉलमला 4 वेगळ्या कॉलम्समध्ये बदलले जाते, प्रत्येक कॉलम एका प्रकारासाठी. प्रत्येक कॉलम `1` असेल जर त्या रो वर दिलेल्या प्रकाराचा डेटा असेल, आणि 0 अन्यथा. याचा अर्थ, रेषीय रिग्रेशनमध्ये चार गुणांक असतील, एक प्रत्येक भोपळ्याच्या प्रकारासाठी, जो त्या खास प्रकारासाठी “प्रारंभ किंमती” (किंवा “अतिरिक्त किंमती”) साठी जबाबदार असेल.
+* सोपी **संख्यात्मक एन्कोडिंग** वेगवेगळ्या प्रकारांची यादी तयार करेल, आणि नंतर त्या प्रकाराचे नाव त्या यादीतील अनुक्रमांकाने बदलेल. रेषीय रिग्रेशनसाठी हे योग्य नाही कारण रिग्रेशन अनुक्रमांकाची वास्तविक संख्यात्मक किंमत घेतो आणि काही गुणाकाने गुणाकार करून निकालात जोडतो. आपल्या प्रकरणात, अनुक्रमांक आणि किंमत यातील संबंध स्पष्टपणे अवरेखीय आहे, जरी अनुक्रमांक विशिष्ट पद्धतीने क्रमबद्ध असले तरीही.
+* **वन-हॉट एन्कोडिंग** `Variety` कॉलमला ४ वेगळ्या कॉलम मध्ये विभागेल, म्हणजे प्रत्येक प्रकारासाठी एक कॉलम. प्रत्येक कॉलममध्ये संबंधित ओळ दिलेल्या प्रकारासाठी `1` आणि इतरांसाठी `0` असेल. म्हणजे रेषीय रिग्रेशनमध्ये चार गुणांक असतील, प्रत्येक भोपळ्याच्या प्रकारासाठी एक, जो त्या प्रकारासाठी "सुरुवातीचा किंमत" (किंवा "अतिरिक्त किंमत") म्हणून जबाबदार असेल.
-खालील कोड वन-हॉट एनकोडिंग कसा करायचा याचे उदाहरण दाखवतो:
+खालील कोडमध्ये वन-हॉट एन्कोडिंग कसे करायचे ते दाखवले आहे:
```python
pd.get_dummies(new_pumpkins['Variety'])
```
-
- ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
-----|-----------|-----------|--------------------------|----------
-70 | 0 | 0 | 0 | 1
-71 | 0 | 0 | 0 | 1
-... | ... | ... | ... | ...
-1738 | 0 | 1 | 0 | 0
-1739 | 0 | 1 | 0 | 0
-1740 | 0 | 1 | 0 | 0
-1741 | 0 | 1 | 0 | 0
+
+ ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
+----|-----------|-----------|--------------------------|----------
+70 | 0 | 0 | 0 | 1
+71 | 0 | 0 | 0 | 1
+... | ... | ... | ... | ...
+1738 | 0 | 1 | 0 | 0
+1739 | 0 | 1 | 0 | 0
+1740 | 0 | 1 | 0 | 0
+1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
-वन-हॉट एनकोडिंग केलेल्या प्रकाराचा इनपुट म्हणून वापरून रेषीय रिग्रेशन प्रशिक्षित करण्यासाठी, आपल्याला फक्त `X` आणि `y` डेटा योग्य प्रकारे इनिशियलाइझ करावा लागतो:
+वन-हॉट एन्कोडेड प्रकाराच्या इनपुटसह रेषीय रिग्रेशन प्रशिक्षणासाठी, आपल्याला फक्त `X` आणि `y` डेटास योग्यरित्या प्रारंभ करावा लागेल:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
-
-उर्वरित कोड अगदी अगोदर वापरलेले रेषीय रिग्रेशनसारखेच आहे. जर आपण हे वापरले तर आपल्याला रविवारी चतुर्थांश त्रुटी सुमारे अगदी समान मिळेल, पण निर्धारण गुणांक खूप जास्त (~77%) मिळेल. अजूनही अचूक भाकितांसाठी, आपण अनेक वर्गवारी गुणधर्म तसेच अंकात्मक गुणधर्म जसे की `Month` किंवा `DayOfYear` देखील विचारात घेऊ शकतो. सगळे गुणधर्म एकत्र करण्यासाठी `join` वापरू शकतो:
+
+बाकी कोड वर वापरलेल्या रेषीय रिग्रेशनसारखेच आहे. प्रयत्न केल्यावर तुम्हाला दिसेल की मीन स्क्वेअर एरर जवळजवळ सारखीच आहे, पण आपण बरेच जास्त निर्धारण गुणांक (~७७%) मिळवतो. अधिक अचूक अंदाजासाठी, आपण अधिक श्रेणी वैशिष्ट्ये तसेच संख्यात्मक वैशिष्ट्ये, जसे की `Month` किंवा `DayOfYear` वापरू शकतो. सर्व वैशिष्ट्यांचे एक मोठे एरे तयार करण्यासाठी आपण `join` वापरू शकतो:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@@ -318,12 +343,12 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
```
+
+येथे आपण `City` आणि `Package` प्रकार देखील विचारात घेत आहोत, ज्यामुळे RMSE 2.84 (१०.५%), आणि निर्धारण 0.94 आहे!
-येथे आपण `City` आणि `Package` प्रकार देखील विचारात घेतले आहेत, ज्यामुळे MSE 2.84 (10%) आणि निर्धारण 0.94 मिळतो!
-
-## एकत्र करून सर्व काही
+## सर्व एकत्र करणे
-सर्वात उत्तम मॉडेल बनवण्यासाठी, आपण जोडलेले (वन-हॉट एनकोड केलेले वर्गवारी + अंकात्मक) डेटा वर बहुपदीय रिग्रेशनचा उपयोग करू शकतो. आपल्यासाठी येथे संपूर्ण कोड आहे:
+सर्वोत्तम मॉडेल तयार करण्यासाठी, आपण वरील उदाहरणातील संयोजित (वन-हॉट एन्कोड केलेले श्रेणी + संख्यात्मक) डेटा बहुपदीय रिग्रेशनसह वापरू शकतो. येथे पूर्ण कोड दिला आहे:
```python
# प्रशिक्षण डेटा सेट करा
@@ -336,45 +361,45 @@ y = new_pumpkins['Price']
# ट्रेन-टेस्ट विभाजन करा
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
-# पाइपलाइन सेट करा आणि प्रशिक्षण द्या
+# पाइपलाइन सेटअप आणि प्रशिक्षण द्या
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
-# चाचणी डेटासाठी परिणाम भाकित करा
+# चाचणी डेटासाठी परिणाम भाकीत करा
pred = pipeline.predict(X_test)
-# MSE आणि निर्धारणाची गणना करा
-mse = np.sqrt(mean_squared_error(y_test,pred))
-print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
+# RMSE आणि निर्धारण गणना करा
+rmse = mean_squared_error(y_test, pred, squared=False)
+print(f'RMSE: {rmse:3.3} ({rmse/pred.mean()*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
+
+हे जवळजवळ ९७% चा सर्वोत्तम निर्धारण गुणांक आणि RMSE=2.23 (~८% अंदाज चूक) देईल.
-हे आपल्याला अंदाजे 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 |
+| मॉडेल | RMSE | निर्धारण |
+|-------|-----|---------------|
+| `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 |
-🏆 छान! आपण एकाच धड्यात चार रिग्रेशन मॉडेल्स तयार केले आणि मॉडेल गुणवत्ता 97% पर्यंत सुधारली. रिग्रेशनच्या अंतिम विभागात, आपण Logistic Regression बद्दल शिकाल ज्याचा उपयोग वर्ग ठरविण्यासाठी होतो.
+🏆 छान! तुम्ही एका धड्यात चार रिग्रेशन मॉडेल्स तयार केले आणि मॉडेलची गुणवत्ता ९७% पर्यंत सुधारली. रिग्रेशनच्या अंतिम भागात तुम्ही कॅटेगॉरिकल निर्धारणासाठी Logistic Regression बद्दल शिकलात.
---
## 🚀आव्हान
-हा नोटबुक वापरून विविध चल तपासून पहा, आणि तपासा की सहसंबंध मॉडेलच्या अचूकतेशी कसा संबंधित आहे.
+या नोटबुकमध्ये विविध चलांची चाचणी करा आणि पहा की सहसंबंध मॉडेलच्या अचूकतेशी कसा जुळतो.
-## [पोस्ट-लेक्चर क्विझ](https://ff-quizzes.netlify.app/en/ml/)
+## [धडा-नंतर क्विझ](https://ff-quizzes.netlify.app/en/ml/)
-## पुनरावलोकन व स्वअध्ययन
+## पुनरावलोकन व स्वअभ्यास
-या धड्यात आपण Linear Regression बद्दल शिकलो. रिग्रेशनचे आणखी महत्त्वाचे प्रकार आहेत. Stepwise, Ridge, Lasso आणि Elasticnet तंत्रांबद्दल वाचा. अधिक शिकण्यासाठी एक चांगला अभ्यासक्रम म्हणजे [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
+या धड्यामध्ये आपण रेषीय रिग्रेशन बद्दल शिकलो. रिग्रेशनचे इतर महत्त्वाचे प्रकारही आहेत. Stepwise, Ridge, Lasso आणि Elasticnet तंत्रज्ञानांची माहिती घ्या. अधिक शिकण्यासाठी Stanford Statistical Learning कोर्स देखील चांगला पर्याय आहे: [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
-## असाईनमेंट
+## स्वरूप
[मॉडेल तयार करा](assignment.md)
@@ -382,5 +407,5 @@ print('Model determination: ', score)
**अस्वीकरण**:
-हा दस्तऐवज AI भाषांतर सेवेचा वापर करून [Co-op Translator](https://github.com/Azure/co-op-translator) द्वारे भाषांतरित केला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया याचा विचार करा की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा चुकीची माहिती असू शकते. मूळ दस्तऐवज त्याच्या स्थानिक भाषेतच अधिकृत स्रोत मानला पाहिजे. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतर शिफारसीय आहे. या भाषांतराच्या वापरामुळे उद्भवणाऱ्या चुका किंवा गैरसमजांसाठी आम्ही जबाबदार नाही.
+हा दस्तऐवज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) चा वापर करून भाषांतरित केला आहे. आम्ही अचूकतेसाठी प्रयत्नशील आहोत, तरी कृपया लक्षात घ्या की स्वयंचलित अनुवादांमध्ये चुका किंवा अचूकतेच्या त्रुटी असू शकतात. मूळ दस्तऐवज त्याच्या मूळ भाषेत अधिकृत स्रोत मानावा. गंभीर माहितीसाठी व्यावसायिक मानवी अनुवादाची शिफारस केली जाते. या अनुवादाच्या वापरामुळे उद्भवणाऱ्या कोणत्याही गैरसमजुती किंवा चुकीच्या अर्थ लावण्याबाबत आम्ही जबाबदार नाही.
\ No newline at end of file
diff --git a/translations/mr/2-Regression/3-Linear/solution/notebook.ipynb b/translations/mr/2-Regression/3-Linear/solution/notebook.ipynb
index 26613a26a..4e0904252 100644
--- a/translations/mr/2-Regression/3-Linear/solution/notebook.ipynb
+++ b/translations/mr/2-Regression/3-Linear/solution/notebook.ipynb
@@ -4,14 +4,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## भोपळ्याच्या किंमतीसाठी रेषीय आणि बहुपदीय पुनरावृत्ती - धडा 3\n",
+ "## भोपळ्याच्या किंमतीसाठी रेषीय आणि बहुपद पुनर्रचना - धडा ३\n",
"\n",
- "आवश्यक लायब्ररी आणि डेटासेट लोड करा. डेटाला एका डेटाफ्रेममध्ये रूपांतरित करा ज्यामध्ये डेटाचा एक उपसंच असेल:\n",
+ "आवश्यक लायब्ररी आणि डेटासेट लोड करा. डेटाचे एक उपसेट असलेला डेटा फ्रेममध्ये रूपांतर करा:\n",
"\n",
- "- फक्त बशेलने किंमत दिलेले भोपळे मिळवा \n",
- "- दिनांक महिन्यात रूपांतरित करा \n",
- "- उच्च आणि निम्न किंमतींच्या सरासरीवरून किंमत मोजा \n",
- "- किंमतीला बशेल प्रमाणातील किंमतीचे प्रतिबिंबित रूपांतर करा \n"
+ "- फक्त बसलने किंमत असलेले भोपळे मिळवा\n",
+ "- तारखेचे महिन्यात रूपांतरण करा\n",
+ "- किंमत उच्च आणि कमी किमतींचा सरासरी म्हणून गणना करा\n",
+ "- किंमत बसल प्रमाणानुसार दर्शविण्यासाठी रूपांतर करा\n"
]
},
{
@@ -377,7 +377,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "स्कॅटरप्लॉट आपल्याला आठवण करून देते की आपल्याकडे फक्त ऑगस्ट ते डिसेंबरपर्यंतचा महिन्याचा डेटा आहे. रेखीय पद्धतीने निष्कर्ष काढण्यासाठी आपल्याला कदाचित अधिक डेटाची आवश्यकता आहे.\n"
+ "एक स्कॅटरप्लॉट आपल्याला आठवड्याच्या ऑगस्ट पासून डिसेंबरपर्यंत फक्त महिन्यांचा डेटा असल्याची आठवण करून देतो. आपण बहुधा रेषीय स्वरूपात निष्कर्ष काढण्यासाठी अधिक डेटाची गरज आहे.\n"
]
},
{
@@ -447,7 +447,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "चला पाहूया, काही सहसंबंध आहे का:\n"
+ ]
},
{
"cell_type": "code",
@@ -472,7 +474,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "असे दिसते की परस्परसंबंध खूपच कमी आहे, पण काहीतरी अधिक महत्त्वाचे नाते आहे - कारण वरील प्लॉटमधील किंमतीचे बिंदू अनेक वेगळ्या गटांमध्ये दिसत आहेत. चला वेगवेगळ्या भोपळ्याच्या प्रकारांचे दाखवणारा एक प्लॉट तयार करूया:\n"
+ "असं दिसतं की सहसंबंध फारसा मोठा नाहीये, पण काही दुसरं महत्त्वाचं नाते आहे - कारण वरच्या आकृतीतील किमती काही वेगळ्या गटांमध्ये दिसतात. चला एक आकृती तयार करू ज्यात वेगवेगळ्या भोपळा प्रकार दाखवले जातील:\n"
]
},
{
@@ -535,7 +537,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "सध्याच्या वेळेस, आपण फक्त एका प्रकारावर लक्ष केंद्रित करूया - **पाय प्रकार**.\n"
+ ]
},
{
"cell_type": "code",
@@ -582,9 +586,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### रेषीय प्रतिगमन\n",
+ "### रेषीय रिग्रेशन\n",
"\n",
- "आम्ही Scikit Learn वापरून रेषीय प्रतिगमन मॉडेल प्रशिक्षण देणार आहोत:\n"
+ "आम्ही रेषीय रिग्रेशन मॉडेल प्रशिक्षणासाठी Scikit Learn वापरणार आहोत:\n"
]
},
{
@@ -661,7 +665,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "रेषेचा उतार रेषीय प्रतिगमन गुणांपासून ठरवता येतो:\n"
+ ]
},
{
"cell_type": "code",
@@ -686,7 +692,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "आपण प्रशिक्षित मॉडेलचा वापर करून किंमत भाकीत करू शकतो:\n"
+ ]
},
{
"cell_type": "code",
@@ -714,11 +722,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### बहुपदीय प्रतिगमन\n",
+ "### बहुपद रिग्रेशन\n",
"\n",
- "कधी कधी वैशिष्ट्ये आणि परिणाम यांच्यातील संबंध स्वाभाविकपणे रेषीय नसतो. उदाहरणार्थ, भोपळ्याच्या किंमती हिवाळ्यात (महिने=1,2) जास्त असू शकतात, नंतर उन्हाळ्यात (महिने=5-7) कमी होतात आणि पुन्हा वाढतात. रेषीय प्रतिगमन या संबंधाचा अचूक अंदाज लावू शकत नाही.\n",
+ "कधी कधी वैशिष्ट्ये आणि परिणामांमधील संबंध नैसर्गिकरित्या रेषीय नसतो. उदाहरणार्थ, पांपकिनच्या किमती हिवाळ्यात (महिने=1,2) जास्त असू शकतात, नंतर उन्हाळ्यांत (महिने=5-7) कमी होतात, आणि पुन्हा वाढतात. रेषीय रिग्रेशन या संबंधाला अचूकपणे पकडू शकत नाही.\n",
"\n",
- "अशा परिस्थितीत, आपण अतिरिक्त वैशिष्ट्ये जोडण्याचा विचार करू शकतो. सोपा मार्ग म्हणजे इनपुट वैशिष्ट्यांपासून बहुपदांचा वापर करणे, ज्यामुळे **बहुपदीय प्रतिगमन** होईल. Scikit Learn मध्ये, आपण पाइपलाइन्स वापरून स्वयंचलितपणे बहुपदीय वैशिष्ट्ये पूर्व-गणना करू शकतो:\n"
+ "या परिस्थितीत, आपण अतिरिक्त वैशिष्ट्ये जोडण्याचा विचार करू शकतो. सोपा मार्ग म्हणजे इनपुट वैशिष्ट्यांमधून बहुपद तयार करणे, ज्यामुळे **बहुपद रिग्रेशन** होते. स्कikit Learn मध्ये, आपण पाइपलाइन वापरून स्वयंचलितपणे बहुपदी वैशिष्ट्ये पूर्व-संसाधित करू शकतो: \n"
]
},
{
@@ -773,22 +781,25 @@
"score = pipeline.score(X_train,y_train)\n",
"print('Model determination: ', score)\n",
"\n",
- "plt.scatter(X_test,y_test)\n",
- "plt.plot(sorted(X_test),pipeline.predict(sorted(X_test)))"
+ "X_range = np.linspace(X_test.min(), X_test.max(), 100).reshape(-1,1)\n",
+ "y_range = pipeline.predict(X_range)\n",
+ "\n",
+ "plt.scatter(X_test, y_test)\n",
+ "plt.plot(X_range, y_range)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "### विविध प्रकारांचे एन्कोडिंग\n",
+ "### एन्कोडिंग प्रकार\n",
"\n",
- "आदर्श परिस्थितीत, आम्हाला वेगवेगळ्या भोपळ्याच्या प्रकारांसाठी किंमतींचा अंदाज एकाच मॉडेलचा वापर करून लावायचा आहे. प्रकार लक्षात घेण्यासाठी, आपल्याला प्रथम त्याला संख्यात्मक स्वरूपात रूपांतरित करावे लागेल, किंवा **एन्कोड** करावे लागेल. हे करण्याचे अनेक मार्ग आहेत:\n",
+ "आदर्श जगात, आम्हाला वेगवेगळ्या भोपळ्याच्या प्रकारांसाठी किंमती एकाच मॉडेल वापरून अंदाज करण्याची क्षमता हवी आहे. प्रकार लक्षात घेतल्यास, प्रथम त्याला संख्यात्मक स्वरूपात रूपांतरित करणे आवश्यक आहे, किंवा **एन्कोड** करणे आवश्यक आहे. आम्ही हे करण्याचे काही मार्ग आहेत:\n",
"\n",
- "* साधे संख्यात्मक एन्कोडिंग, जे विविध प्रकारांची एक टेबल तयार करेल आणि नंतर त्या टेबलमधील अनुक्रमांकाने प्रकाराचे नाव बदलून टाकेल. हे रेषीय प्रतिगमनासाठी (linear regression) सर्वोत्तम कल्पना नाही, कारण रेषीय प्रतिगमन अनुक्रमांकाच्या संख्यात्मक मूल्याचा विचार करते, आणि हे संख्यात्मक मूल्य किंमतीशी संख्यात्मकदृष्ट्या संबंधित असण्याची शक्यता कमी असते.\n",
- "* वन-हॉट एन्कोडिंग, जे `Variety` स्तंभाला 4 वेगळ्या स्तंभांनी बदलून टाकेल, प्रत्येक प्रकारासाठी एक स्तंभ असेल, जो 1 असेल जर संबंधित रकाना दिलेल्या प्रकाराचा असेल, आणि अन्यथा 0 असेल.\n",
+ "* सोपी संख्यात्मक एन्कोडिंग जी वेगवेगळ्या प्रकारांची एक टेबल तयार करेल, आणि नंतर प्रकाराचे नाव त्या टेबलमधील अनुक्रमांकाने बदलेल. ही रेषीय प्रतिगमनासाठी सर्वोत्तम कल्पना नाही, कारण रेषीय प्रतिगमन अनुक्रमांकाचे संख्यात्मक मूल्य लक्षात घेतो, आणि ते संख्यात्मक मूल्य किंमतीशी संख्यात्मकरित्या संबंधित नसू शकते.\n",
+ "* वन-हॉट एन्कोडिंग, ज्यामध्ये `Variety` स्तंभ ४ वेगळ्या स्तंभांनी बदलला जाईल, प्रत्येक प्रकारासाठी एक, ज्यात दिलेल्या ओळीचा प्रकार असल्यास 1 आणि अन्यथा 0 असेल.\n",
"\n",
- "खालील कोड दाखवतो की आपण प्रकाराचे वन-हॉट एन्कोडिंग कसे करू शकतो:\n"
+ "खालील कोड दाखवतो की आपण कसे एखाद्या प्रकाराला वन-हॉट एन्कोड करू शकतो:\n"
]
},
{
@@ -936,9 +947,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### विविधतेवर आधारित रेषीय प्रतिगमन\n",
+ "### प्रकारांवर लिनिअर रिग्रेशन\n",
"\n",
- "आता आपण वर दिलेल्या कोडचा वापर करू, पण `DayOfYear` ऐवजी इनपुट म्हणून आपली वन-हॉट-एनकोड केलेली विविधता वापरू:\n"
+ "आता आपण वरच्या कोडचा वापर करू, पण `DayOfYear` च्या ऐवजी आपल्या वन-हॉट-एन्कोडेड प्रकाराला इनपुट म्हणून वापरणार आहोत:\n"
]
},
{
@@ -986,7 +997,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "आम्ही इतर वैशिष्ट्यांचा वापर देखील याच पद्धतीने करून पाहू शकतो आणि त्यांना `Month` किंवा `DayOfYear` सारख्या संख्यात्मक वैशिष्ट्यांसह एकत्रित करू शकतो:\n"
+ "आपण त्याच पद्धतीने इतर वैशिष्ट्ये वापरून पाहू शकतो आणि त्यांना संख्यात्मक वैशिष्ट्यांसह एकत्र करू शकतो, जसे की `Month` किंवा `DayOfYear`:\n"
]
},
{
@@ -1017,9 +1028,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### बहुपद रिग्रेशन\n",
+ "### बहुपद प्रतिगमन\n",
"\n",
- "बहुपद रिग्रेशन श्रेणीसंबंधी वैशिष्ट्यांसोबत वापरता येतो, जे वन-हॉट-एन्कोड केलेले असतात. बहुपद रिग्रेशन प्रशिक्षणासाठी कोड वर दिलेल्या उदाहरणासारखाच असेल.\n"
+ "बहुपद प्रतिगमन कॅटेगॉरिक वैशिष्ट्यांसह जेवन हॉट-एनकोड केलेले असतात, त्यांच्यासाठी देखील वापरता येऊ शकते. बहुपद प्रतिगमन प्रशिक्षित करण्याचा कोड त्याचप्रमाणे असेल जसे आपण वर पाहिले आहे.\n"
]
},
{
@@ -1066,7 +1077,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "\n---\n\n**अस्वीकरण**: \nहा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) चा वापर करून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी कृपया लक्षात ठेवा की स्वयंचलित भाषांतरे त्रुटी किंवा अचूकतेच्या अभावाने युक्त असू शकतात. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून उद्भवलेल्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही.\n"
+ "---\n\n\n**तोडगा**:\nहा दस्तऐवज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) वापरून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्न करतो, तरीही कृपया लक्षात घ्या की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेत कमतरता असू शकते. मूळ दस्तऐवज त्याच्या मूळ भाषेमध्ये अधिकृत स्रोत समजल्यास उत्तम. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतर करण्याचा सल्ला दिला जातो. या भाषांतराच्या वापरामुळे उद्भवलेल्या कोणत्याही गैरसमजुती किंवा चुकीच्या अर्थलागीसाठी आम्ही जबाबदार नाही.\n\n"
]
}
],
@@ -1096,13 +1107,7 @@
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
- "orig_nbformat": 2,
- "coopTranslator": {
- "original_hash": "d77bd89ae7e79780c68c58bab91f13f8",
- "translation_date": "2025-08-29T18:44:38+00:00",
- "source_file": "2-Regression/3-Linear/solution/notebook.ipynb",
- "language_code": "mr"
- }
+ "orig_nbformat": 2
},
"nbformat": 4,
"nbformat_minor": 2
diff --git a/translations/ne/.co-op-translator.json b/translations/ne/.co-op-translator.json
index caf0b0c11..e342c0504 100644
--- a/translations/ne/.co-op-translator.json
+++ b/translations/ne/.co-op-translator.json
@@ -36,8 +36,8 @@
"language_code": "ne"
},
"1-Introduction/4-techniques-of-ML/README.md": {
- "original_hash": "9d91f3af3758fdd4569fb410575995ef",
- "translation_date": "2025-09-06T06:33:57+00:00",
+ "original_hash": "84b1715a6be62ef1697351dcc5d7b567",
+ "translation_date": "2026-04-26T20:00:17+00:00",
"source_file": "1-Introduction/4-techniques-of-ML/README.md",
"language_code": "ne"
},
@@ -90,8 +90,8 @@
"language_code": "ne"
},
"2-Regression/3-Linear/README.md": {
- "original_hash": "26c53a922f1f1e8542b0ea41ff52221a",
- "translation_date": "2026-04-20T17:01:07+00:00",
+ "original_hash": "8b776e731c35b171d316d01d0e7b1369",
+ "translation_date": "2026-04-26T19:59:44+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "ne"
},
@@ -107,6 +107,12 @@
"source_file": "2-Regression/3-Linear/solution/Julia/README.md",
"language_code": "ne"
},
+ "2-Regression/3-Linear/solution/notebook.ipynb": {
+ "original_hash": "6781223ffbe8cfdaa38d0200f08e1288",
+ "translation_date": "2026-04-26T19:55:43+00:00",
+ "source_file": "2-Regression/3-Linear/solution/notebook.ipynb",
+ "language_code": "ne"
+ },
"2-Regression/4-Logistic/README.md": {
"original_hash": "abf86d845c84330bce205a46b382ec88",
"translation_date": "2025-09-06T06:26:08+00:00",
diff --git a/translations/ne/1-Introduction/4-techniques-of-ML/README.md b/translations/ne/1-Introduction/4-techniques-of-ML/README.md
index 19b93a2f6..863ec8e06 100644
--- a/translations/ne/1-Introduction/4-techniques-of-ML/README.md
+++ b/translations/ne/1-Introduction/4-techniques-of-ML/README.md
@@ -1,123 +1,125 @@
# मेसिन लर्निङका प्रविधिहरू
-मेसिन लर्निङ मोडेलहरू निर्माण, प्रयोग, र मर्मत गर्ने प्रक्रिया तथा तिनीहरूले प्रयोग गर्ने डाटा अन्य विकास कार्यप्रवाहहरू भन्दा धेरै फरक छ। यस पाठमा, हामी यस प्रक्रियालाई स्पष्ट पार्नेछौं र तपाईंलाई जान्न आवश्यक मुख्य प्रविधिहरूको रूपरेखा प्रस्तुत गर्नेछौं। तपाईं:
+मेसिन लर्निङ मोडेलहरू निर्माण गर्ने, प्रयोग गर्ने, र मर्मत गर्ने प्रक्रिया तथा ती मोडेलहरूले प्रयोग गर्ने डाटा धेरै अन्य विकास कार्यप्रवाहहरूभन्दा धेरै फरक प्रक्रिया हो। यस पाठमा, हामी यस प्रक्रियालाई प्रष्ट पार्नेछौं, र तपाईंले जान्नु पर्ने मुख्य प्रविधिहरूको रूपरेखा बनाउनेछौं। तपाईंले:
-- मेसिन लर्निङको आधारभूत प्रक्रियाहरू उच्च स्तरमा बुझ्नुहुनेछ।
-- 'मोडेल', 'पूर्वानुमान', र 'प्रशिक्षण डाटा' जस्ता आधारभूत अवधारणाहरू अन्वेषण गर्नुहुनेछ।
+- उच्च स्तरमा मेसिन लर्निङको आधारभूत प्रक्रियाहरू बुझ्ने।
+- 'मोडेलहरू', 'पूर्वानुमानहरू', र 'प्रशिक्षण डाटा' जस्ता आधारभूत अवधारणा अन्वेषण गर्ने।
-## [पाठ अघि क्विज](https://ff-quizzes.netlify.app/en/ml/)
+## [पूर्व-पाठ क्विज](https://ff-quizzes.netlify.app/en/ml/)
-[](https://youtu.be/4NGM0U2ZSHU "मेसिन लर्निङका प्रविधिहरू - सुरुवात")
+[](https://youtu.be/4NGM0U2ZSHU "ML for beginners - Techniques of Machine Learning")
-> 🎥 माथिको तस्बिरमा क्लिक गरेर यस पाठको छोटो भिडियो हेर्नुहोस्।
+> 🎥 माथिको छवि क्लिक गरी यस पाठमा छोटो भिडियो हेर्नुहोस्।
## परिचय
-उच्च स्तरमा, मेसिन लर्निङ (ML) प्रक्रिया निर्माण गर्ने कला विभिन्न चरणहरूमा विभाजित छ:
+उच्च स्तरमा मेसिन लर्निङ (एमएल) प्रक्रिया निर्माण गर्ने कला केही चरणहरूमा बनेको हुन्छ:
-1. **प्रश्न तय गर्नुहोस्**। अधिकांश ML प्रक्रियाहरू यस्तो प्रश्न सोधेर सुरु हुन्छन् जसलाई साधारण सर्तहरूमा आधारित प्रोग्राम वा नियम-आधारित इन्जिनले उत्तर दिन सक्दैन। यी प्रश्नहरू प्रायः डाटाको संग्रहमा आधारित पूर्वानुमानहरू वरिपरि घुम्छन्।
-2. **डाटा सङ्कलन र तयारी गर्नुहोस्**। तपाईंको प्रश्नको उत्तर दिनको लागि, तपाईंलाई डाटा चाहिन्छ। तपाईंको डाटाको गुणस्तर र कहिलेकाहीं मात्रा तपाईंको प्रारम्भिक प्रश्नको उत्तर दिन कत्तिको सक्षम छ भन्ने निर्धारण गर्दछ। डाटालाई दृश्यात्मक बनाउनु यो चरणको महत्त्वपूर्ण पक्ष हो। यस चरणमा डाटालाई प्रशिक्षण र परीक्षण समूहमा विभाजन गरेर मोडेल निर्माण गर्ने कार्य पनि समावेश छ।
-3. **प्रशिक्षण विधि चयन गर्नुहोस्**। तपाईंको प्रश्न र डाटाको प्रकृतिको आधारमा, तपाईंले मोडेललाई कसरी प्रशिक्षण दिने भन्ने निर्णय गर्नुपर्छ ताकि डाटालाई राम्रोसँग प्रतिबिम्बित गर्न र त्यसको विरुद्ध सही पूर्वानुमान गर्न सकियोस्। यो ML प्रक्रियाको भाग हो जसमा विशिष्ट विशेषज्ञता र प्रायः धेरै प्रयोग आवश्यक हुन्छ।
-4. **मोडेललाई प्रशिक्षण दिनुहोस्**। तपाईंको प्रशिक्षण डाटाको प्रयोग गरेर, तपाईं विभिन्न एल्गोरिदमहरूको प्रयोग गरेर मोडेललाई डाटामा ढाँचाहरू चिन्न प्रशिक्षण दिनुहुन्छ। मोडेलले आन्तरिक तौलहरू प्रयोग गर्न सक्छ जसलाई समायोजन गरेर डाटाको केही भागलाई अन्य भागहरू भन्दा प्राथमिकता दिन सकिन्छ ताकि राम्रो मोडेल निर्माण गर्न सकियोस्।
-5. **मोडेलको मूल्याङ्कन गर्नुहोस्**। तपाईंले सङ्कलित सेटबाट पहिले कहिल्यै नदेखिएको डाटा (तपाईंको परीक्षण डाटा) प्रयोग गरेर मोडेल कत्तिको राम्रो प्रदर्शन गरिरहेको छ हेर्नुहुन्छ।
-6. **प्यारामिटर ट्युनिङ**। तपाईंको मोडेलको प्रदर्शनको आधारमा, तपाईं विभिन्न प्यारामिटरहरू वा चरहरू प्रयोग गरेर प्रक्रिया पुनः गर्न सक्नुहुन्छ जसले मोडेललाई प्रशिक्षण दिन प्रयोग गरिएका एल्गोरिदमहरूको व्यवहारलाई नियन्त्रण गर्दछ।
-7. **पूर्वानुमान गर्नुहोस्**। नयाँ इनपुटहरू प्रयोग गरेर तपाईंको मोडेलको सटीकता परीक्षण गर्नुहोस्।
+1. **प्रश्न तय गर्नुहोस्।** धेरै एमएल प्रक्रियाहरू एक यस्तो प्रश्न सोधेर सुरु हुन्छन् जुन सरल सशर्त प्रोग्राम वा नियम-आधारित इन्जिनले उत्तर दिन सक्दैन। यी प्रश्नहरू प्रायः डाटा सङ्ग्रहमा आधारित पूर्वानुमानहरू वरिपरि घूम्छन्।
+2. **डाटा सङ्कलन र तयारी गर्नुहोस्।** आफ्नो प्रश्नको उत्तर दिन सक्षम हुन, तपाईंलाई डाटा आवश्यक हुन्छ। डाटाको गुणस्तर र कहिलेकाहीं मात्राले तपाईंको आरम्भिक प्रश्न कति राम्रोसंग उत्तर दिन सकिन्छ भन्ने निर्धारण गर्दछ। डाटा दृश्यात्मकरण यस चरणको महत्त्वपूर्ण पक्ष हो। यस चरणमा मोडेल निर्माणका लागि डाटालाई प्रशिक्षण र परीक्षण समूहमा पनि विभाजन गरिन्छ।
+3. **प्रशिक्षण विधि चयन गर्नुहोस्।** आफ्नो प्रश्न र डाटाको प्रकृतिमा आधारित भएर, तपाईंले आफ्नो डाटालाई सबैभन्दा राम्रो ढङ्गले प्रतिबिम्बित गर्ने र सही पूर्वानुमान गर्न सक्ने मोडेल प्रशिक्षण गर्न कस्तो विधि प्रयोग गर्ने निर्णय गर्नुपर्छ। यो एमएल प्रक्रियाको त्यो भाग हो जसमा विशिष्ट विशेषज्ञता र प्रायः धेरै प्रयोग आवश्यक पर्छ।
+4. **मोडेल प्रशिक्षण गर्नुहोस्।** आफ्नो प्रशिक्षण डाटाको प्रयोग गरी विभिन्न एल्गोरिदमहरू प्रयोग गरेर मोडेललाई डाटामा रहेका ढाँचाहरू चिन्ने गरी प्रशिक्षण गर्नुहुन्छ। मोडेलले आन्तरिक तौलहरू प्रयोग गर्न सक्छ जुन समायोजन गरेर डाटाका केही भागहरूलाई बढी प्राथमिकता दिन सक्छ र राम्रो मोडेल निर्माण गर्न सक्छ।
+5. **मोडेल मूल्याङ्कन गर्नुहोस्।** तपाईंले कहिल्यै नदेखेको डाटा (तपाईंको परीक्षण डाटा) प्रयोग गरेर मोडेल कति राम्रो छ हेर्नुहुन्छ।
+6. **प्यारामिटर ट्यूनिंग।** मोडेलको प्रदर्शनका आधारमा, तपाईंले प्रशिक्षणमा प्रयोग गरिएका एल्गोरिदमहरूको व्यवहार नियन्त्रण गर्ने विभिन्न प्यारामिटरहरू वा चरहरूलाई परिवर्तन गरी प्रक्रिया पुन: गर्न सक्नुहुन्छ।
+7. **पूर्वानुमान गर्नुहोस्।** नयाँ इनपुटहरूसँग मोडेलको सटीकताका लागि परीक्षण गर्नुहोस्।
-## कुन प्रश्न सोध्ने
+## कस्तो प्रश्न सोध्ने
-कम्प्युटरहरू डाटामा लुकेका ढाँचाहरू पत्ता लगाउन विशेष रूपमा कुशल छन्। यो उपयोगिता अनुसन्धानकर्ताहरूको लागि धेरै उपयोगी छ जसले कुनै निश्चित क्षेत्रको बारेमा प्रश्न सोध्छन् जसलाई सर्तहरूमा आधारित नियम इन्जिन बनाएर सजिलै उत्तर दिन सकिँदैन। उदाहरणका लागि, बीमाको काममा, डाटा वैज्ञानिकले धूम्रपान गर्ने र नगर्ने व्यक्तिको मृत्यु दरको बारेमा नियमहरू निर्माण गर्न सक्छ।
+कम्प्युटरहरू डाटामा लुकेका ढाँचाहरू पत्ता लगाउन विशेष दक्ष हुन्छन्। यो उपयोगिता अनुसन्धानकर्ताहरूका लागि धेरै उपयोगी हुन्छ जसले सशर्त नियम-इन्जिन सिर्जना गरेर सजिलै उत्तर नदिइने प्रश्नहरू सोधेका हुन्छन्। उदाहरणका लागि, एक बीमाकर्मी कार्यका लागि, डाटा वैज्ञानिकले बुकेको नियमहरू तयार पार्न सक्छन् जुन धूम्रपान गर्ने र नगर्नेहरूका मृत्यु दरको लागि हुन्छ।
-तर जब धेरै अन्य चरहरू समीकरणमा ल्याइन्छन्, ML मोडेलले विगतको स्वास्थ्य इतिहासको आधारमा भविष्यको मृत्यु दरको पूर्वानुमान गर्न अधिक प्रभावकारी हुन सक्छ। एक खुशीको उदाहरण भनेको कुनै स्थानको अप्रिल महिनाको मौसमको पूर्वानुमान बनाउनु हो, जसमा अक्षांश, देशान्तर, जलवायु परिवर्तन, समुद्रको नजिकको दूरी, जेट स्ट्रिमको ढाँचाहरू, र अन्य धेरै डाटाहरू समावेश छन्।
+तर जब धेरै अन्य चरहरूलाई पनि समावेश गरिन्छ, एमएल मोडेलले विगतको स्वास्थ्य इतिहासमा आधारित भविष्यको मृत्यु दरहरू पूर्वानुमान गर्न अधिक प्रभावकारी साबित हुन सक्छ। एउटा रमाइलो उदाहरण हुन सक्छ, दिइएको स्थानमा अप्रिल महिनाको मौसम पूर्वानुमान बनाउने, जसमा अक्षांश, देशांश, जलवायु परिवर्तन, समुद्रको नजिकाई, जेट स्ट्रीमका ढाँचाहरू लगायत धेरै डाटाहरू समावेश छन्।
-✅ यो [स्लाइड डेक](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) मा मौसम मोडेलहरूको ऐतिहासिक दृष्टिकोण प्रस्तुत गरिएको छ जसले मौसम विश्लेषणमा ML प्रयोगको बारेमा जानकारी दिन्छ।
+✅ यस [स्लाइड डेक](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) मा मौसम मोडेलहरू सम्बद्ध इतिहासात्मक दृष्टिकोणबाट एमएलको प्रयोगसम्बन्धी जानकारी छ।
-## निर्माण अघि कार्यहरू
+## मोडेल निर्माण अघि गर्नु पर्ने कामहरू
-तपाईंको मोडेल निर्माण गर्न सुरु गर्नु अघि, तपाईंले पूरा गर्नुपर्ने केही कार्यहरू छन्। तपाईंको प्रश्न परीक्षण गर्न र मोडेलको पूर्वानुमानको आधारमा परिकल्पना बनाउन, तपाईंले केही तत्वहरू पहिचान र कन्फिगर गर्न आवश्यक छ।
+मोडेल निर्माण सुरु गर्नु अघि, तपाईंले केही कामहरू पूरा गर्न आवश्यक हुन्छ। तपाईंको प्रश्न परीक्षण गर्न र मोडेलको पूर्वानुमानमा आधारित एउटा परिकल्पना बनाउन, तपाईंले केहि अङ्गहरू पहिचान गर्न र कन्फिगर गर्न आवश्यक हुन्छ।
### डाटा
-तपाईंको प्रश्नको उत्तर कुनै निश्चितताका साथ दिनको लागि, तपाईंलाई सही प्रकारको पर्याप्त डाटा चाहिन्छ। यस बिन्दुमा तपाईंले दुई काम गर्नुपर्छ:
+तपाईंको प्रश्नलाई प्रमाणिकतासँग उत्तर दिन सक्षम हुन, तपाईंलाई सही प्रकारको पर्याप्त डाटा चाहिन्छ। यस बिन्दुमा गर्नु पर्ने दुई कुरा छन्:
-- **डाटा सङ्कलन गर्नुहोस्**। डाटा विश्लेषणमा निष्पक्षताको बारेमा अघिल्लो पाठलाई ध्यानमा राख्दै, तपाईंले आफ्नो डाटा सावधानीपूर्वक सङ्कलन गर्नुपर्छ। यस डाटाको स्रोतहरू, यसमा हुन सक्ने कुनै पनि अन्तर्निहित पूर्वाग्रहहरू, र यसको उत्पत्तिको दस्तावेजीकरणको बारेमा सचेत रहनुहोस्।
-- **डाटा तयार गर्नुहोस्**। डाटा तयारी प्रक्रियामा धेरै चरणहरू समावेश छन्। यदि डाटा विभिन्न स्रोतहरूबाट आएको छ भने तपाईंले डाटालाई एकत्रित गर्न र सामान्यीकरण गर्न आवश्यक हुन सक्छ। तपाईंले स्ट्रिङलाई सङ्ख्यामा रूपान्तरण गर्ने (जस्तै [क्लस्टरिङ](../../5-Clustering/1-Visualize/README.md) मा गरिन्छ) जस्ता विभिन्न विधिहरू प्रयोग गरेर डाटाको गुणस्तर र मात्रा सुधार गर्न सक्नुहुन्छ। तपाईंले मूल डाटाको आधारमा नयाँ डाटा उत्पन्न गर्न सक्नुहुन्छ (जस्तै [वर्गीकरण](../../4-Classification/1-Introduction/README.md) मा गरिन्छ)। तपाईंले डाटालाई सफा र सम्पादन गर्न सक्नुहुन्छ (जस्तै हामी [वेब एप](../../3-Web-App/README.md) पाठ अघि गर्नेछौं)। अन्ततः, तपाईंले प्रशिक्षण प्रविधिहरूको आधारमा डाटालाई अनियमित र फेरबदल गर्न आवश्यक हुन सक्छ।
+- **डाटा सङ्कलन।** डाटा विश्लेषणमा निष्पक्षताको बारेमा अघिल्लो पाठ सम्झँदै, सावधानीपूर्वक डाटा सङ्कलन गर्नुहोस्। यस डाटाका स्रोतहरू, यसमा रहेको कुनै पनि पूर्वाग्रहहरू, र यसको उत्पत्तिलाई सचेत रहनुहोस् र दस्तावेज गर्नुहोस्।
+- **डाटा तयारी।** डाटा तयारी प्रक्रियामा धेरै चरणहरू छन्। तपाईंलाई विभिन्न स्रोतबाट आएको डाटालाई एकसाथ जोड्न र सामान्य बनाउनु पर्न सक्छ। तपाईं स्ट्रिङलाई सङ्ख्यामा परिवर्तन गरेर डाटाको गुणस्तर र मात्रामा सुधार गर्न सक्नुहुन्छ (जस्तै हामीले [क्लस्टरिङ](../../5-Clustering/1-Visualize/README.md) मा गरेजस्तै)। तपाईं मूल डाटाबाट नयाँ डाटा पनि उत्पादन गर्न सक्नुहुन्छ (जस्तै [श्रेणीकरण](../../4-Classification/1-Introduction/README.md) मा गर्छौं)। तपाईं डाटालाई सफा र सम्पादन गर्न सक्नुहुन्छ (जस्तो हामी [वेब एप](../../3-Web-App/README.md) पाठ अघि गर्नेछौं)। अन्ततः, तपाईंले यसलाई यादृच्छिक पार्न र मिक्स गर्न पनि आवश्यक पर्न सक्छ, तपाईंको प्रशिक्षण प्रविधिहरूमा भर पर्छ।
-✅ डाटा सङ्कलन र प्रशोधन गरेपछि, तपाईंको प्रश्नलाई सम्बोधन गर्न यसको आकारले अनुमति दिनेछ कि छैन हेर्न एक क्षण लिनुहोस्। यो सम्भव छ कि डाटाले तपाईंको दिइएको कार्यमा राम्रो प्रदर्शन नगर्नेछ, जस्तै हामी [क्लस्टरिङ](../../5-Clustering/1-Visualize/README.md) पाठहरूमा पत्ता लगाउँछौं!
+✅ डाटा सङ्कलन र प्रक्रिया गरेपछि, यसको आकारले तपाईंको प्रश्न समाधान गर्न सक्नेछ कि सक्दैन जाँच गर्न केही समय लिनुहोस्। हामीले [क्लस्टरिङ](../../5-Clustering/1-Visualize/README.md) पाठहरूमा पनि देख्यौं कि कहिलेकाहीं डाटाले दिइएको कार्यमा राम्रो प्रदर्शन नगर्न सक्छ!
### विशेषताहरू र लक्ष्य
-[विशेषता](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) भनेको तपाईंको डाटाको मापनयोग्य सम्पत्ति हो। धेरै डाटासेटहरूमा यो 'मिति', 'आकार', वा 'रङ' जस्ता स्तम्भ शीर्षकको रूपमा व्यक्त गरिन्छ। तपाईंको विशेषता चर, प्रायः कोडमा `X` द्वारा प्रतिनिधित्व गरिन्छ, इनपुट चर हो जसले मोडेललाई प्रशिक्षण दिन प्रयोग गरिन्छ।
+[विशेषता](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) भनेको तपाईंको डाटाको मापन योग्य गुण हो। धेरै डेटासेटहरूमा यो 'मिति', 'आकार', वा 'रंग' जस्ता स्तम्भ शीर्षकको रूपमा व्यक्त हुन्छ। तपाईंको विशेषता चर, प्रायः कोडमा `X` को रूपमा प्रतिनिधित्व गरिन्छ, इनपुट चर हो जुन मोडेल प्रशिक्षणका लागि प्रयोग गरिनेछ।
-लक्ष्य भनेको तपाईंले भविष्यवाणी गर्न खोजिरहेको कुरा हो। लक्ष्य, प्रायः कोडमा `y` द्वारा प्रतिनिधित्व गरिन्छ, तपाईंको डाटाबाट सोध्न खोजिएको प्रश्नको उत्तर हो: डिसेम्बरमा कुन **रङ**का कद्दूहरू सस्तो हुनेछन्? सान फ्रान्सिस्कोमा कुन छिमेकमा सबैभन्दा राम्रो सम्पत्ति **मूल्य** हुनेछ? कहिलेकाहीं लक्ष्यलाई लेबल विशेषता पनि भनिन्छ।
+लक्ष्य भनेको त्यो वस्तु हो जुन तपाईं पूर्वानुमान गर्न खोज्दै हुनुहुन्छ। लक्ष्य, प्रायः कोडमा `y` को रूपमा प्रतिनिधित्व गरिन्छ, तपाईंले आफ्नो डाटाबाट सोध्ने प्रश्नको उत्तर जनाउँछ: डिसेम्बरमा, कुन **रंग**को सिँघडा सबैभन्दा सस्तो हुन्छ? स्यान फ्रान्सिस्कोमा, कुन छिमेकहरूमा सबैभन्दा राम्रो घरमूल्य **मूल्य** हुनेछ? कहिलेकाहीं लक्ष्यलाई लेबल विशेषता पनि भनिन्छ।
-### तपाईंको विशेषता चर चयन गर्नुहोस्
+### आफ्नो विशेषता चर चयन
-🎓 **विशेषता चयन र विशेषता निकासी** मोडेल निर्माण गर्दा कुन चर चयन गर्ने थाहा कसरी पाउने? तपाईंले सम्भवतः विशेषता चयन वा विशेषता निकासीको प्रक्रियाबाट जानुपर्नेछ ताकि सबैभन्दा राम्रो प्रदर्शन गर्ने मोडेलका लागि सही चरहरू चयन गर्न सकियोस्। तर यी समान कुरा होइनन्: "विशेषता निकासीले मूल विशेषताहरूको कार्यहरूबाट नयाँ विशेषताहरू सिर्जना गर्दछ, जबकि विशेषता चयनले विशेषताहरूको उपसमुच्ची फिर्ता गर्दछ।" ([स्रोत](https://wikipedia.org/wiki/Feature_selection))
+🎓 **विशेषता चयन र विशेषता निकासी** मोडेल बनाउँदा कुन चर छनोट गर्ने जान्न कसरी? तपाईंले सम्भवत: सबैभन्दा प्रभावकारी मोडेलका लागि सही चरहरू चयन गर्न विशेषता चयन वा विशेषता निकासी प्रक्रियामा जानुहुनेछ। यी एउटै होइनन्: "विशेषता निकासीले मूल विशेषताहरूको कार्यहरूबाट नयाँ विशेषताहरू सिर्जना गर्छ, जबकि विशेषता चयनले विशेषताहरूको उपसमूह फर्काउँछ।" ([स्रोत](https://wikipedia.org/wiki/Feature_selection))
-### तपाईंको डाटालाई दृश्यात्मक बनाउनुहोस्
+### आफ्नो डाटा दृश्यात्मकरण गर्नुहोस्
-डाटा वैज्ञानिकको उपकरणको महत्त्वपूर्ण पक्ष भनेको Seaborn वा MatPlotLib जस्ता उत्कृष्ट पुस्तकालयहरूको प्रयोग गरेर डाटालाई दृश्यात्मक बनाउने शक्ति हो। तपाईंको डाटालाई दृश्यात्मक रूपमा प्रस्तुत गर्दा तपाईंले उपयोग गर्न सकिने लुकेका सम्बन्धहरू पत्ता लगाउन सक्नुहुन्छ। तपाईंको दृश्यात्मकताले पूर्वाग्रह वा असन्तुलित डाटा पत्ता लगाउन पनि मद्दत गर्न सक्छ (जस्तै हामी [वर्गीकरण](../../4-Classification/2-Classifiers-1/README.md) मा पत्ता लगाउँछौं)।
+डाटा वैज्ञानिकको उपकरण बजारको एक महत्वपूर्ण पक्ष हो डाटालाई दृश्यात्मक बनाउन Seaborn वा MatPlotLib जस्ता धेरै उत्कृष्ट पुस्तकालयहरू प्रयोग गर्ने क्षमता। तपाईंको डाटालाई दृश्यमा प्रस्तुत गर्दा तपाईंले लुकेका सम्बन्धहरू पत्ता लगाउन सक्नुहुन्छ जसलाई तपाईं उपयोग गर्न सक्नुहुन्छ। तपाईंका दृश्यले पूर्वाग्रह वा असन्तुलित डाटा पत्ता लगाउन पनि मद्दत गर्न सक्छ (जस्तै हामीले [श्रेणीकरण](../../4-Classification/2-Classifiers-1/README.md) मा पत्ता लगायौं)।
-### तपाईंको डाटासेटलाई विभाजन गर्नुहोस्
+### आफ्नो डेटासेट विभाजन गर्नुहोस्
-प्रशिक्षण अघि, तपाईंले आफ्नो डाटासेटलाई असमान आकारका दुई वा बढी भागमा विभाजन गर्न आवश्यक छ जसले अझै डाटालाई राम्रोसँग प्रतिनिधित्व गर्दछ।
+प्रशिक्षण अघि, तपाईंको डेटासेटलाई दुई वा बढी असमान आकारका भागहरूमा विभाजन गर्न आवश्यक हुन्छ जुन अझै डाटालाई राम्रो प्रतिनिधित्व गर्दछन्।
-- **प्रशिक्षण**। डाटासेटको यो भाग मोडेललाई प्रशिक्षण दिन फिट गरिन्छ। यो सेट मूल डाटासेटको अधिकांश भाग हो।
-- **परीक्षण**। परीक्षण डाटासेट मूल डाटाबाट सङ्कलित स्वतन्त्र डाटाको समूह हो जसले निर्माण गरिएको मोडेलको प्रदर्शन पुष्टि गर्न प्रयोग गरिन्छ।
-- **मान्यकरण**। मान्यकरण सेट स्वतन्त्र उदाहरणहरूको सानो समूह हो जसले मोडेलको हाइपरप्यारामिटरहरू वा संरचनालाई ट्युन गर्न प्रयोग गरिन्छ ताकि मोडेल सुधार गर्न सकियोस्। तपाईंको डाटाको आकार र तपाईंले सोधिरहेको प्रश्नको आधारमा, तपाईंले यो तेस्रो सेट निर्माण गर्न आवश्यक नपर्न सक्छ (जस्तै हामी [समय श्रृंखला पूर्वानुमान](../../7-TimeSeries/1-Introduction/README.md) मा नोट गर्छौं)।
+- **प्रशिक्षण।** डेटासेटको यो भाग तपाईंको मोडेलमा फिट गरी प्रशिक्षणका लागि प्रयोग हुन्छ। यो सेट मूल डेटासेटको बहुसंख्यक हिस्सा हो।
+- **परीक्षण।** परीक्षण डेटासेट एउटा स्वतन्त्र डाटा समूह हो, प्रायः मूल डाटाबाट सङ्कलित, जुन तपाईंले निर्माण गरिएको मोडेलको प्रदर्शन पुष्टि गर्न प्रयोग गर्नुहुन्छ।
+- **मान्यकरण।** मान्यकरण सेट सानो स्वतन्त्र उदाहरणहरूको समूह हो जुन तपाईंले मोडेलका हाइपरप्यारामिटरहरू, वा संरचना, समायोजन गर्न प्रयोग गर्नुहुन्छ। तपाईंको डाटाको आकार र प्रश्नमा निर्भर भएर, तपाईंलाई यो तेस्रो सेट आवश्यक नपर्न सक्छ (जस्तै हामीले [समय श्रृंखला पूर्वानुमान](../../7-TimeSeries/1-Introduction/README.md) मा उल्लेख गरेका छौं)।
## मोडेल निर्माण
-तपाईंको प्रशिक्षण डाटाको प्रयोग गरेर, तपाईंको लक्ष्य विभिन्न एल्गोरिदमहरूको प्रयोग गरेर **प्रशिक्षण** गरेर मोडेल, वा तपाईंको डाटाको सांख्यिकीय प्रतिनिधित्व निर्माण गर्नु हो। मोडेललाई प्रशिक्षण दिनु भनेको यसलाई डाटामा उजागर गर्नु हो जसले यसलाई पत्ता लगाएको ढाँचाहरूको बारेमा धारणाहरू बनाउन, प्रमाणित गर्न, र स्वीकार वा अस्वीकार गर्न अनुमति दिन्छ।
+तपाईंको प्रशिक्षण डाटाको प्रयोग गरी, तपाईंको लक्ष्य मोडेल, वा तपाईंको डाटाको सांख्यिकीय प्रतिनिधित्व, विभिन्न एल्गोरिदमहरू प्रयोग गरेर **प्रशिक्षण** गर्नु हो। मोडेललाई प्रशिक्षण गर्दा यो डाटासँग चिनजान गर्ने अवसर पाउँछ र यो पत्ता लगाएको, प्रमाणित गरेको, र स्वीकार वा अस्वीकृत गरेको घुमावदार ढाँचाहरूमा अनुमान गर्न सक्षम हुन्छ।
-### प्रशिक्षण विधि चयन गर्नुहोस्
+### प्रशिक्षण विधि छनोट गर्नुहोस्
-तपाईंको प्रश्न र तपाईंको डाटाको प्रकृतिको आधारमा, तपाईंले यसलाई प्रशिक्षण दिन विधि चयन गर्नुहुनेछ। [Scikit-learn को दस्तावेज](https://scikit-learn.org/stable/user_guide.html) मा चरणबद्ध रूपमा जानुहोस् - जुन हामी यस पाठ्यक्रममा प्रयोग गर्छौं - तपाईं मोडेललाई प्रशिक्षण दिन धेरै तरिकाहरू अन्वेषण गर्न सक्नुहुन्छ। तपाईंको अनुभवको आधारमा, तपाईंले सबैभन्दा राम्रो मोडेल निर्माण गर्न धेरै फरक विधिहरू प्रयास गर्नुपर्नेछ। तपाईं सम्भवतः एक प्रक्रियाबाट जानुहुनेछ जहाँ डाटा वैज्ञानिकहरूले मोडेलको प्रदर्शन मूल्याङ्कन गर्छन्, यसलाई नदेखिएको डाटा खुवाउँछन्, सटीकता, पूर्वाग्रह, र अन्य गुणस्तर-घटाउने समस्याहरू जाँच गर्छन्, र दिइएको कार्यका लागि सबैभन्दा उपयुक्त प्रशिक्षण विधि चयन गर्छन्।
+तपाईंको प्रश्न र डाटाको प्रकृतिमा आधारित, तपाईं यसलाई प्रशिक्षण दिन विधि छनोट गर्नुहुनेछ। [Scikit-learn को दस्तावेज](https://scikit-learn.org/stable/user_guide.html) मार्फत जानुहोस् — जुन यो कोर्समा प्रयोग गरिन्छ — र मोडेल प्रशिक्षण गर्ने धेरै तरिकाहरू अन्वेषण गर्नुहोस्। तपाईंको अनुभवमा भर परे, तपाईंले सबैभन्दा राम्रो मोडेल बनाउन विभिन्न विधि प्रयास गर्नुपर्ने हुन सक्छ। प्रायः डेटा वैज्ञानिकहरूले त्यस्तो प्रक्रियाबाट गुज्रिन्छन् जहाँ उनीहरूले मोडेलको प्रदर्शन अवलोकन गर्छन्: नदेखिएको डाटा मोडेललाई दिन्छन्, सत्यता, पूर्वाग्रह, र अन्य गुणस्तर ह्रास गर्ने समस्याको जाँच गर्छन्, र सम्बन्धित प्रशिक्षण विधि छनोट गर्छन्।
-### मोडेललाई प्रशिक्षण दिनुहोस्
+### मोडेल प्रशिक्षित गर्नुहोस्
-तपाईंको प्रशिक्षण डाटासँग सुसज्जित, तपाईं 'फिट' गरेर मोडेल निर्माण गर्न तयार हुनुहुन्छ। तपाईंले धेरै ML पुस्तकालयहरूमा 'model.fit' को कोड देख्नुहुनेछ - यो समयमा तपाईंले आफ्नो विशेषता चरलाई मानहरूको एरेको रूपमा (प्रायः 'X') र लक्ष्य चरलाई (प्रायः 'y') पठाउनुहुन्छ।
+प्रशिक्षण डाटा लिएर, तपाईं तयार हुनुहुन्छ मोडेल बनाउनको लागि 'fit' गर्न। धेरै एमएल पुस्तकालयहरूमा तपाईंले कोड 'model.fit' पाउनु हुनेछ — यो समयमा तपाईले तपाईको विशेषता चरको एरे (प्रायः 'X') र लक्ष्य चर (प्रायः 'y') मोडेलमा पठाउनुहुन्छ।
-### मोडेलको मूल्याङ्कन गर्नुहोस्
+### मोडेल मूल्याङ्कन गर्नुहोस्
-एकपटक प्रशिक्षण प्रक्रिया पूरा भएपछि (ठूलो मोडेललाई प्रशिक्षण दिन धेरै पुनरावृत्ति, वा 'epochs', लाग्न सक्छ), तपाईंले परीक्षण डाटाको प्रयोग गरेर मोडेलको गुणस्तर मूल्याङ्कन गर्न सक्नुहुन्छ। यो डाटा मूल डाटाको उपसमुच्ची हो जसलाई मोडेलले पहिले विश्लेषण गरेको छैन। तपाईंले आफ्नो मोडेलको गुणस्तरको बारेमा मेट्रिक्सको तालिका प्रिन्ट गर्न सक्नुहुन्छ।
+प्रशिक्षण प्रक्रिया पूरा भएपछि (ठूलो मोडेललाई प्रशिक्षण दिन धेरै प्रक्रिया वा 'एपोक' लाग्न सकिन्छ), तपाईं परीक्षण डाटा प्रयोग गरी मोडेलको गुणस्तर मूल्याङ्कन गर्न सक्नुहुन्छ। यो डाटा मूल डाटाको एक उपसर्ग हो जसलाई मोडेलले पहिले कहिल्यै विश्लेषण गरेको थिएन। तपाईं मोडेलको गुणस्तरको मेट्रिक्सहरूको तालिका प्रिन्ट गर्न सक्नुहुन्छ।
🎓 **मोडेल फिटिङ**
-मेसिन लर्निङको सन्दर्भमा, मोडेल फिटिङले मोडेलको अन्तर्निहित कार्यको सटीकतालाई जनाउँछ जब यसले डाटालाई विश्लेषण गर्न प्रयास गर्छ जससँग यो परिचित छैन।
+मेसिन लर्निङको सन्दर्भमा, मोडेल फिटिङले मोडेलको आधारभूत कार्यक्षमताको सटीकतामा जनाउँछ जुन यसले परिचित नभएको डाटामा विश्लेषण गर्ने प्रयास गर्दछ।
-🎓 **अन्डरफिटिङ** र **ओभरफिटिङ** सामान्य समस्याहरू हुन् जसले मोडेलको गुणस्तरलाई घटाउँछन्, किनकि मोडेलले प्रशिक्षण डाटासँग न त पर्याप्त राम्रोसँग फिट गर्छ न त धेरै राम्रोसँग। यसले मोडेललाई प्रशिक्षण डाटासँग धेरै नजिक वा धेरै टाढा मिल्दो पूर्वानुमान गर्न बनाउँछ। ओभरफिट मोडेलले प्रशिक्षण डाटालाई धेरै राम्रोसँग पूर्वानुमान गर्छ किनभने यसले डाटाको विवरण र आवाजलाई धेरै राम्रोसँग सिकेको छ। अन्डरफिट मोडेल सटीक छैन किनभने यसले न त यसको प्रशिक्षण डाटालाई सही रूपमा विश्लेषण गर्न सक्छ न त यसले पहिले 'देखेको छैन' डाटालाई।
+🎓 **अन्डरफिटिङ** र **ओभरफिटिङ** सामान्य समस्याहरू हुन् जसले मोडेलको गुणस्तर घटाउँछ, किनभने मोडेल ठीकसँग नभएर धेरै राम्रोसँग फिट हुन्छ। यसले मोडेललाई प्रशिक्षण डाटासँग धेरै नजिक वा धेरै टाढा पूर्वानुमान गर्न बाध्य पार्दछ। एक ओभरफिट मोडेलले प्रशिक्षण डाटा धेरै राम्रोसँग पूर्वानुमान गर्छ किनकि यसले डाटाको विवरण र आवाजलाई पनि धेरै राम्ररी सिकिसकेको हुन्छ। एक अन्डरफिट मोडेल सही छैन किनभने यो न त आफ्नो प्रशिक्षण डाटा सहीसँग विश्लेषण गर्न सक्छ न त नदेखिएको डाटा।
-
-> [Jen Looper](https://twitter.com/jenlooper) द्वारा इन्फोग्राफिक
+
+> [जेन लुपर](https://twitter.com/jenlooper) द्वारा infographic
-## प्यारामिटर ट्युनिङ
+## प्यारामिटर ट्यूनिंग
-तपाईंको प्रारम्भिक प्रशिक्षण पूरा भएपछि, मोडेलको गुणस्तरलाई अवलोकन गर्नुहोस् र यसको 'हाइपरप्यारामिटरहरू' समायोजन गरेर सुधार गर्ने विचार गर्नुहोस्। यस प्रक्रियाको बारेमा [दस्तावेजमा](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott) थप पढ्नुहोस्।
+तपाईंको प्रारम्भिक प्रशिक्षण पूरा भएपछि, मोडेलको गुणस्तर निरीक्षण गर्नुहोस् र यसको 'हाइपरप्यारामिटरहरू' ट्यून गरेर सुधार गर्ने विचार गर्नुहोस्। यस प्रक्रियाबारे थप पढ्न यहाँ हेर्नुहोस् [दस्तावेजमा](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott)।
## पूर्वानुमान
-यो क्षण हो जहाँ तपाईंले आफ्नो मोडेलको सटीकता परीक्षण गर्न पूर्ण रूपमा नयाँ डाटा प्रयोग गर्न सक्नुहुन्छ। 'लागू गरिएको' ML सेटिङमा, जहाँ तपाईं उत्पादनमा मोडेल प्रयोग गर्न वेब सम्पत्ति निर्माण गर्दै हुनुहुन्छ, यो प्रक्रियाले प्रयोगकर्ता इनपुट सङ्कलन गर्न (उदाहरणका लागि बटन थिच्ने) चर सेट गर्न र मोडेललाई अनुमान वा मूल्याङ्कनको लागि पठाउन समावेश गर्न सक्छ।
+यो त्यो क्षण हो जहाँ तपाईं पूरै नयाँ डाटा प्रयोग गरेर आफ्नो मोडेलको शुद्धता परीक्षण गर्न सक्नुहुन्छ। 'प्रयोगात्मक' एमएल सेटिङमा, जहाँ तपाईं मोडेललाई उत्पादनमा प्रयोग गर्न वेब सम्पत्ति निर्माण गर्दै हुनुहुन्छ, यस प्रक्रियामा प्रयोगकर्ता इनपुट सङ्कलन (जस्तै बटन थिच्नु) र त्यसलाई मोडेलमा पठाएर अनुमान लगाउने, वा मूल्याङ्कन गर्ने समावेश हुन सक्छ।
-यी पाठहरूमा, तपाईंले यी चरणहरू कसरी प्रयोग गर्ने, निर्माण गर्ने, परीक्षण गर्ने, मूल्याङ्कन गर्ने, र पूर्वानुमान गर्ने - डाटा वैज्ञानिकको सबै इशाराहरू र थप, 'फुल स्ट्याक' ML इन्जिनियर बन्ने यात्रामा प्रगति गर्दै।
+यी पाठहरूमा, तपाईं यी चरणहरूमा कसरी डाटा तयारी गर्ने, मोडेल निर्माण गर्ने, परीक्षण गर्ने, मूल्याङ्कन गर्ने, र पूर्वानुमान गर्ने सिक्नुहुनेछ — डाटा वैज्ञानिकका सबै कामहरू र थप — तपाईं 'फुल स्ट्याक' एमएल इञ्जिनियर बन्ने यात्रामा अगाडि बढ्दै गर्दा।
---
-## 🚀 चुनौती
+## 🚀चुनौती
-ML अभ्यासकर्ताको चरणहरूको प्रवाह चार्ट बनाउनुहोस्। तपाईं अहिले प्रक्रियाको कुन भागमा हुनुहुन्छ? तपाईं कहाँ कठिनाइ पाउने भविष्यवाणी गर्नुहुन्छ? तपाईंलाई के सजिलो लाग्छ?
+एमएल अभ्यास गर्ने व्यक्तिको कदमहरूको फ्लो चार्ट बनाउनुहोस्। तपाईं अहिले प्रक्रियामा कहाँ हुनुहुन्छ? तपाईंलाई कहाँ कठिनाइ देखिन्छ? के तपाईंलाई सजिलो लाग्छ?
-## [पाठ पछि क्विज](https://ff-quizzes.netlify.app/en/ml/)
+## [पश्चात्-पाठ क्विज](https://ff-quizzes.netlify.app/en/ml/)
-## समीक्षा र आत्म अध्ययन
+## समीक्षा र आत्म-अध्ययन
-डाटा वैज्ञानिकहरूको दैनिक कामको बारेमा छलफल गर्ने अन्तर्वार्ताहरू अनलाइन खोज्नुहोस्। यहाँ [एक](https://www.youtube.com/watch?v=Z3IjgbbCEfs) छ।
+डेटा वैज्ञानिकहरूसँगको अन्तर्वार्ता अनलाइन खोज्नुहोस् जसले आफ्ना दैनिक कामका बारेमा कुरा गर्छन्। यहाँ एउटा छ [one](https://www.youtube.com/watch?v=Z3IjgbbCEfs)।
## असाइनमेन्ट
-[डाटा वैज्ञानिकसँग अन्तर्वार्ता गर्नुहोस्](assignment.md)
+[डेटा वैज्ञानिकसँग अन्तरवार्ता लिनुहोस्](assignment.md)
---
-**अस्वीकरण**:
-यो दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरी अनुवाद गरिएको हो। हामी यथासम्भव सटीकता सुनिश्चित गर्न प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादहरूमा त्रुटि वा अशुद्धता हुन सक्छ। यसको मूल भाषामा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्त्वपूर्ण जानकारीका लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याका लागि हामी जिम्मेवार हुने छैनौं।
\ No newline at end of file
+
+**अस्वीकरण**:
+यो कागजात AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) को प्रयोग गरेर अनुवाद गरिएको हो। हामी सहीतालाई सुनिश्चित गर्न प्रयास गर्छौं, तर कृपया जान्नुहोस् कि स्वचालित अनुवादमा गल्ती वा अशुद्धता हुन सक्दछ। मूल कागजात यसको मूल भाषामा आधिकारिक स्रोत मानिनु पर्छ। महत्वपूर्ण जानकारीका लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न भएका कुनै पनि गलत बुझाइ वा गलत व्याख्याको लागि हामी जिम्मेवार हौंन।
+
\ No newline at end of file
diff --git a/translations/ne/2-Regression/3-Linear/README.md b/translations/ne/2-Regression/3-Linear/README.md
index ef9cc10b9..d52c11440 100644
--- a/translations/ne/2-Regression/3-Linear/README.md
+++ b/translations/ne/2-Regression/3-Linear/README.md
@@ -1,97 +1,99 @@
-# स्किकिट-लर्न प्रयोग गरी रिग्रेसन मोडेल तयार पार्नुहोस्: रिग्रेसन चार तरिकाले
+# Scikit-learn प्रयोग गरेर रिग्रेशन मोडेल बनाउने: चार तरिकाले रिग्रेशन
-## शुरुवातकर्ताको नोट
+## शुरुवाती नोट
-लाइनर रिग्रेसन तब प्रयोग गरिन्छ जब हामी **संख्यात्मक मान** (उदाहरणका लागि, घरको मूल्य, तापक्रम, वा बिक्री) भविष्यवाणी गर्न चाहन्छौं।
-यो इनपुट फीचर र आउटपुट बीचको सम्बन्धलाई सर्वोत्तम प्रतिनिधित्व गर्ने सिधा रेखा खोज्छ।
+लाइनियर रिग्रेशन तब प्रयोग गरिन्छ जब हामी **संख्यात्मक मान** (उदाहरणका लागि, घरको मूल्य, तापमान, वा बिक्री) भविष्यवाणी गर्न चाहन्छौं।
+यो इनपुट विशेषताहरू र आउटपुट बीचको सम्बन्धलाई सबैभन्दा राम्रो प्रतिनिधित्व गर्ने सिधा रेखा खोजेर काम गर्छ।
-यस पाठमा, हामी अवधारणा बुझ्नमा केन्द्रित छौं र पछि थप उन्नत रिग्रेसन प्रविधिहरू अन्वेषण गर्नेछौं।
+यस पाठमा, हामी अवधारणा बुझ्नमा ध्यान केन्द्रित गर्छौं, र थप उन्नत रिग्रेशन प्रविधिहरू अन्वेषण गर्नु अघि।

-> इन्फोग्राफिक द्वारा [डासानी मडिपल्ली](https://twitter.com/dasani_decoded)
-## [पाठ अघि क्विज](https://ff-quizzes.netlify.app/en/ml/)
+> इनफोग्राफिक द्वारा [दसानी मडिपल्लि](https://twitter.com/dasani_decoded)
+
+## [पाठ अघि प्रश्नोत्तरी](https://ff-quizzes.netlify.app/en/ml/)
> ### [यो पाठ 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_ फाइलमा प्रीलोड गरिएको र पूर्व-सफा गरिएको छ। उक्त फाइलमा, कद्दूको मूल्य प्रति बसल नयाँ डाटा फ्रेममा देखाइएको छ। Visual Studio Code कोर्नेलहरूमा यी नोटबुकहरू चलाउन सक्नु पर्छ।
### तयारी
-स्मरणका लागि, तपाईं यस डाटालाई लोड गर्दै हुनुहुन्छ ताकि यससँग सम्बन्धित प्रश्नहरू सोध्न सक्नुहोस्।
+बिर्सनु हुँदैन, तपाईं यस डाटा लोड गर्दै हुनु हुन्छ प्रश्न सोध्नको लागि।
-- पम्पकिन किन्ने सबैभन्दा उपयुक्त समय कहिले हो?
-- मिनिएचर पम्पकिनको केसको मूल्य कति हुन सक्छ?
-- के म तिनीहरूलाई आधा-बुषेल बास्केटमा किन्ने वा 1 1/9 बुषेल बाकसद्वारा किन्ने?
-यस डाटामा अझै खोतलिरहौं।
+- कद्दू किन्ने सबैभन्दा उत्तम समय कहिले हो?
+- मलाई मिनिएचर कद्दूको एक केसको मूल्य कति अपेक्षा गर्न सक्छु?
+- के म तिनीहरूलाई आधा बसल झोला वा १ १/९ बसल बक्समा किन्ने?
-अघिल्लो पाठमा, तपाईंले Pandas डाटा फ्रेम सिर्जना गर्नुभयो र मूल डाटासेटको एक भाग प्रयोग गरी मूल्य बुषेल अनुसार सामान्यीकरण गर्नुभयो। यद्यपि, त्यति गर्दा तपाईंले करिब 400 डेटाप्वाइन्ट मात्र सङ्ग्रह गर्न सक्नुभयो र ती पनि केवल पतन महिनाहरूका लागि मात्र।
+हामी यस डाटामा अझ गहिराईमा पत्ता लगाउनेछौं।
-यस पाठको सम्बन्धित नोटबुकमा हामीले प्रीलोड गरिएको डाटा पुनः हेर्नुहोस्। डाटा प्रीलोड छ र एक प्रारम्भिक स्क्याटरप्लट चार्ट गरिएको छ जुन महिना डाटा देखाउँछ। सायद हामी थप सफाई गरेर डाटाको प्रकृतिबारे थप विवरण प्राप्त गर्न सक्छौं।
+अघिल्लो पाठमा, तपाईंले Pandas डाटा फ्रेम सिर्जना गर्नुभयो र मूल डाटासेटको अंशबाट यसलाई भरेर मूल्यलाई बसल अनुसार मानकीकृत गर्नुभयो। तर त्यसले लगभग ४०० डाटापोइन्ट मात्र र पतन महिनाहरूको लागि मात्र सङ्कलन गर्यो।
-## एक रेखीय रिग्रेसन रेखा
+यो पाठ संगै आएको नोटबुकमा प्रीलोड गरिएको डाटा हेरौं। डाटा प्रीलोड गरिएको छ र प्रारम्भिक स्क्याटरप्लट बनाइएको छ जुन महिना डाटालाई देखाउँछ। सायद हामी डाटा अझ सफा गरेर यसको प्रकृतिबारे थोरै थप जानकारी पाउन सक्छौं।
-पाठ 1 मा सिकेझैं, लाइनर रिग्रेसन अभ्यासको लक्ष्य भनेको एउटा रेखा प्लट गर्न सक्नु हो जुन:
+## एक लाइनियर रिग्रेशन लाइन
-- **चरहरूबीच सम्बन्ध देखाउँछ।** चरहरूबीचको सम्बन्ध देखाउने
-- **भविष्यवाणी गर्ने।** नयाँ डेटाप्वाइन्ट त्यहि रेखासँग कसरी सम्बन्धित हुन्छ भनी सही भविष्यवाणी गर्ने
+பाठ्यक्रम 1 मा सिकेझैं, लाइनियर रिग्रेशनको उद्देश्य यस्तो रेखा प्लट गर्नु हो कि:
-यहाँको रेखा निर्माण **कमसेकम-वर्ग रिग्रेसन (Least-Squares Regression)** मा सामान्य छ। “कमसेकम-वर्ग” त्यस्तो प्रक्रिया प्रकट गर्छ जसले मोडेलको कुल त्रुटि न्यूनतम गर्छ। हरेक डाटाप्वाइन्टका लागि, हामी मौलिक बिन्दु र हाम्रो रिग्रेसन रेखाबीचको उभिएको दूरी (अवशिष्ट भनिने) मापन गर्छौं।
+- **चरहरूको सम्बन्ध देखाउने**। चरहरू बीचको सम्बन्ध देखाउनुहोस्।
+- **भविष्यवाणी गर्ने**। नयाँ डाटापोइन्ट उक्त रेखाको सम्बन्धमा कहाँ पर्छ भनेर सही भविष्यवाणी गर्नुहोस्।
-यी अन्तरहरूलाई वर्ग गरेर दुई मुख्य कारणले:
+यो प्रायः **लीस्ट-स्क्वेर्स रिग्रेशन** द्वारा गरिन्छ। "लीस्ट-स्क्वेर्स" शब्दले हाम्रो मोडेलमा कुल त्रुटि न्यूनतम गर्ने क्रममा हो। प्रत्येक डाटापोइन्टमा, हामी वास्तविक बिन्दु र हाम्रो रिग्रेशन रेखा बीचको उर्ध्वाधर दूरी (जिसलाई अवशिष्ट भनिन्छ) मापन गर्छौं।
-1. **दिशा भन्दा परिमाण:** हामी -5 को त्रुटिलाई +5 जत्तिकै मान्न चाहन्छौं। वर्ग गर्दा सबै मान सकारात्मक हुन्छन्।
+हामी यी दूरीहरू वर्ग गर्द्छौं दुई मुख्य कारणले:
-2. **आउटलियरहरूलाई दण्ड:** वर्गले ठूला त्रुटि थप trọng दिन्छ, जसले रेखालाई टाढा रहेका पोइन्टहरू नजिक राख्न बाध्य पार्छ।
+1. **दिशाको सट्टा परिमाण:** हामी -5 त्रुटिलाई +5 त्रुटि जस्तै व्यवहार गर्न चाहन्छौं। वर्गले सबै मानहरू सकारात्मक बनाउँछ।
+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` को मान हो।
->
->
->
-> पहिले, ढलान `b` गणना गर्नुहोस्। इन्फोग्राफिक द्वारा [जेन लुपर](https://twitter.com/jenlooper)
->
-> अर्को शब्दहरूमा, र हाम्रो पम्पकिन डाटाको मूल प्रश्नलाई सन्दर्भ गर्दै: "महिना अनुसार प्रति बुषेल पम्पकिनको मूल्य पूर्वानुमान गर्न", `X` मूल्यलाई निर्देश गर्दछ र `Y` बिक्री हुने महिनालाई।
->
->
->
-> Y को मान गणना गर्नुहोस्। यदि तपाईं लगभग $4 तिर्दै हुनुहुन्छ भने, यो अप्रिल हुनुपर्छ! इन्फोग्राफिक [जेन लुपर](https://twitter.com/jenlooper) द्वारा
->
-> गणितले रेखाको ढलान देखाउनुपर्छ, जुन 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) जानुहोस् र कसरी संख्याहरूले रेखामा प्रभाव पार्छन् हेर्नुहोस्।
+>
+> `X` लाई 'व्याख्यात्मक चर' भनिन्छ। `Y` लाई 'निर्भर चर' भनिन्छ। रेखाको ढलान `b` हो र `a` y-अवरोध हो, जुन `X = 0` हुँदा `Y` को मान हो।
+>
+>
+>
+> पहिले, ढलान `b` गणना गर्नुहोस्। इनफोग्राफिक द्वारा [जन लुपर](https://twitter.com/jenlooper)
+>
+> अर्को शब्दमा, हाम्रो कद्दू डाटाको मूल प्रश्नमा सन्दर्भ गर्दै: "महिना अनुसार प्रति बसल कद्दूको मूल्य भविष्यवाणी गर्नुहोस्", यहाँ `X` मूल्य र `Y` बिक्रीको महिना हो।
+>
+>
+>
+> `Y` को मान गणना गर्नुहोस्। यदि तपाईं लगभग $4 तिर्नुहुन्छ भने, त्यो अप्रिल हुनुपर्छ! इनफोग्राफिक द्वारा [जन लुपर](https://twitter.com/jenlooper)
+>
+> रेखा गणनाले ढलान देखाउनु पर्छ, जसले अवरोधमा पनि निर्भर गर्दछ, अर्थात् `X = 0` हुँदा `Y` कहाँ हुन्छ।
+>
+> यी मानहरूको गणनाको विधि तपाईं [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) वेबसाइटमा हेर्न सक्नुहुन्छ। साथै, [यो लीस्ट-स्क्वेर्स क्याल्कुलेटर](https://www.mathsisfun.com/data/least-squares-calculator.html) मा गएर कसरी मानहरूले रेखालाई असर गर्छन् हेर्न सक्नुहुन्छ।
-## सहसम्बन्ध
+## सहसंबन्ध
-अझ एक शब्द बुझ्नुपर्छ जो हो **सहसम्बन्ध गुणांक** दिइएको X र Y चरहरू बीच। स्क्याटरप्लट प्रयोग गरी यो गुणांक छिटो दृश्य गर्न सकिन्छ। यदि डाटाप्वाइन्टहरू सधैं एक सिधा रेखामा छरिएका छन् भने उच्च सहसम्बन्ध हुन्छ, तर यदि डाटाप्वाइन्टहरू X र Y को बीचमा सबै ठाउँ छरिएका छन् भने कम सहसम्बन्ध हुन्छ।
+अर्को बुझ्न पर्ने शब्द हो **सहसंबन्ध गुणांक (Correlation Coefficient)** दिइएको X र Y चरहरू बीच। स्क्याटरप्लट प्रयोग गरेर तपाईं यो गुणांकलाई छिटो भिजुअलाइज गर्न सक्नुहुन्छ। यदि डाटापोइन्टहरू सिधा रेखामा फैलिएका छन् भने उच्च सहसंबन्ध हुन्छ, तर यदि डाटापोइन्टहरू X र Y बीच जहिले तहाँभर छरिदा तल घटेको हुन्छ।
-एक राम्रो रिग्रेसन मोडेल त्यो हो जसको सहसम्बन्ध गुणांक उच्च हुन्छ (0 नजिक भन्दा 1 नजिक) कमसेकम-वर्ग रिग्रेसन विधि प्रयोग गरी र रिग्रेसन रेखाको साथ।
+एक राम्रो लाइनियर रिग्रेशन मोडेलमा उच्च (0 भन्दा 1 नजिक) सहसंबन्ध गुणांक हुने गर्छ, जसले लीस्ट-स्क्वेर्स मेथडको साथ रिग्रेशन लाइन प्रयोग गर्छ।
-✅ यस पाठसँग सम्बन्धित नोटबुक चलाउनुहोस् र महिना र मूल्य बीचको स्क्याटरप्लट हेर्नुहोस्। यो डाटा पम्पकिन बिक्रीका लागि महिना र मूल्य बीच उच्च वा कम सहसम्बन्ध भएको देखिन्छ? तपाईंको स्क्याटरप्लट दृश्य व्याख्याका अनुसार। यदि तपाईं `Month` को सट्टा अधिक सूक्ष्म मापन प्रयोग गर्नु भयो भने, उदाहरणको लागि *वर्षको दिन* (वर्षको सुरुबाट कति दिन भयो), के यो फरक पर्छ?
+✅ यस पाठसँगै आएको नोटबुक चलाउनुहोस् र महिना र मूल्यको स्क्याटरप्लट हेर्नुहोस्। तपाईंको दृश्य व्याख्यान अनुसार कद्दू बिक्रीको लागि महिना र मूल्यबीच सहसंबन्ध उच्च हो कि कम? यदि तपाईंले `महिना` सट्टा थप सूक्ष्म मापन (उदाहरणका लागि वर्षको दिन) प्रयोग गर्नुभयो भने के परिवर्तन हुन्छ?
-तलको कोडमा, हामीले डाटा सफा गरिसकेको र `new_pumpkins` नाम गरिएको डाटा फ्रेम प्राप्त गरेको मान्नेछौं, जुन यस्तै छ:
+तलको कोडमा, हामी मान्छौं कि डाटा सफा गरेको छौं र `new_pumpkins` नामक डाटा फ्रेम प्राप्त छ, जस्तै निम्न:
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
@@ -99,38 +101,38 @@ ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Pri
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
-74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
+74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
-> डेटा सफा गर्ने कोड [`notebook.ipynb`](notebook.ipynb) मा उपलब्ध छ। हामीले अघिल्लो पाठमा जस्तै सफाई चरणहरू सम्पन्न गरेका छौं र निम्न अभिव्यक्तिले `DayOfYear` स्तम्भ गणना गरेका छौं:
+> डाटा सफा गर्ने कोड [`notebook.ipynb`](notebook.ipynb) मा उपलब्ध छ। हामीले अघिल्लो पाठमा जस्तै सफाइ गरेका छौं, र `DayOfYear` स्तम्भ गणना गर्न तलको अभिव्यक्ति प्रयोग गरेका छौं:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
-अब जब तपाईंले लाइनर रिग्रेसन पछिको गणित बुझ्नुभयो, हामी रिग्रेसन मोडेल बनाउन जाँदैछौं जसले पम्पकिन खरिद गर्ने प्याकेजहरू मध्ये कुनमा सबैभन्दा राम्रो मूल्य हुनेछ अनुमान गर्न सघाउ पुर्याउँछ। कसैले छुट्टीको पम्पकिन प्याचको लागि पम्पकिन किन्न खोज्दा यो जानकारी उपयोगी हुनेछ किनभने यसले खरिदको अनुकूलन गर्न मद्दत गर्नेछ।
+अब, तपाईंले लाइनियर रिग्रेशनको पछाडि गणित बुझिसक्नुभएपछि, हामी रिग्रेशन मोडेल सिर्जना गर्नेछौं र हेर्नेछौं कि कुन कद्दू प्याकेजको मूल्य सबैभन्दा राम्रो भविष्यवाणी गर्न सक्छौं कि सक्दैनौं। कसैले पनि छुट्टै कद्दू प्याचका लागि कद्दू खरीद गर्दा यो जानकारी आफ्नो खरिदलाई अनुकूल बनाउन चाहनेछ।
-## सहसम्बन्ध खोज्दै
+## सहसंबन्ध खोज्दै
[](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
-> 🎥 माथिको तस्वीरमा क्लिक गरी सहसम्बन्धको छोटो भिडियो हेर्नुहोस्।
+> 🎥 माथिको छवि क्लिक गरेर सहसंबन्धको छोटो भिडियो अवलोकन हेर्नुहोस्।
-अघिल्लो पाठबाट तपाईंले देख्नु भएको होला कि विभिन्न महिनाहरूको औसत मूल्य यस्तो देखिन्छ:
+अघिल्लो पाठबाट तपाईंले देख्नुभएको होला कि विभिन्न महिनाहरूको औसत मूल्य यसरी देखिन्छ:
-यसले के संकेत गर्छ भने केही सहसम्बन्ध हुनुपर्छ, र हामी रिग्रेसन मोडेल ट्रेन्ड गरेर `Month` र `Price` मध्ये वा `DayOfYear` र `Price` बीच सम्बन्ध अनुमान गर्न सक्छौं। तलको स्क्याटरप्लटले पछि चित्रण गरेको सम्बन्ध देखाउँछ:
+यसले केहि सहसंबन्ध हुनुपर्ने संकेत दिन्छ, र हामी `Month` र `Price` बीच, वा `DayOfYear` र `Price` बीचको सम्बन्ध भविष्यवाणी गर्न लाइनियर रिग्रेशन मोडेल ट्रेन्ड गर्ने प्रयास गर्न सक्छौं। यहाँ तलको सम्बन्ध देखाउने स्क्याटर प्लट छ:
-आउनुस् `corr` function प्रयोग गरी सहसम्बन्ध छ कि छैन जाँचौं:
+`corr` फंक्शन प्रयोग गरेर सहसंबन्ध छ कि छैन जाँचौं:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
-`Month` प्रति सहसम्बन्ध प्राय: -0.15 र `DayOfMonth` प्रति -0.17 जति सानो देखिन्छ, तर अर्को महत्वपूर्ण सम्बन्ध हुन सक्छ। फरक पम्पकिन किसिमका फरक मूल्य क्लस्टरहरू जस्तै देखिन्छ। यस अनुमान पुष्टि गर्न, हामी प्रत्येक पम्पकिन किसिम अलग रंगमा प्लट गर्नेछौं। `scatter` फङ्क्शनमा `ax` प्यारामिटर दिँदा सबै पोइन्टहरू एउटै ग्राफमा देखाउन सकिन्छ:
+तपाईं देख्न सक्नुहुन्छ सहसंबन्ध सानो छ, `Month` अनुसार -0.15 र `DayOfYear` अनुसार -0.17, तर अर्को महत्त्वपूर्ण सम्बन्ध हुन सक्छ। देखिन्छ मूल्यहरू विभिन्न कद्दू प्रजातिहरूसँग सम्बन्धित विभिन्न क्लस्टरहरूमा छन्। यो प्रमाणीकरणका लागि, प्रत्येक कद्दू वर्गलाई फरक रंगमा प्लट गरौं। `scatter` plotting function मा `ax` प्यारामिटर पास गरेर हामी सबै पोइन्टहरू एउटै ग्राफमा प्लट गर्न सक्छौं:
```python
ax=None
@@ -140,43 +142,42 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
-
+
-हाम्रो अन्वेषणले देखाउँछ कि किसिमले मूल्यमा महिना भन्दा बढी प्रभाव पार्छ। हामी यो बार ग्राफबाट देख्न सक्छौं:
+हाम्रो अनुसन्धानले देखाउँछ कि प्रजातिले बिक्री मितिको तुलनामा मूल्यमा बढी प्रभाव पार्छ। हामी बार ग्राफबाट यो देख्न सक्छौं:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
-
+
-अहिले हामी केवल एक किसिम 'पाइ प्रकार' मा केन्द्रित हुँ र मूल्यमा मितिले कस्तो प्रभाव पार्छ जाँचौं:
+अहिले हामी केवल 'pie type' कद्दू प्रजातिमा ध्यान केन्द्रित गरौं, र मितिले मूल्यमा कस्तो प्रभाव पार्छ हेर्नुहोस्:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
-
-
+
-यदि अब हामी `corr` फङ्क्शन प्रयोग गरी `Price` र `DayOfYear` को सहसम्बन्ध गणना गर्यौं भने, लगभग `-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
@@ -184,31 +185,31 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
-हामी इनपुट मानहरू (फीचरहरू) र अपेक्षित आउटपुट (लेबल) अलग-अलग नम्पाइ एर्रेहरूमा छुट्याएर सुरु गर्छौं:
+हामी इनपुट (विशेषताहरू) र अपेक्षित आउटपुट (लेबल) लाई अलग-अलग numpy arrays मा छुट्याएर शुरू गर्नेछौं:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
-> नोट गर्नुहोस्, हामीलाई लाइनर रिग्रेसन प्याकेजले सही बुझोस् भनेर इनपुट डाटामा `reshape` गर्नुपर्यो। लाइनर रिग्रेसनले २D एर्रे इनपुट अपेक्षा गर्छ, जहाँ एर्रेको प्रत्येक पंक्ति इनपुट फीचरहरूको वेक्टर हुन्छ। हाम्रो केसमा, हाम्रो केवल एक इनपुट भएकोले N×1 आकारको एर्रे चाहिन्छ, जहाँ N डाटासेटको आकार हो।
+> ध्यान दिनुहोस्, हामीले इनपुट डाटामा `reshape` गर्नु परेको छ ताकि लाइनियर रिग्रेशन प्याकेजले यसलाई सही रूपमा बुझोस्। लाइनियर रिग्रेशनले 2D-array इनपुट चाहिन्छ, जहाँ प्रत्येक पङ्क्ति इनपुट विशेषता भेक्टर हुन्छ। हाम्रो अवस्थामा एक मात्र इनपुट हुनाले, N×1 आकारको array चाहिन्छ, जहाँ 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` वस्तु define गर्छौं, र `fit` मेथड प्रयोग गरी डाटामा मोडेललाई फिट गर्छौं:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
-`LinearRegression` वस्तु `fit` गरेपछि रिग्रेसनका सबै गुणांकहरू समावेश गरेको हुन्छ, जुन `.coef_` सम्पत्तिको प्रयोग गरेर पहुँच गर्न सकिन्छ। हाम्रो मामलामा, एक मात्र गुणांक छ, जुन लगभग `-0.017` हुनुपर्छ। यसको अर्थ मूल्यहरू समयसँगै थोरै घट्ने देखिन्छ, तर धेरै होइन, दिनको २ सेन्ट वरिपरि। हामी रिग्रेसनको Y-अक्षसँगको अन्तरफलक बिन्दुलाई `lin_reg.intercept_` प्रयोग गरेर पहुँच गर्न सक्छौं - हाम्रो मामलामा यो लगभग `21` हुनेछ, जुन वर्षको सुरुको मूल्य सङ्केत गर्दछ।
+`fit` गरेपछि `LinearRegression` वस्तुमा रेग्रेसनका सबै गुणांकहरू हुन्छन्, जुन `.coef_` सम्पत्तिबाट पहुँच गर्न सकिन्छ। हाम्रो केसमा, त्यहाँ एक मात्र गुणांक छ, जुन करिब `-0.017` हुनुपर्छ। यसको अर्थ मूल्यहरू समयसँग केहि घट्ने देखिन्छ, तर धेरै होइन, करिब २ सेन्ट प्रति दिन। हामी रेग्रेसनको Y-अक्षसँगको अतिक्रमण बिन्दु `lin_reg.intercept_` बाट पनि पहुँच गर्न सक्छौं — यो हाम्रो केसमा करिब `21` हुन्छ, जसले वर्षको सुरुवातमा मूल्य जनाउँछ।
-हाम्रो मोडेल कति सही छ भनेर हेर्नको लागि, हामी टेस्ट डेटासेटमा मूल्यहरू पूर्वानुमान गर्न सक्छौं, र त्यस पछि हाम्रा पूर्वानुमानहरू अपेक्षित मानहरूसँग कति नजिक छन् मापन गर्न सक्छौं। यसलाई root mean square error (RMSE) मेट्रिक प्रयोग गरेर गर्न सकिन्छ, जुन अपेक्षित र पूर्वानुमानित मानहरूबीच सबै वर्गान्तरहरूको औसतको वर्गमूल हो।
+हाम्रो मोडेल कति सही छ हेर्नका लागि, हामी परीक्षण डेटासेटमा मूल्यहरू पूर्वानुमान गर्न सक्छौं, र त्यसपछि हाम्रो पूर्वानुमानहरू अपेक्षित मानहरूसँग कति नजिक छन् मापन गर्न सक्छौं। यो रूट मीन स्क्वायर त्रुटि (RMSE) मेट्रिक्स प्रयोग गरेर गर्न सकिन्छ, जुन अपेक्षित र पूर्वानुमान मानबीच सबै वर्गीकृत फरकहरूको मीनको मूलांक हो।
```python
pred = lin_reg.predict(X_test)
@@ -217,15 +218,15 @@ rmse = np.sqrt(mean_squared_error(y_test,pred))
print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)')
```
-हाम्रो त्रुटि लगभग २ पोइन्ट्स छ, जुन ~१७% हो। धेरै राम्रो छैन। मोडेल गुणस्तरको अर्को सूचकांक **coefficient of determination** हो, जुन यसरी प्राप्त गर्न सकिन्छ:
+हाम्रो त्रुटि करिब २ अङ्क जस्तो देखिन्छ, जुन ~१७% हो। धेरै राम्रो छैन। मोडेल गुणस्तरको अर्को सूचक **निर्धारण गुणांक** हो, जसलाई यसरी प्राप्त गर्न सकिन्छ:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
- यदि मान ० छ भने, यसको अर्थ मोडेल इनपुट डाटालाई ध्यानमा राख्दैन, र सबैभन्दा निकृष्ट रेखीय पूर्वानुमायकको रूपमा काम गर्छ, जुन केवल परिणामको औसत मान हो। मान १ हुनुको अर्थ हामी सबै अपेक्षित आउटपुटहरू पूर्ण रूपमा पूर्वानुमान गर्न सक्छौं। हाम्रो मामलामा गुणांक लगभग ०.०६ छ, जुन धेरै कम हो।
+ यदि मान ० छ भने यसको अर्थ मोडेलले इनपुट डेटालाई ध्यानमा लिँदैन, र *सबैभन्दा खराब रेखीय पूर्वानुमानकर्ता* जस्तै व्यवहार गर्छ, जुन केवल नतिजाको माध्य मान हो। मान १ भनेको हामी सबै अपेक्षित नतिजाहरू पूर्णतः पूर्वानुमान गर्न सक्छौं भन्ने हो। हाम्रो केसमा, गुणांक करिब ०.०६ छ, जुन निकै कम हो।
-हामी टेस्ट डाटालाई रिग्रेसन लाइनसँग सँगै प्लट गरेर हाम्रो मामलामा रिग्रेसन कसरि काम गर्छ हेर्न सक्छौं:
+हामी परीक्षण डेटालाई रेग्रेसन लाइनसँग सँगै प्लट गरेर हाम्रो केसमा रेग्रेसन कस्तो काम गर्छ भन्ने कुरा राम्रोसँग देख्न सक्छौं:
```python
plt.scatter(X_test,y_test)
@@ -234,19 +235,19 @@ plt.plot(X_test,pred)
-## 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) छन् जसमा बहुपद रेग्रेसन प्रयोग गर्न सकिन्छ।
-मेरो तारिख र मूल्यबीचको सम्बन्ध फेरि हेर्नुहोस्। के यो scatterplot आवश्यक रूपमा सिधा रेखाले विश्लेषण गर्नुपर्छ भन्ने देखिन्छ? मूल्यहरू त कहिलेकाहीँ घटबढ हुन सक्दैन? यस अवस्थामा, तपाईं polynomial regression प्रयास गर्न सक्नुहुन्छ।
+मिति र मूल्य बीचको सम्बन्धलाई अर्को पटक हेर्नुहोस्। के यो स्क्याटरप्लट अनिवार्य रूपमा सिधा रेखाबाट विश्लेषण गर्नुपर्छ जस्तो लाग्छ? के मूल्यहरू उतारचढाव हुन सक्दैन? यस्तो अवस्थामा बहुपद रेग्रेसन प्रयोग गर्न सकिन्छ।
-✅ Polynomial गणितीय अभिव्यक्तिहरू हुन् जसमा एक वा बढी भेरिएबल र गुणांकहरू हुन सक्छन्
+✅ बहुपदहरू गणितीय अभिव्यक्तिहरू हुन् जसले एक वा बढी चरहरू र गुणांकहरू समावेश गर्न सक्छन्।
-Polynomial regression ले गैररेखीय डाटालाई राम्रोसँग फिट गर्न घुमाउरो रेखा बनाउँछ। हाम्रो मामलामा, यदि हामी `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 features मोडेलमा थप्छ र त्यसपछि रिग्रेसन प्रशिक्षित गर्छ:
+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
@@ -257,36 +258,58 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
-`PolynomialFeatures(2)` प्रयोग गर्दा हामी इनपुट डाटाबाट सबै दोस्रो डिग्रीका polynomial समावेश गर्नेछौं। हाम्रो मामलामा यसको अर्थ केवल `DayOfYear`2 हुनेछ, तर यदि दुई इनपुट भेरिएबलहरू X र Y छन् भने यसले X2, XY र Y2 जोड्नेछ। हामी उच्च डिग्री polynomial पनि प्रयोग गर्न सक्छौं यदि आवश्यक छ भने।
+`PolynomialFeatures(2)` प्रयोग गर्दा हामीले इनपुट डाटाबाट सबै दोस्रो-डिग्री बहुपदहरू समावेश गर्नेछौं। हाम्रो केसमा यसको अर्थ केवल `DayOfYear`2 हुनेछ, तर दुई इनपुट भेरिएबल X र Y भएमा, यसले X2, XY र Y2 थप्नेछ। हामी उच्च डिग्रीका बहुपदहरू पनि प्रयोग गर्न सक्छौं यदि चाहनु भयो भने।
+
+पाइपलाइनहरूलाई मूल `LinearRegression` वस्तु जस्तै प्रयोग गर्न सकिन्छ, जसले हामीलाई पाइपलाइन `fit` गर्न र त्यसपछि `predict` प्रयोग गरेर पूर्वानुमान परिणाम प्राप्त गर्न दिन्छ:
+
+```python
+pred = pipeline.predict(X_test)
+
+rmse = np.sqrt(mean_squared_error(y_test,pred))
+print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)')
+
+score = pipeline.score(X_train,y_train)
+print('Model determination: ', score)
+```
+
+सम चक्रिको वक्र प्लट गर्न, हामी `np.linspace` प्रयोग गर्छौं जसले इनपुट मानहरू को समान दूरीको दायरा बनाउँछ, सिधै अव्यवस्थित परीक्षण डेटामा प्लट नगरि (जसले जिगज्याग रेखा उत्पादन गर्न सक्छ):
+
+```python
+X_range = np.linspace(X_test.min(), X_test.max(), 100).reshape(-1,1)
+y_range = pipeline.predict(X_range)
+
+plt.scatter(X_test, y_test)
+plt.plot(X_range, y_range)
+```
-पाइपलाइनहरूलाई `LinearRegression` वस्तु जस्तै नै प्रयोग गर्न सकिन्छ, अर्थात् हामी pipeline लाई `fit` गर्न सक्छौं र त्यसपछि `predict` प्रयोग गरी पूर्वानुमान नतिजा प्राप्त गर्न सक्छौं। यहाँ टेस्ट डेटा र अनुमानित घुमाउरो देखाइएको छ:
+यहाँ परीक्षण डेटा र अनुमानित वक्र देखाउने ग्राफ छ:
-Polynomial Regression प्रयोग गर्दा, हामी अलिकति कम MSE र उच्च गत्यात्मक गुणांक (determination) पाउन सक्छौं, तर धेरै फरक पर्दैन। हामीले अन्य विशेषताहरूलाई पनि ध्यानमा लिनुपर्छ!
+बहुपद रेग्रेसन प्रयोग गर्दा, हामीले अलि कम RMSE र बढी निर्धारण पाउन सक्छौं, तर उल्लेखनीय रूपमा होइन। हामीले अन्य सुविधाहरूलाई पनि ध्यान दिनु आवश्यक छ!
-> तपाईं देख्न सक्नुहुन्छ कि न्यूनतम कद्दुको मूल्यहरू लगभग Halloween को आसपास देखिन्छ। तपाईं यसलाई कसरी व्याख्या गर्नुहुन्छ?
+> तपाईंले देख्न सक्नुहुन्छ कि न्यूनतम कद्दु मूल्यहरू प्रायः हेलोविन नजिक देखिन्छन्। तपाईं यसलाई कसरी व्याख्या गर्नुहुन्छ?
-🎃 बधाई छ, तपाईं एउटा यस्तो मोडेल सिर्जना गर्नुभएको छ जसले पाई कद्दुहरूको मूल्य पूर्वानुमान गर्न मद्दत गर्न सक्छ। तपाईं सजिलै सबै कद्दु प्रजातिहरूका लागि एउटै तरिका पुन: गर्न सक्नुहुन्छ, तर त्यो थोरै अलमलिलो हुनेछ। अब हामी कसरी हाम्रो मोडेलमा कद्दुको प्रजाति ध्यानमा राख्ने जान्न छौं!
+🎃 बधाई छ, तपाईंले एउटा मोडेल सिर्जना गर्नुभयो जुन पाई कद्दुको मूल्य पूर्वानुमान गर्न मद्दत गर्न सक्छ। तपाईं सम्भवतः सबै कद्दु प्रकारहरूका लागि यो प्रक्रिया दोहोर्याउन सक्नुहुन्छ, तर त्यो थोरै श्रोतलाग्दो हुनेछ। अब सिकौँ हामीले हाम्रो मोडेलमा कद्दु विविधतालाई कसरी ध्यानमा राख्ने।
-## Categorical Features
+## वर्गीकृत सुविधाहरू
-आदर्श संसारमा, हामी एउटै मोडेलले विभिन्न कद्दु प्रजातिहरूका मूल्य पूर्वानुमान गर्न सक्न चाहन्छौं। यद्यपि, `Variety` स्तम्भ `Month` जस्ता स्तम्भहरूभन्दा फरक छ किनभने यसमा गैर-संख्यात्मक मानहरू छन्। यस्तो स्तम्भहरूलाई **categorical** भनिन्छ।
+आदर्श संसारमा, हामी एउटै मोडेल प्रयोग गरी विभिन्न कद्दु किसिमहरूका मूल्यहरू पूर्वानुमान गर्न चाहन्छौं। तर, `Variety` स्तम्भ केही फरक हुन्छ `Month` जस्ता स्तम्भहरूबाट किनकि यसमा सङ्ख्यात्मक नभएको मानहरू हुन्छन्। यस्ता स्तम्भहरूलाई **वर्गीकृत (categorical)** भन्दछ।
[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
-> 🎥 माथिको तस्वीरमा क्लिक गरेर क्याटेगोरिकल विशेषताहरू प्रयोग गर्ने छोटकरी भिडियो हेर्नुहोस्।
+> 🎥 माथिको तस्वीर क्लिक गरेर वर्गीकृत सुविधाहरूको प्रयोग सम्बन्धी छोटो भिडियो अवलोकन हेर्नुहोस्।
-यहाँ तपाईं देख्न सक्नुहुन्छ कि औसत मूल्य प्रजातिमा कसरि निर्भर छ:
+यहाँ तपाईंले विविधतामा आधारित औसत मूल्य हेर्न सक्नुहुन्छ:
-प्रजातिलाई ध्यानमा राख्न, हामीले पहिले यसलाई सङ्ख्यात्मक रूपान्तरण (encoding) गर्नुपर्छ। यसका केही तरिकाहरू छन्:
+विविधतालाई ध्यानमा राख्न, हामीले पहिले यसलाई सङ्ख्यात्मक रूपमा रूपान्तरण गर्नुपर्छ, वा **एन्कोड** गर्नुपर्छ। यसका लागि विभिन्न तरिकाहरू छन्:
-* सरल **सङ्ख्यात्मक इन्कोडिङ** ले विभिन्न प्रजातिहरूको तालिका बनाउँछ र त्यसपछि प्रजातिको नामलाई तालिकामा रहेको अनुक्रमणिका (index) द्वारा प्रतिस्थापन गर्छ। यो रेखीय रिग्रेसनको लागि राम्रो विचार होइन, किनभने रिग्रेसनले अनुक्रमणिकाको वास्तविक संख्यात्मक मानलाई लिन्छ र यसको गुणांकसँग परिणाममा जोड्छ। हाम्रो मामलामा, अनुक्रमणिका र मूल्य बीचको सम्बन्ध स्पष्ट रूपमा गैर-रेखीय छ, भले अनुक्रमणिकाहरू विशेष तरिकाले क्रमबद्ध गरे पनि।
-* **One-hot encoding** ले `Variety` स्तम्भलाई चार फरक स्तम्भहरूद्वारा प्रतिस्थापन गर्छ, प्रत्येक प्रजातिका लागि एक स्तम्भ। प्रत्येक स्तम्भमा `1` हुन्छ यदि सो पङ्क्ति त्यो प्रजातिको हो भने र `0` अन्यथा। यसको मतलब रेखीय रिग्रेसनमा चार गुणांकहरू हुनेछन्, प्रत्येक कद्दु प्रजातिको लागि, जुन त्यो विशेष प्रजातिको लागि "सुरुवाती मूल्य" (वा "अतिरिक्त मूल्य") को जिम्मेवार हुनेछ।
+* साधारण **सङ्ख्यात्मक एन्कोडिङ** ले विभिन्न किसिमहरूको तालिका बनाउँछ र त्यसपछि विविधता नामलाई तालिकाको अनुक्रमांकले रिप्लेस गर्छ। योlinear regression को लागि उत्तम विकल्प होइन किनकि linear regression ले अनुक्रमांकको वास्तविक सङ्ख्यात्मक मान लिन्छ र नतिजामा कुनै गुणांकले गुण गर्नेछ। हाम्रो केसमा अनुक्रमांक र मूल्यका बीच सम्बन्ध स्पष्ट गैर-रेखीय छ, चाहे हामी अनुक्रमांकहरूलाई कुनै विशेष तरिकाले क्रमबद्ध गरौं।
+* **वन-हट एन्कोडिङ** ले `Variety` स्तम्भलाई ४ फरक स्तम्भहरूमा रूपान्तरण गर्छ, प्रत्येक किसिमको लागि एउटा स्तम्भ। प्रत्येक स्तम्भमा १ हुन्छ यदि उक्त पङ्क्ति त्यस किसिमको हो, नत्र ०। यसले linear regression मा चार वटा गुणांक हुनेछ, प्रत्येक कद्दु विविधताको लागि, जुन त्यो विविधताका "शुरुवाती मूल्य" (वा "अतिरिक्त मूल्य") को जिम्मेवारी लिन्छ।
-तलको कोडले देखाउँछ कसरी एक प्रजातिलाई one-hot encode गर्न सकिन्छ:
+तलको कोडले हामीलाई वन-हट एन्कोड कसरी गर्ने देखाउँछ:
```python
pd.get_dummies(new_pumpkins['Variety'])
@@ -303,14 +326,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
-रिग्रेसनलाई one-hot encoded प्रजातिको रूपमा इनपुट प्रयोग गरी प्रशिक्षित गर्न, हामीलाई `X` र `y` लाई ठीकसँग आरम्भ गर्नुपर्छ:
+वन-हट एन्कोड गरिएको विविधतालाई इनपुटका रूपमा लिएर linear regression तालिम दिन, हामीले `X` र `y` डाटा सही तरिकाले प्रारम्भ गर्नुपर्छ:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
-बाकी कोड तेस्तै छ जुन हामीले माथि Linear Regression प्रशिक्षित गर्न प्रयोग गरेका थियौं। यदि तपाईं यसलाई प्रयास गर्नुहुनेछ भने, तपाईं देख्नु हुनेछ कि माध्य वर्गमूल त्रुटि लगभग उस्तै छ, तर हामीलाई धेरै उच्च determination गुणांक (~७७%) प्राप्त हुन्छ। अझ सटीक पूर्वानुमानहरूका लागि, हामी अन्य categorical विशेषताहरू पनि र संख्यात्मक विशेषताहरू जस्तै `Month` वा `DayOfYear` पनि ध्यानमा लिन सक्छौं। ठूलो फिचर एर्रे बनाउन `join` प्रयोग गर्न सकिन्छ:
+बाकी कोड पहिले प्रयोग गरेको linear regression तालिम जस्तै नै हो। यदि तपाईं यो प्रयास गर्नु भयो भने, तपाईंले देख्नुहुनेछ कि मीन स्क्वायर त्रुटि लगभग समान छ, तर हामी धेरै उच्च निर्धारण गुणांक (~७७%) प्राप्त गर्छौं। अझै बढी सही भविष्यवाणीका लागि, हामीले अन्य वर्गीकृत सुविधाहरू र सङ्ख्यात्मक सुविधाहरू पनि ध्यानमा लिन सक्दछौं, जस्तै `Month` वा `DayOfYear`। सबै सुविधाहरू एउटै ठूलो एरेमा ल्याउन `join` प्रयोग गर्न सकिन्छ:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@@ -320,62 +343,62 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
-यहाँ हामी `City` र `Package` प्रकार पनि ध्यानमा राख्छौं, जसले हामीलाई MSE २.८४ (१०%) र determination ०.९४ दिन्छ!
+यहाँ हामीले `City` र `Package` प्रकार पनि ध्यानमा लिएर RMSE 2.84 (10.5%) र निर्धारण 0.94 पाएका छौं।
-## सबैलाई एक साथ राख्दै
+## सबै कुरा सँगै राख्दै
-सबैभन्दा राम्रो मोडेल बनाउन, हामी माथि दिइएको नमूनाको मिश्रित (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)
-# पाइपलाइन सेटअप र तालिम दिनुहोस
+# पाइपलाइन सेटअप र तालिम गर्नुहोस्
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
-# परीक्षण डाटाको लागि परिणाम पूर्वानुमान गर्नुहोस्
+# परीक्षण डेटाका लागि परिणाम अनुमान गर्नुहोस्
pred = pipeline.predict(X_test)
-# MSE र निर्धारण गणना गर्नुहोस्
-mse = np.sqrt(mean_squared_error(y_test,pred))
-print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
+# RMSE र निर्धारण गणना गर्नुहोस्
+rmse = mean_squared_error(y_test, pred, squared=False)
+print(f'RMSE: {rmse:3.3} ({rmse/pred.mean()*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
-यसले हामीलाई लगभग ९७% को सबैभन्दा राम्रो determination गुणांक र MSE=२.२३ (~८% पूर्वानुमान त्रुटि) देला।
+यसले हामीलाई लगभग ९७% निर्धारण गुणांक र RMSE=2.23 (~८% पूर्वानुमान त्रुटि) दिनेछ।
-| मोडेल | MSE | Determination |
-|-------|-----|---------------|
-| `DayOfYear` Linear | २.७७ (१७.२%) | ०.०७ |
-| `DayOfYear` Polynomial | २.७३ (१७.०%) | ०.०८ |
-| `Variety` Linear | ५.२४ (१९.७%) | ०.७७ |
-| सबै विशेषताहरू Linear | २.८४ (१०.५%) | ०.९४ |
-| सबै विशेषताहरू Polynomial | २.२३ (८.२५%) | ०.९७ |
+| मोडेल | RMSE | निर्धारण |
+|-------|-----|----------|
+| `DayOfYear` रेखीय | 2.77 (17.2%) | 0.07 |
+| `DayOfYear` बहुपद | 2.73 (17.0%) | 0.08 |
+| `Variety` रेखीय | 5.24 (19.7%) | 0.77 |
+| सबै सुविधाहरू रेखीय | 2.84 (10.5%) | 0.94 |
+| सबै सुविधाहरू बहुपद | 2.23 (8.25%) | 0.97 |
-🏆 राम्रो काम! तपाईंले एउटै पाठमा चार वटा Regression मोडेलहरू सिर्जना गर्नुभयो र मोडेलको गुणस्तर ९७% सम्म बढाउनुभयो। Regression को अन्तिम भागमा, तपाईं Logistic Regression बारे जान्नु हुनेछ जुन वर्गहरू निर्धारण गर्न प्रयोग हुन्छ।
+🏆 राम्रो गर्नुभयो! तपाईंले एउटै पाठमा चार वटा रेग्रेसन मोडेलहरू सिर्जना गर्नुभयो, र मोडेल गुणस्तर ९७% सम्म सुधार गर्नुभयो। रेग्रेसनको अन्तिम भागमा तपाईंले Logistic Regression सिक्नुहुनेछ जसले वर्गहरू निर्धारण गर्छ।
---
-## 🚀Challenge
+## 🚀 चुनौती
-यस नोटबुकमा विभिन्न भेरिएबलहरू परीक्षण गर्नुहोस् ताकि कसरि सहसम्बन्ध (correlation) मोडेलको सटीकता अनुसार जान्छ बुझ्न सकियोस्।
+यस नोटबुकमा विभिन्न भेरिएबलहरू परीक्षण गरेर हेर्नुहोस् कि सहसंबन्ध कसरी मोडेलको सटीकताको साथ मेल खान्छ।
-## [पाठ-पछि प्रश्नोत्तरी](https://ff-quizzes.netlify.app/en/ml/)
+## [पाठ पछि क्विज](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)
@@ -383,5 +406,5 @@ print('Model determination: ', score)
**अस्वीकरण**:
-यस दस्तावेजलाई AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरी अनुवाद गरिएको हो। हामी सटीकताको प्रयास गर्छौं भने पनि, कृपया जानकारि हुनुहोस् कि स्वचालित अनुवादमा त्रुटिहरू वा गलतफहमीहरू हुनसक्छन्। मूल दस्तावेज आफ्नो मूल भाषामै अधिकारिक स्रोत मानिनु पर्छ। महत्वपूर्ण जानकारीको लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलतफहमी वा व्याख्यामा हामी जिम्मेवार छैनौं।
+यस कागजातलाई AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरी अनुवाद गरिएको हो। हामी शुद्धताका लागि प्रयासरत छौं, तथापि कृत्रिम अनुवादमा त्रुटि वा अशुद्धता हुन सक्ने कुरा कृपया बुझ्नुहोस्। मूल कागजात त्यसको मूल भाषामा आधिकारिक स्रोतको रूपमा मानिनेछ। महत्वपूर्ण जानकारीको लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याका लागि हामी उत्तरदायी छैनौं।
\ No newline at end of file
diff --git a/translations/ne/2-Regression/3-Linear/solution/notebook.ipynb b/translations/ne/2-Regression/3-Linear/solution/notebook.ipynb
index d9ffb1ea8..f60575900 100644
--- a/translations/ne/2-Regression/3-Linear/solution/notebook.ipynb
+++ b/translations/ne/2-Regression/3-Linear/solution/notebook.ipynb
@@ -4,14 +4,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## कद्दूको मूल्य निर्धारणका लागि रेखीय र बहुपद प्रतिगमन - पाठ ३\n",
+ "## कद्दू मूल्य निर्धारणका लागि रैखिक र बहुपद प्रतिगमन - पाठ ३\n",
"\n",
- "आवश्यक पुस्तकालयहरू र डेटासेट लोड गर्नुहोस्। डेटालाई एउटा डाटाफ्रेममा रूपान्तरण गर्नुहोस् जसमा डेटाको एउटा उपसमूह समावेश छ:\n",
+ "आवश्यक पुस्तकालयहरू र डेटासेट लोड गर्नुहोस्। डेटा एउटा डेटा फ्रेममा परिणत गर्नुहोस् जसमा डेटा को एउटा उपसमूह समावेश हो:\n",
"\n",
- "- केवल बुसलद्वारा मूल्य निर्धारण गरिएका कद्दूहरू प्राप्त गर्नुहोस् \n",
- "- मिति महिनामा रूपान्तरण गर्नुहोस् \n",
- "- उच्च र न्यून मूल्यहरूको औसतको रूपमा मूल्य गणना गर्नुहोस् \n",
- "- मूल्यलाई बुसलको मात्राद्वारा मूल्य निर्धारण प्रतिबिम्बित गर्न रूपान्तरण गर्नुहोस् \n"
+ "- केवल बसेलले मूल्य निर्धारण गरिएका कद्दूहरू लिनुहोस्\n",
+ "- मिति महिनामा रूपान्तरण गर्नुहोस्\n",
+ "- मूल्यलाई उच्च र न्यून मूल्यहरूको औसतको रूपमा गणना गर्नुहोस्\n",
+ "- मूल्यलाई बसेल मात्राले मूल्य निर्धारण प्रतिबिम्बित गर्ने रूपमा रूपान्तरण गर्नुहोस्\n"
]
},
{
@@ -377,7 +377,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "स्क्याटरप्लटले हामीलाई सम्झाउँछ कि हामीसँग केवल अगस्टदेखि डिसेम्बरसम्मको महिनाको डेटा मात्र छ। रेखीय तरिकामा निष्कर्ष निकाल्न सक्षम हुन हामीलाई सम्भवतः थप डेटा आवश्यक छ।\n"
+ "एक स्क्याटरप्लटले हामीलाई सम्झाउँछ कि हामीसँग अगस्तदेखि डिसेम्बर सम्मका मात्र मासिक डेटा छ। लाइनियर तरिकाले निष्कर्ष निकाल्न हामीलाई सम्भवतः थप डाटाको आवश्यकता छ।\n"
]
},
{
@@ -447,7 +447,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "हेर्नुहोस् के त्यहाँ सम्बन्ध छ:\n"
+ ]
},
{
"cell_type": "code",
@@ -472,7 +474,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "जस्तो देखिन्छ सम्बन्ध धेरै सानो छ, तर त्यहाँ केही अन्य महत्वपूर्ण सम्बन्ध छ - किनभने माथिको प्लटमा मूल्य बिन्दुहरूमा धेरै अलग-अलग समूहहरू देखिन्छन्। विभिन्न कद्दूका प्रकारहरू देखाउने प्लट बनाउँ।\n"
+ "जस्तो देखिन्छ, सहसम्बन्ध सानो छ, तर त्यहाँ अरू केही महत्वपूर्ण सम्बन्ध छ - किनभने माथि भएको प्लटमा मूल्य बिन्दुहरूमा धेरै फरक समूहहरू देखिन्छन्। अब हामी एउटा प्लट बनाउनेछौं जसले विभिन्न कद्दूका जातहरू देखाओस्:\n"
]
},
{
@@ -535,7 +537,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "अहिलेको लागि, हामी केवल एक किसिममा केन्द्रित गरौं - **पाई प्रकार**।\n"
+ ]
},
{
"cell_type": "code",
@@ -582,9 +586,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### रेखीय प्रतिगमन\n",
+ "### रेखीय रिग्रेसन\n",
"\n",
- "हामी Scikit Learn प्रयोग गरेर रेखीय प्रतिगमन मोडेल प्रशिक्षण गर्नेछौं:\n"
+ "हामी स्किकिट लर्न प्रयोग गरेर रेखीय रिग्रेसन मोडल प्रशिक्षण गर्नेछौं:\n"
]
},
{
@@ -662,7 +666,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "रेखाको ढलान रेखीय प्रतिगमन गुणांकबाट निर्धारण गर्न सकिन्छ:\n"
+ "रेखा झुकाव रेखीय प्रतिगमन गुणांकहरुबाट निर्धारण गर्न सकिन्छ:\n"
]
},
{
@@ -688,7 +692,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "हामी तालिमप्राप्त मोडेललाई मूल्य पूर्वानुमान गर्नका लागि प्रयोग गर्न सक्छौं:\n"
+ ]
},
{
"cell_type": "code",
@@ -716,11 +722,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### बहुपद रिग्रेशन\n",
+ "### Polynomial Regression\n",
"\n",
- "कहिलेकाहीं विशेषताहरू र परिणामहरू बीचको सम्बन्ध स्वाभाविक रूपमा गैर-रेखीय हुन्छ। उदाहरणका लागि, फर्सीको मूल्य जाडोमा (महिना=१,२) उच्च हुन सक्छ, त्यसपछि गर्मीमा (महिना=५-७) घट्न सक्छ, र फेरि बढ्न सक्छ। रेखीय रिग्रेशनले यो सम्बन्धलाई सही रूपमा पत्ता लगाउन सक्दैन।\n",
+ "कहिलेकाहीं फिचरहरू र परिणामहरू बीचको सम्बन्ध स्वभाविक रूपमा गैर-रेखीय हुन्छ। उदाहरणका लागि, कद्दूको मूल्य जाडो महिनामा (महिना=१,२) उच्च हुन सक्छ, त्यसपछि गर्मी महिनामा (महिना=५-७) घट्छ, र फेरि बढ्छ। रेखीय रिग्रेसनले यो सम्बन्धलाई सही रूपमा भेट्टाउन सक्दैन।\n",
"\n",
- "यस अवस्थामा, हामी अतिरिक्त विशेषताहरू थप्ने विचार गर्न सक्छौं। सरल तरिका भनेको इनपुट विशेषताहरूबाट बहुपदहरू प्रयोग गर्नु हो, जसले **बहुपद रिग्रेशन** परिणाम दिन्छ। Scikit Learn मा, हामी पाइपलाइनहरू प्रयोग गरेर स्वचालित रूपमा बहुपद विशेषताहरू पूर्व-गणना गर्न सक्छौं:\n"
+ "यस अवस्थामा, हामी थप फिचरहरू थप्न विचार गर्न सक्छौं। सरल तरिका भनेको इनपुट फिचरहरूबाट बहुपदहरू प्रयोग गर्नु हो, जसले **बहुपदीय रिग्रेसन** निम्त्याउँछ। Scikit Learn मा, हामी पाइपलाइनहरूको प्रयोग गरेर स्वचालित रूपमा बहुपदीय फिचरहरू प्रि-कम्प्युट गर्न सक्छौं: \n"
]
},
{
@@ -775,22 +781,25 @@
"score = pipeline.score(X_train,y_train)\n",
"print('Model determination: ', score)\n",
"\n",
- "plt.scatter(X_test,y_test)\n",
- "plt.plot(sorted(X_test),pipeline.predict(sorted(X_test)))"
+ "X_range = np.linspace(X_test.min(), X_test.max(), 100).reshape(-1,1)\n",
+ "y_range = pipeline.predict(X_range)\n",
+ "\n",
+ "plt.scatter(X_test, y_test)\n",
+ "plt.plot(X_range, y_range)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "### विभिन्न प्रकारको एन्कोडिङ\n",
+ "### इन्कोडिङ प्रकारहरू\n",
"\n",
- "आदर्श संसारमा, हामी एउटै मोडेल प्रयोग गरेर विभिन्न कद्दूका प्रकारहरूको मूल्य भविष्यवाणी गर्न सक्षम हुन चाहन्छौं। प्रकारलाई ध्यानमा राख्नका लागि, हामीले पहिले यसलाई संख्यात्मक रूपमा रूपान्तरण गर्नुपर्छ, वा **एन्कोड** गर्नुपर्छ। यसका लागि केही तरिकाहरू छन्:\n",
+ "आदर्श संसारमा, हामी एउटै मोडल प्रयोग गरेर विभिन्न फर्सी प्रजातिहरूको मूल्य भविष्यवाणी गर्न सक्षम हुन चाहन्छौं। प्रजातिलाई ध्यानमा राख्नका लागि, हामीले पहिले यसलाई संख्यात्मक रूपान्तरण गर्नुपर्छ, वा **इन्कोड** गर्नुपर्छ। यसका लागि केहि तरिकाहरू छन्:\n",
"\n",
- "* साधारण संख्यात्मक एन्कोडिङ, जसले विभिन्न प्रकारहरूको तालिका बनाउँछ, र त्यसपछि तालिकामा रहेको सूचकांकद्वारा प्रकारको नामलाई प्रतिस्थापन गर्छ। यो रैखिक प्रतिगमन (linear regression) का लागि उत्तम विचार होइन, किनभने रैखिक प्रतिगमनले सूचकांकको संख्यात्मक मानलाई ध्यानमा राख्छ, र संख्यात्मक मान सम्भवतः मूल्यसँग संख्यात्मक रूपमा सम्बन्धित हुँदैन।\n",
- "* वन-हट एन्कोडिङ (One-hot encoding), जसले `Variety` स्तम्भलाई ४ फरक स्तम्भहरूसँग प्रतिस्थापन गर्छ, प्रत्येक प्रकारका लागि एउटा, जसले १ समावेश गर्छ यदि सम्बन्धित पंक्ति दिइएको प्रकारको हो भने, र अन्यथा ०।\n",
+ "* सरल संख्यात्मक इन्कोडिङ जसले फरक फरक प्रजातिहरूको तालिका बनाउनेछ, र त्यसपछि प्रजातिको नामलाई उक्त तालिकामा रहेको सूचकांक (इन्डेक्स) द्वारा प्रतिस्थापन गर्नेछ। यो रेखीय प्रतिगमन (linear regression) का लागि उत्तम विचार होइन, किनकि रेखीय प्रतिगमनले सूचकांकको संख्यात्मक मानलाई ध्यानमा राख्छ, र त्यो संख्यात्मक मान सम्भावित रूपमा मूल्यसँग संख्यात्मक रूपले सम्बन्धित नहुन सक्छ।\n",
+ "* वन-हट इन्कोडिङ (one-hot encoding), जसले `Variety` स्तम्भलाई ४ फरक स्तम्भहरूले प्रतिस्थापन गर्नेछ, प्रत्येक प्रजातिको लागि एउटा स्तम्भ हुनेछ, र त्यो स्तम्भमा दिइएको पङ्क्ति सो प्रजातिको भएमा १ र नभए ० हुनेछ।\n",
"\n",
- "तलको कोडले देखाउँछ कि हामीले कसरी प्रकारलाई वन-हट एन्कोड गर्न सक्छौं:\n"
+ "तलको कोडले कसरी हामीले वन-हट इन्कोडिङ गर्न सकिन्छ देखाउँछ:\n"
]
},
{
@@ -938,9 +947,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### भिन्नतामा आधारित रेखीय पुनरावृत्ति \n",
+ "### भिन्नतामा रेखीय प्रतिगमन\n",
"\n",
- "अब हामी माथिको जस्तै कोड प्रयोग गर्नेछौं, तर `DayOfYear` को सट्टा हामी हाम्रो एक-हट-एन्कोड गरिएको भिन्नता इनपुटको रूपमा प्रयोग गर्नेछौं:\n"
+ "हामी अब माथिको समान कोड प्रयोग गर्नेछौं, तर `DayOfYear` को सट्टा हामी हाम्रो वन-हट-एन्कोडेड भिन्नतालाई इनपुटको रूपमा प्रयोग गर्नेछौं:\n"
]
},
{
@@ -988,7 +997,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "हामी अन्य सुविधाहरूलाई पनि उस्तै तरिकाले प्रयोग गर्न प्रयास गर्न सक्छौं, र तिनीहरूलाई संख्यात्मक सुविधाहरू जस्तै `Month` वा `DayOfYear` सँग संयोजन गर्न सक्छौं:\n"
+ "हामी अन्य सुविधाहरू पनि उस्तै तरिकाले प्रयोग गर्न सक्छौं, र तिनीहरूलाई सङ्ख्यात्मक सुविधाहरू जस्तै `Month` वा `DayOfYear` सँग मिलाउन सक्छौं:\n"
]
},
{
@@ -1019,9 +1028,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### बहुपद रिग्रेशन\n",
+ "### Polynomial Regression\n",
"\n",
- "बहुपद रिग्रेशन एक-हट-एन्कोड गरिएको श्रेणीगत विशेषताहरूसँग पनि प्रयोग गर्न सकिन्छ। बहुपद रिग्रेशनलाई प्रशिक्षण दिनको लागि कोड मूलतः माथि देखिएको जस्तै हुनेछ।\n"
+ "Polynomial regression लाई एउटा-होट-एन्कोड गरिएको वर्गीकृत सुविधाहरू सँग पनि प्रयोग गर्न सकिन्छ। Polynomial regression तालिम दिनको लागि कोड मूलतः माथि देखिएको जस्तै नै हुनेछ।\n"
]
},
{
@@ -1068,7 +1077,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "\n---\n\n**अस्वीकरण**: \nयो दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरेर अनुवाद गरिएको छ। हामी शुद्धताको लागि प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादहरूमा त्रुटि वा अशुद्धता हुन सक्छ। यसको मूल भाषा मा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुने छैनौं।\n"
+ "---\n\n\n**अस्वीकरण**: \nयो दस्तावेज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरेर अनुवाद गरिएको हो। हामी शुद्धताको प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धिहरू हुनसक्छन्। मूल दस्तावेज यसको मूल भाषामा नै अधिकारप्राप्त स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि व्यावसायिक मानव अनुवाद सिफारिश गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलतफहमी वा गलत व्याख्याका लागि हामी जिम्मेवार हुने छैनौं।\n\n"
]
}
],
@@ -1098,13 +1107,7 @@
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
- "orig_nbformat": 2,
- "coopTranslator": {
- "original_hash": "d77bd89ae7e79780c68c58bab91f13f8",
- "translation_date": "2025-08-29T18:45:08+00:00",
- "source_file": "2-Regression/3-Linear/solution/notebook.ipynb",
- "language_code": "ne"
- }
+ "orig_nbformat": 2
},
"nbformat": 4,
"nbformat_minor": 2