
همانطور که از نامش پیداست، یادگیری ماشینی، علم برنامه نویسی برای هوشمند کردن سیستم های کامپیوتری است تا کامپیوترها بتوانند از داده هایی که به آنها داده می شود یاد بگیرند. آرتور ساموئل، متخصص در این زمینه، می گوید: «یادگیری ماشین رشته ای است که به رایانه ها توانایی یادگیری بدون برنامه نویسی صریح را می دهد. الگوریتم های یادگیری ماشین معمولا برای حل مسائل مختلف زندگی استفاده می شود.
پیشنهاد مقاله: هوش مصنوعی دستمزدها را بین 50 تا 70 درصد کاهش می دهد.
در گذشته، افراد با کدگذاری دستی همه الگوریتم ها و فرمول های ریاضی و آماری، وظایف یادگیری ماشین را انجام می دادند. این باعث می شود فرآیند انجام کارها زمان بر، خسته کننده و ناکارآمد باشد. اما در عصر مدرن، کتابخانهها، فریمورکها و ماژولهای مختلف در زبانهای برنامهنویسی مانند پایتون کارها را آسانتر و کارآمدتر کردهاند. امروزه پایتون یکی از محبوب ترین زبان های برنامه نویسی برای این کار است و توانسته از رقبای خود پیشی بگیرد.
یکی از مهم ترین آنها نگهداری از مجموعه بسیار وسیعی از کتابخانه هاست که هر کدام توانایی انجام یک کار تخصصی را دارند. کتابخانه های مهم پایتون مورد استفاده در یادگیری ماشین عبارتند از:
- ناامپی
- Scipy
- Scikit-uchi
- تیانو
- تنسورفلو
- کراس
- PyTorch
- پانداها
- Matplotlib
کتابخانه 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 را تشکیل می دهد، علاوه بر اینکه برای دستکاری تصاویر بسیار مفید است. قطعه کد زیر نحوه استفاده از این کتابخانه را نشان می دهد.
# 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)
مقاله پیشنهادی: 5 مورد از بهترین زبان های برنامه نویسی و کتابخانه های یادگیری ماشین
کتابخانه 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))
نتیجه قطعه کد بالا به شرح زیر است:
DeCTTREECLASSIFIER (CLASS_WEY = هیچ ، معیار = ‘gini’ ، max_depth = هیچ ، max_features = هیچ ، max_leaf_nodes = هیچ ، min_impurance_decrease = 0.0 ، min_impurance_split = هیچ ، min_impurance_split = هیچ ، min_samples_leafeffe = 0mples1) 1.00 1.00 50 میکرو میانگین 1.00 1.00 1.00 150 کلان 0 متوسط 1.0 0 میانگین 1 , 0 0 متوسط 1.0 0 متوسط 1.0 0 متوسط [[50 0 0] [ 0 50 0] [ 0 0 50]]
کتابخانه Teano
همه ما می دانیم که یادگیری ماشین عمدتاً بر اساس ریاضیات و آمار است. 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]])
نتیجه قطعه کد بالا به شرح زیر است:
آرایه ([[0.5, 0.73105858]، [0.26894142, 0.11920292]])
کتابخانه تنسورفلو
TensorFlow یک کتابخانه منبع باز بسیار محبوب برای محاسبات عددی با کارایی بالا است که توسط تیم Google Brain توسعه یافته است. همانطور که از نام آن پیداست، Tensorflow چارچوبی است که شامل تعریف و اجرای محاسبات مربوط به تانسورها است. ابزار فوق می تواند شبکه های عصبی عمیق را آموزش داده و اجرا کند که می تواند در ارتباط با توسعه برنامه های هوش مصنوعی پیشرفته مورد استفاده قرار گیرد. TensorFlow به طور گسترده در تحقیق و کاربرد یادگیری عمیق استفاده می شود. قطعه کد زیر نحوه استفاده از فریم بالا را نشان می دهد.
# 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()
نتیجه قطعه کد بالا به شرح زیر است:
[ 5 12 21 32]
کتابخانه کراس
Keras یک کتابخانه یادگیری ماشینی بسیار محبوب برای پایتون است. این کتابخانه یک رابط برنامه نویسی برای شبکه های عصبی سطح بالا است که می تواند روی TensorFlow، CNTK یا Theano اجرا شود. کتابخانه فوق می تواند به طور یکپارچه بر روی هر دو مؤلفه CPU و GPU اجرا شود. بنابراین قادر است از هسته های پردازنده فوق استفاده بهینه کند. Keras یک گزینه عالی برای شروع توسعه دهندگان یادگیری ماشینی است که می خواهند یک شبکه عصبی بسازند و طراحی کنند. یکی از بهترین چیزها در مورد Keras این است که به شما امکان می دهد به راحتی و به سرعت نمونه های اولیه ایجاد کنید. این کتابخانه با تمرکز بر تست سریع توسعه یافته است. دستیابی به نتایج حاصل از ایده با کمترین تاخیر ممکن، کلید انجام تحقیقات خوب است و این نکته همیشه در ساخت این کتابخانه مورد توجه قرار گرفته است.
کتابخانه PyTorch
PyTorch یک کتابخانه محبوب یادگیری ماشینی منبع باز پایتون بر اساس Torch است که در زبان برنامه نویسی C ++ توسعه یافته است. بد نیست بدانید که PayTorch یک کتابخانه یادگیری ماشینی منبع باز است که با استفاده از زبان برنامه نویسی C و بر اساس مدل های زبان برنامه نویسی Lua پیاده سازی شده است.
این کتابخانه دارای طیف گسترده ای از ابزارها و کتابخانه ها است که باعث می شود از بینایی کامپیوتر، پردازش زبان طبیعی (NLP) و بسیاری دیگر از برنامه های یادگیری ماشین پشتیبانی کند. کتابخانه فوق به توسعه دهندگان اجازه می دهد تا محاسبات Tensor را با استفاده از یک پردازنده گرافیکی انجام دهند و همچنین به ایجاد نمودارهای محاسباتی کمک می کند. قطعه کد زیر نحوه استفاده از کتابخانه فوق را نشان می دهد.
# 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
نتیجه قطعه کد بالا به شرح زیر است:
0 47168344.01 46385584.02 43153576.0 ……… 497 3.987660602433607e-05498 3.945609932998195e-05499603.
کتابخانه پانداها
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 یک کتابخانه نقاشی دو بعدی است که برای ایجاد نمودارها و نمودارهای دو بعدی استفاده می شود. ماژولی به نام 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()
نتیجه قطعه کد بالا به شرح زیر است:
کتابخانه PyBrain
PyBrain یک کتابخانه یادگیری ماشینی برای پایتون است. هدف این کتابخانه ارائه الگوریتمهای انعطافپذیر، با کاربرد آسان اما قدرتمند برای وظایف یادگیری ماشین و محیطهای از پیش تعریفشده برای آزمایش و مقایسه الگوریتمها است.
StatsModels
StatsModels یک بسته پایتون است که مکمل کتابخانه scipy است و برای انجام محاسبات آماری از جمله آمار توصیفی و تخمینها و استنتاجهای مدلهای آماری استفاده میشود.
آخرین کلمه
لازم به ذکر است که از این کتابخانه ها برای پروژه های مختلف استفاده می شود و شما در تمامی پروژه ها از یک کتابخانه استفاده نخواهید کرد. برای مثال، کتابخانه نرمافزار متنباز Tensorflow عمدتاً برای یادگیری ماشینی استفاده میشود، در حالی که Cross یک کتابخانه منبع باز شبکه عصبی است که میتواند روی Tensorflow یا Dino اجرا شود. این به این دلیل است که Cross بیشتر از CicketLearn یک کتابخانه کاربر نهایی است، در حالی که Tensorflow بیشتر توسط افراد به عنوان محقق و مهندسان یادگیری ماشین استفاده می شود.
همچنین به خاطر داشته باشید که سایر کتابخانه ها مانند LightGBM (چارچوب بهبود شیب با کارایی بالا، توزیع شده و سریع (GBM، GBRT، GBDT یا MART) بر اساس الگوریتم های درخت تصمیم گیری رتبه بندی، طبقه بندی و غیره هستند. CatBoost یک مزایای اصلی CatBoost شامل کیفیت عالی نسبت به سایر کتابخانه های GBDT، سرعت دسته ای عالی، پشتیبانی از ویژگی های عددی و دسته ای و در دسترس بودن ابزارهای تجسم داده های موجود است.
منبع:
https://www.geeksforgeeks.org/best-python-libraries-for-machine-learning/?ref=rp
نویسنده: حمیدرضا طائبی
نوشته شده توسط بهترین کتابخانه های یادگیری ماشین پایتون + نمونه کدهای تمرین برای اولین بار در علم و فناوری بامداد. به نظر می رسد.