আপনি শুরু করতে চান মেশিন লার্নিং?
আমি সম্পূর্ণ নতুনদের জন্য একটি সহজ এবং সহজ টিউটোরিয়াল তৈরি করেছি। একসাথে, আমরা একটি মেশিন লার্নিং মডেল প্রশিক্ষণের প্রাথমিক ধাপগুলি অতিক্রম করব।
একের পর এক মডেল প্রশিক্ষণের ধাপগুলি ব্যাখ্যা করার সময়, আমি মেশিন-লার্নিং সমস্যার একটি খুব প্রাথমিক উদাহরণও দেব। সুতরাং, আপনি যদি অনুসরণ করতে চান তবে আপনি এখান থেকে এই নমুনা ডেটা সেট ডাউনলোড করতে পারেন লিংক.
এটি আপনাকে মেশিন লার্নিং শুরু করতে সাহায্য করার জন্য একটি নমুনা ডেটাসেট।
আমাদের কাছে বিভিন্ন বয়সের এবং লিঙ্গের মানুষের 18টি মান রয়েছে যেগুলি তাদের প্রিয় সঙ্গীতকে সংজ্ঞায়িত করেছে। ব্যবহার করে, "বয়স" এবং "লিঙ্গ" এর বৈশিষ্ট্যগুলি আমরা অনুমান করার চেষ্টা করব কোন ধরণের সঙ্গীত তাদের প্রিয়।
দ্রষ্টব্য: এই ডেটাসেটে 1 এবং 0 লিঙ্গকে মহিলা এবং পুরুষ হিসাবে বরাদ্দ করা হয়েছে।
যাইহোক, আপনি যদি উদাহরণটি অনুসরণ করতে না চান তবে এটিও পুরোপুরি সূক্ষ্ম। আমি এই সমস্ত পদক্ষেপগুলি বিস্তারিতভাবে ব্যাখ্যা করব। সুতরাং, এর মধ্যে ডুব দেওয়া যাক!
প্রথম জিনিস জানা
একটি মডেল প্রশিক্ষণের ধাপে যাওয়ার আগে, আসুন কিছু পয়েন্ট স্পষ্ট করা যাক। মেশিন লার্নিং হল একটি কৃত্রিম বুদ্ধিমত্তা শৃঙ্খলা যা ডেটা থেকে শিখতে পারে এমন অ্যালগরিদম তৈরিতে ফোকাস করে।
এটি করার জন্য, মেশিন লার্নিং মডেলগুলিকে একটি ডেটাসেটে প্রশিক্ষণ দেওয়া হয় যা মডেলকে শেখায় কীভাবে সঠিক ভবিষ্যদ্বাণী করা যায় বা শ্রেণিবিন্যাস তাজা, পূর্বে অজানা ডেটাতে।
সুতরাং, এই মডেল কি? ক মেশিন লার্নিং মডেল এটি একটি রেসিপির অনুরূপ যা একটি কম্পিউটার ডেটা ভবিষ্যদ্বাণী বা পছন্দ তৈরি করতে ব্যবহার করে।
একটি মডেল, একটি রেসিপির মতো, ডেটা মূল্যায়ন করার জন্য নির্দেশাবলীর একটি সেট অনুসরণ করে এবং ডেটাতে পাওয়া প্যাটার্নের উপর ভিত্তি করে ভবিষ্যদ্বাণী বা রায় তৈরি করে। মডেলটিকে যত বেশি ডেটার উপর প্রশিক্ষণ দেওয়া হয়, তার ভবিষ্যদ্বাণী তত বেশি নির্ভুল হয়৷
আমরা কি ধরনের মডেল প্রশিক্ষণ দিতে পারি?
আসুন দেখি বেসিক মেশিন লার্নিং মডেল কি কি।
- লিনিয়ার রিগ্রেশন: একটি মডেল যা এক বা একাধিক ইনপুট ভেরিয়েবল থেকে একটানা লক্ষ্য ভেরিয়েবলের পূর্বাভাস দেয়।
- নিউরাল নেটওয়ার্ক: লিঙ্কযুক্ত নোডগুলির একটি নেটওয়ার্ক যা ডেটাতে জটিল নিদর্শন সনাক্ত করতে শিখতে পারে।
- ডিসিশন ট্রিস: ইফ-এলেস স্টেটমেন্ট শাখার একটি শৃঙ্খলে তৈরি একটি সিদ্ধান্ত গ্রহণের পদ্ধতি।
- ক্লাস্টারিং: মডেলের একটি সেট যা সাদৃশ্যের ভিত্তিতে তুলনাযোগ্য ডেটা পয়েন্টগুলিকে গোষ্ঠীভুক্ত করে।
- লজিস্টিক রিগ্রেশন: বাইনারি শ্রেণীবিভাগ সমস্যার জন্য একটি মডেল যেখানে লক্ষ্য পরিবর্তনশীলের দুটি সম্ভাব্য মান রয়েছে।
- ডিসিশন ট্রিস: ইফ-এলেস স্টেটমেন্ট শাখার একটি শৃঙ্খলে তৈরি একটি সিদ্ধান্ত গ্রহণের পদ্ধতি।
- র্যান্ডম ফরেস্ট: অসংখ্য সিদ্ধান্ত গাছের সমন্বয়ে গঠিত একটি মিলিত মডেল। এগুলি প্রায়শই শ্রেণীবিভাগ এবং রিগ্রেশন অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয়।
- K- নিকটতম প্রতিবেশী: একটি মডেল যা প্রশিক্ষণ সেটে k- নিকটতম ডেটা পয়েন্ট ব্যবহার করে লক্ষ্য ভেরিয়েবলের পূর্বাভাস দেয়।
আমাদের সমস্যা এবং ডেটাসেটের উপর নির্ভর করে, আমরা সিদ্ধান্ত নিই কোন মেশিন লার্নিং মডেল আমাদের পরিস্থিতির সাথে সবচেয়ে বেশি মানানসই। তবুও, আমরা পরে এই বিষয়ে ফিরে আসব। এখন, আমাদের মডেল প্রশিক্ষণ শুরু করা যাক. আমি আশা করি আপনি ইতিমধ্যে ডাউনলোড করেছেন ডেটা সেটটি আপনি যদি আমাদের উদাহরণ অনুসরণ করতে চান.
এছাড়াও, আমি থাকার সুপারিশ Jupyter নোটবুক আপনার স্থানীয় মেশিনে ইনস্টল করুন এবং আপনার মেশিন লার্নিং প্রকল্পের জন্য এটি ব্যবহার করুন।
1: সমস্যাটি সংজ্ঞায়িত করুন
মধ্যে প্রথম পর্যায় একটি মেশিন লার্নিং প্রশিক্ষণ মডেল সমাধান করা সমস্যা সংজ্ঞায়িত করা হয়. এতে আপনি যে ভেরিয়েবলগুলিকে পূর্বাভাস দিতে চান (টার্গেট ভেরিয়েবল হিসাবে পরিচিত) এবং যে ভেরিয়েবলগুলিকে সেই ভবিষ্যদ্বাণীগুলি তৈরি করতে ব্যবহার করা হবে (বৈশিষ্ট্য বা ভবিষ্যদ্বাণী হিসাবে পরিচিত) নির্বাচন করা অন্তর্ভুক্ত৷
আপনি কি ধরণের মেশিন-লার্নিং সমস্যা সমাধান করার চেষ্টা করছেন (শ্রেণীবিন্যাস, রিগ্রেশন, ক্লাস্টারিং এবং আরও অনেক কিছু) এবং আপনার মডেলকে প্রশিক্ষণ দেওয়ার জন্য আপনাকে কী ধরণের ডেটা সংগ্রহ করতে হবে বা পেতে হবে তাও সিদ্ধান্ত নেওয়া উচিত।
আপনি যে ধরণের মডেল নিয়োগ করেন তা মেশিন লার্নিং সমস্যার ধরন দ্বারা নির্ধারিত হবে যা আপনি সমাধান করতে চান। শ্রেণীবিভাগ, রিগ্রেশন এবং ক্লাস্টারিং হল তিনটি প্রাথমিক বিভাগ মেশিন লার্নিং চ্যালেঞ্জ. আপনি যখন একটি শ্রেণীগত পরিবর্তনশীল ভবিষ্যদ্বাণী করতে চান, যেমন একটি ইমেল একটি স্প্যাম কিনা, আপনি শ্রেণীবিভাগ ব্যবহার করেন।
আপনি যখন একটি বাড়ির দামের মতো একটি ক্রমাগত পরিবর্তনশীল পূর্বাভাস দিতে চান, আপনি রিগ্রেশন ব্যবহার করেন। ক্লাস্টারিং তাদের সাধারণতার উপর ভিত্তি করে তুলনামূলক ডেটা আইটেমগুলিকে একত্রিত করতে ব্যবহৃত হয়।
আমরা যদি আমাদের উদাহরণ দেখি; আমাদের চ্যালেঞ্জ হল একজন ব্যক্তির পছন্দের সঙ্গীত শৈলী তাদের লিঙ্গ এবং বয়স থেকে নির্ধারণ করা। আমরা এই উদাহরণের জন্য 18 জনের একটি ডেটাসেট এবং তাদের বয়স, লিঙ্গ এবং প্রিয় সঙ্গীত শৈলীর তথ্য ব্যবহার করব৷
2. ডেটা প্রস্তুত করুন
আপনি সমস্যাটি নির্দিষ্ট করার পরে, আপনাকে মডেল প্রশিক্ষণের জন্য ডেটা প্রস্তুত করতে হবে। এতে ডেটা পরিষ্কার এবং প্রক্রিয়াকরণ করা হয়। সুতরাং, আমরা নিশ্চিত করতে পারি যে এটি একটি বিন্যাসে রয়েছে যা মেশিন লার্নিং অ্যালগরিদম ব্যবহার করতে পারেন.
এর মধ্যে অনুপস্থিত মানগুলি মুছে ফেলা, শ্রেণীগত ডেটাকে সংখ্যাসূচক ডেটাতে রূপান্তরিত করা এবং সমস্ত বৈশিষ্ট্য একই স্কেলে রয়েছে তা নিশ্চিত করার জন্য ডেটা স্কেল করা বা স্বাভাবিক করার মতো কার্যকলাপগুলি অন্তর্ভুক্ত থাকতে পারে।
উদাহরণস্বরূপ, এইভাবে আপনি অনুপস্থিত মানগুলি মুছবেন:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
ছোট নোট: লাইনে "import pandas as pd",
আমরা পান্ডাস লাইব্রেরি ইম্পোর্ট করি এবং কোডে এর ফাংশন এবং অবজেক্টগুলিকে রেফারেন্স করা সহজ করতে এটিকে "pd" উপনাম বরাদ্দ করি।
ডাটা ম্যানিপুলেশন এবং বিশ্লেষণের জন্য পান্ডাস পাইথনের একটি সুপরিচিত মডিউল, বিশেষ করে যখন স্ট্রাকচার্ড বা ট্যাবুলার ডেটা নিয়ে কাজ করা হয়।
সঙ্গীতের ধরন নির্ধারণের আমাদের উদাহরণে। আমরা প্রথমে ডেটাসেট আমদানি করব। আমি এটার নাম দিয়েছি music.csv, যাইহোক, আপনি চাইলে নাম দিতে পারেন।
একটি মেশিন লার্নিং মডেল প্রশিক্ষণের জন্য ডেটা প্রস্তুত করতে, আমরা এটিকে বৈশিষ্ট্য (বয়স এবং লিঙ্গ) এবং উদ্দেশ্য (সঙ্গীতের ধরণ) মধ্যে বিভক্ত করি।
আমরা অতিরিক্তভাবে আমাদের মডেলের কার্যকারিতা মূল্যায়ন করতে এবং অতিরিক্ত ফিটিং এড়াতে 80:20 প্রশিক্ষণ এবং পরীক্ষার সেটগুলিতে ডেটা ভাগ করব।
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. একটি মেশিন লার্নিং মডেল চয়ন করুন৷
আপনি ডেটা প্রস্তুত করার পরে, আপনাকে অবশ্যই একটি মেশিন-লার্নিং মডেল বেছে নিতে হবে যা আপনার কাজের জন্য উপযুক্ত।
সিদ্ধান্ত গাছ, লজিস্টিক রিগ্রেশন, সমর্থন ভেক্টর মেশিন, নিউরাল নেটওয়ার্ক এবং অন্যান্যের মতো বেছে নেওয়ার জন্য বেশ কয়েকটি অ্যালগরিদম রয়েছে। আপনি যে অ্যালগরিদমটি বেছে নেবেন তা নির্ধারণ করা হবে আপনি যে ধরণের সমস্যার উত্তর দেওয়ার চেষ্টা করছেন, আপনার কাছে থাকা ডেটার ধরন এবং আপনার কর্মক্ষমতার প্রয়োজন।
আমরা এই উদাহরণের জন্য একটি ডিসিশন ট্রি ক্লাসিফায়ার ব্যবহার করব কারণ আমরা একটি শ্রেণীবিন্যাস সমস্যা নিয়ে কাজ করছি (বিষয়ক ডেটার পূর্বাভাস)।
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
ডিসিশন ট্রি ক্লাসিফায়ার কীভাবে কাজ করে তার একটি ভিজ্যুয়ালাইজেশন এখানে রয়েছে:
4. মডেল প্রশিক্ষণ
আপনি যখন একটি গ্রহণযোগ্য মেশিন-লার্নিং অ্যালগরিদম বেছে নিয়েছেন তখন আপনি মডেলটির প্রশিক্ষণ শুরু করতে পারেন। এটি নতুন, পূর্বে অদেখা ডেটার উপর কীভাবে ভবিষ্যদ্বাণী করা যায় সে সম্পর্কে অ্যালগরিদমকে শিক্ষিত করার জন্য পূর্বে তৈরি করা ডেটা ব্যবহার করে।
অ্যালগরিদম প্রশিক্ষণের সময় তার অভ্যন্তরীণ পরামিতিগুলি পরিবর্তন করবে যাতে এটির পূর্বাভাসিত মান এবং প্রশিক্ষণের ডেটাতে প্রকৃত মানগুলির মধ্যে পার্থক্য কম হয়। প্রশিক্ষণের জন্য ব্যবহৃত ডেটার পরিমাণ, সেইসাথে অ্যালগরিদমের নির্দিষ্ট পরামিতিগুলি ফলাফলের মডেলের নির্ভুলতার উপর প্রভাব ফেলতে পারে।
আমাদের নির্দিষ্ট উদাহরণে, এখন আমরা একটি পদ্ধতির সিদ্ধান্ত নিয়েছি, আমরা প্রশিক্ষণের ডেটা দিয়ে আমাদের মডেলকে প্রশিক্ষণ দিতে পারি।
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. মডেল মূল্যায়ন
মডেলটি প্রশিক্ষিত হওয়ার পরে, এটি সঠিক এবং নির্ভরযোগ্য তা নিশ্চিত করার জন্য এটি অবশ্যই নতুন ডেটার উপর মূল্যায়ন করা উচিত। এটি প্রশিক্ষণের সময় ব্যবহার করা হয়নি এমন ডেটা সহ মডেলটি পরীক্ষা করা এবং পরীক্ষার ডেটার প্রকৃত মানের সাথে এর অনুমান মানগুলির তুলনা করা অন্তর্ভুক্ত।
এই পর্যালোচনাটি মডেলের যেকোন ত্রুটি সনাক্ত করতে সহায়তা করতে পারে, যেমন ওভারফিটিং বা আন্ডারফিটিং, এবং প্রয়োজন হতে পারে এমন যেকোন সূক্ষ্ম টিউনিং হতে পারে।
পরীক্ষার ডেটা ব্যবহার করে, আমরা আমাদের মডেলের সঠিকতা মূল্যায়ন করব।
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
সঠিকতা স্কোর আপাতত এত খারাপ নয়। 🙂 আপনার নির্ভুলতা স্কোর উন্নত করতে, আপনি সর্বদা আরও বেশি ডেটা পরিষ্কার করতে পারেন বা কোনটি সর্বোচ্চ স্কোর দেয় তা দেখতে বিভিন্ন মেশিন-লার্নিং মডেল ব্যবহার করে দেখতে পারেন।
6. মডেলটি ফাইন-টিউন করুন
মডেলের দক্ষতা যথেষ্ট না হলে, আপনি বিভিন্ন অ্যালগরিদম পরামিতি পরিবর্তন করে বা সম্পূর্ণ নতুন অ্যালগরিদম নিয়ে পরীক্ষা-নিরীক্ষা করে এটিকে সূক্ষ্ম-টিউন করতে পারেন।
এই পদ্ধতিতে বিকল্প শিক্ষার হার নিয়ে পরীক্ষা-নিরীক্ষা, নিয়মিতকরণ সেটিংস পরিবর্তন করা, বা নিউরাল নেটওয়ার্কে লুকানো স্তরের সংখ্যা বা আকার পরিবর্তন করা অন্তর্ভুক্ত থাকতে পারে।
7. মডেল ব্যবহার করুন
একবার আপনি মডেলের কার্যকারিতা দেখে সন্তুষ্ট হলে, আপনি নতুন ডেটাতে ভবিষ্যদ্বাণী তৈরি করতে এটি ব্যবহার করা শুরু করতে পারেন।
এটি মডেলটিতে নতুন ডেটা খাওয়ানো এবং সেই ডেটাতে ভবিষ্যদ্বাণী তৈরি করতে মডেলের শেখা পরামিতিগুলি ব্যবহার করে বা মডেলটিকে একটি বিস্তৃত অ্যাপ্লিকেশন বা সিস্টেমে সংহত করতে পারে।
আমরা নতুন ডেটার সঠিকতা নিয়ে সন্তুষ্ট হওয়ার পরে আমরা আমাদের মডেলটি ব্যবহার করতে পারি। আপনি লিঙ্গ এবং বয়সের বিভিন্ন মান চেষ্টা করতে পারেন।
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
শেষ করি
আমরা আমাদের প্রথম মেশিন লার্নিং মডেলের প্রশিক্ষণ শেষ করেছি।
আমি আশা করি আপনি এটি দরকারী খুঁজে পেয়েছেন. আপনি এখন লিনিয়ার রিগ্রেশন বা র্যান্ডম ফরেস্টের মতো বিভিন্ন মেশিন লার্নিং মডেল ব্যবহার করে দেখতে পারেন।
অনেক ডেটাসেট এবং চ্যালেঞ্জ আছে Kaggle আপনি যদি আপনার কোডিং এবং মেশিন লার্নিং বোঝার উন্নতি করতে চান।
নির্দেশিকা সমন্ধে মতামত দিন