Python3
200 subscribers
100 photos
6 videos
26 files
518 links
🎓 آموزش و پروژه‌های Python
آموزش‌های کاربردی و پروژه‌های عملی Python برای همه سطوح. 🚀
Download Telegram
آموزش کتابخانه Theano برای پایتون 🐍

📌 Theano یک کتابخانه پایتون برای محاسبات عددی است که به ویژه برای یادگیری ماشین و شبکه‌های عصبی استفاده می‌شود. این کتابخانه توسط تیم تحقیقاتی دانشگاه مونترال توسعه یافته است و اولین بار در سال 2008 معرفی شد. نسخه پایدار نهایی آن 1.0.5 در سپتامبر 2017 منتشر شد.

ویژگی‌های کلیدی Theano 📊

- محاسبات کارآمد: محاسبات عددی با کارایی بالا، به ویژه برای GPU.
- دیفرانسیل‌گیری خودکار: محاسبه خودکار گرادیان‌ها برای بهینه‌سازی مدل‌ها.
- سازگاری با NumPy: استفاده آسان از آرایه‌های NumPy.
- پشتیبانی از توزیع و پردازش موازی: استفاده از توان پردازشی GPU و CPU به صورت همزمان.

## نصب کتابخانه Theano 🚀
ابتدا باید کتابخانه را نصب کنید. برای این کار از دستور زیر استفاده کنید:

pip install theano

ایجاد یک مدل ساده 📈
در این بخش، یک مدل ساده با استفاده از Theano ایجاد می‌کنیم. این مدل دو عدد را با هم جمع می‌کند.

توضیحات کد:
import theano
import theano.tensor as T

# تعریف متغیرها
x = T.dscalar('x')
y = T.dscalar('y')

# تعریف تابع
z = x + y

# کامپایل کردن تابع
f = theano.function([x, y], z)

# استفاده از تابع
result = f(2, 3)
print(result) # خروجی: 5

🔹 تعریف متغیرها: در این قسمت، دو متغیر ورودی x و y با نوع dscalar (عدد اعشاری) تعریف شده‌اند.
🔹 تعریف تابع: تابع z به صورت جمع دو متغیر x و y تعریف شده است.
🔹 کامپایل کردن تابع: تابع f با استفاده از theano.function کامپایل شده است که ورودی‌های x و y را گرفته و z را محاسبه می‌کند.
🔹 استفاده از تابع: با فراخوانی f(2, 3)، تابع جمع دو عدد 2 و 3 را محاسبه و نتیجه 5 را برمی‌گرداند.

پیاده‌سازی یک شبکه عصبی ساده 🧠
در این قسمت، یک شبکه عصبی ساده با Theano ایجاد می‌کنیم.

توضیحات کد:
import numpy as np

# تعریف متغیرهای ورودی و وزن‌ها
X = T.dmatrix('X')
W = theano.shared(np.random.randn(2, 1), name='W')
b = theano.shared(0., name='b')

# تعریف تابع شبکه عصبی
output = T.nnet.sigmoid(T.dot(X, W) + b)

# کامپایل کردن تابع
predict = theano.function([X], output)

# ورودی نمونه
X_sample = np.array([[1, 2], [3, 4], [5, 6]])

# پیش‌بینی
predictions = predict(X_sample)
print(predictions)

🔹 تعریف متغیرهای ورودی و وزن‌ها: متغیر X به صورت ماتریس (dmatrix) تعریف شده است. وزن‌ها W و بایاس b نیز به صورت shared تعریف شده‌اند که به شبکه عصبی اجازه می‌دهد که آنها را در طول آموزش تغییر دهد.
🔹 تعریف تابع شبکه عصبی: تابع output با استفاده از sigmoid از theano.tensor.nnet تعریف شده است که خروجی شبکه عصبی را محاسبه می‌کند.
🔹 کامپایل کردن تابع: تابع predict با استفاده از theano.function کامپایل شده است که ورودی X را گرفته و خروجی شبکه را محاسبه می‌کند.
🔹 ورودی نمونه: یک نمونه ورودی X_sample به صورت آرایه‌ای از NumPy تعریف شده است.
🔹 پیش‌بینی: با فراخوانی predict(X_sample)، پیش‌بینی شبکه عصبی برای ورودی‌های نمونه محاسبه و نتیجه نمایش داده می‌شود.

نتیجه‌گیری
کتابخانه Theano ابزار قدرتمندی برای انجام محاسبات ریاضی پیچیده و پیاده‌سازی مدل‌های یادگیری ماشین است. با استفاده از این آموزش، شما می‌توانید شروع به کار با این کتابخانه کنید و پروژه‌های خود را بهبود بخشید.

[اینم کانال منه]

#Theano #Python #MachineLearning #DeepLearning #DataScience #آموزش_پایتون #یادگیری_ماشین #شبکه_عصبی
5
جدیدترین کتابخانه‌های پایتون و به‌روزرسانی‌های مهم

سلام دوستان! می‌خواهیم به معرفی چند کتابخانه‌ی جدید و به‌روزرسانی‌های مهم کتابخانه‌های معروف پایتون بپردازیم. 📚🐍

کتابخانه‌های جدید:
1. PyScript:
این کتابخانه به شما اجازه می‌دهد که از جاوااسکریپت در پایتون استفاده کنید و اپلیکیشن‌های وب مدرن بسازید. PyScript با یکپارچگی ساده و پشتیبانی از بسته‌های پایتون، ابزاری قدرتمند برای توسعه‌دهندگان وب است.

2. DataWiz:
DataWiz یک کتابخانه‌ی تحلیل داده‌های جدید است که ابزارهای قدرتمندی برای تجسم داده‌ها و تحلیل‌های آماری فراهم می‌کند. این کتابخانه برای دانشمندان داده و تحلیل‌گران بسیار مفید است.

3. MLBoost:
MLBoost کتابخانه‌ای است که فرآیندهای یادگیری ماشین را بهینه می‌کند و ابزارهای مختلفی برای پیش‌پردازش داده‌ها، انتخاب ویژگی‌ها، و مدل‌سازی ارائه می‌دهد.

به‌روزرسانی‌های مهم:
1. NumPy 1.25:
کتابخانه‌ی معروف NumPy که برای محاسبات علمی و آرایه‌های چند‌بعدی استفاده می‌شود، به نسخه‌ی 1.25 به‌روزرسانی شده است. این نسخه شامل بهبودهای کارایی و رفع اشکالات مختلف است.

2. Pandas 2.1:
کتابخانه‌ی Pandas که برای تحلیل داده‌ها و ساختارهای داده‌ای استفاده می‌شود، نسخه‌ی 2.1 خود را منتشر کرده است. این نسخه شامل ویژگی‌های جدیدی مانند بهبود پشتیبانی از داده‌های زمان‌بندی شده و بهینه‌سازی‌های کارایی است.

3. Scikit-Learn 0.25:
کتابخانه‌ی Scikit-Learn که برای یادگیری ماشین و مدل‌سازی آماری استفاده می‌شود، به نسخه‌ی 0.25 به‌روزرسانی شده است. این نسخه شامل الگوریتم‌های جدید، بهبودهای کارایی و مستندسازی بهتر است.


[کانال ما]

(اموزش پایتون)

#Python #Programming #Libraries #DataScience #MachineLearning #Updates #PythonLibraries
👍3🔥1
🌟 ۷ خبر مهم امروز از دنیای پایتون 🌟

📰 #1: گوگل سرویس جدید Cloud AI Notebooks را با پشتیبانی از پایتون عرضه کرد ☁️🤖
امروز گوگل سرویس Cloud AI Notebooks را معرفی کرد. این سرویس به طور ویژه برای پروژه‌های هوش مصنوعی و یادگیری ماشین طراحی شده و از پایتون پشتیبانی می‌کند. گوگل اعلام کرده که این ابزار جدید به توسعه‌دهندگان کمک می‌کند تا سریع‌تر و کارآمدتر کار کنند.


📰 #2: انتشار نسخه جدید FastAPI 0.70 🚀
کتابخانه محبوب FastAPI نسخه 0.70 خود را منتشر کرد. این نسخه شامل بهبودهایی در مستندات و رفع برخی باگ‌ها است. توسعه‌دهندگان می‌توانند از این به‌روزرسانی‌ها برای ساخت APIهای سریع و کارآمدتر بهره ببرند.


📰 #3: معرفی ابزار جدید Poetry برای مدیریت وابستگی‌ها 📦
ابزار Poetry به عنوان یک ابزار قدرتمند برای مدیریت وابستگی‌ها و بسته‌بندی پروژه‌های پایتون معرفی شده است. این ابزار با استفاده آسان و ویژگی‌های متنوع خود، جایگزین مناسبی برای pip و virtualenv محسوب می‌شود.


📰 #4: پیشرفت‌های جدید در Pandas 1.3.3 🧮
کتابخانه Pandas نسخه 1.3.3 خود را منتشر کرد. این نسخه شامل بهبودهایی در عملکرد و افزایش قابلیت‌های جدید برای تجزیه و تحلیل داده‌ها می‌باشد. اگر با داده‌ها کار می‌کنید، حتماً به این به‌روزرسانی نگاهی بیاندازید.


📰 #5: معرفی دوره جدید "Machine Learning with Python" توسط Coursera 📚
پلتفرم آموزشی Coursera دوره جدیدی با عنوان "Machine Learning with Python" را معرفی کرد. این دوره توسط متخصصان برجسته طراحی شده و برای تمامی سطوح مناسب است. اگر به یادگیری ماشین علاقه دارید، این دوره را از دست ندهید.


📰 #6: برگزاری کنفرانس PyCon 2024 در آمستردام 🇳🇱
خبر هیجان‌انگیز برای علاقه‌مندان به پایتون! کنفرانس سالانه PyCon 2024 در آمستردام برگزار خواهد شد. این رویداد فرصتی عالی برای شبکه‌سازی و آشنایی با آخرین پیشرفت‌ها و ابزارهای پایتون فراهم می‌کند.


📰 #7: به‌روزرسانی افزونه VSCode برای توسعه‌دهندگان پایتون 🛠️
افزونه VSCode برای توسعه‌دهندگان پایتون به‌روز شده و امکانات جدیدی از جمله تکمیل خودکار کد و دیباگینگ پیشرفته به آن افزوده شده است. این به‌روزرسانی تجربه توسعه با پایتون را بهبود می‌بخشد و کار را برای برنامه‌نویسان راحت‌تر می‌کند.


📢 با دنبال کردن کانال تلگرام ما، از آخرین اخبار و به‌روزرسانی‌های دنیای پایتون مطلع شوید!


(اینجا کلیک کن تا از اخبار مهم پایتون با خبر باشی)


#Python #Google #AI #FastAPI #Python #Poetry #DependencyManagement #MachineLearning #Python
#VSCode #IDE #Python
#PythonNews #TelegramChannel
👍2
🌟 TechSavvy Algorithms: The Ultimate Recommendation System! 🌟

👨‍💻 Introducing the Most Advanced Collaborative Filtering System 👩‍💻

In today's world, recommendation systems are an essential part of many online services. From online stores to streaming services for movies and music, these systems are used to enhance user experience and boost engagement.

💡 TechSavvy Algorithms is an advanced recommendation system based on Collaborative Filtering, utilizing cutting-edge techniques and optimization algorithms to provide accurate and personalized recommendations.

📚 Features and Applications of TechSavvy Algorithms:

1. Advanced Collaborative Filtering Techniques:
- Leverage user data to identify common patterns and deliver precise suggestions.

2. Efficient Data Processing:
- Prepare and normalize data to maximize recommendation accuracy.

3. Scalable SVD Model Training:
- Employ Singular Value Decomposition (SVD) to reduce data dimensions and extract key features.

4. Personalized Recommendations:
- Suggest new movies, products, or content based on users' interests and preferences.

📈 How You Can Utilize This Source Code:
- Online Stores: Recommend related products based on previous purchases.
- Streaming Services: Suggest new movies and music to users.
- Social Networks: Recommend new friends or content based on user interests.

🚀 TechSavvy Algorithms helps you improve user experience with precise and personalized suggestions, giving you a competitive edge. By incorporating this advanced algorithm into your projects, you can elevate your offerings and exceed user expectations.

📚 Get and Use This Source Code:
We're offering this powerful and valuable source code for free. Download it now and start enhancing your projects!

👉👉click👈👈

#Programming #Algorithms #RecommendationSystem #TechSavvy #Python #MachineLearning #OpenSource #FreeCode
ادامه کد ☝️
# تعریف ذرات و نیروها
particle = Particle(0.0, 0.0, 1.0)
force = 10.0
time = 1.0

# اعمال نیرو و شبیه‌سازی حرکت ذره
for i in range(10):
particle.apply_force(force, time)
print(f"Time: {i*time}s, Position: {particle.position}, Velocity: {particle.velocity}")

استفاده از الگوریتم‌ها در هوش مصنوعی 🤖

الگوریتم‌های محاسباتی پیشرفته یکی از اجزای اصلی هوش مصنوعی هستند. به عنوان مثال، الگوریتم‌های یادگیری ماشین برای بهینه‌سازی و یادگیری از داده‌ها استفاده می‌شوند. یکی از الگوریتم‌های پایه‌ای در این زمینه، الگوریتم نزول گرادیان (Gradient Descent) است که برای به حداقل رساندن تابع هزینه در مسائل یادگیری ماشین استفاده می‌شود.

import numpy as np

def gradient_descent(X, y, learning_rate=0.01, iterations=1000):
m = len(y)
theta = np.zeros(X.shape[1])
for i in range(iterations):
gradients = (1/m) * np.dot(X.T, (np.dot(X, theta) - y))
theta -= learning_rate * gradients
return theta

# مثال با داده‌های مصنوعی
X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
y = np.array([6, 8, 9, 11])
theta = gradient_descent(X, y)

print(f"Optimized Parameters: {theta}")

بهینه‌سازی الگوریتم‌ها برای کارایی بالا 🔄

برای کاربردهای سنگین مانند شبیه‌سازی‌های پیچیده و یا الگوریتم‌های یادگیری ماشین، بهینه‌سازی کد برای کارایی بالا اهمیت زیادی دارد. از جمله روش‌های بهینه‌سازی می‌توان به استفاده از کتابخانه‌های محاسباتی بهینه مانند NumPy، اجرای موازی (parallel processing)، و بهینه‌سازی حافظه اشاره کرد.

(🚩اینجا کلیک کن تا بیشتر یاد بگیری🚩)

#Algorithms #Computational_Programming #MachineLearning #AI #Python #برنامه‌نویسی #الگوریتم #شبیه‌سازی #محاسبات_پیشرفته #هوش_مصنوعی
پارت ۲: ساختار شبکه‌های عصبی کانولوشنی (CNN) 🧠🖼️

در این قسمت، به طور کامل با ساختار و اجزای اصلی شبکه‌های عصبی کانولوشنی آشنا می‌شویم و نحوه عملکرد هر بخش را توضیح می‌دهیم.

۱. لایه‌های اصلی CNN 🤖
شبکه‌های عصبی کانولوشنی از چندین لایه اصلی تشکیل شده‌اند که هر کدام نقش خاص خود را در پردازش داده‌ها ایفا می‌کنند:

#l ۱.۱. لایه کانولوشن (Convolutional Layer) 🔍
این لایه، هسته اصلی CNN است که تصاویر را با استفاده از فیلترها (یا کرنل‌ها) پردازش می‌کند. در این لایه، فیلترها بر روی تصویر اعمال می‌شوند تا ویژگی‌های مختلف مانند لبه‌ها، گوشه‌ها، بافت‌ها و دیگر ویژگی‌ها را شناسایی کنند. فیلترها معمولاً کوچک‌تر از تصویر ورودی هستند و بر روی تصویر با فاصله‌های مشخص حرکت می‌کنند.

۱.۲. لایه تجمیع (Pooling Layer) ⬇️
لایه Pooling برای کاهش ابعاد ویژگی‌های استخراج‌شده از لایه کانولوشن استفاده می‌شود. این لایه به‌طور معمول دو نوع اصلی دارد:
- Max Pooling: حداکثر مقدار از ناحیه مشخص‌شده را انتخاب می‌کند.
- Average Pooling: میانگین مقدار ناحیه را انتخاب می‌کند.

این لایه باعث می‌شود که شبکه پیچیدگی کمتری داشته باشد و سرعت پردازش بالاتر رود.

۱.۳. لایه کاملاً متصل (Fully Connected Layer) 🔗
در این لایه، تمام ویژگی‌های استخراج‌شده در لایه‌های قبل به یکدیگر متصل می‌شوند تا تصمیم نهایی درباره کلاس داده (مثلاً دسته‌بندی تصویر) اتخاذ شود. این لایه معمولاً در انتهای شبکه قرار دارد و برای دسته‌بندی نهایی استفاده می‌شود.

۱.۴. لایه نرمال‌سازی (Normalization Layer) 🧮
گاهی اوقات برای بهبود سرعت و دقت شبکه، لایه‌های نرمال‌سازی (مانند Batch Normalization) به شبکه اضافه می‌شوند. این لایه به تنظیم مقیاس و نرمال‌سازی داده‌ها کمک می‌کند و از مشکلاتی مانند انحرافات توزیع داده جلوگیری می‌کند.

۲. نحوه کارکرد CNN 🏃‍♂️
عملکرد CNN به این صورت است که ابتدا تصویر وارد شبکه می‌شود. در لایه‌های اول، ویژگی‌های ساده‌ای مانند لبه‌ها و رنگ‌ها شناسایی می‌شوند. در لایه‌های بعدی، ویژگی‌های پیچیده‌تر و انتزاعی‌تر مانند اشیاء و الگوها استخراج می‌شوند. در نهایت، تمام این ویژگی‌ها در لایه‌های کاملاً متصل ترکیب می‌شوند تا شبکه به تصمیم نهایی برسد.

۳. انتقال ویژگی‌ها در لایه‌ها 🌐
یکی از نکات جالب در CNN این است که ویژگی‌ها به صورت سلسله‌مراتبی استخراج می‌شوند. این یعنی، لایه‌های ابتدایی شبکه ویژگی‌های ساده‌تر را شناسایی می‌کنند، در حالی که لایه‌های عمیق‌تر قادر به شناسایی ویژگی‌های پیچیده‌تر هستند. این روند باعث می‌شود که CNN برای پردازش تصاویر بسیار قدرتمند باشد.

۴. چالش‌ها در طراحی CNN
- انتخاب فیلترها: انتخاب صحیح فیلترها می‌تواند تاثیر زیادی در دقت شبکه داشته باشد.
- تنظیم پارامترها: شبکه‌های عصبی نیاز به تنظیم دقیق پارامترها (مثل تعداد لایه‌ها و اندازه فیلترها) دارند.
- میزان داده‌ها: برای آموزش شبکه‌های عمیق، به مقدار زیادی داده نیاز است تا شبکه به درستی آموزش ببیند.

در قسمت‌های بعدی، به نحوه پیاده‌سازی CNN در پایتون خواهیم پرداخت و قدم به قدم نحوه ایجاد یک مدل CNN را در کد بررسی خواهیم کرد.



برای ادامه آموزش‌ها و یادگیری نحوه پیاده‌سازی CNN در پایتون، به کانال تلگرام ما بپیوندید! 💬
🔗 [لینک کانال تلگرام]

#DeepLearning #CNN #NeuralNetworks #MachineLearning
1
base_model = VGG16(weights='imagenet', include_top=False, input_shape=(64, 64, 3))
model.add(base_model)
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax'))

۶. نتیجه‌گیری
در این قسمت، با روش‌های بهینه‌سازی و تنظیم مدل‌های CNN آشنا شدیم که می‌تواند به شما کمک کند دقت مدل خود را افزایش دهید و از مشکلاتی مانند بیش‌برازش جلوگیری کنید. در قسمت‌های آینده، به تحلیل و ارزیابی نهایی مدل پرداخته و نحوه به‌کارگیری آن را در پروژه‌های واقعی بررسی خواهیم کرد.



برای دریافت آموزش‌های بیشتر و یادگیری نحوه بهینه‌سازی و تنظیم مدل‌های پیشرفته CNN، به کانال تلگرام ما بپیوندید! 💬
🔗 [لینک کانال تلگرام]

#DeepLearning #CNN #Optimization #MachineLearning
برای یادگیری بیشتر در مورد تحلیل و ارزیابی مدل‌های CNN و نحوه استفاده از آن‌ها در پروژه‌های واقعی، به کانال تلگرام ما بپیوندید! 💬
🔗 [لینک کانال تلگرام]

#MachineLearning #CNN #ModelEvaluation #DataScience
۵. مشکل: استفاده از داده‌های نادرست یا کیفیت پایین 🔍
اگر داده‌هایی که برای آموزش استفاده می‌کنید نادرست یا کیفیت پایین باشند، مدل شما عملکرد ضعیفی خواهد داشت.

راه‌حل‌ها:
- پیش‌پردازش داده‌ها: قبل از استفاده از داده‌ها، آن‌ها را تمیز و نرمال کنید. این ممکن است شامل تغییر اندازه تصاویر، حذف داده‌های ناقص یا اشتباه و یا نرمال‌سازی داده‌ها باشد.


  X_train = X_train / 255.0  # نرمال‌سازی داده‌ها

- مطمئن شوید که داده‌ها متنوع و متوازن هستند تا مدل شما قادر به یادگیری ویژگی‌های مختلف و تعمیم‌دادن به داده‌های جدید باشد.

۶. مشکل: زمان آموزش طولانی (Long Training Time)
آموزش مدل‌های CNN ممکن است زمان‌بر باشد، به‌ویژه اگر داده‌های زیادی داشته باشید و مدل پیچیده‌ای بسازید.

راه‌حل‌ها:
- استفاده از GPU: آموزش مدل‌های CNN معمولاً روی GPU سریع‌تر از CPU انجام می‌شود. بنابراین، از کارت‌های گرافیکی برای آموزش سریع‌تر استفاده کنید.


  with tf.device('/GPU:0'):
model.fit(X_train, y_train, epochs=10)

- استفاده از Batch Normalization: این تکنیک می‌تواند به تسریع فرآیند آموزش کمک کند.


  from tensorflow.keras.layers import BatchNormalization
model.add(BatchNormalization())



نتیجه‌گیری
در این پارت، به مشکلات رایج در پیاده‌سازی مدل‌های CNN پرداخته و روش‌هایی برای جلوگیری از آن‌ها و بهبود عملکرد مدل ارائه شد. با اعمال نکات و راه‌حل‌های ذکر شده، می‌توانید مدل‌های خود را بهینه‌تر و با دقت بالاتر اجرا کنید.



برای دریافت نکات بیشتر و آموزش‌های پیشرفته در این زمینه، به کانال تلگرام ما بپیوندید! 💬
🔗 [لینک کانال تلگرام]

#DeepLearning #CNN #MachineLearning #AI
1
پارت ۱: مقدمه و توضیحات کلی درباره الگوریتم KNN 🎯🔍



۱.۱ معرفی الگوریتم KNN 🤖📊
K-Nearest Neighbors (KNN) یکی از ساده‌ترین و در عین حال قدرتمندترین الگوریتم‌های یادگیری ماشین در دسته طبقه‌بندی (Classification) و رگرسیون (Regression) است. این الگوریتم بدون نیاز به یادگیری پیچیده، فقط با بررسی همسایه‌های نزدیک، داده‌های جدید را طبقه‌بندی می‌کند! 🚀

💡 KNN چگونه کار می‌کند؟
مرحله ۱: یک داده جدید دریافت می‌شود که باید برچسب‌گذاری شود.
مرحله ۲: فاصله آن داده با همه نقاط داده‌های آموزشی محاسبه می‌شود. 📏
مرحله ۳: K عدد از نزدیک‌ترین همسایه‌ها انتخاب می‌شوند. 🏡
مرحله ۴: در طبقه‌بندی (Classification)، رأی‌گیری انجام شده و کلاسی که بیشترین رأی را دارد، انتخاب می‌شود. 📊
مرحله ۵: در رگرسیون (Regression)، میانگین مقادیر همسایه‌ها محاسبه شده و مقدار نهایی پیش‌بینی می‌شود. 🔢🔍

نکته مهم: KNN به هیچ مدل پیچیده‌ای نیاز ندارد و فقط داده‌های قبلی را برای تصمیم‌گیری بررسی می‌کند، به همین دلیل به آن یادگیری بر پایه نمونه (Instance-Based Learning) هم گفته می‌شود. 🔄



۱.۲ KNN در مسائل مولتی‌کلاس کلاسیفیکیشن 🎯🎨
KNN یکی از بهترین گزینه‌ها برای مسائل طبقه‌بندی چندکلاسه (Multi-Class Classification) است! 💡 در این نوع مسائل، مدل باید داده‌ها را به بیش از دو کلاس مختلف تخصیص دهد.

🔹 مثال واقعی: فرض کنید یک مدل بخواهد نوع یک گل را بر اساس ویژگی‌های آن پیش‌بینی کند. در اینجا سه کلاس داریم:
🌸 Setosa
🌺 Versicolor
🌻 Virginica

اگر یک گل جدید با ویژگی‌های ناشناخته داده شود، KNN بررسی می‌کند که نزدیک‌ترین گل‌های مشابه از چه نوعی هستند و بر اساس اکثریت آراء، کلاس مناسب را انتخاب می‌کند. 🌱🌿



۱.۳ مزایا و معایب الگوریتم KNN ⚖️

🔷 مزایای KNN
سادگی و شهودی بودن – این الگوریتم بسیار ساده و قابل فهم است. 📚
دقت بالا در بسیاری از مسائل – در صورتی که مقدار K مناسب انتخاب شود، KNN عملکرد بسیار خوبی دارد. 🎯
عدم نیاز به یادگیری پیچیده – نیازی به آموزش مدل ندارد و فقط بر اساس داده‌های موجود پیش‌بینی می‌کند. 🔄

🔶 معایب KNN
محاسبات سنگین برای داده‌های حجیم – در صورتی که حجم داده‌های آموزشی بزرگ باشد، پیدا کردن K همسایه نزدیک‌تر می‌تواند زمان‌بر باشد. 🔍
حساسیت به داده‌های نامرتبط – در صورت وجود ویژگی‌های غیرضروری، عملکرد مدل کاهش پیدا می‌کند. 🔻



۱.۴ چرا KNN را انتخاب کنیم؟ 🤔💡
📌 اگر به دنبال یک الگوریتم ساده، قدرتمند و مؤثر برای طبقه‌بندی چندکلاسه هستید، KNN یک انتخاب عالی است! 🎯
📌 این الگوریتم به راحتی در مسائل واقعی مثل تشخیص بیماری‌ها، فیلتر کردن ایمیل‌های اسپم، پیش‌بینی نوع محصول و حتی تشخیص چهره! استفاده می‌شود. 📊🔍



جمع‌بندی پارت ۱:
KNN یک الگوریتم مبتنی بر شباهت است که داده‌های جدید را بر اساس K همسایه نزدیک آن دسته‌بندی می‌کند.
این الگوریتم برای مسائل طبقه‌بندی چندکلاسه بسیار مؤثر است و در بسیاری از مسائل دنیای واقعی کاربرد دارد.
انتخاب مقدار K بسیار مهم است، زیرا مقدار نامناسب می‌تواند عملکرد مدل را تحت تأثیر قرار دهد.

[لینک کانال ما]

🔥 در پارت بعدی، نحوه آماده‌سازی داده‌ها و پیش‌پردازش آن‌ها را بررسی خواهیم کرد! 🔥

📌 منتظر پارت ۲ باشید... 🚀



#یادگیری_ماشین 🤖 #KNN 📊 #هوش_مصنوعی #طبقه_بندی #MachineLearning #AI #کلاسیفیکیشن 🎯
پارت ۲: آماده‌سازی داده‌ها و پیش‌پردازش در KNN 🔍📊



۲.۱ چرا پیش‌پردازش داده‌ها در KNN مهم است؟ 🤔⚙️
الگوریتم KNN کاملاً بر اساس محاسبه فاصله بین نقاط کار می‌کند، پس داده‌های نامرتب یا ناسازگار می‌توانند روی دقت مدل تأثیر منفی بگذارند. 😱 به همین دلیل، قبل از اجرای مدل، باید داده‌ها را پیش‌پردازش (Preprocessing) کنیم.

چرا پیش‌پردازش مهم است؟
🔹 ویژگی‌های نامربوط می‌توانند باعث شوند که KNN تصمیم اشتباهی بگیرد.
🔹 ویژگی‌هایی که مقیاس متفاوتی دارند ممکن است مدل را تحت تأثیر قرار دهند. مثلاً اگر یک ویژگی در مقیاس 0 تا 1 و ویژگی دیگر در مقیاس 1000 تا 100000 باشد، ویژگی بزرگ‌تر اهمیت بیشتری خواهد داشت که ممکن است نادرست باشد! 😵📏
🔹 داده‌های پرت (Outliers) ممکن است عملکرد KNN را مختل کنند. ⚠️

پس حالا بریم سراغ مراحل آماده‌سازی داده‌ها! 🚀



۲.۲ مراحل پیش‌پردازش داده‌ها برای KNN 📊🔧

💡 ۱. بارگذاری دیتاست 📥
اولین قدم، بارگذاری مجموعه داده (Dataset) است. در اینجا از مجموعه داده Iris استفاده می‌کنیم که اطلاعات مربوط به سه نوع گل مختلف را دارد. 🌸🌺🌻

import pandas as pd
from sklearn.datasets import load_iris

# بارگذاری دیتاست
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['target'] = iris.target # اضافه کردن برچسب‌ها (کلاس‌ها)

# نمایش ۵ نمونه اول
print(df.head())

📌 این دیتاست شامل ۴ ویژگی است:
🔹 طول کاسبرگ (sepal length)
🔹 عرض کاسبرگ (sepal width)
🔹 طول گلبرگ (petal length)
🔹 عرض گلبرگ (petal width)

🔹 و ۳ کلاس مختلف برای انواع گل که مقدار target آن‌ها ۰، ۱ و ۲ است.



💡 ۲. بررسی داده‌های ناقص و حذف آن‌ها ⚠️
قبل از ادامه، باید مطمئن شویم که داده‌های گم‌شده (Missing Data) وجود ندارد. 🚨

print(df.isnull().sum())  # بررسی داده‌های خالی

اگر داده‌ای گم‌شده باشد، می‌توانیم آن را با مقدار میانگین جایگزین کنیم:

df.fillna(df.mean(), inplace=True)  # جایگزینی مقادیر گم‌شده با میانگین هر ستون



💡 ۳. نرمال‌سازی ویژگی‌ها (Feature Scaling) 📏⚖️
الگوریتم KNN به شدت تحت تأثیر مقیاس داده‌ها قرار دارد. اگر بعضی از ویژگی‌ها دارای دامنه اعداد بزرگ‌تر باشند، مدل دچار مشکل خواهد شد. 😬 پس نیاز به نرمال‌سازی (Normalization) یا استانداردسازی (Standardization) داریم.

📌 دو روش رایج:
1️⃣ Min-Max Scaling (مقادیر را بین ۰ و ۱ قرار می‌دهد)
2️⃣ Standard Scaling (مقادیر را نرمال می‌کند که میانگین ۰ و انحراف معیار ۱ باشد)

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
df.iloc[:, :-1] = scaler.fit_transform(df.iloc[:, :-1]) # استانداردسازی ویژگی‌ها

حالا همه ویژگی‌ها در یک محدوده مشابه قرار دارند و KNN عملکرد بهتری خواهد داشت! 🎯



💡 ۴. تقسیم داده‌ها به مجموعه آموزش و تست 📊
حالا که داده‌ها آماده شدند، باید آن‌ها را به دو بخش تقسیم کنیم:
داده‌های آموزش (Train Set): برای یادگیری مدل
داده‌های تست (Test Set): برای ارزیابی عملکرد مدل

from sklearn.model_selection import train_test_split

X = df.iloc[:, :-1] # ویژگی‌ها (Features)
y = df['target'] # برچسب‌ها (Labels)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

print(f"تعداد نمونه‌های آموزش: {X_train.shape[0]}")
print(f"تعداد نمونه‌های تست: {X_test.shape[0]}")

۸۰٪ داده‌ها برای آموزش و ۲۰٪ برای تست مدل استفاده خواهند شد.



۲.۳ جمع‌بندی پارت ۲:
در این پارت یاد گرفتیم که چرا پیش‌پردازش داده‌ها در KNN اهمیت دارد.
مراحل اصلی پیش‌پردازش را انجام دادیم:
🔹 بارگذاری دیتاست
🔹 بررسی داده‌های گم‌شده و جایگزینی آن‌ها
🔹 نرمال‌سازی و استانداردسازی ویژگی‌ها
🔹 تقسیم داده‌ها به مجموعه آموزش و تست

[لینک کانال ما]

🔥 در پارت بعدی، به سراغ پیاده‌سازی مدل KNN با استفاده از sklearn می‌رویم! 🔥

📌 منتظر پارت ۳ باشید... 🚀




#یادگیری_ماشین 🤖 #KNN 📊 #هوش_مصنوعی #طبقه_بندی #MachineLearning #AI #کلاسیفیکیشن 🎯
👍1
پارت ۴: بهینه‌سازی مدل KNN و انتخاب بهترین مقدار K 🎯🔧



۴.۱ چرا مقدار K مهم است؟ 🤔
مقدار K (تعداد همسایه‌های نزدیک) تأثیر زیادی روی دقت مدل KNN دارد! 😱

اگر K خیلی کوچک باشد (مثلاً ۱ یا ۲):
🔹 مدل ممکن است بیش از حد به داده‌های آموزش وابسته شود (Overfitting).

اگر K خیلی بزرگ باشد (مثلاً ۲۰ یا ۳۰):
🔹 مدل ممکن است بیش از حد متوسط‌گیری کند و دقت کاهش یابد.

📌 بنابراین باید مقدار K را بهینه‌سازی کنیم تا بهترین عملکرد را داشته باشیم. 🚀



۴.۲ پیدا کردن بهترین مقدار K به صورت خودکار 🔄📊
یکی از بهترین راه‌ها برای پیدا کردن مقدار مناسب K، تست کردن چند مقدار مختلف و بررسی دقت مدل است. 🎯

۱. آزمایش چند مقدار مختلف برای K
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score

# لیستی برای ذخیره دقت‌ها
accuracy_scores = []

# تست مقدار K از 1 تا 20
k_values = range(1, 21)

for k in k_values:
knn = KNeighborsClassifier(n_neighbors=k)
knn.fit(X_train, y_train) # آموزش مدل
y_pred = knn.predict(X_test) # پیش‌بینی
accuracy_scores.append(accuracy_score(y_test, y_pred)) # ذخیره دقت

# رسم نمودار تغییرات دقت بر حسب K
plt.figure(figsize=(8,5))
plt.plot(k_values, accuracy_scores, marker='o', linestyle='-', color='b', label="دقت مدل")
plt.xlabel("تعداد همسایه‌های K")
plt.ylabel("دقت مدل")
plt.title("بهترین مقدار K برای KNN")
plt.legend()
plt.grid()
plt.show()

📌 با این نمودار، می‌توانیم مقدار K را پیدا کنیم که دقت مدل بیشترین مقدار باشد! 🎯



۴.۳ بررسی تأثیر انتخاب ویژگی‌ها (Feature Selection) 🎛️📉
برخی ویژگی‌ها ممکن است نامربوط یا نویزی باشند و مدل را دچار مشکل کنند. بنابراین می‌توانیم بهترین ویژگی‌ها را انتخاب کنیم تا عملکرد مدل بهتر شود!

📌 برای بررسی اهمیت ویژگی‌ها از روش SelectKBest استفاده می‌کنیم.

from sklearn.feature_selection import SelectKBest, f_classif

# انتخاب ۲ ویژگی برتر از ۴ ویژگی دیتاست
selector = SelectKBest(score_func=f_classif, k=2)
X_new = selector.fit_transform(X, y)

# نمایش نمره هر ویژگی
feature_scores = selector.scores_
for i, score in enumerate(feature_scores):
print(f"ویژگی {iris.feature_names[i]} → امتیاز: {score:.2f}")

این روش به ما نشان می‌دهد که کدام ویژگی‌ها برای مدل مهم‌تر هستند و می‌توانیم ویژگی‌های کم‌اهمیت را حذف کنیم!



۴.۴ مقایسه KNN با مدل‌های دیگر 🤖⚖️
گاهی اوقات KNN بهترین انتخاب نیست و می‌توان مدل‌های دیگر را هم امتحان کرد.

🔹 درخت تصمیم (Decision Tree) 🌲
🔹 رگرسیون لجستیک (Logistic Regression) 📈
🔹 ماشین بردار پشتیبان (SVM) 🏆

📌 برای مقایسه، یک درخت تصمیم ساده را اجرا می‌کنیم:
from sklearn.tree import DecisionTreeClassifier

dt = DecisionTreeClassifier()
dt.fit(X_train, y_train)
y_pred_dt = dt.predict(X_test)

# دقت مدل درخت تصمیم
print(f"دقت مدل درخت تصمیم: {accuracy_score(y_test, y_pred_dt):.2f}")

اگر مدل درخت تصمیم عملکرد بهتری داشت، ممکن است برای این مجموعه داده مناسب‌تر باشد!



۴.۵ جمع‌بندی نهایی پارت ۴:
مقدار بهینه K را پیدا کردیم تا دقت مدل را بهبود دهیم.
بررسی کردیم که همه ویژگی‌ها مفید نیستند و برخی را می‌توان حذف کرد.
KNN را با مدل‌های دیگر مقایسه کردیم تا ببینیم آیا گزینه بهتری وجود دارد یا نه.

🎯 حالا شما یک متخصص KNN هستید! 🎯🔥

📌 در آموزش بعدی، پیاده‌سازی دستی KNN را انجام خواهیم داد! 🚀

[لینک کانال ما]


#یادگیری_ماشین 🤖 #KNN 📊 #هوش_مصنوعی #بهینه_سازی #MachineLearning #AI #کلاسیفیکیشن 🎯
👍1
پروژه کامل KNN: تشخیص دست‌خط ارقام (MNIST) 🔢🤖

در این پروژه، یک مدل 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 #کلاسیفیکیشن 🎯
👍2👏1