Python3
200 subscribers
100 photos
6 videos
26 files
518 links
🎓 آموزش و پروژه‌های Python
آموزش‌های کاربردی و پروژه‌های عملی Python برای همه سطوح. 🚀
Download Telegram
📌 پیاده‌سازی دستی 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 #پیاده‌سازی_دستی #یادگیری_ماشین #هوش_مصنوعی
📌 پیاده‌سازی دستی 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 #پیاده‌سازی_دستی #یادگیری_ماشین #هوش_مصنوعی
2
📌 پیاده‌سازی دستی 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 بود! در آموزش بعدی سراغ الگوریتم بعدی می‌ریم. 😍
4
آموزش نصب محیط کد نویسی بدون دردسر 😀:
https://aparat.com/v/bpwjlky

کانال مارو دنبال کنید❤️:
https://www.aparat.com/Amir_1234_ka
🔥1🤔1
آموزش ساخت پایگاه داده و دیتابیس در پایتون خیلی راحت😅:
https://aparat.com/v/xqmhfvz

کانال مارو هم دنبال کنید😀❤️:
https://www.aparat.com/Amir_1234_ka
1🤔1
چطوری میشه قیمت لحظه ای دلار رو با پایتون گرفت؟
https://aparat.com/v/nkh1b2t

کانال رو دنبال کنید❤️:
https://www.aparat.com/Amir_1234_ka
🥰1👏1
چطوری با پایتون فایل های Json رو بخونیم؟😃:
https://aparat.com/v/hrzy207

کانال مارو دنبال کنید❤️:
https://www.aparat.com/Amir_1234_ka
👍2
https://aparat.com/v/vtblb08

آموزش فعال کردن Microsoft Store ر ویندوز!😀
https://aparat.com/v/oedg6kp

چطوری توی ویندوزمون Copilot رو دانلود و نصب کنیم و استفاده کنیم؟
https://aparat.com/v/qcybu6y

چطوری یک صفحه لاگین سایت رو هک کنیم؟؟😎
Python Programing 🐍:
کانال ماینکرافتمون رو فالو داشته باشید و گم نکنید و یادتون نره حتما حمایت کنید😍

https://www.aparat.com/Amir_1234_ka

قسمت اول ماینکرافتمون:
https://www.aparat.com/v/cra8adm?playlist=20008513
آموزش نصب محیط کد نویسی پایتون:
https://aparat.com/v/mroio69

امیدوارم لذت ببرید.❤️
حتما کانال مارو فالو داشته باشید:
https://www.aparat.com/Amir_1234_ka

مرسی که مارا دنبال میکنید.🌸
آموزش جنگو در 30 دقیقه ساده و کاربردی:
لینک ویدیو جنگو:
https://aparat.com/v/aow2664

با امیر آر ام توی 30 دقیقه طراح سایت شو😎
اگر از این ویدیو خوشتون اومد لایک و فالو کانال زیر یادتون نره❤️
https://www.aparat.com/Amir_1234_ka
قسمت اول آموزش برنامه نویسی flutter با پایتون🤓:
https://aparat.com/v/lqwy24p

ازتون خواهشمندم ویدیو هام رو لایک کنید و فالوم کنید تا ویدیو های بیشتری بزارم❤️:
https://www.aparat.com/Amir_1234_ka

#برنامه_نویسی_امیر_RM
قسمت دوم آموزش برنامه نویسی flutter با پایتون🤓:
https://aparat.com/v/ddy69iu

ممنون میشم فالوم کنید و ویدیو هام رو لایک کنید تا قسمت های بعدی رو هم بزارم❤️😎:
https://www.aparat.com/Amir_1234_ka

#برنامه_نویسی_امیر_RM
قسمت سوم آموزش برنامه نویسی flutter با پایتون🤓:
https://aparat.com/v/mlncj09

خواهشمند شما عزیزان هستم که کانال من رو فالو داشته باشید تا آموزش های بیشتری گذاشته بشه❤️:
https://www.aparat.com/Amir_1234_ka

#برنامه_نویسی_امیر_RM
🎮
اگر به گیم علاقه داری اوففففف این کانال براتوعه😁😘
https://rubika.ir/Gameplay421
همش گیمههه لامصبببب😅
🎮
👍2
تبدیل ماین کرافت ساده به ماین کرافت واقعی!!😎:
https://aparat.com/v/vto68hi

کانال ما فراموش نشه✌️❤️:
https://www.aparat.com/Amir_1234_ka