search

Support Vector Machine (SVM)

Trình mô phỏng trực quan & Thực thi code Python giả lập.

Lớp:
1.0

Python Lab

Thực thi mô hình dựa trên trực quan hóa.

main.py
import numpy as np
from sklearn import svm

# Lấy dữ liệu từ canvas (đã được chuẩn hóa)
X = np.array([])
y = np.array([])

# Khởi tạo mô hình SVC với tham số C từ thanh trượt
C_param = 1.0
model = svm.SVC(kernel='linear', C=C_param)

# Huấn luyện mô hình
model.fit(X, y)

# Kết quả đầu ra
print(f"Số lượng Support Vectors: {len(model.support_vectors_)}")
print(f"Trọng số w: {model.coef_}")
print(f"Sai số b: {model.intercept_}")
// Kết quả (Output) sẽ xuất hiện ở đây khi nhấn Run...

lightbulbKhái niệm SVM

SVM là viết tắt của Support Vector Machine. Nó cố gắng tìm một đường (hoặc mặt phẳng) phân chia dữ liệu tốt nhất với lề rộng nhất.

Support Vectors:
Là những điểm dữ liệu nằm sát đường ranh giới nhất. Nếu xóa bỏ các điểm khác, kết quả thuật toán SVM vẫn không đổi.

Trong thư viện scikit-learn của Python, lớp SVC cung cấp mọi công cụ để xử lý bài toán này nhanh gọn lẹ.

tuneTham số C là gì?

Nó kiểm soát sự đánh đổi giữa "Lề rộng""Sai số" (điểm bị phân ranh giới nhầm bên):

  • unfold_moreC Nhỏ: Ưu tiên lề rộng hơn, chấp nhận một vài điểm nằm sai phía (Soft Margin).
  • compressC Lớn: Cố gắng phân loại đúng mọi điểm bằng mọi giá, dẫn đến lề hẹp và dễ bị overfit (Hard Margin).

publicỨng dụng thực tế

Thuật toán này cực kỳ tỏa sáng trong những bài toán phân loại phức tạp có hàng ngàn chiều dữ liệu (Features):

  • mark_email_readLọc Spam Email: Phân loại cực kỳ nhanh xác suất một email là thư rác hay thư thường dựa trên một khối lượng từ vựng khổng lồ.
  • face_retouching_naturalNhận dạng sinh trắc: Rất xuất sắc trong việc quét nhận diện khuôn mặt và nhận dạng ký tự quang học (OCR / đọc chữ viết tay).
  • biotechTin sinh học (Bioinformatics): Ứng dụng đột phá trong việc phân loại Protein, phân tích hệ gen học và chẩn đoán tế bào dị thường.

codeTip lập trình

Trong thực tế, hãy luôn chuẩn hóa dữ liệu (Scaling) ví dụ dùng StandardScaler trước khi đưa vào SVM để mô hình tìm được siêu phẳng tối ưu và tránh hội tụ chậm!