You are on page 1of 11

HW6 : SVM, soft margin SVM, kernel SVM

SVM
Bài tập này trình bày về việc ứng dụng Support Vector Machine (SVM) để phân loại dữ
liệu trong bài toán binary classification. Dữ liệu nghiên cứu bao gồm các thuộc tính "area
A" và "perimeter P" và hai class "wheat" là “Canadian” và “Rosa” là hai class linearly
separable. SVM được sử dụng để tìm mặt phân cách sao cho margin lớn nhất giữa hai
class. Với dữ liệu được mô tả ở bên dưới ( bao gồm 140 mẫu )

Sau đây là mô hình để xử lý bài toán được đưa ra:


Phần đọc và xử lí giữ liệu
Phần tạo mô hình và training

Phần xử lí và vẽ đồ thị

Kết quả sau khi chạy mô hình trên


Dễ thấy đường biên đang cách đều các điểm gần nhất thuộc hai lớp, điều này chứng tỏ
mô hình hoạt động ổn định, tốt. . Trong trường hợp đường biên phân chia đúng mọi điểm
điểm dữ liệu thì được gọi là bài toán phân loại theo đường biên cứng (hard margin
classification). Tuy nhiên đường biên cứng tỏ ra hạn chế nếu tồn tại dữ liệu ngoại lai
(outlier). Để xem hạn chế như nào thì chúng ta tiếp tục với ví dụ bên dưới.
Phần đọc và xử lí giữ liệu

Phần xử lí
Sau khi chạy code thì ta được kết quả sau
Hình bên trái là phân loại Hard margin SVM đối với tập dữ liệu thông thường. Hình bên
phải là phân loại Hard margin SVM đối với dữ liệu chứa điểm ngoại lai (là điểm hình sao
được khoanh tròn). Phương pháp phân loại Hard margin SVM buộc phải phân loại đúng
mọi điểm dữ liệu, bao gồm cả điểm ngoại lai. Điều này khiến cho đường biên phân chia
bị thu hẹp lại. Khi đó qui luật phân chia sẽ không còn giữ được yếu tố tổng quát và dẫn
tới hiện tượng quá khớp (overfitting). Kết quả dự báo trên tập test khi đó sẽ kém hơn so
với training.
Để khắc phục hạn chế của phân loại đường biên cứng, kỹ thuật phân loại đường biên
mềm (Sorf Margin Classification) chấp nhận đánh đổi để mở rộng lề và cho phép phân
loại sai các điểm ngoại lai. Cụ thể hơn, thuật toán sẽ chấp nhận một số điểm bị rơi vào
vùng của lề (vùng nằm giữa hai đường nét đứt, vùng này còn được gọi là vùng không an
toàn) nhưng trái lại, chi phí cơ hội của sự đánh đổi đó là độ rộng lề lớn hơn. Đường biên
phân chia được tạo ra từ kỹ thuật này thường nắm được tính tổng quát và hạn chế hiện
tượng quá khớp.
Dưới đây là sự so sánh của phân loại Hard Margin SVM và phần loại Soft Margin SVM
Khi giá trị C nhỏ (gần với 0), mô hình SVM trở nên quá linh hoạt trong việc tạo ra một
mặt phân chia (hyperplane) tối ưu. Điều này có nghĩa là mô hình sẽ cố gắng tìm một
hyperplane mà nó cảm thấy thoải mái với việc phân loại tất cả các điểm dữ liệu mà không
xem xét đến margin.
Kết quả là, mô hình có thể trở nên quá đơn giản và dễ bị ảnh hưởng bởi nhiễu trong dữ
liệu hoặc các điểm dữ liệu bất thường (outliers). Nó sẽ không đủ mạnh để xác định được
các ranh giới phân chia phức tạp và phức tạp hơn của các lớp dữ liệu.
Vì vậy, việc lựa chọn giá trị C thích hợp là một phần quan trọng trong việc sử dụng SVM.
Giá trị C phải được điều chỉnh một cách cân nhắc để đảm bảo mô hình không quá tối ưu
hóa hoặc quá linh hoạt, và nó phụ thuộc vào đặc điểm của dữ liệu cụ thể của bạn và mục
tiêu làm gì với mô hình. Việc thử nghiệm và đánh giá mô hình trên tập dữ liệu kiểm tra là
một cách thông thường để tìm giá trị C tối ưu cho bài toán của bạn.

Kernel SVM
Một số kernel được sử dụng khi 2 class không phải là hai class linearly separable.
Kernel linear
Kernel poly
Kernel rbf
Nhận thấy kernel linear và kernel poly khá tốt cho trường hợp này.

You might also like