📌 پیادهسازی دستی SVM – پارت ۱: مقدمه و درک مفهوم الگوریتم 🚀
حالا که SVM با sklearn رو یاد گرفتیم، وقتشه که این الگوریتم رو از صفر و بهصورت دستی پیادهسازی کنیم! 😍 در این آموزش، مرحلهبهمرحله جلو میریم تا کاملاً متوجه بشیم که SVM چطور کار میکنه و چطور از دادهها برای یافتن یک مرز تصمیم بهینه استفاده میکنه.
🔹 SVM چیست و چرا مهم اسست
ماشین بردار پشتیبان (SVM) یکی از قویترین الگوریتمهای طبقهبندی در یادگیری ماشین هست که میتونه یک ابرصفحهی جداکنندهی بهینه بین کلاسهای مختلف ایجاد کنه. 🎯
✅ هدف SVM:
📌 پیدا کردن بهترین مرز تصمی که کلاسها رو از هم جدا کنه.
📌 به حداکثر رساندن فاصله (Margin) بین کلاسهای مختلف.
📌 استفاده از بردارهای پشتیبان (Support Vectors) برای مشخص کردن مرز.
🔹 ایدهی اصلی SVM چگونه کار میکند؟
📌 فرض کنید دو کلاس داده داریم (🔴 و 🔵) و میخوایم اونها رو از هم جدا کنیم.
📌 مرزهای مختلفی برای جدا کردن این دو کلاس وجود داره، اما SVM بهترین مرز را پیدا میکنه که فاصلهی بیشتری از دادههای دو کلاس داشته باشه.
✅ این مرز، یک ابرصفحه (Hyperplane)هست که توسط SVM پیدا میشه! 😍
🔹 چرا پیادهسازی دستی SVM مهم است؟
✅ درک عمیق از نحوهی محاسبهی بردارهای پشتیبان و مرز تصمیم.
✅ فهمیدن دقیق چگونه SVM دادههای جدید را دستهبندی میکند.
✅ یادگیری نحوهی استفاده از هینهسازی ریاضی برای یافتن بهترین مرز تصمیم.
🔹 مراحل پیادهسازی دستی SVM
در پارتهای بعدی گامبهگام کدهای SVM رو از صفر پیادهسازی میکنیم:
🔹 پارت ۲: پیادهسازی تابع هزینه و گرادیان نزولی 🚀
🔹 پارت ۳: پیادهسازی تابع آموزش مدل (Training) 🎯
🔹 پارت ۴: پیادهسازی تابع پیشبینی (Prediction) 🔍
🔹 پارت ۵: تست مدل روی دادههای واقعی و ارزیابی آن ✅
📌 در پارت بعدی، وارد دنیای ریاضی SVM میشیم و توابع اصلی اون رو پیادهسازی میکنیم!😍
لینک
#SVM #پیادهسازی_دستی #یادگیری_ماشین #هوش_مصنوعی #طبقهبندی
حالا که SVM با sklearn رو یاد گرفتیم، وقتشه که این الگوریتم رو از صفر و بهصورت دستی پیادهسازی کنیم! 😍 در این آموزش، مرحلهبهمرحله جلو میریم تا کاملاً متوجه بشیم که SVM چطور کار میکنه و چطور از دادهها برای یافتن یک مرز تصمیم بهینه استفاده میکنه.
🔹 SVM چیست و چرا مهم اسست
ماشین بردار پشتیبان (SVM) یکی از قویترین الگوریتمهای طبقهبندی در یادگیری ماشین هست که میتونه یک ابرصفحهی جداکنندهی بهینه بین کلاسهای مختلف ایجاد کنه. 🎯
✅ هدف SVM:
📌 پیدا کردن بهترین مرز تصمی که کلاسها رو از هم جدا کنه.
📌 به حداکثر رساندن فاصله (Margin) بین کلاسهای مختلف.
📌 استفاده از بردارهای پشتیبان (Support Vectors) برای مشخص کردن مرز.
🔹 ایدهی اصلی SVM چگونه کار میکند؟
📌 فرض کنید دو کلاس داده داریم (🔴 و 🔵) و میخوایم اونها رو از هم جدا کنیم.
📌 مرزهای مختلفی برای جدا کردن این دو کلاس وجود داره، اما SVM بهترین مرز را پیدا میکنه که فاصلهی بیشتری از دادههای دو کلاس داشته باشه.
✅ این مرز، یک ابرصفحه (Hyperplane)هست که توسط SVM پیدا میشه! 😍
🔹 چرا پیادهسازی دستی SVM مهم است؟
✅ درک عمیق از نحوهی محاسبهی بردارهای پشتیبان و مرز تصمیم.
✅ فهمیدن دقیق چگونه SVM دادههای جدید را دستهبندی میکند.
✅ یادگیری نحوهی استفاده از هینهسازی ریاضی برای یافتن بهترین مرز تصمیم.
🔹 مراحل پیادهسازی دستی SVM
در پارتهای بعدی گامبهگام کدهای SVM رو از صفر پیادهسازی میکنیم:
🔹 پارت ۲: پیادهسازی تابع هزینه و گرادیان نزولی 🚀
🔹 پارت ۳: پیادهسازی تابع آموزش مدل (Training) 🎯
🔹 پارت ۴: پیادهسازی تابع پیشبینی (Prediction) 🔍
🔹 پارت ۵: تست مدل روی دادههای واقعی و ارزیابی آن ✅
📌 در پارت بعدی، وارد دنیای ریاضی SVM میشیم و توابع اصلی اون رو پیادهسازی میکنیم!😍
لینک
#SVM #پیادهسازی_دستی #یادگیری_ماشین #هوش_مصنوعی #طبقهبندی
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
📌 پیادهسازی دستی SVM – پارت ۲: تابع هزینه و گرادیان نزولی 🚀
حالا که با مفهوم SVM آشنا شدیم، توی این پارت میخوایم توابع اصلی برای محاسبه هزینه و بهروزرسانی وزنها با گرادیان نزولی رو پیادهسازی کنیم. 😍
🔹 تابع هزینه در SVM چطور کار میکند؟
✅ هدف SVM اینه که یک ابرصفحهی جداکننده بهینه پیدا کنه. برای این کار، باید یک تابع هزینه (Loss Function) تعریف کنیم که مقدارش هرچه کمتر باشه، مدل بهتر شده. 🎯
تابع هزینهی SVM دو بخش داره:
📌 ۱. جریمهی کلاسبندی نادرست: دادههایی که در سمت اشتباه مرز قرار بگیرند، جریمه میشن! 😢
📌 ۲. کاهش پیچیدگی مدل: مدل نباید بیش از حد پیچیده بشه تا روی دادههای جدید هم خوب کار کنه.
✅ تابع هزینهی Hinge Loss برای SVM به این شکل تعریف میشه:
فورمول پایین متن
🔹 پیادهسازی تابع هزینه و گرادیان نزولی
حالا بریم کد محاسبه هزینه و بهروزرسانی وزنها رو بنویسیم! 🚀
🔹 توضیح کد بالا
✅
✅
📌 در پارت بعدی، مدل رو روی دادههای واقعی اجرا میکنیم و بررسی میکنیم که چطور کار میکنه! 🚀
لینک
#SVM #پیادهسازی_دستی #یادگیری_ماشین #هوش_مصنوعی
حالا که با مفهوم SVM آشنا شدیم، توی این پارت میخوایم توابع اصلی برای محاسبه هزینه و بهروزرسانی وزنها با گرادیان نزولی رو پیادهسازی کنیم. 😍
🔹 تابع هزینه در SVM چطور کار میکند؟
✅ هدف SVM اینه که یک ابرصفحهی جداکننده بهینه پیدا کنه. برای این کار، باید یک تابع هزینه (Loss Function) تعریف کنیم که مقدارش هرچه کمتر باشه، مدل بهتر شده. 🎯
تابع هزینهی SVM دو بخش داره:
📌 ۱. جریمهی کلاسبندی نادرست: دادههایی که در سمت اشتباه مرز قرار بگیرند، جریمه میشن! 😢
📌 ۲. کاهش پیچیدگی مدل: مدل نباید بیش از حد پیچیده بشه تا روی دادههای جدید هم خوب کار کنه.
✅ تابع هزینهی Hinge Loss برای SVM به این شکل تعریف میشه:
فورمول پایین متن
🔹 پیادهسازی تابع هزینه و گرادیان نزولی
حالا بریم کد محاسبه هزینه و بهروزرسانی وزنها رو بنویسیم! 🚀
import numpy as np
class SVM:
def __init__(self, learning_rate=0.01, lambda_param=0.01, n_iters=1000):
self.lr = learning_rate # نرخ یادگیری
self.lambda_param = lambda_param # مقدار جریمه
self.n_iters = n_iters # تعداد تکرارها
self.w = None # وزنها
self.b = None # بایاس
def fit(self, X, y):
n_samples, n_features = X.shape
self.w = np.zeros(n_features) # مقداردهی اولیه وزنها
self.b = 0 # مقداردهی اولیه بایاس
# اجرای گرادیان نزولی برای بهینهسازی مدل
for _ in range(self.n_iters):
for idx, x_i in enumerate(X):
# بررسی شرط SVM
condition = y[idx] * (np.dot(x_i, self.w) + self.b) >= 1
if condition:
# اگر نمونه بهدرستی طبقهبندی شده، فقط وزنها را کم میکنیم (لینیر مدل)
self.w -= self.lr * (2 * self.lambda_param * self.w)
else:
# اگر نمونه بهدرستی طبقهبندی نشده، وزنها و بایاس را بهروز کنیم
self.w -= self.lr * (2 * self.lambda_param * self.w - np.dot(x_i, y[idx]))
self.b -= self.lr * y[idx]
def predict(self, X):
return np.sign(np.dot(X, self.w) + self.b)
🔹 توضیح کد بالا
✅
__init__
→ مقداردهی اولیه نرخ یادگیری، تعداد تکرارها، وزنها و بایاس ✅
fit
→ یادگیری مدل با استفاده از گرادیان نزولی 📌 در پارت بعدی، مدل رو روی دادههای واقعی اجرا میکنیم و بررسی میکنیم که چطور کار میکنه! 🚀
لینک
#SVM #پیادهسازی_دستی #یادگیری_ماشین #هوش_مصنوعی
📌 پیادهسازی دستی SVM – پارت ۳: آموزش مدل روی دادههای واقعی 🚀
حالا که تابع هزینه و گرادیان نزولی رو پیادهسازی کردیم، وقتشه که مدل SVM خودمون رو روی یک دیتاست واقعی اجرا کنیم تا ببینیم چطور یاد میگیره و تصمیمگیری میکنه! 😍
🔹 دیتاست مناسب برای آموزش SVM
✅ چون SVM در اصل برای طبقهبندی دودویی (Binary Classification) طراحی شده، از یک دیتاست سادهی دو کلاسه استفاده میکنیم.
✅ دیتاست ما شامل دو گروه از نقاط در فضای دوبعدی هست که میخوایم اونها رو از هم جدا کنیم.
📌 برای شروع، بیایم دادهی مصنوعی بسازیم:
📌 در این کد:
✅ دو کلاس دادهی تصادفی تولید کردیم.
✅ دادهها رو برای آموزش و تست تقسیم کردیم.
✅ با
🔹 آموزش مدل روی دادههای واقعی
حالا مدل SVM که توی پارت قبلی نوشتیم رو روی این دادهها آموزش میدیم:
📌 در این کد:
✅ مدل SVM خودمون رو با دادههای آموزش، آموزش دادیم.
✅ روی دادههای تست پیشبینی کردیم.
✅ دقت مدل رو محاسبه و چاپ کردیم. 🎯
🔹 بررسی نتیجه
✅ حالا میتونیم ببینیم که مدل ما چقدر خوب دادههای جدید رو پیشبینی میکنه! 😍
✅ اگر دقت مدل کم بود، میتونیم تعداد تکرارها (n_iters) یا نرخ یادگیری (learning_rate) رو تنظیم کنیم.
لینک
📌 در پارت بعدی، تابع پیشبینی رو گسترش میدیم و مرز تصمیم SVM رو روی دادهها رسم میکنیم!🚀
#SVM #پیادهسازی_دستی #یادگیری_ماشین #هوش_مصنوعی
حالا که تابع هزینه و گرادیان نزولی رو پیادهسازی کردیم، وقتشه که مدل SVM خودمون رو روی یک دیتاست واقعی اجرا کنیم تا ببینیم چطور یاد میگیره و تصمیمگیری میکنه! 😍
🔹 دیتاست مناسب برای آموزش SVM
✅ چون SVM در اصل برای طبقهبندی دودویی (Binary Classification) طراحی شده، از یک دیتاست سادهی دو کلاسه استفاده میکنیم.
✅ دیتاست ما شامل دو گروه از نقاط در فضای دوبعدی هست که میخوایم اونها رو از هم جدا کنیم.
📌 برای شروع، بیایم دادهی مصنوعی بسازیم:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
# تولید دادههای دو بعدی برای دو کلاس
np.random.seed(1)
X1 = np.random.randn(50, 2) + np.array([2, 2]) # کلاس ۱
X2 = np.random.randn(50, 2) + np.array([-2, -2]) # کلاس ۲
X = np.vstack((X1, X2)) # ترکیب دو کلاس
y = np.hstack((np.ones(50), -np.ones(50))) # برچسبها (۱ و -۱)
# تقسیم دادهها به آموزش و تست
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
# نمایش دادهها
plt.scatter(X1[:, 0], X1[:, 1], color='b', label='کلاس ۱')
plt.scatter(X2[:, 0], X2[:, 1], color='r', label='کلاس ۲')
plt.legend()
plt.show()
📌 در این کد:
✅ دو کلاس دادهی تصادفی تولید کردیم.
✅ دادهها رو برای آموزش و تست تقسیم کردیم.
✅ با
matplotlib
دادهها رو رسم کردیم تا ببینیم چطور پخش شدن. 🔹 آموزش مدل روی دادههای واقعی
حالا مدل SVM که توی پارت قبلی نوشتیم رو روی این دادهها آموزش میدیم:
# ایجاد و آموزش مدل SVM
svm = SVM(learning_rate=0.01, lambda_param=0.01, n_iters=1000)
svm.fit(X_train, y_train)
# پیشبینی روی دادههای تست
y_pred = svm.predict(X_test)
# محاسبه دقت مدل
accuracy = np.mean(y_pred == y_test)
print(f"✅ دقت مدل: {accuracy * 100:.2f}%")
📌 در این کد:
✅ مدل SVM خودمون رو با دادههای آموزش، آموزش دادیم.
✅ روی دادههای تست پیشبینی کردیم.
✅ دقت مدل رو محاسبه و چاپ کردیم. 🎯
🔹 بررسی نتیجه
✅ حالا میتونیم ببینیم که مدل ما چقدر خوب دادههای جدید رو پیشبینی میکنه! 😍
✅ اگر دقت مدل کم بود، میتونیم تعداد تکرارها (n_iters) یا نرخ یادگیری (learning_rate) رو تنظیم کنیم.
لینک
📌 در پارت بعدی، تابع پیشبینی رو گسترش میدیم و مرز تصمیم SVM رو روی دادهها رسم میکنیم!🚀
#SVM #پیادهسازی_دستی #یادگیری_ماشین #هوش_مصنوعی
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
📌 پیادهسازی دستی SVM – پارت ۴: رسم مرز تصمیم و ارزیابی مدل🚀
حالا که مدل رو آموزش دادیم و روی دادههای تست پیشبینی انجام دادیم، وقتشه که مدل رو بهصورت گرافیکی بررسی کنیم و ببینیم مرز تصمیم (Decision Boundary) چطور شکل گرفته! 😍
🔹 رسم مرز تصمیم SVM
📌 مرز تصمیم در SVM همون خطی هست که دو کلاس داده رو از هم جدا میکنه و براساس بردار وزنهای مدل (w) و بایاس (b) محاسبه میشه.
بیایم تابعی بنویسیم که این مرز رو رسم کنه:
🔹 توضیحات کد:
✅ دادههای ورودی رو روی نمودار پراکندگی رسم کردیم تا ببینیم چطور توزیع شدن.
✅ یک مشبک از نقاط ساختیمتا خروجی مدل رو در کل فضای ویژگی پیشبینی کنیم.
✅ مرز تصمیم رو با contourf رسم کردیم که دو کلاس داده رو از هم جدا میکنه.
🔹 بررسی عملکرد مدل
حالا که مرز تصمیم مدل رو دیدیم، میتونیم نتیجه بگیریم:
✅ اگر مرز تصمیم خیلی پیچیده باشه یعنی مدل بیش از حد دادهها رو یاد گرفته(Overfitting).
✅ گر مرز تصمیم نتونه کلاسها رو خوب جدا کنه: ویعنی مدل نیاز به آموزش بیشتر یا تنظیم بهتر پارامترها داره.
📌 در پارت آخر، یک پروژه واقعی و کاربردی با SVM اجرا میکنیم تا این الگوریتم رو در دنیای واقعی ببینیم! 🚀
لین
#SVM #پیادهسازی_دستی #یادگیری_ماشین #هوش_مصنوعی
حالا که مدل رو آموزش دادیم و روی دادههای تست پیشبینی انجام دادیم، وقتشه که مدل رو بهصورت گرافیکی بررسی کنیم و ببینیم مرز تصمیم (Decision Boundary) چطور شکل گرفته! 😍
🔹 رسم مرز تصمیم SVM
📌 مرز تصمیم در SVM همون خطی هست که دو کلاس داده رو از هم جدا میکنه و براساس بردار وزنهای مدل (w) و بایاس (b) محاسبه میشه.
بیایم تابعی بنویسیم که این مرز رو رسم کنه:
def plot_decision_boundary(X, y, model):
fig, ax = plt.subplots()
# نمایش دادههای ورودی
ax.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.bwr, alpha=0.7)
# تولید نقاط برای مرز تصمیم
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.linspace(x_min, x_max, 100), np.linspace(y_min, y_max, 100))
# پیشبینی مقدار کلاس برای هر نقطه در فضای ویژگی
Z = model.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
# رسم مرز تصمیم
ax.contourf(xx, yy, Z, levels=[-1, 0, 1], alpha=0.2, colors=['red', 'blue'])
plt.title("SVM Decision Boundary")
plt.show()
# نمایش مرز تصمیم مدل SVM
plot_decision_boundary(X, y, svm)
🔹 توضیحات کد:
✅ دادههای ورودی رو روی نمودار پراکندگی رسم کردیم تا ببینیم چطور توزیع شدن.
✅ یک مشبک از نقاط ساختیمتا خروجی مدل رو در کل فضای ویژگی پیشبینی کنیم.
✅ مرز تصمیم رو با contourf رسم کردیم که دو کلاس داده رو از هم جدا میکنه.
🔹 بررسی عملکرد مدل
حالا که مرز تصمیم مدل رو دیدیم، میتونیم نتیجه بگیریم:
✅ اگر مرز تصمیم خیلی پیچیده باشه یعنی مدل بیش از حد دادهها رو یاد گرفته(Overfitting).
✅ گر مرز تصمیم نتونه کلاسها رو خوب جدا کنه: ویعنی مدل نیاز به آموزش بیشتر یا تنظیم بهتر پارامترها داره.
📌 در پارت آخر، یک پروژه واقعی و کاربردی با SVM اجرا میکنیم تا این الگوریتم رو در دنیای واقعی ببینیم! 🚀
لین
#SVM #پیادهسازی_دستی #یادگیری_ماشین #هوش_مصنوعی
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
❤2
📌 پیادهسازی دستی SVM – پارت ۵: پروژه عملی تشخیص دستنوشته با SVM 🚀
حالا که مدل SVM رو از صفر پیادهسازی کردیم، بیایم یک پروژه واقعی و کاربردی اجرا کنیم! 😍 توی این پروژه، از دیتاست ارقام دستنویس (Digits Dataset) استفاده میکنیم تا مدل SVM، اعداد 0 تا 9 رو شناسایی کنه. 🎯
🔹 معرفی دیتاست دستنوشته (Digits Dataset)
📌 این دیتاست شامل 1797 تصویر 8×8 از اعداد 0 تا 9 هست.
📌 هر تصویر یک ماتریس 8×8 از مقدار پیکسلها است که مقدارش بین 0 تا 16 قرار داره.
📌 هر تصویر، برچسبی داره که عدد دستنوشته رو مشخص میکنه (بین 0 تا 9).
🔹 بارگذاری و نمایش دادهها
اول، دیتاست رو بارگذاری میکنیم و چند نمونه از تصاویر رو نمایش میدیم:
✅ ویژگیها (
✅ برچسبها (
✅ چند تا نمونه از تصاویر رو با
🔹 تقسیم دادهها و نرمالسازی
قبل از آموزش مدل،به مجموعهی آموزش و تست تقسیم تست تقسیم** میکنیم و نرمالسازی انجام میدیم:
✅ 70% دادهها رو برای آموزش و 30% رو برای تست در نظر ویژگیها رو نرمالسازی کردیممالسازی کردیم تا مدل بهتر کار 🔹 آموزش مدل SVM آموزش مدل SVM
حالا مدل SVM رو روی دادههای دستنویس اجرا میکنیم:
✅ از کرنل خطی (
🔹 تست مدل روی یک عدد دلخواه
بیایم یکی از تصاویر تست رو انتخاب کنیم و ببینیم مدل چه عددی پیشبینی میکنه! 😍
✅ یک تصویر از دادههای تست عدد دستنویس رو پیشبینی میکنه و نمایش میده
🔹 نتیجهگیریSVMمیتونه اعداد دستنویس رو با دقت بالا تشخیص بدهکرنلهای مختلف (linear, rbf, poly) میتونیم مدل رو بهینه نشان داد که SVM چطور در مسائل طبقهبندی چندکلاسه استفاده میشه! 🔥
این پایان سری آموزش SVM بود! در آموزش بعدی سراغ الگوریتم بعدی میریم. 😍
حالا که مدل SVM رو از صفر پیادهسازی کردیم، بیایم یک پروژه واقعی و کاربردی اجرا کنیم! 😍 توی این پروژه، از دیتاست ارقام دستنویس (Digits Dataset) استفاده میکنیم تا مدل SVM، اعداد 0 تا 9 رو شناسایی کنه. 🎯
🔹 معرفی دیتاست دستنوشته (Digits Dataset)
📌 این دیتاست شامل 1797 تصویر 8×8 از اعداد 0 تا 9 هست.
📌 هر تصویر یک ماتریس 8×8 از مقدار پیکسلها است که مقدارش بین 0 تا 16 قرار داره.
📌 هر تصویر، برچسبی داره که عدد دستنوشته رو مشخص میکنه (بین 0 تا 9).
🔹 بارگذاری و نمایش دادهها
اول، دیتاست رو بارگذاری میکنیم و چند نمونه از تصاویر رو نمایش میدیم:
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# بارگذاری دیتاست
digits = datasets.load_digits()
X, y = digits.data, digits.target # ویژگیها و برچسبها
# نمایش چند نمونه از اعداد دستنویس
fig, axes = plt.subplots(2, 5, figsize=(10, 5))
for i, ax in enumerate(axes.flat):
ax.imshow(digits.images[i], cmap='gray')
ax.set_title(f'Label: {digits.target[i]}')
ax.axis('off')
plt.show()
✅ ویژگیها (
X
) شامل مقادیر پیکسلهای تصاویر هستن.✅ برچسبها (
y
) عدد دستنویس داخل هر تصویر رو مشخص میکنن. ✅ چند تا نمونه از تصاویر رو با
imshow
رسم کردیم تا ببینیم دادهها چطور هستن.🔹 تقسیم دادهها و نرمالسازی
قبل از آموزش مدل،به مجموعهی آموزش و تست تقسیم تست تقسیم** میکنیم و نرمالسازی انجام میدیم:
# تقسیم دادهها به آموزش و تست
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
# استانداردسازی دادهها
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
✅ 70% دادهها رو برای آموزش و 30% رو برای تست در نظر ویژگیها رو نرمالسازی کردیممالسازی کردیم تا مدل بهتر کار 🔹 آموزش مدل SVM آموزش مدل SVM
حالا مدل SVM رو روی دادههای دستنویس اجرا میکنیم:
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
# ایجاد و آموزش مدل SVM
svm = SVC(kernel='linear', C=1.0)
svm.fit(X_train, y_train)
# پیشبینی روی دادههای تست
y_pred = svm.predict(X_test)
# محاسبه دقت مدل
accuracy = accuracy_score(y_test, y_pred)
print(f"✅ دقت مدل: {accuracy * 100:.2f}%")
✅ از کرنل خطی (
kernel='linear'
) استفاد میشه بعد از نرمالسازی بهتر جدا میشندقت مدل روی دادههای تست رو محاسبه کردیم 🔹 تست مدل روی یک عدد دلخواه
بیایم یکی از تصاویر تست رو انتخاب کنیم و ببینیم مدل چه عددی پیشبینی میکنه! 😍
index = 5 # عدد تست دلخواه
image = X_test[index].reshape(1, -1) # تبدیل تصویر به فرمت مناسب مدل
# پیشبینی مدل
predicted_label = svm.predict(image)[0]
# نمایش تصویر و عدد پیشبینی شده
plt.imshow(digits.images[index], cmap='gray')
plt.title(f'عدد پیشبینی شده: {predicted_label}')
plt.axis('off')
plt.show()
✅ یک تصویر از دادههای تست عدد دستنویس رو پیشبینی میکنه و نمایش میده
🔹 نتیجهگیریSVMمیتونه اعداد دستنویس رو با دقت بالا تشخیص بدهکرنلهای مختلف (linear, rbf, poly) میتونیم مدل رو بهینه نشان داد که SVM چطور در مسائل طبقهبندی چندکلاسه استفاده میشه! 🔥
این پایان سری آموزش SVM بود! در آموزش بعدی سراغ الگوریتم بعدی میریم. 😍
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
❤4
Forwarded from چنل پایتون | جنگو | برنامه نویسی وب سایت | HTML & CSS & JS (Py3)
آموزش نصب محیط کد نویسی بدون دردسر 😀:
https://aparat.com/v/bpwjlky
کانال مارو دنبال کنید❤️:
https://www.aparat.com/Amir_1234_ka
https://aparat.com/v/bpwjlky
کانال مارو دنبال کنید❤️:
https://www.aparat.com/Amir_1234_ka
🔥1🤔1
Forwarded from چنل پایتون | جنگو | برنامه نویسی وب سایت | HTML & CSS & JS (Py3)
آموزش ساخت پایگاه داده و دیتابیس در پایتون خیلی راحت😅:
https://aparat.com/v/xqmhfvz
کانال مارو هم دنبال کنید😀❤️:
https://www.aparat.com/Amir_1234_ka
https://aparat.com/v/xqmhfvz
کانال مارو هم دنبال کنید😀❤️:
https://www.aparat.com/Amir_1234_ka
❤1🤔1
Forwarded from چنل پایتون | جنگو | برنامه نویسی وب سایت | HTML & CSS & JS (Py3)
چطوری میشه قیمت لحظه ای دلار رو با پایتون گرفت؟
https://aparat.com/v/nkh1b2t
کانال رو دنبال کنید❤️:
https://www.aparat.com/Amir_1234_ka
https://aparat.com/v/nkh1b2t
کانال رو دنبال کنید❤️:
https://www.aparat.com/Amir_1234_ka
🥰1👏1
Forwarded from چنل پایتون | جنگو | برنامه نویسی وب سایت | HTML & CSS & JS (Py3)
چطوری با پایتون فایل های Json رو بخونیم؟😃:
https://aparat.com/v/hrzy207
کانال مارو دنبال کنید❤️:
https://www.aparat.com/Amir_1234_ka
https://aparat.com/v/hrzy207
کانال مارو دنبال کنید❤️:
https://www.aparat.com/Amir_1234_ka
👍2
Forwarded from چنل پایتون | جنگو | برنامه نویسی وب سایت | HTML & CSS & JS (Py3)
Forwarded from چنل پایتون | جنگو | برنامه نویسی وب سایت | HTML & CSS & JS (Py3)
Forwarded from چنل پایتون | جنگو | برنامه نویسی وب سایت | HTML & CSS & JS (Py3)
Python Programing 🐍:
کانال ماینکرافتمون رو فالو داشته باشید و گم نکنید و یادتون نره حتما حمایت کنید😍
https://www.aparat.com/Amir_1234_ka
قسمت اول ماینکرافتمون:
https://www.aparat.com/v/cra8adm?playlist=20008513
کانال ماینکرافتمون رو فالو داشته باشید و گم نکنید و یادتون نره حتما حمایت کنید😍
https://www.aparat.com/Amir_1234_ka
قسمت اول ماینکرافتمون:
https://www.aparat.com/v/cra8adm?playlist=20008513
آپارات - سرویس اشتراک ویدیو
آپارات | برنامه نویسی با امیر Amir Rm
سلام رفقا چطورید؟❤️
میخوایم توی این چنل برنامه نویسی یاد بگیریم
میخوایم توی این چنل برنامه نویسی یاد بگیریم
دوستان فالو کردن و دیدن از کانال آپارات من فراموش نشه😎❤️
https://www.aparat.com/Amir_1234_ka
https://www.aparat.com/Amir_1234_ka
آپارات - سرویس اشتراک ویدیو
آپارات | برنامه نویسی با امیر Amir Rm
سلام رفقا چطورید؟❤️
میخوایم توی این چنل برنامه نویسی یاد بگیریم
میخوایم توی این چنل برنامه نویسی یاد بگیریم
Forwarded from چنل پایتون | جنگو | برنامه نویسی وب سایت | HTML & CSS & JS (Py3)
آموزش نصب محیط کد نویسی پایتون:
https://aparat.com/v/mroio69
امیدوارم لذت ببرید.❤️
حتما کانال مارو فالو داشته باشید:
https://www.aparat.com/Amir_1234_ka
مرسی که مارا دنبال میکنید.🌸
https://aparat.com/v/mroio69
امیدوارم لذت ببرید.❤️
حتما کانال مارو فالو داشته باشید:
https://www.aparat.com/Amir_1234_ka
مرسی که مارا دنبال میکنید.🌸