Lập trình Machine Learning là dùng ngôn ngữ lập trình, sử dụng các thuật toán trong toán học để làm cho Máy học (máy tính, máy móc, thiết bị…) có thể học từ những dữ liệu và phân tích các dữ liệu sau đó học cách dự đoán và đưa ra kết quả.
Có nhiều ngôn ngữ lập trình cho Machine Learning và AI.Tuy nhiên ngôn ngữ Python là một ngôn ngữ lý tưởng, có thư viện lớn hỗ trợ lập trình Machine Learning và AI.
Bạn muốn lập trình Machine Learning với Python nhưng không biết bắt đầu từ đâu ?Bài này chúng tôi sẽ hướng dẫn sử dụng ngôn ngữ Python để lập trình Machine Learning.
Cách tốt nhất để học lập trình machine learning là tạo một dự án project nhỏ và thực hiện các bước cơ bản từ đầu tới cuối của project.
Trong phần này chúng tôi sẽ hướng dẫn bạn tạo một dự án nhỏ project và cách cài đặt các công cụ, thư viện cần thiết để lập trình machine learning.
Sau đây là các bước tạo một project về Machine Learning trong Python:
1. Download và cài đặt phần mềm, thư viện Python.
2. Kiểm tra phiên bản phần mềm và các thư viện Python.
3. Import các thư viện cần thiết vào dự án.
4. Load dữ liệu và tập dữ liệu dataset.
5. Phân tích, xử lý dữ liệu dataset
6. Data Visualization: Biểu diễn dữ liệu trực quan bằng đồ thị.
7. Train/Test Model và Evaluate Some Algorithms : Xây dựng hình dữ liệu Model và sử dụng các thuật toán để đào tạo và kiểm tra Model.
8. Make Predictions: Đánh giá các thuật toán và đưa gia dự đoán kết quả.
Tải file cài đặt Python tại trang web : https://www.python.org/downloads/
Các bước cài đặt phần mềm Python bạn có thể tham khảo tại link sau: https://ihoclaptrinh.com/cai-dat-python-trong-windows-10
Có 5 thư viện chính cần cài đặt để lập trình machine learning.
Scipy.
Numpy.
Matplotlib.
Pandas.
Sklean.
Cài đặt thư viện Scipy như sau:
pip install scipy
Cài đặt thư viện Numpy như sau:
pip install numpy
Cài đặt thư viện Matplotlib như sau:
pip install matplotlib
Cài đặt thư viện Pandas như sau:
pip install pandas
Cài đặt thư viện Sklearn như sau:
pip install sklearn
Việc kiểm tra phiên bản và môi trường của Python là một việc cần thiết và nên làm khi bạn bắt đầu một dự án.Bởi vì sau khi cài đặt bạn cần kiểm tra xem phần mềm và thư viện đã cài đặt thành công hay chưa? Phiên bản có phù hợp với môi trường hay không để tránh gặp các lỗi trong dự án project.
Câu lệnh và cú pháp để kiểm tra phiên bản của thư viện như sau:
# Kiểm tra phiên bản Python
import sys
print('Python: {}'.format(sys.version))
# Kiểm tra phiên bản scipy
import scipy
print('scipy: {}'.format(scipy.__version__))
# Kiểm tra phiên bản numpy
import numpy
print('numpy: {}'.format(numpy.__version__))
# Kiểm tra phiên bản matplotlib
import matplotlib
print('matplotlib: {}'.format(matplotlib.__version__))
# Kiểm tra phiên bản pandas
import pandas
print('pandas: {}'.format(pandas.__version__))
# Kiểm tra phiên bản scikit-learn
import sklearn
print('sklearn: {}'.format(sklearn.__version__))
Khi lập trình Machine Learning bạn cần phải Import các thư viện, module sau:
# Load libraries
from pandas import read_csv
from pandas.plotting import scatter_matrix
from matplotlib import pyplot
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import StratifiedKFold
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
Sau khi cài đặt thư viện thành công, bước tiếp theo là chúng ta cần làm là sẽ tải dữ liệu.
Ở đây tôi sẽ sử dụng tập dữ liệu iris flowers làm dữ liệu đầu vào.Tôi sử dụng tập dữ liệu iris flowers này là bởi vì đây là một tập dữ liệu nổi tiếng, nó được sử dụng như chương trình “Hello Word” trong lập trình Machine Learning.Tập dữ liệu dataset này chứa 150 dòng 5 cột tương ứng 150 mẫu của hoa iris.
Bạn có thể tải dữ liệu trực tiếp từ kho lưu trữ dữ liệu UCI Machine Learning hoặc bạn có thể tải download file iris.csv về máy tính của bạn sau đó load dữ liệu từ máy tính. Trong phần này tôi lấy dữ liệu dataset trực tiếp từ kho lưu trữ dữ liệu UCI Machine Learning làm ví dụ.
Để load dữ liệu, trong python sử dụng thư viện pandas để load dữ liệu và phân tích dữ liệu.
# Load dữ liệu dataset
url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"
names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']
dataset = read_csv(url, names=names)
Sau khi load dữ liệu thành công bây giờ là đến lúc chúng ta có thể xem, khai thác, khám phá và xử lý dữ liệu và thống kê dữ liệu.
Ví dụ xem dữ liệu của 15 dòng đầu tiên hoặc xem tất cả dữ liệu của datatset đã tải về như sau:
# Xem dữ liệu của 30 dòng đầu tiên.
print(dataset.head(15))
# Xem tất cả dataset
print(dataset)
Sử dụng thuộc tính shape để kiểm tra kích thước của tập dữ liệu có bao nhiêu dòng và bao nhiêu cột.
# Sử dụng shape để xem kích thước của tập dữ liệu
print(dataset.shape)
(150, 5)
# descriptions
print(dataset.describe())
Các giá trị Count, Mean, Median, Mode, Min, Max, std, % là các kỹ thuật thường sử dụng và quan trọng trong Machine Learning, vì vậy việc hiểu các khái niệm này là rất quan trọng cho việc phát triển các dự án về Machine Learning sau này. Chúng tôi sẽ giải thích cho các bạn rõ khái niệm, chi tiết về Count, Mean, Median, Mode, Min, Max, std, % là gì ở các bài tiếp theo về Machine Learning.
Chúng ta có thể xem sự phân bổ, phân bố dữ liệu của mỗi class như sau.
# class distribution
print(dataset.groupby('class').size())
# Load libraries
from pandas import read_csv
# Load dữ liệu dataset
url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"
names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']
dataset = read_csv(url, names=names)
# shape : Xem kích thước của tập dữ liệu
print(dataset.shape)
# head : Xem dữ liệu của 15 dòng đầu tiên.
print(dataset.head(15))
# Xem tất cả dataset
print(dataset)
# descriptions : Thống kê các giá trị Min, Max, Mean, %, Std
print(dataset.describe())
# class distribution : xem sự phân phối, phân bố dữ liệu của class
print(dataset.groupby('class').size())
Việc load dữ liệu và xử lý dữ liệu dataset ở trên đã cho bạn hiểu và hình dung được về xử lý dữ liệu trong Machine Learning. Tuy nhiên chúng ta có thể trực quan hóa bằng cách biểu diễn biểu đồ để cho người dùng dễ nhìn và dễ hiểu hơn.
Chúng ta sẽ biểu diễn 2 loại biểu đồ:
Univariate Plots : Đây là biểu đồ đơn biến, dùng để biểu thị và hiểu rõ hơn về mỗi thuộc tính.
Multivariate Plots : Đây là biểu đồ đa biến, dùng để biểu thị và hiểu rõ về mối quan hệ giữa các thuộc tính.
7. Train/Test Model và Evaluate Some Algorithms : Xây dựng hình dữ liệu Model và sử dụng các thuật toán để đào tạo và kiểm tra Model.
8. Make Predictions: Đánh giá các thuật toán và đưa gia dự đoán kết quả.