فصل هوش مصنوعی و یادگیری ماشین / یادگیری عمیق
---
سوالات مقدماتی (1–20)
1. نصب کتابخانه scikit-learn
pip install scikit-learn
2. نصب کتابخانه pandas
pip install pandas
3. نصب کتابخانه numpy
pip install numpy
4. ایجاد یک آرایه numpy
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
5. تبدیل یک لیست به DataFrame pandas
import pandas as pd
data = [[1, 'Ali'], [2, 'Sara']]
df = pd.DataFrame(data, columns=['ID', 'Name'])
print(df)
6. خواندن فایل CSV با pandas
import pandas as pd
df = pd.read_csv('data.csv')
print(df.head())
7. نمایش اطلاعات آماری DataFrame
print(df.describe())
8. جدا کردن ویژگیها و برچسبها (X و y)
X = df[['feature1', 'feature2']]
y = df['label']
9. تقسیم دادهها به مجموعه آموزش و تست
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
10. آموزش یک مدل رگرسیون خطی
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
11. پیشبینی با مدل آموزش دیده
predictions = model.predict(X_test)
print(predictions)
12. محاسبه خطای میانگین مربعات (MSE)
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_test, predictions)
print(mse)
13. آموزش مدل طبقهبندی KNN
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
14. پیشبینی کلاسها با KNN
y_pred = knn.predict(X_test)
print(y_pred)
15. محاسبه دقت مدل طبقهبندی
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print(accuracy)
16. نرمالسازی دادهها با MinMaxScaler
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)
17. تبدیل برچسبها به اعداد با LabelEncoder
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
y_encoded = le.fit_transform(y)
18. آموزش مدل درخت تصمیم (Decision Tree)
from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier()
tree.fit(X_train, y_train)
19. رسم درخت تصمیم با matplotlib
from sklearn.tree import plot_tree
import matplotlib.pyplot as plt
plot_tree(tree, filled=True)
plt.show()
20. استفاده از cross-validation
from sklearn.model_selection import cross_val_score
scores = cross_val_score(knn, X, y, cv=5)
print(scores)
---
---
سوالات مقدماتی (1–20)
1. نصب کتابخانه scikit-learn
pip install scikit-learn
2. نصب کتابخانه pandas
pip install pandas
3. نصب کتابخانه numpy
pip install numpy
4. ایجاد یک آرایه numpy
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
5. تبدیل یک لیست به DataFrame pandas
import pandas as pd
data = [[1, 'Ali'], [2, 'Sara']]
df = pd.DataFrame(data, columns=['ID', 'Name'])
print(df)
6. خواندن فایل CSV با pandas
import pandas as pd
df = pd.read_csv('data.csv')
print(df.head())
7. نمایش اطلاعات آماری DataFrame
print(df.describe())
8. جدا کردن ویژگیها و برچسبها (X و y)
X = df[['feature1', 'feature2']]
y = df['label']
9. تقسیم دادهها به مجموعه آموزش و تست
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
10. آموزش یک مدل رگرسیون خطی
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
11. پیشبینی با مدل آموزش دیده
predictions = model.predict(X_test)
print(predictions)
12. محاسبه خطای میانگین مربعات (MSE)
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_test, predictions)
print(mse)
13. آموزش مدل طبقهبندی KNN
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
14. پیشبینی کلاسها با KNN
y_pred = knn.predict(X_test)
print(y_pred)
15. محاسبه دقت مدل طبقهبندی
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print(accuracy)
16. نرمالسازی دادهها با MinMaxScaler
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)
17. تبدیل برچسبها به اعداد با LabelEncoder
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
y_encoded = le.fit_transform(y)
18. آموزش مدل درخت تصمیم (Decision Tree)
from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier()
tree.fit(X_train, y_train)
19. رسم درخت تصمیم با matplotlib
from sklearn.tree import plot_tree
import matplotlib.pyplot as plt
plot_tree(tree, filled=True)
plt.show()
20. استفاده از cross-validation
from sklearn.model_selection import cross_val_score
scores = cross_val_score(knn, X, y, cv=5)
print(scores)
---
سوالات مقدماتی-متوسط (21–40)
21. آموزش مدل جنگل تصادفی (Random Forest)
22. پیشبینی با مدل جنگل تصادفی
23. محاسبه دقت جنگل تصادفی
24. آموزش مدل SVM (ماشین بردار پشتیبان)
25. پیشبینی با SVM
26. آموزش مدل Naive Bayes
27. پیشبینی با Naive Bayes
28. نمایش ماتریس درهمریختگی (Confusion Matrix)
29. رسم نمودار ماتریس درهمریختگی با seaborn
30. آموزش مدل رگرسیون لجستیک
31. پیشبینی با رگرسیون لجستیک
32. نرمالسازی ویژگیها با StandardScaler
33. کاهش بعد با PCA (Principal Component Analysis)
34. نمایش نقاط بعد از PCA
35. آموزش مدل K-Means برای خوشهبندی
36. رسم خوشههای K-Means
37. محاسبه silhouette score خوشهبندی
38. استفاده از train_test_split با stratify
39. آموزش مدل Gradient Boosting
40. پیشبینی و محاسبه دقت Gradient Boosting
21. آموزش مدل جنگل تصادفی (Random Forest)
from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(n_estimators=100, random_state=42) rf.fit(X_train, y_train) 22. پیشبینی با مدل جنگل تصادفی
y_pred_rf = rf.predict(X_test) print(y_pred_rf) 23. محاسبه دقت جنگل تصادفی
accuracy_rf = accuracy_score(y_test, y_pred_rf) print(accuracy_rf) 24. آموزش مدل SVM (ماشین بردار پشتیبان)
from sklearn.svm import SVC svm_model = SVC(kernel='linear') svm_model.fit(X_train, y_train) 25. پیشبینی با SVM
y_pred_svm = svm_model.predict(X_test) print(y_pred_svm) 26. آموزش مدل Naive Bayes
from sklearn.naive_bayes import GaussianNB nb = GaussianNB() nb.fit(X_train, y_train) 27. پیشبینی با Naive Bayes
y_pred_nb = nb.predict(X_test) print(y_pred_nb) 28. نمایش ماتریس درهمریختگی (Confusion Matrix)
from sklearn.metrics import confusion_matrix cm = confusion_matrix(y_test, y_pred) print(cm) 29. رسم نمودار ماتریس درهمریختگی با seaborn
import seaborn as sns sns.heatmap(cm, annot=True, fmt="d") plt.show() 30. آموزش مدل رگرسیون لجستیک
from sklearn.linear_model import LogisticRegression logreg = LogisticRegression() logreg.fit(X_train, y_train) 31. پیشبینی با رگرسیون لجستیک
y_pred_logreg = logreg.predict(X_test) print(y_pred_logreg) 32. نرمالسازی ویژگیها با StandardScaler
from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_scaled = scaler.fit_transform(X) 33. کاهش بعد با PCA (Principal Component Analysis)
from sklearn.decomposition import PCA pca = PCA(n_components=2) X_pca = pca.fit_transform(X_scaled) print(X_pca[:5]) 34. نمایش نقاط بعد از PCA
plt.scatter(X_pca[:,0], X_pca[:,1], c=y) plt.show() 35. آموزش مدل K-Means برای خوشهبندی
from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=3, random_state=42) kmeans.fit(X_scaled) print(kmeans.labels_) 36. رسم خوشههای K-Means
plt.scatter(X_scaled[:,0], X_scaled[:,1], c=kmeans.labels_) plt.show() 37. محاسبه silhouette score خوشهبندی
from sklearn.metrics import silhouette_score score = silhouette_score(X_scaled, kmeans.labels_) print(score) 38. استفاده از train_test_split با stratify
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, test_size=0.2) 39. آموزش مدل Gradient Boosting
from sklearn.ensemble import GradientBoostingClassifier gb = GradientBoostingClassifier() gb.fit(X_train, y_train) 40. پیشبینی و محاسبه دقت Gradient Boosting
y_pred_gb = gb.predict(X_test) accuracy_gb = accuracy_score(y_test, y_pred_gb) print(accuracy_gb)سوالات پیشرفتهتر-یادگیری عمیق (41–60)
41. ایجاد مدل شبکه عصبی با Keras
42. کامپایل مدل
43. آموزش مدل شبکه عصبی
44. پیشبینی با شبکه عصبی
45. ارزیابی دقت شبکه عصبی
46. اضافه کردن Dropout برای جلوگیری از overfitting
47. آموزش مدل با EarlyStopping
48. شبکه عصبی با چند کلاس (Multi-class)
49. شبکه عصبی کانولوشنی (CNN) ساده برای تصاویر
50. شبکه عصبی بازگشتی (RNN) ساده برای دادههای زمانی
51. استفاده از LSTM برای پیشبینی سریهای زمانی
52. استفاده از embedding برای متن
53. پیشبینی متن با مدل LSTM
54. استفاده از callbacks برای ذخیره بهترین مدل
55. بارگذاری مدل ذخیره شده
56. پیشبینی تصویر با CNN آموزش دیده
57. استفاده از ImageDataGenerator برای افزایش دادهها
58. محاسبه ماتریس درهمریختگی برای multi-class
59. رسم نمودار دقت و خطا در هر epoch
60. ذخیره تاریخچه آموزش مدل به CSV
41. ایجاد مدل شبکه عصبی با Keras
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense model = Sequential([ Dense(32, activation='relu', input_shape=(X_train.shape[1],)), Dense(16, activation='relu'), Dense(1, activation='sigmoid') ]) 42. کامپایل مدل
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) 43. آموزش مدل شبکه عصبی
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_split=0.2) 44. پیشبینی با شبکه عصبی
y_pred_nn = (model.predict(X_test) > 0.5).astype("int32") print(y_pred_nn) 45. ارزیابی دقت شبکه عصبی
loss, accuracy = model.evaluate(X_test, y_test) print(accuracy) 46. اضافه کردن Dropout برای جلوگیری از overfitting
from tensorflow.keras.layers import Dropout model = Sequential([ Dense(64, activation='relu', input_shape=(X_train.shape[1],)), Dropout(0.5), Dense(32, activation='relu'), Dense(1, activation='sigmoid') ]) 47. آموزش مدل با EarlyStopping
from tensorflow.keras.callbacks import EarlyStopping early_stop = EarlyStopping(patience=5, restore_best_weights=True) model.fit(X_train, y_train, epochs=50, callbacks=[early_stop], validation_split=0.2) 48. شبکه عصبی با چند کلاس (Multi-class)
model = Sequential([ Dense(64, activation='relu', input_shape=(X_train.shape[1],)), Dense(3, activation='softmax') ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) 49. شبکه عصبی کانولوشنی (CNN) ساده برای تصاویر
from tensorflow.keras.layers import Conv2D, Flatten, MaxPooling2D model = Sequential([ Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)), MaxPooling2D((2,2)), Flatten(), Dense(10, activation='softmax') ]) 50. شبکه عصبی بازگشتی (RNN) ساده برای دادههای زمانی
from tensorflow.keras.layers import SimpleRNN model = Sequential([ SimpleRNN(50, input_shape=(timesteps, features), activation='tanh'), Dense(1) ]) 51. استفاده از LSTM برای پیشبینی سریهای زمانی
from tensorflow.keras.layers import LSTM model = Sequential([ LSTM(50, input_shape=(timesteps, features)), Dense(1) ]) 52. استفاده از embedding برای متن
from tensorflow.keras.layers import Embedding, GlobalAveragePooling1D model = Sequential([ Embedding(input_dim=10000, output_dim=64, input_length=maxlen), GlobalAveragePooling1D(), Dense(1, activation='sigmoid') ]) 53. پیشبینی متن با مدل LSTM
y_pred_text = (model.predict(X_test) > 0.5).astype("int32") 54. استفاده از callbacks برای ذخیره بهترین مدل
from tensorflow.keras.callbacks import ModelCheckpoint checkpoint = ModelCheckpoint("best_model.h5", save_best_only=True) model.fit(X_train, y_train, epochs=20, callbacks=[checkpoint]) 55. بارگذاری مدل ذخیره شده
from tensorflow.keras.models import load_model model = load_model("best_model.h5") 56. پیشبینی تصویر با CNN آموزش دیده
y_pred_img = model.predict(X_test_images) 57. استفاده از ImageDataGenerator برای افزایش دادهها
from tensorflow.keras.preprocessing.image import ImageDataGenerator datagen = ImageDataGenerator(rotation_range=20, horizontal_flip=True) datagen.fit(X_train_images) 58. محاسبه ماتریس درهمریختگی برای multi-class
from sklearn.metrics import confusion_matrix cm = confusion_matrix(y_test, y_pred_classes) 59. رسم نمودار دقت و خطا در هر epoch
import matplotlib.pyplot as plt plt.plot(history.history['accuracy'], label='train') plt.plot(history.history['val_accuracy'], label='val') plt.legend() plt.show() 60. ذخیره تاریخچه آموزش مدل به CSV
import pandas as pd pd.DataFrame(history.history).to_csv("training_history.csv")– ترکیبی و حرفهای:
سوالات ترکیبی و حرفهای (61–100)
61. شبیهساز ATM با کلاسها و منو
62. پیشبینی با مدل از فایل CSV ورودی
63. ذخیره مدل TensorFlow به فرمت SavedModel
64. بارگذاری مدل SavedModel
65. نرمالسازی دادهها با MinMaxScaler
66. نرمالسازی دادههای جدید
67. استفاده از GridSearchCV برای انتخاب هایپرپارامتر
68. کاهش ابعاد با PCA
69. نمایش دادهها بعد از PCA
70. پیادهسازی شبکه GAN ساده
71. تبدیل تصویر به آرایه برای CNN
72. پیشبینی تصویر با مدل آموزش دیده CNN
73. ذخیره بردار ویژگیها از یک لایه میانی
74. استفاده از Tokenizer برای متن
75. Padding دنبالهها برای مدل LSTM
76. استفاده از Embedding در LSTM
77. محاسبه F1-score مدل
78. ذخیره ماتریس confusion به فایل CSV
79. رسم نمودار Loss و Accuracy با Seaborn
80. ترکیب دادههای مختلف با pandas برای آموزش
81. استفاده از مدل از پیش آموزش دیده (Pretrained) ResNet
82. استخراج ویژگیها با مدل Pretrained
83. فشردهسازی مدل با TFLite
سوالات ترکیبی و حرفهای (61–100)
61. شبیهساز ATM با کلاسها و منو
class ATM: def __init__(self, balance=0): self.balance = balance def deposit(self, amount): self.balance += amount def withdraw(self, amount): if amount <= self.balance: self.balance -= amount else: print("Insufficient balance") atm = ATM(1000) atm.deposit(500) atm.withdraw(200) print(atm.balance) 62. پیشبینی با مدل از فایل CSV ورودی
import pandas as pd X_new = pd.read_csv("new_data.csv") y_pred = model.predict(X_new) 63. ذخیره مدل TensorFlow به فرمت SavedModel
model.save("my_model") 64. بارگذاری مدل SavedModel
from tensorflow.keras.models import load_model model = load_model("my_model") 65. نرمالسازی دادهها با MinMaxScaler
from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() X_scaled = scaler.fit_transform(X) 66. نرمالسازی دادههای جدید
X_new_scaled = scaler.transform(X_new) 67. استفاده از GridSearchCV برای انتخاب هایپرپارامتر
from sklearn.model_selection import GridSearchCV from sklearn.ensemble import RandomForestClassifier params = {'n_estimators':[50,100], 'max_depth':[5,10]} grid = GridSearchCV(RandomForestClassifier(), param_grid=params) grid.fit(X_train, y_train) print(grid.best_params_) 68. کاهش ابعاد با PCA
from sklearn.decomposition import PCA pca = PCA(n_components=2) X_pca = pca.fit_transform(X) 69. نمایش دادهها بعد از PCA
import matplotlib.pyplot as plt plt.scatter(X_pca[:,0], X_pca[:,1], c=y) plt.show() 70. پیادهسازی شبکه GAN ساده
# Generator from tensorflow.keras.layers import Input, Dense from tensorflow.keras.models import Model input_gen = Input(shape=(100,)) x = Dense(128, activation='relu')(input_gen) output_gen = Dense(784, activation='sigmoid')(x) generator = Model(input_gen, output_gen) 71. تبدیل تصویر به آرایه برای CNN
from tensorflow.keras.preprocessing import image img = image.load_img("digit.png", target_size=(28,28), color_mode="grayscale") x = image.img_to_array(img)/255.0 x = x.reshape(1,28,28,1) 72. پیشبینی تصویر با مدل آموزش دیده CNN
pred = model.predict(x) print(pred.argmax()) 73. ذخیره بردار ویژگیها از یک لایه میانی
from tensorflow.keras.models import Model feature_model = Model(inputs=model.input, outputs=model.layers[-2].output) features = feature_model.predict(X_test) 74. استفاده از Tokenizer برای متن
from tensorflow.keras.preprocessing.text import Tokenizer tokenizer = Tokenizer(num_words=1000) tokenizer.fit_on_texts(texts) sequences = tokenizer.texts_to_sequences(texts) 75. Padding دنبالهها برای مدل LSTM
from tensorflow.keras.preprocessing.sequence import pad_sequences X_pad = pad_sequences(sequences, maxlen=100) 76. استفاده از Embedding در LSTM
from tensorflow.keras.layers import Embedding, LSTM, Dense model = Sequential([ Embedding(1000, 64, input_length=100), LSTM(32), Dense(1, activation='sigmoid') ]) 77. محاسبه F1-score مدل
from sklearn.metrics import f1_score print(f1_score(y_test, y_pred_nn)) 78. ذخیره ماتریس confusion به فایل CSV
import pandas as pd pd.DataFrame(cm).to_csv("confusion_matrix.csv") 79. رسم نمودار Loss و Accuracy با Seaborn
import seaborn as sns sns.lineplot(data=history.history['loss'], label='train_loss') sns.lineplot(data=history.history['val_loss'], label='val_loss') 80. ترکیب دادههای مختلف با pandas برای آموزش
df = pd.concat([df1, df2], axis=0) 81. استفاده از مدل از پیش آموزش دیده (Pretrained) ResNet
from tensorflow.keras.applications import ResNet50 model = ResNet50(weights='imagenet') 82. استخراج ویژگیها با مدل Pretrained
from tensorflow.keras.models import Model feat_model = Model(inputs=model.input, outputs=model.layers[-2].output) features = feat_model.predict(X_images) 83. فشردهسازی مدل با TFLite
import tensorflow as tf converter = tf.lite.TFLiteConverter.from_saved_model("my_model") tflite_model = converter.convert()84. استفاده از EarlyStopping و ReduceLROnPlateau
85. ایجاد آموزش با دادههای دستهبندی شده (Class Weights)
86. پیشبینی چند برچسبی (Multi-label)
87. ذخیره پیشبینیها به CSV
88. اجرای مدل روی GPU با TensorFlow
89. نمایش شکل شبکه با plot_model
90. استفاده از callbacks سفارشی برای ذخیره معیارها
91. محاسبه ROC AUC برای مدل باینری
92. تبدیل تصاویر رنگی به خاکستری برای CNN
93. استفاده از BatchNormalization
94. Dropout در شبکه CNN
95. افزایش داده متن با Synonyms Replacement
96. ذخیره وزنهای مدل به HDF5
97. بارگذاری وزنهای ذخیره شده
98. استفاده از callbacks برای EarlyStopping + ModelCheckpoint
99. استفاده از TensorBoard برای مانیتورینگ
100. محاسبه دقت مدل با scikit-learn
from tensorflow.keras.callbacks import ReduceLROnPlateau reduce_lr = ReduceLROnPlateau(patience=3, factor=0.5) 85. ایجاد آموزش با دادههای دستهبندی شده (Class Weights)
from sklearn.utils import class_weight weights = class_weight.compute_class_weight('balanced', classes=np.unique(y_train), y=y_train) 86. پیشبینی چند برچسبی (Multi-label)
model = Sequential([ Dense(64, activation='relu', input_shape=(X_train.shape[1],)), Dense(3, activation='sigmoid') ]) 87. ذخیره پیشبینیها به CSV
pd.DataFrame(y_pred, columns=["label"]).to_csv("predictions.csv", index=False) 88. اجرای مدل روی GPU با TensorFlow
import tensorflow as tf print(tf.config.list_physical_devices('GPU')) 89. نمایش شکل شبکه با plot_model
from tensorflow.keras.utils import plot_model plot_model(model, to_file='model.png', show_shapes=True) 90. استفاده از callbacks سفارشی برای ذخیره معیارها
class MyCallback(tf.keras.callbacks.Callback): def on_epoch_end(self, epoch, logs=None): print(f"Epoch {epoch}: val_acc={logs['val_accuracy']}") 91. محاسبه ROC AUC برای مدل باینری
from sklearn.metrics import roc_auc_score roc_auc_score(y_test, y_pred_nn) 92. تبدیل تصاویر رنگی به خاکستری برای CNN
X_gray = X_images.mean(axis=-1, keepdims=True)/255.0 93. استفاده از BatchNormalization
from tensorflow.keras.layers import BatchNormalization model = Sequential([ Dense(64, activation='relu'), BatchNormalization(), Dense(1, activation='sigmoid') ]) 94. Dropout در شبکه CNN
Conv2D(32, (3,3), activation='relu'), Dropout(0.3) 95. افزایش داده متن با Synonyms Replacement
# جایگزینی واژهها با مترادفها برای data augmentation 96. ذخیره وزنهای مدل به HDF5
model.save_weights("weights.h5") 97. بارگذاری وزنهای ذخیره شده
model.load_weights("weights.h5") 98. استفاده از callbacks برای EarlyStopping + ModelCheckpoint
model.fit(X_train, y_train, epochs=50, callbacks=[early_stop, checkpoint]) 99. استفاده از TensorBoard برای مانیتورینگ
from tensorflow.keras.callbacks import TensorBoard tensorboard = TensorBoard(log_dir='./logs') 100. محاسبه دقت مدل با scikit-learn
from sklearn.metrics import accuracy_score print(accuracy_score(y_test, y_pred_nn))پروژهها و مثالهای عملی AI و Deep Learning
---
۱. تشخیص اعداد دستنویس (MNIST)
import tensorflow as tf
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train/255.0, x_test/255.0
model = Sequential([
Flatten(input_shape=(28,28)),
Dense(128, activation='relu'),
Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5, validation_split=0.1)
print("Accuracy:", model.evaluate(x_test, y_test)[1])
---
۲. تشخیص تصاویر گربه و سگ (Cats vs Dogs)
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
train_datagen = ImageDataGenerator(rescale=1./255)
train_gen = train_datagen.flow_from_directory('data/train', target_size=(64,64), batch_size=32, class_mode='binary')
model = Sequential([
Conv2D(32, (3,3), activation='relu', input_shape=(64,64,3)),
MaxPooling2D(2,2),
Flatten(),
Dense(128, activation='relu'),
Dense(1, activation='sigmoid')
])
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(train_gen, epochs=5)
---
۳. تحلیل احساسات (Sentiment Analysis)
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense
texts = ["I love this movie", "I hate this film", "Amazing!", "Terrible experience"]
labels = [1,0,1,0]
tokenizer = Tokenizer(num_words=100)
tokenizer.fit_on_texts(texts)
seqs = tokenizer.texts_to_sequences(texts)
seqs = pad_sequences(seqs, maxlen=5)
model = Sequential([
Embedding(100, 8, input_length=5),
LSTM(16),
Dense(1, activation='sigmoid')
])
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(seqs, labels, epochs=10)
---
۴. پیشبینی قیمت خانهها (Regression)
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
data = load_boston()
X, y = data.data, data.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
scaler = MinMaxScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
model = Sequential([
Dense(64, activation='relu', input_shape=(X_train.shape[1],)),
Dense(1)
])
model.compile(optimizer='adam', loss='mse')
model.fit(X_train, y_train, epochs=50, validation_split=0.1)
---
۵. تولید متن ساده با RNN
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, SimpleRNN, Dense
import numpy as np
text = "hello world hello deep learning"
tokenizer = Tokenizer()
tokenizer.fit_on_texts([text])
seqs = tokenizer.texts_to_sequences([text])[0]
X, y = seqs[:-1], seqs[1:]
X = np.array(X).reshape(1,-1)
y = np.array(y).reshape(1,-1)
model = Sequential([
Embedding(input_dim=len(tokenizer.word_index)+1, output_dim=10, input_length=X.shape[1]),
SimpleRNN(20, return_sequences=True),
Dense(len(tokenizer.word_index)+1, activation='softmax')
])
model.compile('adam', 'sparse_categorical_crossentropy')
# model.fit(X, y, epochs=200) # آموزش طولانی برای مثال واقعی
---
۶. تبدیل تصاویر رنگی به سیاه و سفید
import cv2
img = cv2.imread('color.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imwrite('gray.jpg', gray)
---
---
۱. تشخیص اعداد دستنویس (MNIST)
import tensorflow as tf
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train/255.0, x_test/255.0
model = Sequential([
Flatten(input_shape=(28,28)),
Dense(128, activation='relu'),
Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5, validation_split=0.1)
print("Accuracy:", model.evaluate(x_test, y_test)[1])
---
۲. تشخیص تصاویر گربه و سگ (Cats vs Dogs)
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
train_datagen = ImageDataGenerator(rescale=1./255)
train_gen = train_datagen.flow_from_directory('data/train', target_size=(64,64), batch_size=32, class_mode='binary')
model = Sequential([
Conv2D(32, (3,3), activation='relu', input_shape=(64,64,3)),
MaxPooling2D(2,2),
Flatten(),
Dense(128, activation='relu'),
Dense(1, activation='sigmoid')
])
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(train_gen, epochs=5)
---
۳. تحلیل احساسات (Sentiment Analysis)
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense
texts = ["I love this movie", "I hate this film", "Amazing!", "Terrible experience"]
labels = [1,0,1,0]
tokenizer = Tokenizer(num_words=100)
tokenizer.fit_on_texts(texts)
seqs = tokenizer.texts_to_sequences(texts)
seqs = pad_sequences(seqs, maxlen=5)
model = Sequential([
Embedding(100, 8, input_length=5),
LSTM(16),
Dense(1, activation='sigmoid')
])
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(seqs, labels, epochs=10)
---
۴. پیشبینی قیمت خانهها (Regression)
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
data = load_boston()
X, y = data.data, data.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
scaler = MinMaxScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
model = Sequential([
Dense(64, activation='relu', input_shape=(X_train.shape[1],)),
Dense(1)
])
model.compile(optimizer='adam', loss='mse')
model.fit(X_train, y_train, epochs=50, validation_split=0.1)
---
۵. تولید متن ساده با RNN
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, SimpleRNN, Dense
import numpy as np
text = "hello world hello deep learning"
tokenizer = Tokenizer()
tokenizer.fit_on_texts([text])
seqs = tokenizer.texts_to_sequences([text])[0]
X, y = seqs[:-1], seqs[1:]
X = np.array(X).reshape(1,-1)
y = np.array(y).reshape(1,-1)
model = Sequential([
Embedding(input_dim=len(tokenizer.word_index)+1, output_dim=10, input_length=X.shape[1]),
SimpleRNN(20, return_sequences=True),
Dense(len(tokenizer.word_index)+1, activation='softmax')
])
model.compile('adam', 'sparse_categorical_crossentropy')
# model.fit(X, y, epochs=200) # آموزش طولانی برای مثال واقعی
---
۶. تبدیل تصاویر رنگی به سیاه و سفید
import cv2
img = cv2.imread('color.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imwrite('gray.jpg', gray)
---
۷. تشخیص اعداد در تصاویر (Digit Recognition)
# مشابه MNIST بالا با CNN
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train.reshape(-1,28,28,1)/255.0, x_test.reshape(-1,28,28,1)/255.0
model = Sequential([
Conv2D(32,(3,3), activation='relu', input_shape=(28,28,1)),
MaxPooling2D(2,2),
Flatten(),
Dense(128, activation='relu'),
Dense(10, activation='softmax')
])
model.compile('adam', 'sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=3)
---
۸. شبیهساز ATM با کلاسها و منو
class Account:
def init(self, balance=0):
self.balance = balance
def deposit(self, amt):
self.balance += amt
def withdraw(self, amt):
if amt <= self.balance:
self.balance -= amt
else:
print("Insufficient funds")
def check_balance(self):
print("Balance:", self.balance)
acc = Account()
acc.deposit(100)
acc.withdraw(50)
acc.check_balance()
---
۹. سیستم پیشنهاد دهنده ساده
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
ratings = np.array([[5,3,0],[4,0,0],[1,1,0]])
similarity = cosine_similarity(ratings)
print(similarity)
---
۱۰. پیشبینی سرطان با دیتاست Breast Cancer
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
data = load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2)
clf = RandomForestClassifier()
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
print(classification_report(y_test, y_pred))
---
۱۱. GAN برای تولید تصویر
# نمونه کوتاه (Pseudo-code، آموزش کامل طولانی است)
# generator = ...
# discriminator = ...
# gan = Sequential([generator, discriminator])
# gan.compile(optimizer='adam', loss='binary_crossentropy')
# آموزش GAN روی MNIST
---
۱۲. فیلتر کردن نویز تصویر با Autoencoder
# مشابه پروژه MNIST با اضافه کردن نویز و Autoencoder
---
۱۳. تشخیص دست خط (Handwriting Recognition)
# مشابه MNIST با EMNIST
---
۱۴. طبقهبندی لباسها (Fashion MNIST)
from tensorflow.keras.datasets import fashion_mnist
(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()
x_train, x_test = x_train/255.0, x_test/255.0
---
۱۵. پروژه ترجمه متن ساده (Seq2Seq)
# Encoder-Decoder LSTM (Pseudo-code برای مثال)
---
۱۶. تشخیص چهره با OpenCV
import cv2
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
img = cv2.imread('face.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
cv2.imwrite('faces_detected.jpg', img)
---
۱۷. تشخیص ژست دست با MediaPipe
import mediapipe as mp
import cv2
mp_hands = mp.solutions.hands
hands = mp_hands.Hands()
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
results = hands.process(frame_rgb)
if results.multi_hand_landmarks:
print(results.multi_hand_landmarks)
cv2.imshow("Hand", frame)
if cv2.waitKey(1) & 0xFF == 27:
break
cap.release()
cv2.destroyAllWindows()
---
۱۸. پیشبینی سری زمانی (Time Series)
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
import numpy as np
data = np.array([i for i in range(100)])
X = np.array([data[i:i+5] for i in range(95)])
y = data[5:]
X = X.reshape((X.shape[0], X.shape[1], 1))
model = Sequential([LSTM(50, input_shape=(5,1)), Dense(1)])
model.compile('adam', 'mse')
model.fit(X, y, epochs=10)
---
۱۹. پردازش دادههای صوتی (Speech Recognition)
import librosa
y, sr = librosa.load('audio.wav')
mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13)
print(mfccs.shape)
---
۲۰. ایجاد چتبات ساده
# مشابه MNIST بالا با CNN
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train.reshape(-1,28,28,1)/255.0, x_test.reshape(-1,28,28,1)/255.0
model = Sequential([
Conv2D(32,(3,3), activation='relu', input_shape=(28,28,1)),
MaxPooling2D(2,2),
Flatten(),
Dense(128, activation='relu'),
Dense(10, activation='softmax')
])
model.compile('adam', 'sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=3)
---
۸. شبیهساز ATM با کلاسها و منو
class Account:
def init(self, balance=0):
self.balance = balance
def deposit(self, amt):
self.balance += amt
def withdraw(self, amt):
if amt <= self.balance:
self.balance -= amt
else:
print("Insufficient funds")
def check_balance(self):
print("Balance:", self.balance)
acc = Account()
acc.deposit(100)
acc.withdraw(50)
acc.check_balance()
---
۹. سیستم پیشنهاد دهنده ساده
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
ratings = np.array([[5,3,0],[4,0,0],[1,1,0]])
similarity = cosine_similarity(ratings)
print(similarity)
---
۱۰. پیشبینی سرطان با دیتاست Breast Cancer
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
data = load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2)
clf = RandomForestClassifier()
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
print(classification_report(y_test, y_pred))
---
۱۱. GAN برای تولید تصویر
# نمونه کوتاه (Pseudo-code، آموزش کامل طولانی است)
# generator = ...
# discriminator = ...
# gan = Sequential([generator, discriminator])
# gan.compile(optimizer='adam', loss='binary_crossentropy')
# آموزش GAN روی MNIST
---
۱۲. فیلتر کردن نویز تصویر با Autoencoder
# مشابه پروژه MNIST با اضافه کردن نویز و Autoencoder
---
۱۳. تشخیص دست خط (Handwriting Recognition)
# مشابه MNIST با EMNIST
---
۱۴. طبقهبندی لباسها (Fashion MNIST)
from tensorflow.keras.datasets import fashion_mnist
(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()
x_train, x_test = x_train/255.0, x_test/255.0
---
۱۵. پروژه ترجمه متن ساده (Seq2Seq)
# Encoder-Decoder LSTM (Pseudo-code برای مثال)
---
۱۶. تشخیص چهره با OpenCV
import cv2
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
img = cv2.imread('face.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
cv2.imwrite('faces_detected.jpg', img)
---
۱۷. تشخیص ژست دست با MediaPipe
import mediapipe as mp
import cv2
mp_hands = mp.solutions.hands
hands = mp_hands.Hands()
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
results = hands.process(frame_rgb)
if results.multi_hand_landmarks:
print(results.multi_hand_landmarks)
cv2.imshow("Hand", frame)
if cv2.waitKey(1) & 0xFF == 27:
break
cap.release()
cv2.destroyAllWindows()
---
۱۸. پیشبینی سری زمانی (Time Series)
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
import numpy as np
data = np.array([i for i in range(100)])
X = np.array([data[i:i+5] for i in range(95)])
y = data[5:]
X = X.reshape((X.shape[0], X.shape[1], 1))
model = Sequential([LSTM(50, input_shape=(5,1)), Dense(1)])
model.compile('adam', 'mse')
model.fit(X, y, epochs=10)
---
۱۹. پردازش دادههای صوتی (Speech Recognition)
import librosa
y, sr = librosa.load('audio.wav')
mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13)
print(mfccs.shape)
---
۲۰. ایجاد چتبات ساده
responses = {
"سلام": "سلام! حال شما چطوره؟",
"خوبی؟": "من خوبم، مرسی! شما چطور؟",
"خداحافظ": "خداحافظ! روز خوبی داشته باشی.",
}
def chatbot(msg):
return responses.get(msg, "متوجه نشدم. لطفا دوباره بگویید.")
while True:
msg = input("شما: ")
if msg == "خداحافظ":
print("ربات:", chatbot(msg))
break
print("ربات:", chatbot(msg))
توضیح:
یک دیکشنری برای پاسخها داریم.
کاربر پیام میدهد و ربات پاسخ مناسب میدهد یا پیام پیشفرض میفرستد.
با تایپ خداحافظ برنامه پایان مییابد.
"سلام": "سلام! حال شما چطوره؟",
"خوبی؟": "من خوبم، مرسی! شما چطور؟",
"خداحافظ": "خداحافظ! روز خوبی داشته باشی.",
}
def chatbot(msg):
return responses.get(msg, "متوجه نشدم. لطفا دوباره بگویید.")
while True:
msg = input("شما: ")
if msg == "خداحافظ":
print("ربات:", chatbot(msg))
break
print("ربات:", chatbot(msg))
توضیح:
یک دیکشنری برای پاسخها داریم.
کاربر پیام میدهد و ربات پاسخ مناسب میدهد یا پیام پیشفرض میفرستد.
با تایپ خداحافظ برنامه پایان مییابد.
پروژههای ۲۱–۴۰
۲۱. پیشبینی قیمت خانه با Linear Regression
۲۲. طبقهبندی ایمیل اسپم با Naive Bayes
۲۳. خوشهبندی مشتریان با KMeans
۲۴. تشخیص دستنویس با MNIST و MLP
۲۵. تحلیل احساسات ساده با TextBlob
۲۶. پیشبینی سری زمانی با ARIMA
۲۷. خوشهبندی تصاویر با KMeans و PCA
۲۸. تشخیص اشیا با OpenCV و کپسولبندی رنگها
۲۹. پیشبینی بیماری قلبی با RandomForest
۳۰. تولید متن ساده با GPT-2 (transformers)
۲۱. پیشبینی قیمت خانه با Linear Regression
from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.datasets import load_boston import pandas as pd data = load_boston() X = pd.DataFrame(data.data, columns=data.feature_names) y = pd.Series(data.target) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) model = LinearRegression() model.fit(X_train, y_train) print("Score:", model.score(X_test, y_test)) ۲۲. طبقهبندی ایمیل اسپم با Naive Bayes
from sklearn.model_selection import train_test_split from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB emails = ["Free money now", "Hi Bob, how are you?", "Win a car!", "Meeting at 10"] labels = [1, 0, 1, 0] # 1=spam, 0=ham vectorizer = CountVectorizer() X = vectorizer.fit_transform(emails) X_train, X_test, y_train, y_test = train_test_split(X, labels, test_size=0.25, random_state=42) model = MultinomialNB() model.fit(X_train, y_train) print("Score:", model.score(X_test, y_test)) ۲۳. خوشهبندی مشتریان با KMeans
from sklearn.cluster import KMeans import numpy as np X = np.array([[5, 2], [1, 4], [3, 7], [8, 1]]) kmeans = KMeans(n_clusters=2, random_state=42) kmeans.fit(X) print(kmeans.labels_) ۲۴. تشخیص دستنویس با MNIST و MLP
from sklearn.datasets import load_digits from sklearn.model_selection import train_test_split from sklearn.neural_network import MLPClassifier digits = load_digits() X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.2, random_state=42) model = MLPClassifier(hidden_layer_sizes=(64,), max_iter=300) model.fit(X_train, y_train) print("Score:", model.score(X_test, y_test)) ۲۵. تحلیل احساسات ساده با TextBlob
from textblob import TextBlob text = "I love AI but sometimes it is challenging." blob = TextBlob(text) print("Sentiment:", blob.sentiment) ۲۶. پیشبینی سری زمانی با ARIMA
import pandas as pd from statsmodels.tsa.arima.model import ARIMA data = pd.Series([120, 130, 125, 140, 150, 160]) model = ARIMA(data, order=(1,1,1)) model_fit = model.fit() print(model_fit.forecast(steps=3)) ۲۷. خوشهبندی تصاویر با KMeans و PCA
from sklearn.datasets import load_digits from sklearn.decomposition import PCA from sklearn.cluster import KMeans digits = load_digits() X_pca = PCA(2).fit_transform(digits.data) kmeans = KMeans(n_clusters=10).fit(X_pca) print(kmeans.labels_) ۲۸. تشخیص اشیا با OpenCV و کپسولبندی رنگها
import cv2 import numpy as np img = cv2.imread("image.jpg") hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) mask = cv2.inRange(hsv, (36, 25, 25), (70, 255,255)) res = cv2.bitwise_and(img,img,mask=mask) cv2.imwrite("result.jpg", res) ۲۹. پیشبینی بیماری قلبی با RandomForest
from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split import pandas as pd # فرضی df = pd.DataFrame({'age':[45,50,40],'chol':[230,210,180],'target':[1,0,0]}) X = df[['age','chol']] y = df['target'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42) model = RandomForestClassifier() model.fit(X_train, y_train) print(model.score(X_test, y_test)) ۳۰. تولید متن ساده با GPT-2 (transformers)
from transformers import GPT2LMHeadModel, GPT2Tokenizer tokenizer = GPT2Tokenizer.from_pretrained("gpt2") model = GPT2LMHeadModel.from_pretrained("gpt2") input_text = "Artificial Intelligence is" inputs = tokenizer.encode(input_text, return_tensors="pt") outputs = model.generate(inputs, max_length=50) print(tokenizer.decode(outputs[0], skip_special_tokens=True))۳۱–۴۰ در حوزه هوش مصنوعی و یادگیری ماشین/عمیق:
پروژههای ۳۱–۴۰
۳۱. تشخیص چهره با OpenCV
۳۲. پیشبینی قیمت سهام با Linear Regression
۳۳. خوشهبندی متون با TF-IDF و KMeans
۳۴. تحلیل احساسات توییتها با Vader
۳۵. تولید تصویر با GAN ساده (PyTorch)
۳۶. شناسایی اعداد MNIST با CNN (PyTorch)
۳۷. سیستم توصیهگر ساده (Collaborative Filtering)
۳۸. تشخیص شی با YOLO (OpenCV + pre-trained weights)
۳۹. طبقهبندی گل Iris با Random Forest
۴۰. کاهش ابعاد با PCA و نمایش گرافیکی
پروژههای ۳۱–۴۰
۳۱. تشخیص چهره با OpenCV
import cv2 face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') img = cv2.imread('face.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) for (x,y,w,h) in faces: cv2.rectangle(img, (x,y), (x+w,y+h), (255,0,0), 2) cv2.imwrite('faces_detected.jpg', img) ۳۲. پیشبینی قیمت سهام با Linear Regression
import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split data = pd.read_csv('stock.csv') # فرضی X = data[['Open', 'High', 'Low']] y = data['Close'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) model = LinearRegression() model.fit(X_train, y_train) print(model.score(X_test, y_test)) ۳۳. خوشهبندی متون با TF-IDF و KMeans
from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.cluster import KMeans docs = ["I love AI", "AI is the future", "I enjoy sports", "Football is fun"] vectorizer = TfidfVectorizer() X = vectorizer.fit_transform(docs) kmeans = KMeans(n_clusters=2).fit(X) print(kmeans.labels_) ۳۴. تحلیل احساسات توییتها با Vader
from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer analyzer = SentimentIntensityAnalyzer() text = "I am very happy with AI progress!" score = analyzer.polarity_scores(text) print(score) ۳۵. تولید تصویر با GAN ساده (PyTorch)
import torch from torch import nn class Generator(nn.Module): def __init__(self): super().__init__() self.main = nn.Sequential(nn.Linear(100, 256), nn.ReLU(), nn.Linear(256, 784), nn.Tanh()) def forward(self, x): return self.main(x) z = torch.randn(1, 100) gen = Generator() fake_image = gen(z) print(fake_image.shape) # خروجی 784 پیکسل (28x28) ۳۶. شناسایی اعداد MNIST با CNN (PyTorch)
import torch from torchvision import datasets, transforms from torch import nn, optim transform = transforms.Compose([transforms.ToTensor()]) train_data = datasets.MNIST(root='./data', train=True, download=True, transform=transform) X, y = train_data.data.float(), train_data.targets model = nn.Sequential(nn.Flatten(), nn.Linear(28*28, 128), nn.ReLU(), nn.Linear(128,10)) loss_fn = nn.CrossEntropyLoss() optimizer = optim.SGD(model.parameters(), lr=0.01) آموزش کامل نیازمند حلقه epoch است، این فقط نمونه ساختار مدل است.
۳۷. سیستم توصیهگر ساده (Collaborative Filtering)
import pandas as pd from sklearn.metrics.pairwise import cosine_similarity ratings = pd.DataFrame({'User1':[5,0,3],'User2':[4,0,0],'User3':[1,2,0]}) similarity = cosine_similarity(ratings.fillna(0)) print(similarity) ۳۸. تشخیص شی با YOLO (OpenCV + pre-trained weights)
import cv2 net = cv2.dnn.readNet("yolov3.weights", "yolov3.cfg") layer_names = net.getLayerNames() output_layers = [layer_names[i[0]-1] for i in net.getUnconnectedOutLayers()] img = cv2.imread("image.jpg") blob = cv2.dnn.blobFromImage(img, 0.00392, (416,416), swapRB=True, crop=False) net.setInput(blob) outs = net.forward(output_layers) print("Number of detections:", len(outs)) ۳۹. طبقهبندی گل Iris با Random Forest
from sklearn.datasets import load_iris from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split data = load_iris() X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2) model = RandomForestClassifier() model.fit(X_train, y_train) print(model.score(X_test, y_test)) ۴۰. کاهش ابعاد با PCA و نمایش گرافیکی
from sklearn.decomposition import PCA import matplotlib.pyplot as plt from sklearn.datasets import load_iris data = load_iris() pca = PCA(n_components=2) X_pca = pca.fit_transform(data.data) plt.scatter(X_pca[:,0], X_pca[:,1], c=data.target) plt.show()پروژههای ۴۱–۶۰
۴۱. پیشبینی فروش با Linear Regression و دادههای زمانبندی
۴۲. خوشهبندی مشتریان با KMeans (Customer Segmentation)
۴۳. تشخیص اعداد دستنویس با SVM (MNIST)
۴۴. پیشبینی قیمت خانه با Random Forest
۴۵. طبقهبندی اخبار با Naive Bayes
۴۶. ترجمه متن با Transformer ساده (Hugging Face)
۴۷. تولید متن با GPT-2 (Hugging Face)
۴۸. شناسایی اشیاء با MobileNet (TensorFlow/Keras)
۴۹. شناسایی احساسات با BERT
۵۰. کاهش ابعاد با t-SNE و نمایش دادهها
۵۱. پیشبینی نرخ ارز با LSTM (Keras)
۵۲. شبکه GAN برای تولید دستخط (MNIST)
۵۳. تحلیل خوشهای تصاویر با KMeans (Feature Extraction با CNN)
۴۱. پیشبینی فروش با Linear Regression و دادههای زمانبندی
import pandas as pd from sklearn.linear_model import LinearRegression data = pd.read_csv('sales.csv') # فرضی: ستون 'Month' و 'Sales' X = data[['Month']] y = data['Sales'] model = LinearRegression() model.fit(X, y) print(model.predict([[13]])) # پیشبینی ماه ۱۳ ۴۲. خوشهبندی مشتریان با KMeans (Customer Segmentation)
import pandas as pd from sklearn.cluster import KMeans data = pd.read_csv('customers.csv') # ستون 'Age' و 'SpendingScore' kmeans = KMeans(n_clusters=3) data['Cluster'] = kmeans.fit_predict(data[['Age','SpendingScore']]) print(data.head()) ۴۳. تشخیص اعداد دستنویس با SVM (MNIST)
from sklearn import datasets, svm from sklearn.model_selection import train_test_split digits = datasets.load_digits() X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.2) clf = svm.SVC() clf.fit(X_train, y_train) print(clf.score(X_test, y_test)) ۴۴. پیشبینی قیمت خانه با Random Forest
import pandas as pd from sklearn.ensemble import RandomForestRegressor data = pd.read_csv('housing.csv') X = data[['Rooms','Area','Age']] y = data['Price'] model = RandomForestRegressor() model.fit(X, y) print(model.predict([[3,120,10]])) ۴۵. طبقهبندی اخبار با Naive Bayes
from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB texts = ["AI is great", "Python is awesome", "I hate bugs"] labels = [1,1,0] # 1=Positive, 0=Negative vectorizer = CountVectorizer() X = vectorizer.fit_transform(texts) model = MultinomialNB() model.fit(X, labels) print(model.predict(vectorizer.transform(["I love Python"]))) ۴۶. ترجمه متن با Transformer ساده (Hugging Face)
from transformers import pipeline translator = pipeline("translation_en_to_fr") print(translator("Hello, how are you?")[0]['translation_text']) ۴۷. تولید متن با GPT-2 (Hugging Face)
from transformers import pipeline generator = pipeline('text-generation', model='gpt2') print(generator("Once upon a time", max_length=50)) ۴۸. شناسایی اشیاء با MobileNet (TensorFlow/Keras)
import tensorflow as tf from tensorflow.keras.applications.mobilenet_v2 import MobileNetV2, preprocess_input, decode_predictions import numpy as np from tensorflow.keras.preprocessing import image model = MobileNetV2(weights='imagenet') img = image.load_img('dog.jpg', target_size=(224,224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) preds = model.predict(x) print(decode_predictions(preds, top=3)[0]) ۴۹. شناسایی احساسات با BERT
from transformers import pipeline nlp = pipeline("sentiment-analysis") print(nlp("I love AI progress!")) ۵۰. کاهش ابعاد با t-SNE و نمایش دادهها
from sklearn.manifold import TSNE import matplotlib.pyplot as plt from sklearn.datasets import load_iris data = load_iris() tsne = TSNE(n_components=2, random_state=42) X_tsne = tsne.fit_transform(data.data) plt.scatter(X_tsne[:,0], X_tsne[:,1], c=data.target) plt.show() ۵۱. پیشبینی نرخ ارز با LSTM (Keras)
import numpy as np from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense data = np.random.rand(100,1) # فرضی X = data[:-1].reshape((99,1,1)) y = data[1:] model = Sequential([LSTM(50, input_shape=(1,1)), Dense(1)]) model.compile(optimizer='adam', loss='mse') model.fit(X, y, epochs=10) ۵۲. شبکه GAN برای تولید دستخط (MNIST)
مشابه پروژه قبلی GAN، با تغییر دادهها به دستنویس MNIST.
۵۳. تحلیل خوشهای تصاویر با KMeans (Feature Extraction با CNN)
from sklearn.cluster import KMeans import numpy as np from tensorflow.keras.applications.vgg16 import VGG16, preprocess_input from tensorflow.keras.preprocessing import image model = VGG16(weights='imagenet', include_top=False) img = image.load_img('cat.jpg', target_size=(224,224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) features = model.predict(x) features_flat = features.flatten().reshape(1, -1) kmeans = KMeans(n_clusters=2).fit(features_flat) print(kmeans.labels_)۵۴. طبقهبندی تصاویر میوه با CNN ساده (Keras)
۵۵. تشخیص اسپم ایمیل با Naive Bayes
۵۶. پیشبینی ترافیک با Recurrent Neural Network
۵۷. تحلیل سریهای زمانی با Prophet
۵۸. طبقهبندی صدا با CNN 1D
۵۹. تشخیص حرکات دست با OpenCV و MediaPipe
۶۰. پیشبینی بیماری قلبی با Random Forest
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense model = Sequential([ Conv2D(32, (3,3), activation='relu', input_shape=(64,64,3)), MaxPooling2D(), Flatten(), Dense(128, activation='relu'), Dense(3, activation='softmax') # سه کلاس میوه ]) ۵۵. تشخیص اسپم ایمیل با Naive Bayes
from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB emails = ["Free money", "Meeting at 10", "Win big prize"] labels = [1,0,1] # 1=Spam, 0=Ham vectorizer = CountVectorizer() X = vectorizer.fit_transform(emails) model = MultinomialNB() model.fit(X, labels) print(model.predict(vectorizer.transform(["Win a free trip"]))) ۵۶. پیشبینی ترافیک با Recurrent Neural Network
مشابه پروژه LSTM، فقط دادههای ورودی متوالی (Time Series Traffic) هستند.
۵۷. تحلیل سریهای زمانی با Prophet
from prophet import Prophet import pandas as pd df = pd.DataFrame({'ds': pd.date_range(start='2025-01-01', periods=10), 'y':[10,12,15,14,16,18,17,19,21,22]}) m = Prophet() m.fit(df) future = m.make_future_dataframe(periods=5) forecast = m.predict(future) print(forecast[['ds','yhat']]) ۵۸. طبقهبندی صدا با CNN 1D
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv1D, Dense, Flatten model = Sequential([ Conv1D(16, 3, activation='relu', input_shape=(1000,1)), Flatten(), Dense(10, activation='softmax') ]) ۵۹. تشخیص حرکات دست با OpenCV و MediaPipe
import cv2 import mediapipe as mp mp_hands = mp.solutions.hands hands = mp_hands.Hands() cap = cv2.VideoCapture(0) ret, frame = cap.read() results = hands.process(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)) print(results.multi_hand_landmarks) ۶۰. پیشبینی بیماری قلبی با Random Forest
import pandas as pd from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split data = pd.read_csv('heart.csv') X = data.drop('target', axis=1) y = data['target'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) model = RandomForestClassifier() model.fit(X_train, y_train) print(model.score(X_test, y_test))پروژههای 61 تا 100 که مربوط به هوش مصنوعی، یادگیری ماشین و یادگیری عمیق هستند. اینها شامل مثالهای عملی و قابل اجرا با پایتون و کتابخانههایی مثل numpy, pandas, scikit-learn, tensorflow, keras خواهند بود.
پروژه 61–80: یادگیری ماشین پایه
61. پیشبینی قیمت خانه (Linear Regression)
62. طبقهبندی گلها (Iris Dataset)
63. استانداردسازی دادهها
64. تقسیم داده به آموزش و تست
65. الگوریتم k-NN
66. الگوریتم Naive Bayes
67. الگوریتم SVM
68. درخت تصمیم و تصویرسازی
69. محاسبه دقت مدل
70. رگرسیون چند متغیره
71. PCA برای کاهش بعد
72. خوشهبندی K-Means
73. خوشهبندی Hierarchical
74. محاسبه ماتریس درهم ریختگی
75. cross-validation ساده
76. GridSearch برای هایپرپارامتر
77. بردارهای ویژگی با CountVectorizer
پروژه 61–80: یادگیری ماشین پایه
61. پیشبینی قیمت خانه (Linear Regression)
from sklearn.linear_model import LinearRegression import numpy as np X = np.array([[1000], [1500], [2000], [2500]]) y = np.array([200000, 250000, 300000, 350000]) model = LinearRegression() model.fit(X, y) print(model.predict([[1800]])) 62. طبقهبندی گلها (Iris Dataset)
from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier iris = load_iris() X, y = iris.data, iris.target model = DecisionTreeClassifier() model.fit(X, y) print(model.predict([X[0]])) 63. استانداردسازی دادهها
from sklearn.preprocessing import StandardScaler import numpy as np data = np.array([[1,2],[3,4],[5,6]]) scaler = StandardScaler() scaled = scaler.fit_transform(data) print(scaled) 64. تقسیم داده به آموزش و تست
from sklearn.model_selection import train_test_split X = [[1],[2],[3],[4],[5]] y = [1,2,3,4,5] X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2) print(X_train, X_test) 65. الگوریتم k-NN
from sklearn.neighbors import KNeighborsClassifier X = [[0],[1],[2],[3]] y = [0,0,1,1] model = KNeighborsClassifier(n_neighbors=1) model.fit(X,y) print(model.predict([[1.1]])) 66. الگوریتم Naive Bayes
from sklearn.naive_bayes import GaussianNB X = [[1],[2],[3],[4]] y = [0,0,1,1] model = GaussianNB() model.fit(X,y) print(model.predict([[2.5]])) 67. الگوریتم SVM
from sklearn.svm import SVC X = [[0],[1],[2],[3]] y = [0,0,1,1] model = SVC() model.fit(X,y) print(model.predict([[1.5]])) 68. درخت تصمیم و تصویرسازی
from sklearn.tree import DecisionTreeClassifier, export_text X = [[0],[1],[2],[3]] y = [0,0,1,1] model = DecisionTreeClassifier() model.fit(X,y) print(export_text(model)) 69. محاسبه دقت مدل
from sklearn.metrics import accuracy_score y_true = [0,1,1,0] y_pred = [0,1,0,0] print(accuracy_score(y_true, y_pred)) 70. رگرسیون چند متغیره
from sklearn.linear_model import LinearRegression import numpy as np X = np.array([[1,2],[2,3],[3,4]]) y = np.array([3,5,7]) model = LinearRegression() model.fit(X,y) print(model.predict([[4,5]])) 71. PCA برای کاهش بعد
from sklearn.decomposition import PCA import numpy as np X = np.array([[1,2,3],[4,5,6],[7,8,9]]) pca = PCA(n_components=2) X_new = pca.fit_transform(X) print(X_new) 72. خوشهبندی K-Means
from sklearn.cluster import KMeans import numpy as np X = np.array([[1,2],[1,4],[5,6],[6,7]]) kmeans = KMeans(n_clusters=2) kmeans.fit(X) print(kmeans.labels_) 73. خوشهبندی Hierarchical
from scipy.cluster.hierarchy import dendrogram, linkage import matplotlib.pyplot as plt import numpy as np X = np.array([[1,2],[1,4],[5,6],[6,7]]) linked = linkage(X, 'single') dendrogram(linked) plt.show() 74. محاسبه ماتریس درهم ریختگی
from sklearn.metrics import confusion_matrix y_true = [0,1,0,1] y_pred = [0,1,1,1] print(confusion_matrix(y_true, y_pred)) 75. cross-validation ساده
from sklearn.model_selection import cross_val_score from sklearn.linear_model import LogisticRegression import numpy as np X = np.array([[1],[2],[3],[4]]) y = np.array([0,0,1,1]) model = LogisticRegression() scores = cross_val_score(model, X, y, cv=2) print(scores) 76. GridSearch برای هایپرپارامتر
from sklearn.model_selection import GridSearchCV from sklearn.svm import SVC X = [[0],[1],[2],[3]] y = [0,0,1,1] params = {'C':[0.1,1,10]} grid = GridSearchCV(SVC(), param_grid=params) grid.fit(X,y) print(grid.best_params_) 77. بردارهای ویژگی با CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer texts = ["I love AI", "AI is great"] vectorizer = CountVectorizer() X = vectorizer.fit_transform(texts) print(X.toarray())78. TF-IDF ساده
79. مدل ساده شبکه عصبی با Keras
80. پیشبینی چندکلاسه با شبکه عصبی
from sklearn.feature_extraction.text import TfidfVectorizer texts = ["I love AI", "AI is great"] vectorizer = TfidfVectorizer() X = vectorizer.fit_transform(texts) print(X.toarray()) 79. مدل ساده شبکه عصبی با Keras
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense import numpy as np X = np.array([[0],[1],[2],[3]]) y = np.array([0,0,1,1]) model = Sequential([Dense(1,input_dim=1,activation='sigmoid')]) model.compile(optimizer='adam', loss='binary_crossentropy') model.fit(X,y,epochs=50,verbose=0) print(model.predict(X)) 80. پیشبینی چندکلاسه با شبکه عصبی
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense import numpy as np X = np.array([[0,0],[0,1],[1,0],[1,1]]) y = np.array([[1,0,0],[0,1,0],[0,1,0],[0,0,1]]) # one-hot model = Sequential([Dense(3,input_dim=2,activation='softmax')]) model.compile(optimizer='adam', loss='categorical_crossentropy') model.fit(X,y,epochs=100,verbose=0) print(model.predict(X))پروژههای 81 تا 100: یادگیری عمیق پیشرفته، CNN، RNN، پردازش تصویر و NLP.
پروژه 81–100: یادگیری عمیق پیشرفته
81. شبکه عصبی کانولوشنی (CNN) برای MNIST
82. شبکه عصبی بازگشتی (RNN) ساده
83. LSTM برای پیشبینی سری زمانی
84. GRU ساده
85. Autoencoder ساده
86. GAN ساده
(نمونه پایه GAN برای شروع)
87. پردازش متن با Embedding
88. پردازش متن با LSTM
89. تحلیل احساسات (Sentiment Analysis)
90. شبکه CNN برای متن
پروژه 81–100: یادگیری عمیق پیشرفته
81. شبکه عصبی کانولوشنی (CNN) برای MNIST
from tensorflow.keras.datasets import mnist from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense from tensorflow.keras.utils import to_categorical (X_train, y_train), (X_test, y_test) = mnist.load_data() X_train = X_train.reshape(-1,28,28,1)/255.0 X_test = X_test.reshape(-1,28,28,1)/255.0 y_train = to_categorical(y_train) y_test = to_categorical(y_test) model = Sequential([ Conv2D(32,(3,3),activation='relu',input_shape=(28,28,1)), MaxPooling2D((2,2)), Flatten(), Dense(128,activation='relu'), Dense(10,activation='softmax') ]) model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) model.fit(X_train, y_train, epochs=3, batch_size=32, verbose=1) print(model.evaluate(X_test, y_test)) 82. شبکه عصبی بازگشتی (RNN) ساده
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import SimpleRNN, Dense import numpy as np X = np.random.rand(100,10,1) y = np.random.rand(100,1) model = Sequential([ SimpleRNN(10, input_shape=(10,1)), Dense(1) ]) model.compile(optimizer='adam', loss='mse') model.fit(X,y,epochs=5) 83. LSTM برای پیشبینی سری زمانی
from tensorflow.keras.layers import LSTM X = np.random.rand(100,5,1) y = np.random.rand(100,1) model = Sequential([ LSTM(20, input_shape=(5,1)), Dense(1) ]) model.compile(optimizer='adam', loss='mse') model.fit(X,y,epochs=5) 84. GRU ساده
from tensorflow.keras.layers import GRU X = np.random.rand(50,4,1) y = np.random.rand(50,1) model = Sequential([GRU(10, input_shape=(4,1)), Dense(1)]) model.compile(optimizer='adam', loss='mse') model.fit(X,y,epochs=5) 85. Autoencoder ساده
from tensorflow.keras.layers import Input, Dense from tensorflow.keras.models import Model import numpy as np X = np.random.rand(100,20) input_layer = Input(shape=(20,)) encoded = Dense(10, activation='relu')(input_layer) decoded = Dense(20, activation='sigmoid')(encoded) autoencoder = Model(input_layer, decoded) autoencoder.compile(optimizer='adam', loss='mse') autoencoder.fit(X,X,epochs=10) 86. GAN ساده
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense import numpy as np # Generator generator = Sequential([Dense(16,input_dim=5,activation='relu'), Dense(1,activation='sigmoid')]) # Discriminator discriminator = Sequential([Dense(16,input_dim=1,activation='relu'), Dense(1,activation='sigmoid')]) (نمونه پایه GAN برای شروع)
87. پردازش متن با Embedding
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Embedding, Flatten, Dense import numpy as np X = np.random.randint(0,100, (10,5)) y = np.random.randint(0,2,(10,1)) model = Sequential([Embedding(input_dim=100, output_dim=8, input_length=5), Flatten(), Dense(1,activation='sigmoid')]) model.compile(optimizer='adam', loss='binary_crossentropy') model.fit(X,y,epochs=5) 88. پردازش متن با LSTM
from tensorflow.keras.layers import LSTM model = Sequential([ Embedding(input_dim=100, output_dim=8, input_length=5), LSTM(16), Dense(1,activation='sigmoid') ]) model.compile(optimizer='adam', loss='binary_crossentropy') 89. تحلیل احساسات (Sentiment Analysis)
from sklearn.model_selection import train_test_split from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.preprocessing.sequence import pad_sequences texts = ["I love AI", "I hate bugs"] labels = [1,0] tokenizer = Tokenizer(num_words=100) tokenizer.fit_on_texts(texts) X = tokenizer.texts_to_sequences(texts) X = pad_sequences(X, maxlen=5) y = np.array(labels) 90. شبکه CNN برای متن
from tensorflow.keras.layers import Conv1D, MaxPooling1D model = Sequential([ Embedding(input_dim=100, output_dim=8, input_length=5), Conv1D(16, 3, activation='relu'), MaxPooling1D(2), Flatten(), Dense(1, activation='sigmoid') ]) model.compile(optimizer='adam', loss='binary_crossentropy')91. پیشبینی تصویر با CNN سفارشی
92. انتقال یادگیری (Transfer Learning) با VGG16
93. طبقهبندی تصویر با ResNet50
94. شناسایی اشیاء ساده با YOLO (پایه)
95. تشخیص چهره با OpenCV
96. پیشبینی توالی با RNN
97. ترجمه متن ساده با Seq2Seq
98. شبیهسازی چتبات ساده
99. پیشبینی قیمت سهام با RNN
100. سیستم پیشنهاددهی ساده (Collaborative Filtering)
# مشابه MNIST، اما میتوانید دادههای دلخواه را بارگذاری کنید 92. انتقال یادگیری (Transfer Learning) با VGG16
from tensorflow.keras.applications import VGG16 from tensorflow.keras.models import Model from tensorflow.keras.layers import Dense, Flatten base_model = VGG16(weights='imagenet', include_top=False, input_shape=(64,64,3)) x = Flatten()(base_model.output) x = Dense(10, activation='softmax')(x) model = Model(base_model.input, x) 93. طبقهبندی تصویر با ResNet50
from tensorflow.keras.applications import ResNet50 # مشابه مثال بالا 94. شناسایی اشیاء ساده با YOLO (پایه)
# میتوان از کتابخانه yolov5 استفاده کرد 95. تشخیص چهره با OpenCV
import cv2 face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') img = cv2.imread('image.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray,1.3,5) print(faces) 96. پیشبینی توالی با RNN
# مشابه LSTM/Gru، با دادههای توالی 97. ترجمه متن ساده با Seq2Seq
# استفاده از LSTM encoder-decoder 98. شبیهسازی چتبات ساده
# استفاده از LSTM + Embedding 99. پیشبینی قیمت سهام با RNN
# مشابه LSTM سری زمانی 100. سیستم پیشنهاددهی ساده (Collaborative Filtering)
import numpy as np ratings = np.array([[5,3,0],[4,0,0],[1,1,0]]) user_mean = np.mean(ratings, axis=1).reshape(-1,1) ratings_diff = ratings - user_mean # مشابه SVD یا مدلهای ساده پیشنهاددهنده۱۰۰ نکته و ترفند حرفهای پایتون (شماره ۱ تا ۱۰۰)
۱–۲۰: نکات و ترفندهای پایتون با کد
۱. swap دو متغیر بدون متغیر کمکی
a, b = 5, 10 a, b = b, a print(a, b) # 10 5
۲. معکوس کردن رشته با slicing
s = "Python" print(s[::-1]) # nohtyP
۳. معکوس کردن لیست با slicing
lst = [1, 2, 3] print(lst[::-1]) # [3,2,1]
۴. جمع و میانگین لیست با یک خط
lst = [1,2,3,4] print(sum(lst), sum(lst)/len(lst)) # 10 2.5
۵. پیدا کردن بیشترین و کمترین مقدار با یک خط
lst = [5,1,8,3] print(max(lst), min(lst)) # 8 1
۶. استفاده حرفهای از enumerate
lst = ["a","b","c"] for idx, val in enumerate(lst, start=1): print(idx, val)
۷. ترکیب دو لیست با zip
names = ["Ali","Sara"] ages = [25,30] for n,a in zip(names, ages): print(n,a)
۸. بررسی اینکه همه یا یکی از مقادیر True است
lst = [0,1,2] print(all(lst), any(lst)) # False True
*۹. unpacking چند متغیر با rest
a, *rest, b = [1,2,3,4,5] print(a, rest, b) # 1 [2,3,4] 5
۱۰. ساخت دیکشنری از دو لیست
keys = ["a","b"] values = [1,2] d = dict(zip(keys, values)) print(d) # {'a':1,'b':2}
۱۱. merge کردن دو دیکشنری (Python 3.9+)
d1 = {"a":1} d2 = {"b":2} d3 = d1 | d2 print(d3) # {'a':1,'b':2}
۱۲. شمارش عناصر تکراری با collections.Counter
from collections import Counter lst = [1,2,2,3] print(Counter(lst)) # Counter({2:2,1:1,3:1})
۱۳. مرتبسازی دیکشنری بر اساس مقدار
d = {"a":3,"b":1} print(sorted(d.items(), key=lambda x: x[1])) # [('b',1),('a',3)]
۱۴. استفاده کوتاه از lambda
f = lambda x: x**2 print(f(5)) # 25
۱۵. map و filter با lambda
lst = [1,2,3,4] print(list(map(lambda x:x*2,lst))) # [2,4,6,8] print(list(filter(lambda x:x>2,lst))) # [3,4]
۱۶. reduce برای جمع یا ضرب لیست
from functools import reduce lst = [1,2,3,4] print(reduce(lambda x,y: x*y,lst)) # 24
۱۷. one-liner swap دو متغیر با tuple
a,b = 1,2; a,b = b,a; print(a,b) # 2 1
۱۸. بررسی نوع متغیر در یک خط
x = 10 print(type(x) is int) # True
۱۹. ساخت لیست از رشته با comprehension
s = "Python" lst = [c.upper() for c in s] print(lst) # ['P','Y','T','H','O','N']
۲۰. حذف فاصلهها از لیست رشتهها
lst = [" a "," b "] lst = [x.strip() for x in lst] print(lst) # ['a','b']
---
۲۱–۴۰: نکات حرفهای پایتون
۲۱. تبدیل لیست به set برای حذف تکراریها
lst = [1,2,2,3]
print(list(set(lst))) # [1,2,3]
۲۲. بررسی اینکه رشته با prefix یا suffix شروع/تمام میشود
s = "Python3"
print(s.startswith("Py"), s.endswith("3")) # True True
۲۳. استفاده از f-string برای قالببندی حرفهای
name = "Ali"
age = 25
print(f"My name is {name} and age is {age}")
۲۴. multi-line f-string
name = "Sara"
msg = f"""Hello {name},
Welcome to Python!"""
print(msg)
۲۵. join برای ادغام رشتهها
lst = ["a","b","c"]
print("-".join(lst)) # a-b-c
۲۶. split برای جدا کردن رشته
s = "a,b,c"
print(s.split(",")) # ['a','b','c']
۲۷. تبدیل عدد به رشته و بالعکس
n = 123
s = str(n)
print(s, int(s)+1) # '123' 124
۲۸. شمارش کاراکترها در رشته
s = "hello"
print(s.count("l")) # 2
۲۹. بررسی اینکه همه حروف رشته حروف الفبا هستند
s = "Hello"
print(s.isalpha()) # True
۳۰. بررسی اینکه همه کاراکترها عدد هستند
s = "123"
print(s.isdigit()) # True
۳۱. تبدیل همه حروف به بزرگ/کوچک
s = "Python"
print(s.upper(), s.lower()) # PYTHON python
۳۲. replace برای جایگزینی متن
s = "Python is fun"
print(s.replace("fun","awesome")) # Python is awesome
۳۳. استفاده از strip برای حذف فاصلههای اضافی
s = " hello "
print(s.strip()) # hello
۳۴. حذف فاصلههای سمت چپ و راست به طور جداگانه
s = " hello "
print(s.lstrip(), s.rstrip()) # 'hello ' ' hello'
۳۵. قالببندی عدد با f-string و تعداد رقم
x = 3.14159
print(f"{x:.2f}") # 3.14
۳۶. قالببندی عدد با padding
n = 5
print(f"{n:03}") # 005
۳۷. استفاده از slicing برای استخراج substring
s = "Python"
print(s[1:4]) # yth
۳۸. negative indexing
s = "Python"
print(s[-1], s[-3:-1]) # n ho
۳۹. دسترسی به آخرین عنصر لیست با -1
lst = [1,2,3]
print(lst[-1]) # 3
۴۰. حذف عنصر از لیست با pop
lst = [1,2,3]
lst.pop() # حذف آخرین
lst.pop(0) # حذف اولین
print(lst) # [2]
---
۴۱–۶۰: نکات حرفهای پایتون
۴۱. حذف همه عناصر یک لیست
lst = [1,2,3] lst.clear() print(lst) # []
۴۲. گرفتن طول لیست، رشته یا دیکشنری
۱–۲۰: نکات و ترفندهای پایتون با کد
۱. swap دو متغیر بدون متغیر کمکی
a, b = 5, 10 a, b = b, a print(a, b) # 10 5
۲. معکوس کردن رشته با slicing
s = "Python" print(s[::-1]) # nohtyP
۳. معکوس کردن لیست با slicing
lst = [1, 2, 3] print(lst[::-1]) # [3,2,1]
۴. جمع و میانگین لیست با یک خط
lst = [1,2,3,4] print(sum(lst), sum(lst)/len(lst)) # 10 2.5
۵. پیدا کردن بیشترین و کمترین مقدار با یک خط
lst = [5,1,8,3] print(max(lst), min(lst)) # 8 1
۶. استفاده حرفهای از enumerate
lst = ["a","b","c"] for idx, val in enumerate(lst, start=1): print(idx, val)
۷. ترکیب دو لیست با zip
names = ["Ali","Sara"] ages = [25,30] for n,a in zip(names, ages): print(n,a)
۸. بررسی اینکه همه یا یکی از مقادیر True است
lst = [0,1,2] print(all(lst), any(lst)) # False True
*۹. unpacking چند متغیر با rest
a, *rest, b = [1,2,3,4,5] print(a, rest, b) # 1 [2,3,4] 5
۱۰. ساخت دیکشنری از دو لیست
keys = ["a","b"] values = [1,2] d = dict(zip(keys, values)) print(d) # {'a':1,'b':2}
۱۱. merge کردن دو دیکشنری (Python 3.9+)
d1 = {"a":1} d2 = {"b":2} d3 = d1 | d2 print(d3) # {'a':1,'b':2}
۱۲. شمارش عناصر تکراری با collections.Counter
from collections import Counter lst = [1,2,2,3] print(Counter(lst)) # Counter({2:2,1:1,3:1})
۱۳. مرتبسازی دیکشنری بر اساس مقدار
d = {"a":3,"b":1} print(sorted(d.items(), key=lambda x: x[1])) # [('b',1),('a',3)]
۱۴. استفاده کوتاه از lambda
f = lambda x: x**2 print(f(5)) # 25
۱۵. map و filter با lambda
lst = [1,2,3,4] print(list(map(lambda x:x*2,lst))) # [2,4,6,8] print(list(filter(lambda x:x>2,lst))) # [3,4]
۱۶. reduce برای جمع یا ضرب لیست
from functools import reduce lst = [1,2,3,4] print(reduce(lambda x,y: x*y,lst)) # 24
۱۷. one-liner swap دو متغیر با tuple
a,b = 1,2; a,b = b,a; print(a,b) # 2 1
۱۸. بررسی نوع متغیر در یک خط
x = 10 print(type(x) is int) # True
۱۹. ساخت لیست از رشته با comprehension
s = "Python" lst = [c.upper() for c in s] print(lst) # ['P','Y','T','H','O','N']
۲۰. حذف فاصلهها از لیست رشتهها
lst = [" a "," b "] lst = [x.strip() for x in lst] print(lst) # ['a','b']
---
۲۱–۴۰: نکات حرفهای پایتون
۲۱. تبدیل لیست به set برای حذف تکراریها
lst = [1,2,2,3]
print(list(set(lst))) # [1,2,3]
۲۲. بررسی اینکه رشته با prefix یا suffix شروع/تمام میشود
s = "Python3"
print(s.startswith("Py"), s.endswith("3")) # True True
۲۳. استفاده از f-string برای قالببندی حرفهای
name = "Ali"
age = 25
print(f"My name is {name} and age is {age}")
۲۴. multi-line f-string
name = "Sara"
msg = f"""Hello {name},
Welcome to Python!"""
print(msg)
۲۵. join برای ادغام رشتهها
lst = ["a","b","c"]
print("-".join(lst)) # a-b-c
۲۶. split برای جدا کردن رشته
s = "a,b,c"
print(s.split(",")) # ['a','b','c']
۲۷. تبدیل عدد به رشته و بالعکس
n = 123
s = str(n)
print(s, int(s)+1) # '123' 124
۲۸. شمارش کاراکترها در رشته
s = "hello"
print(s.count("l")) # 2
۲۹. بررسی اینکه همه حروف رشته حروف الفبا هستند
s = "Hello"
print(s.isalpha()) # True
۳۰. بررسی اینکه همه کاراکترها عدد هستند
s = "123"
print(s.isdigit()) # True
۳۱. تبدیل همه حروف به بزرگ/کوچک
s = "Python"
print(s.upper(), s.lower()) # PYTHON python
۳۲. replace برای جایگزینی متن
s = "Python is fun"
print(s.replace("fun","awesome")) # Python is awesome
۳۳. استفاده از strip برای حذف فاصلههای اضافی
s = " hello "
print(s.strip()) # hello
۳۴. حذف فاصلههای سمت چپ و راست به طور جداگانه
s = " hello "
print(s.lstrip(), s.rstrip()) # 'hello ' ' hello'
۳۵. قالببندی عدد با f-string و تعداد رقم
x = 3.14159
print(f"{x:.2f}") # 3.14
۳۶. قالببندی عدد با padding
n = 5
print(f"{n:03}") # 005
۳۷. استفاده از slicing برای استخراج substring
s = "Python"
print(s[1:4]) # yth
۳۸. negative indexing
s = "Python"
print(s[-1], s[-3:-1]) # n ho
۳۹. دسترسی به آخرین عنصر لیست با -1
lst = [1,2,3]
print(lst[-1]) # 3
۴۰. حذف عنصر از لیست با pop
lst = [1,2,3]
lst.pop() # حذف آخرین
lst.pop(0) # حذف اولین
print(lst) # [2]
---
۴۱–۶۰: نکات حرفهای پایتون
۴۱. حذف همه عناصر یک لیست
lst = [1,2,3] lst.clear() print(lst) # []
۴۲. گرفتن طول لیست، رشته یا دیکشنری
lst = [1,2,3] d = {"a":1,"b":2} s = "Python" print(len(lst), len(d), len(s)) # 3 2 6
۴۳. بررسی وجود عنصر در لیست یا رشته
lst = [1,2,3] s = "Python" print(2 in lst, "Py" in s) # True True
۴۴. مرتبسازی لیست
lst = [3,1,2] lst.sort() print(lst) # [1,2,3]
۴۵. معکوس کردن لیست
lst = [1,2,3] lst.reverse() print(lst) # [3,2,1]
۴۶. کپی کردن لیست بدون تغییر لیست اصلی
lst1 = [1,2,3] lst2 = lst1.copy() lst2.append(4) print(lst1, lst2) # [1,2,3] [1,2,3,4]
۴۷. استفاده از enumerate برای گرفتن اندیس و مقدار همزمان
lst = ["a","b","c"] for i,val in enumerate(lst): print(i,val)
۴۸. استفاده از zip برای ترکیب دو لیست
a = [1,2] b = ["x","y"] for x,y in zip(a,b): print(x,y)
۴۹. ساخت لیست با comprehension
lst = [x**2 for x in range(5)] print(lst) # [0,1,4,9,16]
۵۰. شرط در list comprehension
lst = [x for x in range(10) if x%2==0] print(lst) # [0,2,4,6,8]
۵۱. ساخت دیکشنری با comprehension
d = {x:x**2 for x in range(5)} print(d) # {0:0,1:1,2:4,3:9,4:16}
۵۲. استفاده از get در دیکشنری برای جلوگیری از خطا
d = {"a":1} print(d.get("b",0)) # 0
۵۳. حذف کلید از دیکشنری با pop
d = {"a":1,"b":2} d.pop("a") print(d) # {"b":2}
۵۴. دسترسی به کلیدها، مقادیر و جفتها
d = {"a":1,"b":2} print(d.keys(), d.values(), d.items())
۵۵. استفاده از set comprehension
s = {x**2 for x in range(5)} print(s) # {0,1,4,9,16}
۵۶. بررسی زیرمجموعه بودن set
a = {1,2,3} b = {2,3} print(b.issubset(a)) # True
۵۷. union و intersection در set
a = {1,2} b = {2,3} print(a|b, a&b) # {1,2,3} {2}
۵۸. copy و deepcopy برای اشیاء پیچیده
import copy lst1 = [[1,2],[3,4]] lst2 = copy.deepcopy(lst1) lst2[0][0] = 100 print(lst1, lst2) # [[1,2],[3,4]] [[100,2],[3,4]]
۵۹. استفاده از lambda برای توابع کوتاه
f = lambda x: x**2 print(f(5)) # 25
۶۰. استفاده از map برای اعمال تابع روی همه عناصر
lst = [1,2,3] squared = list(map(lambda x:x**2,lst)) print(squared) # [1,4,9]
۶۱–۸۰: نکات حرفهای پایتون
۶۱. استفاده از filter برای فیلتر کردن لیست
lst = [1,2,3,4,5]
even = list(filter(lambda x: x%2==0, lst))
print(even) # [2,4]
۶۲. استفاده از reduce برای جمع عناصر
from functools import reduce
lst = [1,2,3,4]
total = reduce(lambda x,y: x+y, lst)
print(total) # 10
۶۳. مرتبسازی با کلید دلخواه (key)
lst = ["apple","banana","kiwi"]
lst.sort(key=len)
print(lst) # ['kiwi','apple','banana']
۶۴. معکوس کردن رشته با slicing
s = "Python"
print(s[::-1]) # "nohtyP"
۶۵. استفاده از any و all
lst = [True, False, True]
print(any(lst), all(lst)) # True False
۶۶. شمارش تعداد عنصر در لیست با count
lst = [1,2,2,3]
print(lst.count(2)) # 2
۶۷. تبدیل لیست به رشته با join
lst = ["Python","is","fun"]
s = " ".join(lst)
print(s) # "Python is fun"
۶۸. شکستن رشته به لیست با split
s = "Python is fun"
lst = s.split()
print(lst) # ['Python','is','fun']
۶۹. حذف فاصلههای اضافی با strip
s = " hello "
print(s.strip()) # "hello"
۷۰. تعویض مقدار با replace در رشته
s = "Python is fun"
print(s.replace("fun","awesome")) # "Python is awesome"
۷۱. استفاده از enumerate با شروع از اندیس دلخواه
lst = ["a","b"]
for i,val in enumerate(lst, start=1):
print(i,val) # 1 a \n 2 b
۷۲. گرفتن اولین n عنصر لیست
lst = [1,2,3,4]
print(lst[:2]) # [1,2]
۷۳. گرفتن آخرین n عنصر لیست
lst = [1,2,3,4]
print(lst[-2:]) # [3,4]
۷۴. استفاده از iter و next برای پیمایش
lst = [1,2,3]
it = iter(lst)
print(next(it)) # 1
print(next(it)) # 2
۷۵. استفاده از enumerate و zip همزمان
names = ["Alice","Bob"]
ages = [25,30]
for i,(name,age) in enumerate(zip(names,ages)):
print(i,name,age)
۷۶. گرفتن بزرگترین و کوچکترین عنصر لیست
lst = [3,1,4,2]
print(max(lst), min(lst)) # 4 1
۷۷. ساخت tuple از چند عنصر
t = (1,2,3)
print(t[0], t[-1]) # 1 3
۷۸. تبدیل tuple به لیست و بالعکس
t = (1,2)
lst = list(t)
t2 = tuple(lst)
۷۹. unpacking لیست یا tuple
a,b,c = [1,2,3]
print(a,b,c) # 1 2 3
۸۰. استفاده از _ برای نادیده گرفتن مقدار در unpacking
a, _, c = [1,2,3]
print(a,c) # 1 3
---
۸۱–۱۰۰: نکات پیشرفته و ترکیبی پایتون
۸۱. استفاده از dict comprehension
squares = {x: x**2 for x in range(5)} print(squares) # {0:0,1:1,2:4,3:9,4:16}
۸۲. استفاده از set comprehension
۴۳. بررسی وجود عنصر در لیست یا رشته
lst = [1,2,3] s = "Python" print(2 in lst, "Py" in s) # True True
۴۴. مرتبسازی لیست
lst = [3,1,2] lst.sort() print(lst) # [1,2,3]
۴۵. معکوس کردن لیست
lst = [1,2,3] lst.reverse() print(lst) # [3,2,1]
۴۶. کپی کردن لیست بدون تغییر لیست اصلی
lst1 = [1,2,3] lst2 = lst1.copy() lst2.append(4) print(lst1, lst2) # [1,2,3] [1,2,3,4]
۴۷. استفاده از enumerate برای گرفتن اندیس و مقدار همزمان
lst = ["a","b","c"] for i,val in enumerate(lst): print(i,val)
۴۸. استفاده از zip برای ترکیب دو لیست
a = [1,2] b = ["x","y"] for x,y in zip(a,b): print(x,y)
۴۹. ساخت لیست با comprehension
lst = [x**2 for x in range(5)] print(lst) # [0,1,4,9,16]
۵۰. شرط در list comprehension
lst = [x for x in range(10) if x%2==0] print(lst) # [0,2,4,6,8]
۵۱. ساخت دیکشنری با comprehension
d = {x:x**2 for x in range(5)} print(d) # {0:0,1:1,2:4,3:9,4:16}
۵۲. استفاده از get در دیکشنری برای جلوگیری از خطا
d = {"a":1} print(d.get("b",0)) # 0
۵۳. حذف کلید از دیکشنری با pop
d = {"a":1,"b":2} d.pop("a") print(d) # {"b":2}
۵۴. دسترسی به کلیدها، مقادیر و جفتها
d = {"a":1,"b":2} print(d.keys(), d.values(), d.items())
۵۵. استفاده از set comprehension
s = {x**2 for x in range(5)} print(s) # {0,1,4,9,16}
۵۶. بررسی زیرمجموعه بودن set
a = {1,2,3} b = {2,3} print(b.issubset(a)) # True
۵۷. union و intersection در set
a = {1,2} b = {2,3} print(a|b, a&b) # {1,2,3} {2}
۵۸. copy و deepcopy برای اشیاء پیچیده
import copy lst1 = [[1,2],[3,4]] lst2 = copy.deepcopy(lst1) lst2[0][0] = 100 print(lst1, lst2) # [[1,2],[3,4]] [[100,2],[3,4]]
۵۹. استفاده از lambda برای توابع کوتاه
f = lambda x: x**2 print(f(5)) # 25
۶۰. استفاده از map برای اعمال تابع روی همه عناصر
lst = [1,2,3] squared = list(map(lambda x:x**2,lst)) print(squared) # [1,4,9]
۶۱–۸۰: نکات حرفهای پایتون
۶۱. استفاده از filter برای فیلتر کردن لیست
lst = [1,2,3,4,5]
even = list(filter(lambda x: x%2==0, lst))
print(even) # [2,4]
۶۲. استفاده از reduce برای جمع عناصر
from functools import reduce
lst = [1,2,3,4]
total = reduce(lambda x,y: x+y, lst)
print(total) # 10
۶۳. مرتبسازی با کلید دلخواه (key)
lst = ["apple","banana","kiwi"]
lst.sort(key=len)
print(lst) # ['kiwi','apple','banana']
۶۴. معکوس کردن رشته با slicing
s = "Python"
print(s[::-1]) # "nohtyP"
۶۵. استفاده از any و all
lst = [True, False, True]
print(any(lst), all(lst)) # True False
۶۶. شمارش تعداد عنصر در لیست با count
lst = [1,2,2,3]
print(lst.count(2)) # 2
۶۷. تبدیل لیست به رشته با join
lst = ["Python","is","fun"]
s = " ".join(lst)
print(s) # "Python is fun"
۶۸. شکستن رشته به لیست با split
s = "Python is fun"
lst = s.split()
print(lst) # ['Python','is','fun']
۶۹. حذف فاصلههای اضافی با strip
s = " hello "
print(s.strip()) # "hello"
۷۰. تعویض مقدار با replace در رشته
s = "Python is fun"
print(s.replace("fun","awesome")) # "Python is awesome"
۷۱. استفاده از enumerate با شروع از اندیس دلخواه
lst = ["a","b"]
for i,val in enumerate(lst, start=1):
print(i,val) # 1 a \n 2 b
۷۲. گرفتن اولین n عنصر لیست
lst = [1,2,3,4]
print(lst[:2]) # [1,2]
۷۳. گرفتن آخرین n عنصر لیست
lst = [1,2,3,4]
print(lst[-2:]) # [3,4]
۷۴. استفاده از iter و next برای پیمایش
lst = [1,2,3]
it = iter(lst)
print(next(it)) # 1
print(next(it)) # 2
۷۵. استفاده از enumerate و zip همزمان
names = ["Alice","Bob"]
ages = [25,30]
for i,(name,age) in enumerate(zip(names,ages)):
print(i,name,age)
۷۶. گرفتن بزرگترین و کوچکترین عنصر لیست
lst = [3,1,4,2]
print(max(lst), min(lst)) # 4 1
۷۷. ساخت tuple از چند عنصر
t = (1,2,3)
print(t[0], t[-1]) # 1 3
۷۸. تبدیل tuple به لیست و بالعکس
t = (1,2)
lst = list(t)
t2 = tuple(lst)
۷۹. unpacking لیست یا tuple
a,b,c = [1,2,3]
print(a,b,c) # 1 2 3
۸۰. استفاده از _ برای نادیده گرفتن مقدار در unpacking
a, _, c = [1,2,3]
print(a,c) # 1 3
---
۸۱–۱۰۰: نکات پیشرفته و ترکیبی پایتون
۸۱. استفاده از dict comprehension
squares = {x: x**2 for x in range(5)} print(squares) # {0:0,1:1,2:4,3:9,4:16}
۸۲. استفاده از set comprehension
unique = {x%3 for x in range(10)} print(unique) # {0,1,2}
۸۳. گرفتن عناصر منحصربهفرد لیست با set
lst = [1,2,2,3] unique = list(set(lst)) print(unique) # [1,2,3]
۸۴. مرتبسازی دیکشنری بر اساس مقدار
d = {'a':3,'b':1,'c':2} sorted_items = sorted(d.items(), key=lambda x: x[1]) print(sorted_items) # [('b',1),('c',2),('a',3)]
۸۵. ترکیب چند لیست با zip
names = ["Alice","Bob"] ages = [25,30] for name, age in zip(names, ages): print(name, age)
۸۶. استفاده از get برای دیکشنری با مقدار پیشفرض
d = {"a":1} print(d.get("b",0)) # 0
۸۷. حذف کلید از دیکشنری با pop
d = {"a":1,"b":2} val = d.pop("a") print(d, val) # {'b':2} 1
۸۸. بررسی وجود کلید در دیکشنری
d = {"a":1} print("a" in d, "b" in d) # True False
۸۹. استفاده از defaultdict
from collections import defaultdict d = defaultdict(list) d['a'].append(1) print(d) # defaultdict(<class 'list'>, {'a':[1]})
۹۰. استفاده از Counter برای شمارش عناصر
from collections import Counter lst = [1,2,2,3] count = Counter(lst) print(count) # Counter({2:2,1:1,3:1})
۹۱. مدیریت خطا با try-except
try: x = 1/0 except ZeroDivisionError: print("Cannot divide by zero")
۹۲. finally برای اجرای نهایی
try: x = 1 finally: print("Always executed")
۹۳. ایجاد کلاس ساده
class Person: def init(self, name): self.name = name p = Person("Alice") print(p.name)
۹۴. متد کلاس و نمونه
class Person: def greet(self): print("Hello") p = Person() p.greet() # Hello
۹۵. ارثبری (Inheritance)
class Animal: def sound(self): print("Some sound") class Dog(Animal): pass Dog().sound() # Some sound
۹۶. بازنویسی متد کلاس پایه
class Dog(Animal): def sound(self): print("Woof") Dog().sound() # Woof
۹۷. استفاده از super()
class Dog(Animal): def sound(self): super().sound() print("Woof") Dog().sound() # Some sound # Woof
۹۸. متد استاتیک و کلاسمتد
class MyClass: @staticmethod def static_method(): print("Static") @classmethod def class_method(cls): print("Class") MyClass.static_method() MyClass.class_method()
۹۹. استفاده از property برای getter و setter
class Person: def init(self, name): self._name = name @property def name(self): return self._name @name.setter def name(self, value): self._name = value p = Person("Alice") print(p.name) p.name = "Bob" print(p.name)
۱۰۰. استفاده از lambda و map
lst = [1,2,3] squared = list(map(lambda x: x**2, lst)) print(squared) # [1,4,9]
۸۳. گرفتن عناصر منحصربهفرد لیست با set
lst = [1,2,2,3] unique = list(set(lst)) print(unique) # [1,2,3]
۸۴. مرتبسازی دیکشنری بر اساس مقدار
d = {'a':3,'b':1,'c':2} sorted_items = sorted(d.items(), key=lambda x: x[1]) print(sorted_items) # [('b',1),('c',2),('a',3)]
۸۵. ترکیب چند لیست با zip
names = ["Alice","Bob"] ages = [25,30] for name, age in zip(names, ages): print(name, age)
۸۶. استفاده از get برای دیکشنری با مقدار پیشفرض
d = {"a":1} print(d.get("b",0)) # 0
۸۷. حذف کلید از دیکشنری با pop
d = {"a":1,"b":2} val = d.pop("a") print(d, val) # {'b':2} 1
۸۸. بررسی وجود کلید در دیکشنری
d = {"a":1} print("a" in d, "b" in d) # True False
۸۹. استفاده از defaultdict
from collections import defaultdict d = defaultdict(list) d['a'].append(1) print(d) # defaultdict(<class 'list'>, {'a':[1]})
۹۰. استفاده از Counter برای شمارش عناصر
from collections import Counter lst = [1,2,2,3] count = Counter(lst) print(count) # Counter({2:2,1:1,3:1})
۹۱. مدیریت خطا با try-except
try: x = 1/0 except ZeroDivisionError: print("Cannot divide by zero")
۹۲. finally برای اجرای نهایی
try: x = 1 finally: print("Always executed")
۹۳. ایجاد کلاس ساده
class Person: def init(self, name): self.name = name p = Person("Alice") print(p.name)
۹۴. متد کلاس و نمونه
class Person: def greet(self): print("Hello") p = Person() p.greet() # Hello
۹۵. ارثبری (Inheritance)
class Animal: def sound(self): print("Some sound") class Dog(Animal): pass Dog().sound() # Some sound
۹۶. بازنویسی متد کلاس پایه
class Dog(Animal): def sound(self): print("Woof") Dog().sound() # Woof
۹۷. استفاده از super()
class Dog(Animal): def sound(self): super().sound() print("Woof") Dog().sound() # Some sound # Woof
۹۸. متد استاتیک و کلاسمتد
class MyClass: @staticmethod def static_method(): print("Static") @classmethod def class_method(cls): print("Class") MyClass.static_method() MyClass.class_method()
۹۹. استفاده از property برای getter و setter
class Person: def init(self, name): self._name = name @property def name(self): return self._name @name.setter def name(self, value): self._name = value p = Person("Alice") print(p.name) p.name = "Bob" print(p.name)
۱۰۰. استفاده از lambda و map
lst = [1,2,3] squared = list(map(lambda x: x**2, lst)) print(squared) # [1,4,9]
فصل هوش مصنوعی، یادگیری ماشین و یادگیری عمیق با پایتون را با ۱۰۰ سوال و جواب شروع میکنیم.
بخش ۱: مفاهیم پایه AI و ML (سوال ۱–۲۰)
۱. تفاوت AI، ML و DL چیست؟
AI: شبیهسازی رفتار هوشمند انسان.
ML: الگوریتمهایی که از داده یاد میگیرند.
DL: زیرمجموعه ML با شبکههای عصبی عمیق.
۲. انواع یادگیری ماشین کدامند؟
Supervised: دادههای برچسبدار
Unsupervised: دادههای بدون برچسب
Reinforcement: یادگیری با پاداش و تنبیه
۳. چرا باید دادهها را پیشپردازش کنیم؟
حذف مقادیر گمشده، نرمالسازی، تبدیل دادهها به فرم قابل استفاده توسط مدل
۴. تقسیم داده به train/test چگونه انجام میشود؟
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
۵. معیارهای سنجش مدل چه هستند؟
Accuracy، Precision، Recall، F1-score، ROC-AUC
۶. Overfitting چیست؟
زمانی که مدل روی دادههای آموزش خیلی خوب عمل میکند اما روی دادههای جدید ضعیف است.
۷. Underfitting چیست؟
زمانی که مدل نمیتواند حتی دادههای آموزش را درست پیشبینی کند.
۸. Linear Regression چیست و چگونه با پایتون پیاده میشود؟
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
pred = model.predict(X_test)
۹. Logistic Regression چیست؟
برای مسائل دستهبندی (Classification) استفاده میشود.
۱۰. تفاوت Regression و Classification چیست؟
Regression پیشبینی عددی میکند.
Classification پیشبینی دستهای انجام میدهد.
۱۱. Cross-validation چیست؟
روش ارزیابی مدل با تقسیم دادهها به چند بخش و آموزش و تست متناوب.
۱۲. Feature Scaling چیست و چرا مهم است؟
استانداردسازی یا نرمالسازی ویژگیها برای الگوریتمهای حساس به مقیاس مثل SVM و KNN.
۱۳. معیار MSE چیست؟
Mean Squared Error: میانگین مربعات خطا بین پیشبینی و مقدار واقعی.
۱۴. معیار RMSE چیست؟
ریشه مربع MSE؛ مقیاس آن با دادهها همخوانی دارد.
۱۵. معیار R² چیست؟
ضریب تعیین: نشان میدهد چه درصدی از تغییرات دادهها توسط مدل توضیح داده میشود.
۱۶. Bias و Variance چیست؟
Bias: خطای سیستماتیک مدل
Variance: حساسیت مدل به تغییرات داده
۱۷. چرا باید دادههای Missing Value را پر کنیم؟
برای جلوگیری از خطا هنگام آموزش مدل و بهبود دقت پیشبینی
۱۸. چه نوع دادههایی نیاز به Encoding دارند؟
دادههای متنی یا دستهای (Categorical) که باید به عدد تبدیل شوند
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
y_encoded = le.fit_transform(y)
۱۹. Normalization و Standardization چه تفاوتی دارند؟
Normalization: مقیاس داده را بین ۰ تا ۱ تغییر میدهد
Standardization: داده را با میانگین صفر و انحراف معیار ۱ میکند
۲۰. چرا الگوریتمهای ML به دادههای تمیز حساس هستند؟
دادههای نویزی یا غیرمرتبط باعث کاهش دقت مدل می شوند
بخش ۱: مفاهیم پایه AI و ML (سوال ۱–۲۰)
۱. تفاوت AI، ML و DL چیست؟
AI: شبیهسازی رفتار هوشمند انسان.
ML: الگوریتمهایی که از داده یاد میگیرند.
DL: زیرمجموعه ML با شبکههای عصبی عمیق.
۲. انواع یادگیری ماشین کدامند؟
Supervised: دادههای برچسبدار
Unsupervised: دادههای بدون برچسب
Reinforcement: یادگیری با پاداش و تنبیه
۳. چرا باید دادهها را پیشپردازش کنیم؟
حذف مقادیر گمشده، نرمالسازی، تبدیل دادهها به فرم قابل استفاده توسط مدل
۴. تقسیم داده به train/test چگونه انجام میشود؟
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
۵. معیارهای سنجش مدل چه هستند؟
Accuracy، Precision، Recall، F1-score، ROC-AUC
۶. Overfitting چیست؟
زمانی که مدل روی دادههای آموزش خیلی خوب عمل میکند اما روی دادههای جدید ضعیف است.
۷. Underfitting چیست؟
زمانی که مدل نمیتواند حتی دادههای آموزش را درست پیشبینی کند.
۸. Linear Regression چیست و چگونه با پایتون پیاده میشود؟
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
pred = model.predict(X_test)
۹. Logistic Regression چیست؟
برای مسائل دستهبندی (Classification) استفاده میشود.
۱۰. تفاوت Regression و Classification چیست؟
Regression پیشبینی عددی میکند.
Classification پیشبینی دستهای انجام میدهد.
۱۱. Cross-validation چیست؟
روش ارزیابی مدل با تقسیم دادهها به چند بخش و آموزش و تست متناوب.
۱۲. Feature Scaling چیست و چرا مهم است؟
استانداردسازی یا نرمالسازی ویژگیها برای الگوریتمهای حساس به مقیاس مثل SVM و KNN.
۱۳. معیار MSE چیست؟
Mean Squared Error: میانگین مربعات خطا بین پیشبینی و مقدار واقعی.
۱۴. معیار RMSE چیست؟
ریشه مربع MSE؛ مقیاس آن با دادهها همخوانی دارد.
۱۵. معیار R² چیست؟
ضریب تعیین: نشان میدهد چه درصدی از تغییرات دادهها توسط مدل توضیح داده میشود.
۱۶. Bias و Variance چیست؟
Bias: خطای سیستماتیک مدل
Variance: حساسیت مدل به تغییرات داده
۱۷. چرا باید دادههای Missing Value را پر کنیم؟
برای جلوگیری از خطا هنگام آموزش مدل و بهبود دقت پیشبینی
۱۸. چه نوع دادههایی نیاز به Encoding دارند؟
دادههای متنی یا دستهای (Categorical) که باید به عدد تبدیل شوند
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
y_encoded = le.fit_transform(y)
۱۹. Normalization و Standardization چه تفاوتی دارند؟
Normalization: مقیاس داده را بین ۰ تا ۱ تغییر میدهد
Standardization: داده را با میانگین صفر و انحراف معیار ۱ میکند
۲۰. چرا الگوریتمهای ML به دادههای تمیز حساس هستند؟
دادههای نویزی یا غیرمرتبط باعث کاهش دقت مدل می شوند