Classification হলো একটি Supervised Learning প্রক্রিয়া, যেখানে মডেল ডেটাকে বিভিন্ন শ্রেণিতে (class) ভাগ করে। ক্লাসিফিকেশন মডেল ডেটার ইনপুট থেকে পূর্বনির্ধারিত শ্রেণি বা লেবেল নির্ধারণ করতে সক্ষম হয়। এটি ডেটার একটি শ্রেণীকে চিহ্নিত করার কাজ করে, যেমন ইমেইল স্প্যাম শনাক্তকরণ, রোগ নির্ণয়, বা গ্রাহক সেগমেন্টেশন।
ক্লাসিফিকেশন অ্যালগরিদমগুলি বিভিন্ন ধরণের, এবং প্রতি অ্যালগরিদমের নিজস্ব সুবিধা এবং সমস্যা সমাধানের জন্য উপযুক্ততা রয়েছে।
নিচে কিছু জনপ্রিয় ক্লাসিফিকেশন অ্যালগরিদম এবং তাদের মূল বৈশিষ্ট্য আলোচনা করা হলো:
Logistic Regression একটি সাধারণ Binary Classification অ্যালগরিদম যা ইনপুট ভ্যারিয়েবল (features) ব্যবহার করে একটি কৌনিক (logistic) ফাংশন তৈরি করে। এটি সাধারণত দুইটি শ্রেণি (0 বা 1) নির্ধারণের জন্য ব্যবহৃত হয়, তবে মাল্টিক্লাস প্রেডিকশনেও ব্যবহার করা যেতে পারে।
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# ডেটাসেট লোড
data = load_iris()
X = data.data
y = data.target
# ট্রেনিং এবং টেস্টিং ডেটা বিভাজন
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# মডেল তৈরি এবং প্রশিক্ষণ
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)
# প্রেডিকশন
predictions = model.predict(X_test)
K-Nearest Neighbors (KNN) একটি সহজ এবং জনপ্রিয় ক্লাসিফিকেশন অ্যালগরিদম, যা নতুন ডেটা পয়েন্টকে তার K নিকটতম neighbors-এর ভিত্তিতে শ্রেণী নির্ধারণ করে।
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
# ডেটাসেট লোড
data = load_iris()
X = data.data
y = data.target
# ট্রেনিং এবং টেস্টিং ডেটা বিভাজন
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# KNN মডেল তৈরি এবং প্রশিক্ষণ
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
# প্রেডিকশন
predictions = knn.predict(X_test)
Decision Trees একটি বৃক্ষভিত্তিক মডেল, যা ইনপুট বৈশিষ্ট্যগুলির উপর ভিত্তি করে একটি গাছের শাখায় ডেটাকে ভাগ করে। প্রতিটি শাখায় একটি শর্ত থাকে এবং প্রতিটি পাতা শ্রেণী বা লেবেল নির্ধারণ করে।
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
# ডেটাসেট লোড
data = load_iris()
X = data.data
y = data.target
# ট্রেনিং এবং টেস্টিং ডেটা বিভাজন
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Decision Tree মডেল তৈরি এবং প্রশিক্ষণ
tree = DecisionTreeClassifier(random_state=42)
tree.fit(X_train, y_train)
# প্রেডিকশন
predictions = tree.predict(X_test)
Random Forest হল Ensemble Learning এর একটি জনপ্রিয় অ্যালগরিদম, যা একাধিক Decision Tree-এর ফলাফলকে একত্রিত করে। এটি Overfitting রোধ করতে সহায়ক এবং উচ্চ পারফরম্যান্স প্রদান করে।
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
# ডেটাসেট লোড
data = load_iris()
X = data.data
y = data.target
# ট্রেনিং এবং টেস্টিং ডেটা বিভাজন
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Random Forest মডেল তৈরি এবং প্রশিক্ষণ
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)
# প্রেডিকশন
predictions = rf.predict(X_test)
Support Vector Machines (SVM) হল একটি শক্তিশালী ক্লাসিফিকেশন অ্যালগরিদম যা শ্রেণীভিত্তিক সীমান্ত তৈরি করার জন্য একটি hyperplane খুঁজে বের করে। এটি দুই বা তার বেশি শ্রেণির জন্য উপযুক্ত।
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
# ডেটাসেট লোড
data = load_iris()
X = data.data
y = data.target
# ট্রেনিং এবং টেস্টিং ডেটা বিভাজন
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# SVM মডেল তৈরি এবং প্রশিক্ষণ
svm = SVC(kernel='linear')
svm.fit(X_train, y_train)
# প্রেডিকশন
predictions = svm.predict(X_test)
Naive Bayes একটি পরিসংখ্যানিক ক্লাসিফিকেশন অ্যালগরিদম যা বায়েস থিওরেমের উপর ভিত্তি করে কাজ করে এবং ক্লাসের জন্য প্রোবাবিলিটি নির্ধারণ করতে ব্যবহৃত হয়। এটি সাধারণত ক্যাটেগোরিক্যাল ডেটার জন্য ব্যবহার করা হয়।
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
# ডেটাসেট লোড
data = load_iris()
X = data.data
y = data.target
# ট্রেনিং এবং টেস্টিং ডেটা বিভাজন
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Naive Bayes মডেল তৈরি এবং প্রশিক্ষণ
nb = GaussianNB()
nb.fit(X_train, y_train)
# প্রেডিকশন
predictions = nb.predict(X_test)
Classification Algorithms হল মেশিন লার্নিং-এর একটি গুরুত্বপূর্ণ অংশ যা ডেটাকে বিভিন্ন শ্রেণিতে ভাগ করার কাজ করে। জনপ্রিয় ক্লাসিফিকেশন অ্যালগরিদমগুলি হল Logistic Regression, K-Nearest Neighbors (KNN), Decision Trees, Random Forest, Support Vector Machines (SVM), এবং Naive Bayes। প্রতিটি অ্যাল
গরিদমের বিশেষত্ব রয়েছে এবং ডেটার ধরণ এবং সমস্যার উপর নির্ভর করে একটি অ্যালগরিদম অন্যটির তুলনায় বেশি কার্যকর হতে পারে।
K-Nearest Neighbors (KNN) একটি সহজ, জনপ্রিয় এবং শিকড়গত মেশিন লার্নিং অ্যালগরিদম যা Supervised Learning ক্যাটাগরিতে পড়ে। এটি classification এবং regression উভয় কাজের জন্য ব্যবহার করা যায়, তবে এটি সাধারণত classification সমস্যায় বেশি ব্যবহৃত হয়। KNN একটি instance-based অ্যালগরিদম, যেখানে মডেলটি কোনও প্রশিক্ষণ সময়ের মধ্যে তৈরি করা হয় না; বরং এটি পরীক্ষণ ডেটা পয়েন্টের ভিত্তিতে ভবিষ্যদ্বাণী করে।
KNN অ্যালগরিদমটি সহজভাবে কাজ করে এবং এর মূল ধারণা হল:
ধরা যাক আমাদের কাছে একটি ডেটাসেট আছে, যেখানে দুটি ফিচার রয়েছে: Height (উচ্চতা) এবং Weight (ওজন), এবং আমরা এই ডেটা ব্যবহার করে কোরাস (classification) করতে চাই।
import numpy as np
import pandas as pd
from sklearn.neighbors import KNeighborsClassifier
# ডেটাসেট তৈরি
data = {
'Height': [150, 160, 170, 180, 190],
'Weight': [50, 60, 65, 70, 80],
'Class': ['Light', 'Light', 'Heavy', 'Heavy', 'Heavy']
}
df = pd.DataFrame(data)
# ফিচার এবং টার্গেট আলাদা করা
X = df[['Height', 'Weight']] # ফিচার
y = df['Class'] # টার্গেট
# KNN মডেল তৈরি
knn = KNeighborsClassifier(n_neighbors=3)
# মডেল প্রশিক্ষণ
knn.fit(X, y)
# নতুন ডেটা পয়েন্ট
new_data = np.array([[175, 68]])
# পূর্বাভাস
prediction = knn.predict(new_data)
print(f"Predicted Class: {prediction[0]}")
এখানে new_data
হলো নতুন একটি ডেটা পয়েন্ট, যার উচ্চতা 175 সেমি এবং ওজন 68 কেজি। KNN অ্যালগরিদমটি K=3 প্রতিবেশীর ভিত্তিতে এটি পূর্বাভাস করবে যে, এটি Heavy শ্রেণির অন্তর্গত।
uniform
(সমান ওজন) বা distance
(দূরত্বের ভিত্তিতে ওজন)।# KNN মডেল কাস্টমাইজ করা
knn = KNeighborsClassifier(n_neighbors=5, metric='euclidean', weights='distance')
K-Nearest Neighbors (KNN) একটি সহজ এবং শক্তিশালী মেশিন লার্নিং অ্যালগরিদম, যা classification এবং regression সমস্যায় ব্যবহার করা যায়। এটি নতুন ডেটা পয়েন্টের জন্য K সংখ্যক সবচেয়ে কাছের প্রতিবেশী পয়েন্টের উপর ভিত্তি করে সিদ্ধান্ত নেয়। KNN এর প্রধান সুবিধা হল এটি সহজ এবং ট্রেনিং প্রক্রিয়া ছাড়াই কাজ করে, তবে বড় ডেটাসেটে এটি ধীর হতে পারে এবং K এর মান নির্বাচন একটি গুরুত্বপূর্ণ সিদ্ধান্ত।
Decision Tree এবং Random Forest হল দুটি জনপ্রিয় মেশিন লার্নিং অ্যালগরিদম যা supervised learning-এ ব্যবহৃত হয়, বিশেষ করে classification এবং regression কাজের জন্য। তারা সিদ্ধান্ত গ্রহণের প্রক্রিয়া সহজ এবং ব্যাখ্যাযোগ্য। তবে, তারা কিছু বিষয়ে একে অপর থেকে আলাদা, এবং Random Forest অনেক ক্ষেত্রেই Decision Tree থেকে উন্নত ফলাফল প্রদান করে।
Decision Tree একটি গাছের মতো গঠন তৈরি করে, যেখানে প্রতিটি অভ্যন্তরীণ নোড একটি সিদ্ধান্ত বা একটি শর্ত প্রকাশ করে এবং প্রতিটি শাখা সেই শর্তের উপর ভিত্তি করে ডেটা বিভাজন করে। এর শেষের নোডগুলো হলো leaf nodes, যেগুলিতে একটি ফলাফল বা পূর্বাভাস থাকে।
from sklearn.tree import DecisionTreeClassifier
# ডেটাসেট
X = [[0, 0], [1, 1]]
y = [0, 1]
# Decision Tree মডেল তৈরি
clf = DecisionTreeClassifier(random_state=0)
clf = clf.fit(X, y)
# পূর্বাভাস করা
prediction = clf.predict([[2., 2.]])
print(prediction)
Random Forest হল Decision Tree এর একটি শক্তিশালী ভেরিয়েন্ট যা একাধিক Decision Tree তৈরি করে এবং তাদের ফলাফলগুলি একত্রিত (ensemble) করে চূড়ান্ত সিদ্ধান্ত গ্রহণ করে। এটি bagging (Bootstrap Aggregating) কৌশল ব্যবহার করে, যেখানে একাধিক Decision Tree তৈরি হয় এবং তাদের মধ্যে কাস্টমাইজড ফলাফল পাওয়া যায়।
from sklearn.ensemble import RandomForestClassifier
# ডেটাসেট
X = [[0, 0], [1, 1]]
y = [0, 1]
# Random Forest মডেল তৈরি
clf = RandomForestClassifier(n_estimators=100, random_state=0)
clf = clf.fit(X, y)
# পূর্বাভাস করা
prediction = clf.predict([[2., 2.]])
print(prediction)
বৈশিষ্ট্য | Decision Tree | Random Forest |
---|---|---|
বৈশিষ্ট্য | একক Decision Tree | একাধিক Decision Tree এর সমন্বয় |
Overfitting | অধিক ঝুঁকি থাকে | Overfitting কম হয় |
প্রশিক্ষণের গতি | দ্রুত | ধীর (এমনকি একাধিক Decision Tree তৈরি করার কারণে) |
ভোটিং | নেই | হ্যাঁ, বিভিন্ন Decision Tree এর ফলাফলগুলির ভোট নেয় |
ফলাফল | কম স্থিতিশীল এবং কম্পিউটেশনালভাবে ব্যয়বহুল | অধিক স্থিতিশীল এবং নির্ভুল, তবে বেশি কম্পিউটেশনালভাবে ব্যয়বহুল |
ব্যাখ্যাযোগ্যতা | সহজ এবং ব্যাখ্যাযোগ্য | ব্যাখ্যা করা কঠিন |
Decision Tree এবং Random Forest উভয়ই মেশিন লার্নিংয়ের শক্তিশালী অ্যালগরিদম, তবে তারা বিভিন্নভাবে কাজ করে। Decision Tree একক সিদ্ধান্ত গ্রহণের প্রক্রিয়া, যেখানে Random Forest একাধিক Decision Tree এর ফলাফল একত্রিত করে। Random Forest Decision Tree এর তুলনায় আরো স্থিতিশীল এবং নির্ভুল, তবে এটি অনেক বেশি কম্পিউটেশনালভাবে ব্যয়বহুল। Decision Tree সহজ এবং ব্যাখ্যাযোগ্য হলেও, এটি সহজেই overfitting এর শিকার হতে পারে, যেখানে Random Forest এই সমস্যা অনেক কমায়।
Naive Bayes Classifier হল একটি পরিসংখ্যান ভিত্তিক ক্লাসিফিকেশন অ্যালগরিদম যা বিশেষভাবে বায়েসিয়ান থিওরেম এর উপর ভিত্তি করে কাজ করে। এটি সহজ, দ্রুত এবং কার্যকরী একটি মেশিন লার্নিং ক্লাসিফিকেশন অ্যালগরিদম যা সাধারণত টেক্সট ক্লাসিফিকেশন, স্প্যাম ডিটেকশন, সেন্টিমেন্ট অ্যানালাইসিস ইত্যাদি কাজের জন্য ব্যবহৃত হয়।
Naive Bayes নামটি এসেছে দুটি কারণে:
Naive Bayes Classifier কাজ করে বায়েসিয়ান থিওরেম এর উপর, যা একটি শর্তাধীন সম্ভাবনা গণনা করে। বায়েসিয়ান থিওরেম নিম্নরূপ:
P(C∣X)=P(X∣C)⋅P(C)P(X)
এখানে,
Naive Bayes-এ আমরা শর্তাধীন সম্ভাবনা P(X∣C) এর উপর ভিত্তি করে ক্লাস C-এর সম্ভাবনা অনুমান করি। তবে Naive Bayes একে অপরের থেকে স্বাধীন ফিচারগুলি ধরে নেয়, অর্থাৎ,
P(X∣C)=P(x1∣C)⋅P(x2∣C)⋅...⋅P(xn∣C)
এখানে x1,x2,...,xn হল ইনপুট ফিচারের মান এবং C হল ক্লাস।
Naive Bayes Classifier এর তিনটি প্রধান ধরন রয়েছে:
এখানে একটি Multinomial Naive Bayes ব্যবহার করে scikit-learn লাইব্রেরির মাধ্যমে ক্লাসিফিকেশন উদাহরণ দেওয়া হল:
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score
# উদাহরণস্বরূপ ডেটাসেট
data = {
'Feature1': [1, 2, 1, 3, 2, 3, 1, 2, 1, 3],
'Feature2': [2, 3, 2, 3, 1, 2, 3, 1, 2, 3],
'Label': [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
}
# DataFrame তৈরি
df = pd.DataFrame(data)
# ফিচার এবং লেবেল আলাদা করা
X = df[['Feature1', 'Feature2']]
y = df['Label']
# ডেটা ভাগ করা (ট্রেনিং এবং টেস্টিং)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Naive Bayes মডেল তৈরি
nb = MultinomialNB()
# মডেল প্রশিক্ষণ
nb.fit(X_train, y_train)
# ভবিষ্যদ্বাণী করা
y_pred = nb.predict(X_test)
# একিউরেসি যাচাই
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
এই উদাহরণে, Multinomial Naive Bayes মডেল ব্যবহার করে ডেটা ক্লাসিফিকেশন করা হয়েছে এবং accuracy যাচাই করা হয়েছে।
Naive Bayes Classifier একটি সহজ, দ্রুত এবং শক্তিশালী মেশিন লার্নিং অ্যালগরিদম, যা বায়েসিয়ান থিওরেম এর উপর ভিত্তি করে কাজ করে এবং ফিচারের স্বাধীনতা অনুমান করে। এটি বিভিন্ন প্রকারের ডেটার জন্য কার্যকরী হতে পারে, বিশেষ করে ক্যাটেগোরিক্যাল ডেটা এবং টেক্সট ডেটার জন্য। তবে এটি ফিচারের মধ্যে সম্পর্ক না থাকার অনুমান করে, যা কিছু ক্ষেত্রে সীমাবদ্ধ হতে পারে।
Support Vector Machine (SVM) একটি শক্তিশালী এবং জনপ্রিয় মেশিন লার্নিং অ্যালগরিদম যা মূলত Classification এবং Regression সমস্যা সমাধানে ব্যবহৃত হয়। এটি supervised learning অ্যালগরিদম যা ডেটাকে বিভিন্ন শ্রেণীতে বিভক্ত করতে সাহায্য করে। SVM-এর মূল উদ্দেশ্য হল একটি hyperplane খুঁজে বের করা যা শ্রেণীগুলিকে সবচেয়ে ভালোভাবে পৃথক করে।
SVM-এর মূল ধারণা হল hyperplane ব্যবহার করে ডেটার মধ্যে শ্রেণী বিভাজন করা। যেহেতু আমাদের সাধারনত দুটি শ্রেণী থাকে (যেমন, positive
এবং negative
), তাই SVM একটি এমন hyperplane খুঁজে বের করতে চেষ্টা করে যা ডেটার দুটি শ্রেণীকে সবচেয়ে বড় মার্জিন দিয়ে আলাদা করবে।
SVM-এর কাজের প্রক্রিয়া সাধারণত নীচের মত হয়:
SVM মডেল তৈরি করতে Python এর Scikit-learn লাইব্রেরি ব্যবহার করা যেতে পারে। এখানে একটি সাধারণ উদাহরণ দেওয়া হল যেখানে SVM ব্যবহার করে একটি ক্লাসিফিকেশন মডেল তৈরি করা হচ্ছে:
# প্রয়োজনীয় লাইব্রেরি ইনপোর্ট
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
# Iris dataset লোড
iris = datasets.load_iris()
X = iris.data
y = iris.target
# ডেটা ট্রেনিং এবং টেস্টিং সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# SVM মডেল তৈরি
svm_model = SVC(kernel='linear')
# মডেল ট্রেনিং
svm_model.fit(X_train, y_train)
# পূর্বাভাস
y_pred = svm_model.predict(X_test)
# সঠিকতার হিসাব
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100}%")
আউটপুট:
Accuracy: 100.0%
এখানে, আমরা Iris dataset ব্যবহার করেছি, এবং একটি linear kernel সহ SVM মডেল তৈরি করেছি। ট্রেনিং এবং টেস্টিং ডেটা ভাগ করার পর, মডেলটি সঠিকভাবে ক্লাসিফিকেশন করেছে।
Support Vector Machine (SVM) একটি শক্তিশালী এবং জনপ্রিয় মেশিন লার্নিং অ্যালগরিদম যা শ্রেণীবিভাগ এবং রিগ্রেশন সমস্যার জন্য ব্যবহৃত হয়। এটি hyperplane এবং support vectors ব্যবহার করে শ্রেণী বিভাজন করে। SVM-এর সুবিধাগুলির মধ্যে উচ্চ নির্ভুলতা এবং উচ্চমাত্রার ডেটার জন্য কার্যকারিতা অন্তর্ভুক্ত। তবে এটি computationally expensive হতে পারে এবং সঠিক kernel নির্বাচন করা প্রয়োজন হতে পারে। SVM-এর সাহায্যে আপনি ইমেজ ক্লাসিফিকেশন, টেক্সট ক্লাসিফিকেশন, এবং অন্যান্য বিভিন্ন অ্যাপ্লিকেশনে কার্যকরী মডেল তৈরি করতে পারেন।
মডেল টিউনিং এবং হাইপারপ্যারামিটার অপটিমাইজেশন মেশিন লার্নিং মডেল তৈরি করার একটি গুরুত্বপূর্ণ অংশ, যেখানে মডেলের কার্যকারিতা (performance) বাড়ানোর জন্য মডেলের প্যারামিটার এবং হাইপারপ্যারামিটারকে সঠিকভাবে সেট করা হয়। এখানে মডেল টিউনিং এর মাধ্যমে মডেলকে আরও ভালোভাবে কাজ করানোর জন্য উপযুক্ত মান সেট করা হয় এবং হাইপারপ্যারামিটার অপটিমাইজেশন একটি পদ্ধতি যা মডেলটির সঠিক হাইপারপ্যারামিটার খুঁজে বের করতে ব্যবহৃত হয়।
মডেল টিউনিং হলো মডেলটির কার্যক্ষমতা বাড়ানোর জন্য বিভিন্ন প্যারামিটার বা ফিচার সমন্বয় করা। সাধারণত, টিউনিং করার সময় আপনি মডেলের বিভিন্ন কনফিগারেশন পরীক্ষা করেন, যাতে এটি ডেটার সাথে সর্বোচ্চ সম্ভাব্য দক্ষতায় কাজ করে।
হাইপারপ্যারামিটার অপটিমাইজেশন হলো মডেলের কার্যকারিতা উন্নত করতে ব্যবহৃত একটি প্রক্রিয়া, যেখানে মডেলটি প্রশিক্ষণের সময় নির্বাচিত প্যারামিটারগুলির বাইরে আরও কিছু প্যারামিটার (যেমন, Learning Rate, Number of Trees, Maximum Depth, Regularization Parameters ইত্যাদি) ম্যানুয়ালি বা স্বয়ংক্রিয়ভাবে সেট করা হয়।
হাইপারপ্যারামিটার হল এমন প্যারামিটার যা মডেল প্রশিক্ষণের আগে সেট করতে হয় এবং এটি মডেলের প্রশিক্ষণ প্রক্রিয়ার অংশ নয়।
উদাহরণস্বরূপ:
from sklearn.model_selection import GridSearchCV
param_grid = {'C': [0.1, 1, 10], 'kernel': ['linear', 'rbf']}
grid_search = GridSearchCV(SVC(), param_grid, cv=5)
grid_search.fit(X_train, y_train)
print(grid_search.best_params_)
উদাহরণস্বরূপ:
from sklearn.model_selection import RandomizedSearchCV
param_dist = {'C': [0.1, 1, 10], 'kernel': ['linear', 'rbf']}
random_search = RandomizedSearchCV(SVC(), param_dist, cv=5)
random_search.fit(X_train, y_train)
print(random_search.best_params_)
মডেল টিউনিং এবং হাইপারপ্যারামিটার অপটিমাইজেশন হল মেশিন লার্নিং মডেল তৈরির গুরুত্বপূর্ণ অংশ। মডেল টিউনিং হল মডেলের কার্যকারিতা উন্নত করতে বিভিন্ন প্যারামিটার এবং ফিচারগুলির পরিবর্তন। হাইপারপ্যারামিটার অপটিমাইজেশন হল মডেল প্রশিক্ষণের জন্য সঠিক হাইপারপ্যারামিটারগুলি খুঁজে বের করার প্রক্রিয়া, যা মডেলের পারফরম্যান্স বাড়াতে সাহায্য করে।
Read more