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

بفرست برای دوستت
Telegram
WhatsApp
بهترین کتابخانه های پایتون برای یادگیری ماشین

فهرست مطالب

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

“یادگیری ماشین، زمینه‌ای است که به کامپیوترها امکان یادگیری بدون نیاز به برنامه‌نویسی صریح را می‌دهد.”

معمولاً از این تکنولوژی برای حل مسائل متنوع زندگی استفاده می‌شود.

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

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

✔️ Numpy

✔️ Scipy

✔️ Scikit-learn

✔️ Theano

✔️ TensorFlow

✔️ Keras

✔️ PyTorch

✔️ Pandas

✔️ Matplotlib

 

✔️ Numpy

کتابخانه پایتون numpy

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

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

 

# Python program using NumPy 
# for some basic mathematical 
# operations 

import numpy as np 

# Creating two arrays of rank 2 
x = np.array([[1, 2], [3, 4]]) 
y = np.array([[5, 6], [7, 8]]) 

# Creating two arrays of rank 1 
v = np.array([9, 10]) 
w = np.array([11, 12]) 

# Inner product of vectors 
print(np.dot(v, w), "\n") 

# Matrix and Vector product 
print(np.dot(x, v), "\n") 

# Matrix and matrix product 
print(np.dot(x, y)) 

 

خروجی:

219

[29 67]

[[19 22]

[43 50]]

 

✔️ Scipy

کتابخانه پایتون scipy

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

تفاوتی بین کتابخانه SciPy و اینکه از یک “پکیج SciPy” صحبت می‌شود، وجود دارد. SciPy یکی از بسته‌های اصلی است که به تشکیل پکیج SciPy کمک می‌کند. همچنین، SciPy برای کارهای مرتبط با تصاویر نیز بسیار کارآمد است.

 

# Python script using SciPy for image manipulation
from scipy import ndimage
import matplotlib.pyplot as plt

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

# Tinting the image with an intensity factor
tint_intensity = 0.003  # Adjust this value to control the tinting intensity
img_tint = img * [1, 0.45, 0.3] * tint_intensity

# Scaling values to the [0, 1] range
img_tint = img_tint.clip(0, 1)

# Saving the tinted image
plt.imsave('cat_tinted.jpg', img_tint)

# Resizing the tinted image to be 300 x 300 pixels
img_tint_resize = ndimage.zoom(img_tint, (300 / img_tint.shape[0], 300 / img_tint.shape[1], 1), order=3)

# Scaling values to the [0, 1] range for resized image
img_tint_resize = img_tint_resize.clip(0, 1)

# Saving the resized tinted image
plt.imsave('cat_tinted_resized.jpg', img_tint_resize)

 

  درک پردازش داده (Data Processing)

 

 

 

 

 

✔️ Scikit-learn

کتابخانه پایتون Scikit-learn

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

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

 

# Python script using Scikit-learn 
# for Decision Tree Classifier 

# Sample Decision Tree Classifier 
from sklearn import datasets 
from sklearn import metrics 
from sklearn.tree import DecisionTreeClassifier 

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

# fit a CART model to the data 
model = DecisionTreeClassifier() 
model.fit(dataset.data, dataset.target) 
print(model) 

# make predictions 
expected = dataset.target 
predicted = model.predict(dataset.data) 

# summarize the fit of the model 
print(metrics.classification_report(expected, predicted)) 
print(metrics.confusion_matrix(expected, predicted)) 

 

خروجی:

DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,
            max_features=None, max_leaf_nodes=None,
            min_impurity_decrease=0.0, min_impurity_split=None,
            min_samples_leaf=1, min_samples_split=2,
            min_weight_fraction_leaf=0.0, presort=False, random_state=None,
            splitter='best')
              precision    recall  f1-score   support

           0       1.00      1.00      1.00        50
           1       1.00      1.00      1.00        50
           2       1.00      1.00      1.00        50

   micro avg       1.00      1.00      1.00       150
   macro avg       1.00      1.00      1.00       150
weighted avg       1.00      1.00      1.00       150

[[50  0  0]
 [ 0 50  0]
 [ 0  0 50]]

 

✔️ Theano

کتابخانه پایتون Theano

همه ما می‌دانیم که یادگیری ماشین اساساً بر پایه دانش ریاضیات و آمار است. Theano یک کتابخانه پرطرفدار در زبان برنامه نویسی پایتون است که برای تعریف، ارزیابی و بهینه‌سازی عبارات ریاضی مرتبط با آرایه‌های چند بعدی به نحوی کارآمد مورد استفاده قرار می‌گیرد. این کار با بهینه‌سازی استفاده از منابع پردازشی مرکزی (CPU) و گرافیکی (GPU) انجام می‌شود.

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],
       [0.26894142, 0.11920292]])

✔️ TensorFlow

کتابخانه پایتون TensorFlow

TensorFlow یک کتابخانه متن باز (Open-source) بسیار محبوب برای محاسبات عددی با عملکرد بالا است که توسط تیم Google Brain در گوگل توسعه یافته است.

همانطور که از نام آن پیداست، TensorFlow یک چارچوب است که شامل تعریف و اجرای محاسبات مرتبط با تنسورها می‌شود.

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

 

# Python program using TensorFlow 
# for multiplying two arrays 

# import `tensorflow` 
import tensorflow as tf 
tf.compat.v1.disable_eager_execution()

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

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

sess = tf.compat.v1.Session()
# Initialize the Session 

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

# Close the session 
sess.close() 

 

خروجی:

[ 5 12 21 32]

 

✔️ Keras

کتابخانه پایتون Keras

این کتابخانه بسیاری از روش‌های داخلی برای گروه‌بندی، ترکیب و فیلتر کردن داده‌ها را فراهم می‌کند. Keras یک کتابخانه بسیار محبوب برای یادگیری ماشین در زبان پایتون است.

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

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

 

✔️ PyTorch

کتابخانه پایتون PyTorch

PyTorch یک کتابخانه محبوب یادگیری ماشین متن‌باز برای زبان پایتون است که بر پایه Torch قرار دارد. Torch یک کتابخانه متن‌باز یادگیری ماشین است که با یک پیاده‌سازی در زبان C و یک wrapper در Lua ایجاد شده است.

PyTorch دارای انتخاب گسترده‌ای از ابزارها و کتابخانه‌هاست که از دید بینایی ماشین، پردازش زبان طبیعی (NLP) و برنامه‌های مختلف یادگیری ماشین پشتیبانی می‌کنند که به توسعه‌دهندگان این امکان را می‌دهد که محاسبات را بر روی تنسورها با استفاده از شتاب‌دهی 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.randn(N, D_in, device=device, dtype=dtype) 
y = torch.randn(N, D_out, device=device, dtype=dtype) 

# Randomly initialize weights 
w1 = torch.randn(D_in, H, device=device, dtype=dtype) 
w2 = torch.randn(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 

 

  رگرسیون خطی با استفاده از PyTorch

خروجی:

0 47168344.0
1 46385584.0
2 43153576.0
...
...
...
497 3.987660602433607e-05
498 3.945609932998195e-05
499 3.897604619851336e-05

✔️ Pandas

کتابخانه پایتون Pandas

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

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

 

# Python program using Pandas for 
# arranging a given set of data 
# into a table 

# importing pandas as pd 
import pandas as pd 

data = {"country": ["Brazil", "Russia", "India", "China", "South Africa"], 
	"capital": ["Brasilia", "Moscow", "New Delhi", "Beijing", "Pretoria"], 
	"area": [8.516, 17.10, 3.286, 9.597, 1.221], 
	"population": [200.4, 143.5, 1252, 1357, 52.98] } 

data_table = pd.DataFrame(data) 
print(data_table) 

 

خروجی:

 

✔️ Matplotlib

کتابخانه پایتون Matplotlib

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

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

این کتابخانه انواع مختلفی از نمودارها و چارت‌ها را برای تصویرسازی داده فراهم می‌کند، از جمله histogram، نمودارهای خطا، نمودارهای میله‌ای و غیره.

 

# 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() 

 

خروجی:

linear_plot

Score 5.00 out of 8 votes

لیست دروس دوره

آموزش پیشنهادی و مکمل

اگر سوالی در مورد این درس دارید، در کادر زیر بنویسید.

اشتراک در
اطلاع از
guest
0 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
سبد خرید

30% تخفیف دوره جامع علم داده

برای دیدن نوشته هایی که دنبال آن هستید تایپ کنید.
×