Giới thiệu về Support Vector Machine (SVM)

svm là một thuật toán giám sát có thể được sử dụng để phân loại hoặc đệ quy. Nhưng nó chủ yếu được sử dụng để phân loại. Trong thuật toán này, chúng tôi vẽ dữ liệu dưới dạng các điểm n chiều (trong đó n là số đối tượng địa lý bạn có) và giá trị của mỗi đối tượng địa lý sẽ là một phần của liên kết. Sau đó, chúng tôi thực hiện khám phá “siêu phẳng” của các lớp được phân vùng. Siêu phẳng được hiểu đơn giản là một đường thẳng có thể chia một lớp thành hai phần độc lập.

Giới thiệu về Support Vector Machine (SVM)

Vectơ hỗ trợ được hiểu đơn giản là quan sát các đối tượng trên bản đồ tọa độ và máy vectơ hỗ trợ là ranh giới tốt nhất để phân chia hai loại.

Ở trên, chúng ta đã thấy sự phân chia siêu phẳng. Vậy làm thế nào để chúng ta định nghĩa “cách vẽ – định nghĩa siêu phẳng”. Chúng tôi sẽ tuân theo các tiêu chuẩn sau:

  • Xác định đúng siêu phẳng (tình huống 1):
  • Có 3 siêu kênh (a, b và c). Bây giờ là làn đường vượt chính xác cho nhóm ngôi sao và vòng tròn.

    Quy tắc đầu tiên chọn một siêu đường và chọn một siêu phẳng phân cách tốt nhất hai lớp. Trong ví dụ này dòng b.

    • Xác định đúng siêu phẳng (tình huống 2):
    • Ở đây ta cũng có 3 đường siêu phẳng (a, b, c) thỏa mãn quy tắc 1.

      Giới thiệu về Support Vector Machine (SVM)

      Quy tắc thứ hai là xác định khoảng cách tối đa từ điểm gần nhất của một lớp nhất định đến siêu phẳng. Khoảng cách này được gọi là “lề”, như thể hiện trong hình bên dưới, trong đó khoảng cách lề lớn nhất là đường c. Hãy nhớ rằng nếu bạn chọn sai siêu kênh có lề thấp hơn, rất có thể bạn sẽ xác định sai lớp cho dữ liệu của mình sau này khi dữ liệu tăng lên.

      • Xác định đúng siêu phẳng (tình huống 3):
      • Sử dụng các nguyên tắc trên để chọn một siêu phẳng cho:

        Giới thiệu về Support Vector Machine (SVM)

        Có thể một số người sẽ chọn hàng b vì nó có lợi nhuận cao hơn hàng a, nhưng không phải vậy vì quy tắc đầu tiên sẽ là quy tắc #1 và chúng ta cần chọn siêu phẳng để phân tích các lớp riêng lẻ. Vì vậy, con đường a là sự lựa chọn chính xác.

        • Chúng ta có thể phân loại hai lớp (tình huống 4) không?
        • Tiếp theo các bạn xem hình bên dưới, bạn không thể chia thành 2 layer riêng biệt bằng 1 dòng, tạo ra một phần chỉ có các ngôi sao và một vùng chỉ có các dấu chấm.

          Giới thiệu về Support Vector Machine (SVM)

          Ở đây, người ta sẽ chấp nhận rằng các ngôi sao bên ngoài được coi là nhiều ngôi sao bên ngoài hơn, svm có các thuộc tính cho phép bỏ qua các ngoại lệ và tìm siêu phẳng có giới hạn lớn nhất. Vì vậy, có thể nói rằng svm có khả năng chấp nhận ngoại lệ mạnh mẽ.

          • Tìm siêu phẳng chia thành các lớp (Tình huống 5)
          • Trong ví dụ bên dưới, không tìm thấy siêu phẳng tương đối nào để phân chia các lớp, vậy làm thế nào để svm chia dữ liệu thành hai lớp riêng biệt? Cho đến nay chúng ta mới chỉ nghiên cứu các đường thẳng siêu phẳng.

            Giới thiệu về Support Vector Machine (SVM)

            svm có thể giải quyết vấn đề này, nó rất đơn giản, nó có thể được giải quyết bằng cách thêm một tính năng, ở đây chúng tôi thêm tính năng z = x^2+ y^2. Dữ liệu lúc này sẽ được chuyển đổi trên trục x và z như sau

            Giới thiệu về Support Vector Machine (SVM)

            Trong biểu đồ trên, những điểm chính cần xem xét là: • Tất cả dữ liệu trên trục z sẽ dương vì nó là tổng bình phương của x và y • Trên biểu đồ, vòng tròn màu đỏ xuất hiện càng nhiều thì y càng lớn. gần trục x, z càng nhỏ => gần trục x hơn trong đồ thị (z,x) trong svm, dễ dàng có một siêu phẳng tuyến tính được chia thành hai lớp, nhưng câu hỏi đặt ra là liệu nó có là cần thiết để chúng tôi thêm tính năng phân đoạn thủ công này. Không, bởi vì svm có một kỹ thuật gọi là thủ thuật hạt nhân, đây là một tính năng thấm sâu vào không gian đầu vào và biến nó thành không gian nhiều chiều hơn, tức là nó không chia vấn đề thành các vấn đề riêng biệt, những tính năng này được gọi là hạt nhân. Tóm lại, nó thực hiện một số chuyển đổi dữ liệu phức tạp và sau đó tìm ra cách phân chia dữ liệu dựa trên các nhãn hoặc đầu ra được xác định trước của chúng tôi.

            Giới thiệu về Support Vector Machine (SVM)

            margin là khoảng cách từ siêu phẳng đến hai điểm dữ liệu gần nhất tương ứng với bộ phân loại. Trong ví dụ về táo và lê do người bán đặt, lề là khoảng cách giữa que và hai quả táo và lê gần nhất. Điều quan trọng ở đây là phương pháp svm luôn cố gắng tối đa hóa lề này, do đó thu được một siêu phẳng có khoảng cách xa nhất từ ​​quả táo và quả lê. Do đó, svm giảm thiểu việc phân loại sai các điểm dữ liệu mới được giới thiệu

            Để tìm lời giải của svm, chúng ta trực tiếp sử dụng thư viện sklearn.

            Chúng ta sẽ sử dụng hàm ***sklearn.svm.svc*** tại đây. Các bài toán thực tế thường dùng thư viện libsvm viết bằng c, có apis cho python và matlab.

            là một kỹ thuật phân loại khá phổ biến và máy vectơ hỗ trợ có nhiều ưu điểm, bao gồm khả năng tính toán hiệu quả trên các tập dữ liệu lớn. Bạn có thể liệt kê thêm lợi ích của phương pháp này, ví dụ:

Related Articles

Back to top button