Sau đây Cafedev chia sẻ cho ace một số lib Python dành cho ML tốt nhất hiện nay, như tên gọi cho thấy, là khoa học lập trình một máy tính mà chúng có thể học từ các loại dữ liệu khác nhau. Một định nghĩa chung hơn được đưa ra bởi Arthur Samuel là – “ML là lĩnh vực nghiên cứu cung cấp cho máy tính khả năng học mà không cần được lập trình rõ ràng”. Chúng thường được sử dụng để giải quyết các loại vấn đề trong cuộc sống.

Ngày xưa, mọi người thường thực hiện các tác vụ ML bằng cách mã hóa thủ công tất cả các thuật toán và công thức toán học và thống kê. Điều này làm cho quá trình mất thời gian, tẻ nhạt và không hiệu quả. Nhưng trong thời hiện đại, nó trở nên dễ dàng và hiệu quả hơn rất nhiều so với ngày xưa bởi các thư viện, khuôn khổ và mô-đun python khác nhau. Ngày nay, Python là một trong những ngôn ngữ lập trình phổ biến nhất cho nhiệm vụ này và nó đã thay thế nhiều ngôn ngữ trong ngành, một trong những lý do là bộ sưu tập thư viện khổng lồ của nó. Các thư viện Python được sử dụng trong ML là:

  • Numpy
  • Scipy
  • Scikit-learn
  • Theano
  • TensorFlow
  • Keras
  • PyTorch
  • Pandas
  • Matplotlib

Nếu ace nào chưa biết hoặc tìm hiểu sâu hơn về Python với series tự học Python cùng với Cafedev.

1. Numpy

NumPy là một thư viện python rất phổ biến để xử lý mảng và ma trận lớn đa chiều, với sự trợ giúp của một bộ sưu tập lớn các hàm toán học cấp cao. Nó rất hữu ích cho các tính toán khoa học cơ bản trong ML. Nó đặc biệt hữu ích cho các khả năng đại số tuyến tính, biến đổi Fourier và số ngẫu nhiên. Các thư viện cao cấp như TensorFlow sử dụng NumPy để thao tác với Tensor.

Để biết thêm chi tiết, hãy tham khảo tài liệu.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# 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)) 

Output

219 

[29 67] 

[[19 22]
 [43 50]]

2. SciPy

SciPy là một thư viện rất phổ biến đối với những người đam mê ML vì nó chứa các mô-đun khác nhau để tối ưu hóa, đại số tuyến tính, tích hợp và thống kê. Có một sự khác biệt giữa thư viện SciPy và ngăn xếp SciPy. SciPy là một trong những gói cốt lõi tạo nên ngăn xếp SciPy. SciPy cũng rất hữu ích cho việc thao tác hình ảnh.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------

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

Output

Hình gốc

Hình ảnh màu:

Đổi size hình màu:

Để biết thêm chi tiết, hãy tham khảo tài liệu.

3. Scikit-learn

Skikit-learning là một trong những thư viện ML phổ biến nhất cho các thuật toán ML cổ điển. Nó được xây dựng dựa trên hai thư viện Python cơ bản, viz., NumPy và SciPy. Scikit-learning hỗ trợ hầu hết các thuật toán học có giám sát và không giám sát. Scikit-learning cũng có thể được sử dụng để khai thác dữ liệu và phân tích dữ liệu, điều này làm cho nó trở thành một công cụ tuyệt vời cho những người mới bắt đầu với ML.

# Python script using Scikit-learn  
# for Decision Tree Clasifier 
  
# 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)) 

Output

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]]

Để biết thêm chi tiết, hãy tham khảo tài liệu.

4. Theano

Chúng ta đều biết rằng Machine Learning về cơ bản là toán học và thống kê. Theano là một thư viện python phổ biến được sử dụng để xác định, đánh giá và tối ưu hóa các biểu thức toán học liên quan đến mảng nhiều chiều một cách hiệu quả. Nó đạt được bằng cách tối ưu hóa việc sử dụng CPU và GPU. Nó được sử dụng rộng rãi để kiểm tra đơn vị và tự xác minh để phát hiện và chẩn đoán các loại lỗi khác nhau. Theano là một thư viện rất mạnh đã được sử dụng trong các dự án khoa học chuyên sâu về tính toán quy mô lớn từ lâu nhưng đủ đơn giản và dễ tiếp cận để các cá nhân sử dụng cho các dự án của riêng họ.

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

Output:

array([[0.5, 0.73105858],
       [0.26894142, 0.11920292]])

Để biết thêm chi tiết, hãy tham khảo tài liệu.

5. TensorFlow

TensorFlow là một thư viện mã nguồn mở rất phổ biến để tính toán số hiệu suất cao được phát triển bởi nhóm Google Brain của Google. Như tên cho thấy, Tensorflow là một khuôn khổ liên quan đến việc xác định và chạy các phép tính liên quan đến các tensor. Nó có thể đào tạo và chạy các mạng thần kinh sâu có thể được sử dụng để phát triển một số ứng dụng AI. TensorFlow được sử dụng rộng rãi trong lĩnh vực nghiên cứu và ứng dụng học sâu.

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

Output

[ 5 12 21 32]

Để biết thêm chi tiết, hãy tham khảo tài liệu.

6. Keras

Keras là một thư viện ML rất phổ biến cho Python. Nó là một API mạng thần kinh cấp cao có khả năng chạy trên TensorFlow, CNTK hoặc Theano. Nó có thể chạy liên tục trên cả CPU và GPU. Keras làm cho nó thực sự dành cho người mới bắt đầu ML để xây dựng và thiết kế Mạng thần kinh. Một trong những điều tốt nhất về Keras là nó cho phép tạo mẫu dễ dàng và nhanh chóng.

Để biết thêm chi tiết, hãy tham khảo tài liệu.

7. PyTorch

PyTorch là một thư viện ML mã nguồn mở phổ biến cho Python dựa trên Torch, là một thư viện ML mã nguồn mở được triển khai bằng C với trình bao bọc trong Lua. Nó có nhiều lựa chọn về công cụ và thư viện hỗ trợ Thị giác máy tính, Xử lý ngôn ngữ tự nhiên (NLP) và nhiều chương trình ML khác. Nó cho phép các developer thực hiện tính toán trên Tensors với khả năng tăng tốc GPU và cũng giúp tạo đồ thị tính toán.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# 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 

Output

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

Để biết thêm chi tiết, hãy tham khảo tài liệu.

8. Pandas

Pandas là một thư viện Python phổ biến để phân tích dữ liệu. Nó không liên quan trực tiếp đến ML. Như chúng ta biết rằng tập dữ liệu phải được chuẩn bị trước khi đào tạo. Trong trường hợp này, Pandas rất tiện lợi vì nó được phát triển đặc biệt để khai thác và chuẩn bị dữ liệu. Nó cung cấp cấu trúc dữ liệu cấp cao và nhiều công cụ đa dạng để phân tích dữ liệu. Nó cung cấp nhiều phương pháp có sẵn để dò tìm, kết hợp và lọc dữ liệu.

# 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 Dehli", "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) 

Output

Để biết thêm chi tiết, hãy tham khảo Pandas.

9. Matplotlib

Matpoltlib là một thư viện Python rất phổ biến để trực quan hóa dữ liệu. Giống như Pandas, nó không liên quan trực tiếp đến ML. Nó đặc biệt hữu ích khi một lập trình viên muốn hình dung các mẫu trong dữ liệu. Nó là một thư viện vẽ đồ thị 2D được sử dụng để tạo đồ thị và đồ thị 2D. Mô-đun có tên pyplot giúp lập trình viên dễ dàng vẽ biểu đồ vì nó cung cấp các tính năng kiểm soát kiểu đường, thuộc tính phông chữ, trục định dạng, v.v. , Vân vân,

#  Python program using Matplotib  
# 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() 

Output

Để biết thêm chi tiết, hãy tham khảo tài liệu.

Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.

Nguồn và Tài liệu tiếng anh tham khảo:

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!