پروژه کامل KNN: تشخیص دستخط ارقام (MNIST) 🔢🤖
✅ در این پروژه، یک مدل KNN را روی مجموعه داده MNIST پیادهسازی میکنیم تا بتواند دستخط اعداد (۰ تا ۹) را شناسایی کند! 🎯
📌 مراحل پروژه:
1️⃣ دریافت و آمادهسازی دادهها
2️⃣ نمایش چند نمونه از دادهها
3️⃣ تقسیم دادهها به مجموعه آموزش و تست
4️⃣ ساخت و آموزش مدل KNN
5️⃣ ارزیابی مدل و محاسبه دقت
6️⃣ پیشبینی یک نمونه جدید
۱. دریافت و آمادهسازی دادهها 📥
ابتدا مجموعه داده MNIST را بارگذاری کرده و آن را آماده میکنیم.
۲. نمایش چند نمونه از ارقام 🔢
برای درک بهتر، چند عدد دستنویس را نمایش میدهیم.
۳. تقسیم دادهها به مجموعه آموزش و تست 🎯
ما دادهها را به ۷۰٪ آموزش و ۳۰٪ تست تقسیم میکنیم.
۴. ساخت و آموزش مدل KNN 🤖
حالا مدل KNN را ایجاد کرده و آن را روی دادههای آموزشی تمرین میدهیم.
۵. ارزیابی مدل و محاسبه دقت 📊
حالا دقت مدل را بررسی میکنیم تا ببینیم چقدر خوب کار میکند!
📌 اگر دقت بالا باشد (مثلاً ۹۵٪)، یعنی مدل ما عملکرد خوبی دارد! 🚀
۶. پیشبینی یک نمونه جدید 🤔🔮
بیایید یک عدد تصادفی از دادههای تست انتخاب کرده و مدل را روی آن آزمایش کنیم!
✅ اگر مدل عدد صحیح را تشخیص دهد، یعنی عملکرد آن خوب است! 🎯
🎯 جمعبندی پروژه:
✅ یک مدل KNN برای تشخیص اعداد دستنویس ساختیم.
✅ مدل را روی مجموعه داده MNIST آموزش دادیم.
✅ دقت مدل را محاسبه کردیم و یک عدد جدید را تست کردیم.
📌 حالا شما میتوانید این مدل را روی تصاویر خودتان آزمایش کنید! 🤖🔥
[لینک کانال ما]
#یادگیری_ماشین 🤖 #KNN #هوش_مصنوعی #تشخیص_اعداد 🔢 #MachineLearning #AI #کلاسیفیکیشن 🎯
✅ در این پروژه، یک مدل KNN را روی مجموعه داده MNIST پیادهسازی میکنیم تا بتواند دستخط اعداد (۰ تا ۹) را شناسایی کند! 🎯
📌 مراحل پروژه:
1️⃣ دریافت و آمادهسازی دادهها
2️⃣ نمایش چند نمونه از دادهها
3️⃣ تقسیم دادهها به مجموعه آموزش و تست
4️⃣ ساخت و آموزش مدل KNN
5️⃣ ارزیابی مدل و محاسبه دقت
6️⃣ پیشبینی یک نمونه جدید
۱. دریافت و آمادهسازی دادهها 📥
ابتدا مجموعه داده MNIST را بارگذاری کرده و آن را آماده میکنیم.
from sklearn.datasets import fetch_openml
import numpy as np
import matplotlib.pyplot as plt
# دریافت دیتاست MNIST
mnist = fetch_openml('mnist_784', version=1, as_frame=False)
X, y = mnist.data, mnist.target # ویژگیها و برچسبها
# تبدیل برچسبها به اعداد صحیح
y = y.astype(int)
# نمایش ابعاد دیتاست
print(f"✅ تعداد نمونهها: {X.shape[0]}, تعداد ویژگیها: {X.shape[1]}")
۲. نمایش چند نمونه از ارقام 🔢
برای درک بهتر، چند عدد دستنویس را نمایش میدهیم.
# نمایش چند تصویر از دیتاست
fig, axes = plt.subplots(1, 5, figsize=(10,3))
for i, ax in enumerate(axes):
ax.imshow(X[i].reshape(28,28), cmap="gray")
ax.set_title(f"عدد: {y[i]}")
ax.axis("off")
plt.show()
۳. تقسیم دادهها به مجموعه آموزش و تست 🎯
ما دادهها را به ۷۰٪ آموزش و ۳۰٪ تست تقسیم میکنیم.
from sklearn.model_selection import train_test_split
# تقسیم دادهها
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
print(f"✅ دادههای آموزش: {X_train.shape[0]}, دادههای تست: {X_test.shape[0]}")
۴. ساخت و آموزش مدل KNN 🤖
حالا مدل KNN را ایجاد کرده و آن را روی دادههای آموزشی تمرین میدهیم.
from sklearn.neighbors import KNeighborsClassifier
# مقدار K را مشخص میکنیم
k = 3
# مدل KNN را میسازیم و آموزش میدهیم
knn = KNeighborsClassifier(n_neighbors=k)
knn.fit(X_train, y_train)
print("✅ مدل KNN آموزش داده شد!")
۵. ارزیابی مدل و محاسبه دقت 📊
حالا دقت مدل را بررسی میکنیم تا ببینیم چقدر خوب کار میکند!
from sklearn.metrics import accuracy_score
# پیشبینی دادههای تست
y_pred = knn.predict(X_test)
# محاسبه دقت
accuracy = accuracy_score(y_test, y_pred)
print(f"🎯 دقت مدل: {accuracy:.2f}")
📌 اگر دقت بالا باشد (مثلاً ۹۵٪)، یعنی مدل ما عملکرد خوبی دارد! 🚀
۶. پیشبینی یک نمونه جدید 🤔🔮
بیایید یک عدد تصادفی از دادههای تست انتخاب کرده و مدل را روی آن آزمایش کنیم!
import random
# انتخاب یک نمونه تصادفی از دادههای تست
index = random.randint(0, len(X_test))
sample_image = X_test[index].reshape(28, 28) # تبدیل به تصویر ۲۸×۲۸
# پیشبینی مدل
predicted_label = knn.predict([X_test[index]])[0]
# نمایش تصویر و پیشبینی مدل
plt.imshow(sample_image, cmap="gray")
plt.title(f"مدل پیشبینی کرد: {predicted_label}")
plt.axis("off")
plt.show()
✅ اگر مدل عدد صحیح را تشخیص دهد، یعنی عملکرد آن خوب است! 🎯
🎯 جمعبندی پروژه:
✅ یک مدل KNN برای تشخیص اعداد دستنویس ساختیم.
✅ مدل را روی مجموعه داده MNIST آموزش دادیم.
✅ دقت مدل را محاسبه کردیم و یک عدد جدید را تست کردیم.
📌 حالا شما میتوانید این مدل را روی تصاویر خودتان آزمایش کنید! 🤖🔥
[لینک کانال ما]
#یادگیری_ماشین 🤖 #KNN #هوش_مصنوعی #تشخیص_اعداد 🔢 #MachineLearning #AI #کلاسیفیکیشن 🎯
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
👍2👏1