CHƯƠNG 4
HỌC KHÔNG GIÁM SÁT
Trong chương y, người học sẽ thảo luận v những thuật toán học không giám sát bản
bao gồm chuẩn hoá dữ liệu, giảm chiều dữ liệu, sắp xếp dữ liệu giữa các miền, và cuối cùng
bài toán phân cụm dữ liệu.
Những nội dung chính của chương này.
1. Chuẩn hoá dữ liệu.
2. Giảm chiều dữ liệu (ví dụ: PCA).
3. Sắp xếp dữ liệu giữa các miền khác nhau (ví dụ: LLE).
4. Phân cụm dữ liệu.
4.1 Chuẩn hóa dữ liệu
4.1.1 sở lý thuyết
Hình 4.1: Ảnh hưởng của chuẩn hoá dữ liêu. (a) Gradient Descent không sử dụng chuẩn hoá dữ liệu. (b)
Gradient Descent sau khi sử dụng chuẩn hoá dữ liệu.
Khi làm việc với bài toán nhiều đặc trưng, mỗi đặc trưng sẽ nhận giá tr những
khoảng biên độ (range) khác nhau. Hiện tượng y bắt nguồn từ việc mỗi đặc trưng đều khác
biệt v mặt ý nghĩa vật lý hoặc đơn vị. Điều y gây khó khăn cho những thuật toán học y
đa phần các thuật toán y đều dựa vào kỹ thuật gradient descent để hiệu chỉnh các trọng
số. Bởi vector gradient cố định cho mỗi bước cập nhập, việc học cho các đặc trưng
176
CHƯƠNG 4. HỌC KHÔNG GIÁM SÁT
khoảng biên độ (range) lớn sẽ chậm hơn việc học cho các đặc trưng khoảng biên độ nhỏ.
Để khắc phục tình trạng y, một giải pháp được sử dụng chuẩn hoá dữ liệu. Mục đích của
việc y đảm bảo các đặc trưng sẽ giá tr trong một khoảng giống nhau. Hình 4.1
tả lợi ích của việc chuẩn hoá dữ liệu thông qua bài toán huấn luyện bằng hai đặc trưng.
Hình 4.1a khi hai đặc trưng khoảng giá tr khác nhau, quá trình gradient descent sẽ không
trực tiếp đi vào vị trí giá tr hàm mục tiêu nhỏ nhất sẽ dao động theo giá tr của trục
biến θ1. Ngược lại, nếu thực hiện việc chuẩn hoá dữ liệu thì bộ nghiệm sẽ di chuyển vào vị
trí điểm cực tiểu theo một đường thẳng. Do đó, quá trình học sẽ hội tụ nhanh hơn.
2 kiểu chuẩn hoá dữ liệu thường dùng là: Normalization Standardization.
Normalization: một kỹ thuật nhằm đảm bảo mỗi đặc trưng sẽ giá tri nằm trong
khoảng từ 0 đến 1. K thuật y còn được gọi Min-Max scaling. Phương trình 3.1
tả đặc tính của feature scaling.
x0=xmin(x)
max(x)min(x)(4.1)
Standardization: một kỹ thuật nhằm đảm bảo các giá tr trung bình độ lệch chuẩn
của một đặc trưng sẽ tuân theo phân phối chuẩn N(x;0,1). Điều y khắc phục nhược
điểm của normalization thay chỉ tập trung vào giáo trị lớn nhất nhỏ nhất của
đặc trưng đó, ta sẽ tập trung vào toàn bộ dữ liệu. Phương trình 3.2 môt tả phương pháp
y.
x0=xx
σ(4.2)
4.1.2 Các phương pháp chuẩn hoá dữ liệu.
nhiều các thức khác nhau để chuẩn hoá dữ liệu. Thư viện Sklearn hỗ trợ các lớp sau phục
vụ cho q trình chuẩn hoá dữ liệu:
MinMaxScaler.
minmax_scale.
MaxAbsScaler.
StandardScaler.
RobustScaler.
Normalizer.
QuantileTransformer.
PowerTransformer.
Trong những kỹ thuật chuẩn hoá trên, đa số các phương pháp đều chuẩn hoá dữ liệu dựa trên
đặc trưng của chúng, tức làm cho phân phối của các loại đặc trưng trở nên giống nhau.
Tuy nhiên, cũng các ngoại lệ Quantile Transformer PowerTransformer. Không
giống như các phép biến đổi trước đó, quá trình chuẩn hóa đề cập đến một phép biến đổi
177
CHƯƠNG 4. HỌC KHÔNG GIÁM SÁT
trên mỗi mẫu thay một phép biến đổi trên mỗi đặc trưng. Cụ thể:
Quantile Transformer cung cấp các phép biến đổi phi tuyến tính trong đó khoảng
cách giữa các giá trị ngoại lai và giá tr nội tại được thu hẹp lại.
PowerTransformer cung cấp các phép biến đổi phi tuyến tính trong đó dữ liệu được
ánh xạ tới một phân phối chuẩn để ổn định phương sai và giảm thiểu độ lệch.
Ví dụ sau sẽ so sánh sự ảnh hưởng của các phương pháp chuẩn hoá dữ liệu lên q trình huấn
luyện. Trong dụ y, bộ dữ liệu California Housing được sử dụng. Đặc trưng thứ 0 (thu
nhập trung bình trong một khu nhà) và đặc trưng thứ 5 (công suất sử dụng nhà trung bình)
của bộ dữ liệu nhà California ngưỡng chạy rất khác nhau chứa một số ngoại lệ rất
lớn. Hai đặc trưng y dẫn đến khó khăn trong việc trực quan hóa dữ liệu và quan trọng hơn
chúng thể làm giảm hiệu suất dự đoán của nhiều thuật toán học y. Dữ liệu không
được chia tỷ lệ cũng thể làm chậm hoặc ngăn chặn sự hội tụ của nhiều hình phân loại
dựa trên độ dốc gradient.
Để sử dụng kỹ thuật chuẩn hoá dữ liệu, trước hết cần khai báo sử dụng các class tương ứng.
import numpy as np
import matplotlib as mpl
from matplotlib import pyplot as plt
from matplotlib import cm
from sklearn.preprocessing import MinMaxScaler,
from sklearn.preprocessing import minmax_scale
from sklearn.preprocessing import MaxAbsScaler
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import RobustScaler
from sklearn.preprocessing import Normalizer
from sklearn.preprocessing import QuantileTransformer
from sklearn.preprocessing import PowerTransformer
from sklearn.datasets import fetch_california_housing
Đoạn sau lựa chọn hai đặc trưng ["MedInc", "AveOccup"] (thu nhập trung bình trong
một khu nhà và công suất sử dụng nhà trung bình) để tiến hành phân tích.
dataset = fetch_california_housing()
X_full, y_full = dataset.data, dataset.target
feature_names = dataset.feature_names
feature_mapping = {
"MedInc":"Median income in block",
"HousAge":"Median house age in block",
"AveRooms":"Average number of rooms",
"AveBedrms":"Average number of bedrooms",
"Population":"Block population",
"AveOccup":"Average house occupancy",
"Latitude":"House block latitude",
"Longitude":"House block longitude",
}
# Take only 2 features to make visualization easier
# Feature MedInc has a long tail distribution.
# Feature AveOccup has a few but very large outliers.
features = ["MedInc","AveOccup"]
178
CHƯƠNG 4. HỌC KHÔNG GIÁM SÁT
features_idx = [feature_names.index(feature) for feature in features]
X = X_full[:, features_idx]
Sau khi chuẩn bị dữ liệu, các thuật toán chuẩn hoá dữ liệu sẽ được lựa chọn. Mỗi kỹ thuật
chuẩn hoá dữu liệu sẽ được thực thi bởi các đối tượng tương ứng. Đoạn sau định nghĩa
nhiều đối tượng khác nhau cho tác vụ chuẩn hoá dữ liệu. Mỗi đối tượng sử dụng một phương
pháp chuẩn hoá dữ liệu khác nhau tương ứng với thuật toán đại diện cho chúng.
distributions = [
("Unscaled data", X),
("Data after standard scaling", StandardScaler().fit_transform(X)),
("Data after min-max scaling", MinMaxScaler().fit_transform(X)),
("Data after max-abs scaling", MaxAbsScaler().fit_transform(X)),
(
"Data after robust scaling",
RobustScaler(quantile_range=(25, 75)).fit_transform(X),
),
(
"Data after power transformation (Yeo-Johnson)",
PowerTransformer(method="yeo-johnson").fit_transform(X),
),
(
"Data after power transformation (Box-Cox)",
PowerTransformer(method="box-cox").fit_transform(X),
),
(
"Data after quantile transformation (uniform pdf)",
QuantileTransformer(output_distribution="uniform").fit_transform(X),
),
(
"Data after quantile transformation (gaussian pdf)",
QuantileTransformer(output_distribution="normal").fit_transform(X),
),
("Data after sample-wise L2 normalizing", Normalizer().fit_transform(X)),
]
Để hỗ trợ cho việc trực quan hoá dữ liệu, các chương trình con create_axes và plot_distribution
đã được chuẩn bị. Chi tiết của các chương trình con này sẽ được đề cập trong phụ lục A.1 và
phụ lục A.2. Ngoài ra, phụ lục A.3 cũng sẽ giới thiệu chương trình con make_plot dùng để
v hai biểu đồ hiển thị kết quả chuẩn hoá dữ liệu tương ứng với thuật toán được chọn. Để lựa
chọn thuật toán được sử dụng, người dùng thể sử dụng một chỉ số đánh dấu thức tự của
thuật toán được khai báo trong danh sách distributions. Trong kết quả hiển thị, hình bên trái
sẽ hiển thị biểu đồ phân tán của toàn bộ tập dữ liệu trong khi hình bên phải sẽ loại tr các
giá tr ngoại lai và chỉ xem xét 99 % tập dữ liệu, không bao gồm các giá tr ngoại lệ biên.
Ngoài ra, các biểu đồ phân phối cận biên cho từng đặc trưng sẽ được hiển thị trên các mặt
của biểu đồ phân tán. Trong những kết quả đó, màu sắc sẽ thể hiện giá trị của căn nhà. Màu
tím hiển thị các căn nhà giá tr cao và màu vàng hiển thị căn nhà giá thấp hơn.
179
CHƯƠNG 4. HỌC KHÔNG GIÁM SÁT
Bộ dữ liệu gốc:
Bộ dữ liệu gốc được hiển thị như Hình 4.2. Mỗi trục trên biểu đồ hiển thị một đặc trưng của
bộ dữ liêụ. Biểu đồ bên trái hiển thị toàn bộ tập dữ liệu và biểu đồ bên phải được phóng to
để hiển thị tập dữ liệu không các ngoại lệ biên. bộ dữ liệu gốc, phần lớn các mẫu được
tập hợp thành một phạm vi cụ thể, dụ thu nhập trung bình nằm trong khoảng [0,10]và
công suất thuê nhà trung bình trong khoảng [0,6]. Lưu ý rằng một số ngoại lệ cận biên
(một số khối nhà công suất thuê trung bình trên 1200). Chính vậy, hiển thị toàn bộ
dữ liệu làm cho dữ liệu bị hẹp lại đáng k chiều dọc và không thể hiện tốt phân phối của
dữ liệu. Do đó, việc tiền xử lý và loại bỏ các ngoại lệ cụ thể sẽ rất lợi tùy thuộc vào ứng
dụng. Sau đây, tài liệu trình y một số phương pháp tiền xử lý khi không và loại bỏ các
giá tr ngoại lệ cận biên.
make_plot(0)
Kết qủa:
Hình 4.2: Bộ dữ liệu gốc. Bên trái: chứa dữ liệu ngoại lệ. Bên phải: Không chứa dữ liệu ngoại lệ.
Chuẩn hoá tiêu chuẩn (phương trình 4.2):
Bộ chuẩn hoá tiêu chuẩn loại bỏ giá tr trung bình tỷ lệ chia dữ liệu . Kết qủa được hiển
thị như Hình 4.3. Kết quả sau khi sử dụng phương pháp y sẽ đảm bảo các mẫu tr trung
bình bằng 0 và phương sai của mỗi đặc trương sẽ phương sai đơn vị. K thuật chuẩn hoá
tiêu chuẩn sẽ thu hẹp phạm vi của các giá tr đối tượng như minh họa trong hình bên trái
bên dưới. Tuy nhiên, các giá tr ngoại lệ ảnh hưởng khi tính toán giá tr trung bình thực
nghiệm và độ lệch chuẩn. Đặc biệt, cần lưu ý rằng do các giá tr ngoại lệ trên mỗi đặc trưng
độ lớn khác nhau nên mức độ phân tán của dữ liệu được chuyển đổi trên mỗi đặc trưng
rất khác nhau. Như kết quả Hình 4.3, hầu hết dữ liệu nằm trong phạm vi [2,4]đối với
đặc trưng thu nhập trung bình sau khi được chuẩn hoá. Ngoài ra, đặc trưng v công suất sử
dụng nhà trung bình được nén trong phạm vi [0,2,0,2]nhỏ hơn đối với đặc trưng v thu
nhập trung bình. Một cách tổng quát, phương pháp chuẩn hoá tiêu chuẩn như phương trình
(4.2) không thể đảm bảo tỷ lệ tính năng cân bằng khi các ngoại lệ .
make_plot(1)
Kết qủa:
180