بهترین کتابخانه‌های پایتون برای یادگیری ماشین — ۹ کتابخانه مهم

کتابخانه‌های پایتون برای یادگیری ماشین

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

مقدمه

یادگیری ماشین «Machine Learning» به یکی از اجزای مهم در حوزه‌های مختلف تبدیل شده است و به سازمان‌ها امکان می‌دهد داده‌ها را تحلیل کنند، پیش‌بینی انجام دهند و فرآیندها را خودکار کنند. زبان برنامه‌نویسی پایتون به دلیل سادگی و انعطاف‌پذیری‌اش شناخته شده است و طیف گسترده‌ای از کتابخانه‌ها را ارائه می‌دهد که انجام وظایف یادگیری ماشین را آسان می‌کنند. این کتابخانه‌ها به توسعه‌دهندگان و دانشمندان داده کمک می‌کنند تا الگوریتم‌های پیچیده را به‌سرعت و به‌صورت مؤثر پیاده‌سازی کنند. با استفاده از ابزارهای پایتون، کاربران می‌توانند پروژه‌های یادگیری ماشین را به‌طور کارآمد مدیریت کرده و به نتایج بهتری دست یابند.

کتابخانه‌های پایتون برای یادگیری ماشین

در ادامه لیستی از بهترین کتابخانه‌های پایتون برای یادگیری ماشین آورده شده است که توسعه در این حوزه را ساده‌تر می‌کنند:

۱- کتابخانه NumPy

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

مثال: انجام عملیات جبر خطی

import numpy as np
# Create a feature matrix (X) and target vector (y)
X = np.array([[1, 2], [3, 4], [5, 6]])
y = np.array([1, 2, 3])

# Calculate the mean of each feature
mean = np.mean(X, axis=0)
print("Mean of features:", mean)

خروجی:

Mean of features: [3. 4.]

۲- کتابخانه Pandas

Pandas یکی از کتابخانه‌های محبوب پایتون برای تحلیل داده است. اگرچه این کتابخانه مستقیماً به حوزه یادگیری ماشین مرتبط نیست، اما در مرحله آماده‌سازی داده‌ها قبل از آموزش مدل‌ها بسیار کاربردی است.
این کتابخانه به‌طور خاص برای استخراج و آماده‌سازی داده‌ها در یادگیری ماشین توسعه داده شده و ساختارهای داده سطح بالا و ابزارهای متنوعی را برای تحلیل داده ارائه می‌دهد. همچنین، متدهای داخلی بسیاری برای گروه‌بندی، ترکیب و فیلتر کردن داده‌ها دارد.

مثال: پاک‌سازی و آماده‌سازی داده‌ها

import pandas as pd

# Create a DataFrame with missing values
data = {
    'Country': ['Brazil', 'Russia', 'India', None],
    'Population': [200.4, 143.5, None, 52.98]
}
df = pd.DataFrame(data)

# Fill missing values
df['Population'].fillna(df['Population'].mean(), inplace=True)
print(df)

خروجی:

   Country  Population
۰   Brazil       200.40
۱   Russia       143.50 
۲   India       132.99
۳   None        52.98

۳- کتابخانه Matplotlib

Matplotlib یک کتابخانه بسیار محبوب پایتون برای بصری‌سازی داده‌ها است. مشابه Pandas، این کتابخانه نیز به‌طور مستقیم به یادگیری ماشین مرتبط نیست، اما زمانی که برنامه‌نویس بخواهد الگوهای موجود در داده‌ها را بصری کند، بسیار مفید واقع می‌شود.

این کتابخانه برای رسم نمودارهای دوبعدی (2D) طراحی شده است و امکان ایجاد انواع گراف‌ها و نمودارها را فراهم می‌کند.

ماژولی به نام pyplot این فرآیند را ساده‌تر می‌کند، زیرا ویژگی‌هایی مانند کنترل سبک خطوط، تنظیم فونت، فرمت‌دهی به محورها و موارد دیگر را ارائه می‌دهد. این کتابخانه انواع مختلفی از نمودارها مانند هیستوگرام، نمودارهای خطا، نمودارهای ستونی و غیره را برای بصری‌سازی داده‌ها در اختیار کاربر قرار می‌دهد.

مثال: ایجاد نمودار خطی

#  Python program using Matplotlib 
# for forming a linear plot

# importing the necessary packages and modules
import matplotlib.pyplot as plt
import numpy as np

# Prepare the data
x = np.linspace(0, 10, 100)

# Plot the data
plt.plot(x, x, label ='linear')

# Add a legend
plt.legend()

# Show the plot
plt.show()

خروجی:

نمایش نمودار خطی در کتابخانه‌های پایتون برای یادگیری ماشین

۴- کتابخانه SciPy

SciPy یک کتابخانه بسیار محبوب از کتابخانه‌های پایتون برای یادگیری ماشین است، زیرا ماژول‌های مختلفی را برای بهینه‌سازی، جبر خطی، انتگرال‌گیری و آمار ارائه می‌دهد.

بین کتابخانه SciPy و SciPy Stack تفاوت وجود دارد؛ SciPy یکی از بسته‌های اصلی است که SciPy Stack را تشکیل می‌دهد. علاوه بر این، SciPy برای پردازش و تغییر تصاویر نیز بسیار کاربردی است.

مثال: پردازش و تغییر تصاویر

# Python script using Scipy 
# for image manipulation

from scipy.misc import imread, imsave, imresize

# Read a JPEG image into a numpy array
img = imread('D:/Programs / cat.jpg') # path of the image
print(img.dtype, img.shape)

# Tinting the image
img_tint = img * [1, 0.45, 0.3]

# Saving the tinted image
imsave('D:/Programs / cat_tinted.jpg', img_tint)

# Resizing the tinted image to be 300 x 300 pixels
img_tint_resize = imresize(img_tint, (300, 300))

# Saving the resized tinted image
imsave('D:/Programs / cat_tinted_resized.jpg', img_tint_resize)

تصویر اصلی:

تصویر گربه

تصویر رنگی:

تصویر رنگی

تصویر رنگی ریسایز شده:

تصویر رنگی ریسایز شده

۵- کتابخانه Scikit-Learn

Scikit-learn یکی از محبوب‌ترین کتابخانه‌های یادگیری ماشین برای الگوریتم‌های کلاسیک است. این کتابخانه بر پایه دو کتابخانه پایه‌ای پایتون، یعنی NumPy و SciPy ساخته شده است.
Scikit-learn از اکثر الگوریتم‌های یادگیری نظارت‌شده و بدون نظارت پشتیبانی می‌کند. همچنین، برای داده‌کاوی و تحلیل داده‌ها بسیار مناسب است که آن را به ابزاری عالی برای افرادی که تازه یادگیری ماشین را شروع کرده‌اند تبدیل می‌کند.

مثال: استفاده از الگوریتم طبقه‌بندی درخت تصمیم (Decision Tree Classifier)

# Import necessary libraries
from sklearn import datasets
from sklearn.tree import DecisionTreeClassifier

# Load the iris dataset
iris = datasets.load_iris()

# Split the dataset into features (X) and target labels (y)
X = iris.data   # Features (sepal length, sepal width, petal length, petal width)
y = iris.target # Target (species)

# Initialize the Decision Tree Classifier
clf = DecisionTreeClassifier()

# Train the model on the entire dataset
clf.fit(X, y)

# Make predictions on the same dataset
predictions = clf.predict(X)

# Print the first 10 predictions
print("Predicted labels for the first 10 samples:", predictions[:10])

# Print the actual labels for comparison
print("Actual labels for the first 10 samples:", y[:10])

خروجی:

Predicted labels for the first 10 samples: [0 0 0 0 0 0 0 0 0 0]
Actual labels for the first 10 samples: [0 0 0 0 0 0 0 0 0 0]

۶- کتابخانه Theano

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

این کار با بهینه‌سازی استفاده از پردازنده (CPU) و کارت گرافیک (GPU) انجام می‌شود. Theano به‌طور گسترده برای تست واحدی (Unit Testing) و خودتأییدی (Self-Verification) استفاده می‌شود تا انواع مختلف خطاها را شناسایی و تشخیص دهد.

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

# Python program using Theano
# for computing a Logistic 
# Function

import theano
import theano.tensor as T
x = T.dmatrix('x')
s = 1 / (1 + T.exp(-x))
logistic = theano.function([x], s)
logistic([[0, 1], [-1, -2]])

خروجی:

array([[0.5, 0.73105858],
       [۰.۲۶۸۹۴۱۴۲, ۰.۱۱۹۲۰۲۹۲]])

۷- کتابخانه TensorFlow

TensorFlow یکی از محبوب‌ترین کتابخانه‌های متن‌باز برای محاسبات عددی با عملکرد بالا است که توسط تیم Google Brain در گوگل توسعه داده شده است. همان‌طور که از نام آن پیداست، TensorFlow یک چارچوب برای تعریف و اجرای محاسباتی است که شامل تنسورها (Tensors) می‌شود.

این کتابخانه قابلیت آموزش و اجرای شبکه‌های عصبی عمیق را دارد که می‌توانند در توسعه بسیاری از برنامه‌های هوش مصنوعی مورد استفاده قرار گیرند. TensorFlow به‌طور گسترده در تحقیقات و کاربردهای یادگیری عمیق (Deep Learning) به کار گرفته می‌شود.

مثال:

#  Python program using TensorFlow
#  for multiplying two arrays

# import `tensorflow` 
import tensorflow as tf

# Initialize two constants
x1 = tf.constant([1, 2, 3, 4])
x2 = tf.constant([5, 6, 7, 8])

# Multiply
result = tf.multiply(x1, x2)

# Initialize the Session
sess = tf.Session()

# Print the result
print(sess.run(result))

# Close the session
sess.close()

خروجی:

[ ۵ ۱۲ ۲۱ ۳۲]

۸- کتابخانه Keras

Keras یکی از کتابخانه‌های محبوب پایتون برای یادگیری ماشین است. این کتابخانه یک رابط برنامه‌نویسی کاربردی (API) سطح بالا برای شبکه‌های عصبی است که قادر است بر روی TensorFlow، CNTK یا Theano اجرا شود. Keras به‌طور یکپارچه می‌تواند هم بر روی پردازنده مرکزی (CPU) و هم بر روی پردازنده گرافیکی (GPU) اجرا شود.

Keras کار را برای مبتدیان یادگیری ماشین بسیار آسان می‌کند تا شبکه‌های عصبی را طراحی و پیاده‌سازی کنند. یکی از ویژگی‌های برجسته Keras این است که امکان ساخت نمونه‌های اولیه (Prototyping) سریع و آسان را فراهم می‌کند.

مثال: طراحی و آموزش شبکه عصبی ساده

# Importing necessary libraries
from keras.models import Sequential
from keras.layers import Dense, Flatten
from keras.datasets import mnist
from keras.utils import to_categorical

# Loading the MNIST dataset
(X_train, y_train), (X_test, y_test) = mnist.load_data()

# Normalizing the input data
X_train = X_train / 255.0
X_test = X_test / 255.0

# One-hot encoding the labels
y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)

# Building the model
model = Sequential()
model.add(Flatten(input_shape=(28, 28)))  # Flatten the 2D images into 1D vectors
model.add(Dense(128, activation='relu'))  # Hidden layer with ReLU activation
model.add(Dense(10, activation='softmax'))  # Output layer with Softmax for classification

# Compiling the model
model.compile(optimizer='adam', 
              loss='categorical_crossentropy', 
              metrics=['accuracy'])

# Training the model
model.fit(X_train, y_train, epochs=5, batch_size=32, validation_split=0.2)

# Evaluating the model
test_loss, test_accuracy = model.evaluate(X_test, y_test)
print(f"Test Accuracy: {test_accuracy:.4f}")

خروجی:

Epoch 1/5
۱۵۰۰/۱۵۰۰ [==============================] - 4s 2ms/step - loss: 0.2941 - accuracy: 0.9163 - val_loss: 0.1372 - val_accuracy: 0.9615
Epoch 2/5
۱۵۰۰/۱۵۰۰ [==============================] - 3s 2ms/step - loss: 0.1236 - accuracy: 0.9647 - val_loss: 0.1056 - val_accuracy: 0.9697
...
Test Accuracy: 0.9765

۹- کتابخانه PyTorch

PyTorch یک کتابخانه محبوب و متن‌باز پایتون برای یادگیری ماشین است که بر پایه Torch ساخته شده است. Torch یک کتابخانه یادگیری ماشین متن‌باز است که به زبان C پیاده‌سازی شده و دارای یک پوشش‌گر در Lua است. PyTorch مجموعه‌ای گسترده از ابزارها و کتابخانه‌ها را ارائه می‌دهد که از بینایی کامپیوتری (Computer Vision)، پردازش زبان طبیعی (NLP) و بسیاری از برنامه‌های دیگر یادگیری ماشین پشتیبانی می‌کند.

این کتابخانه به توسعه‌دهندگان این امکان را می‌دهد که محاسبات را بر روی تنسورها با شتاب‌دهی GPU انجام دهند و همچنین در ایجاد گراف‌های محاسباتی کمک می‌کند.

مثال: انجام محاسبات با شتاب‌دهی GPU و ایجاد گراف محاسباتی

# Python program using PyTorch
# for defining tensors fit a
# two-layer network to random
# data and calculating the loss

import torch


dtype = torch.float
device = torch.device("cpu")
# device = torch.device("cuda:0") Uncomment this to run on GPU

# N is batch size; D_in is input dimension;
# H is hidden dimension; D_out is output dimension.
N, D_in, H, D_out = 64, 1000, 100, 10

# Create random input and output data
x = torch.random(N, D_in, device=device, dtype=dtype)
y = torch.random(N, D_out, device=device, dtype=dtype)

# Randomly initialize weights
w1 = torch.random(D_in, H, device=device, dtype=dtype)
w2 = torch.random(H, D_out, device=device, dtype=dtype)

learning_rate = 1e-6
for t in range(500):
    # Forward pass: compute predicted y
    h = x.mm(w1)
    h_relu = h.clamp(min=0)
    y_pred = h_relu.mm(w2)

    # Compute and print loss
    loss = (y_pred - y).pow(2).sum().item()
    print(t, loss)

    # Backprop to compute gradients of w1 and w2 with respect to loss
    grad_y_pred = 2.0 * (y_pred - y)
    grad_w2 = h_relu.t().mm(grad_y_pred)
    grad_h_relu = grad_y_pred.mm(w2.t())
    grad_h = grad_h_relu.clone()
    grad_h[h < 0] = 0
    grad_w1 = x.t().mm(grad_h)

    # Update weights using gradient descent
    w1 -= learning_rate * grad_w1
    w2 -= learning_rate * grad_w2

خروجی:

۰ ۴۷۱۶۸۳۴۴.۰
۱ ۴۶۳۸۵۵۸۴.۰
۲ ۴۳۱۵۳۵۷۶.۰
...
...
...
۴۹۷ ۳.987660602433607e-05
۴۹۸ ۳.945609932998195e-05
۴۹۹ ۳.897604619851336e-05

سخن آخر

چند‌کاره بودن، سادگی و اکوسیستم گسترده پایتون آن را به انتخابی محبوب برای وظایف یادگیری ماشین تبدیل کرده است. از Scikit-Learn برای الگوریتم‌های کلاسیک تا TensorFlow و PyTorch برای یادگیری عمیق، کتابخانه‌های پایتون برای یادگیری ماشین به هر مرحله از فرآیند یادگیری ماشین پاسخ می‌دهند. کتابخانه‌هایی مانند Pandas و NumPy فرآیند پیش‌پردازش داده‌ها را ساده می‌کنند، در حالی که Matplotlib و Seaborn در بصری‌سازی داده‌ها کمک می‌کنند. ابزارهای تخصصی مانند NLTK، XGBoost و LightGBM توانایی حل مسائل پیچیده را به‌طور مؤثر تقویت می‌کنند.

میزان رضایتمندی
لطفاً میزان رضایت خودتان را از این مطلب با دادن امتیاز اعلام کنید.
[ امتیاز میانگین 0 از 0 نفر ]
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع و مراجع:
geeksforgeeks مجله پی استور coursera github

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

هشت + هفت =



برچسب‌ها:
یادگیری ماشین


پیمایش به بالا