Hạt nhân Gaussian RBF Python

Trong bài đăng này, bạn sẽ tìm hiểu về siêu tham số hạt nhân SVM RBF [Radial Basis Function] với ví dụ mã python

qua

Ajitesh Kumar

CỐT LÕI ·

Tháng 7. 28, 20 · Hướng dẫn

Thích [2]

Bình luận

Tiết kiệm

tiếng riu ríu

15. 26K Lượt xem

Tham gia cộng đồng DZone và có được trải nghiệm thành viên đầy đủ

Tham gia miễn phí

Trong bài đăng này, bạn sẽ tìm hiểu về siêu tham số nhân SVM RBF [Radial Basis Function] với ví dụ về mã python. Sau đây là hai siêu tham số mà bạn cần biết khi đào tạo mô hình học máy với nhân SVM và RBF

  • Gamma
  • C [còn gọi là tham số chuẩn hóa]

Biết các khái niệm về tham số SVM như Gamma và C được sử dụng với hạt nhân RBF sẽ cho phép bạn chọn các giá trị Gamma và C phù hợp và đào tạo mô hình tối ưu nhất bằng thuật toán SVM. Hãy hiểu tại sao chúng ta nên sử dụng các chức năng kernel như RBF

Tại sao nên sử dụng hạt nhân RBF?

Khi tập dữ liệu không thể tách rời theo tuyến tính hay nói cách khác, tập dữ liệu là phi tuyến tính, bạn nên sử dụng các hàm nhân như RBF. Đối với tập dữ liệu có thể phân tách tuyến tính [tập dữ liệu tuyến tính], người ta có thể sử dụng hàm kernel tuyến tính [kernel="linear"]. Hiểu rõ về thời điểm sử dụng các hàm kernel sẽ giúp đào tạo mô hình tối ưu nhất bằng thuật toán SVM. Chúng tôi sẽ sử dụng bộ dữ liệu Ung thư vú Sklearn để hiểu các khái niệm nhân SVM RBF trong bài đăng này. Biểu đồ phân tán được đưa ra dưới đây thể hiện thực tế là tập dữ liệu không thể tách rời tuyến tính và có thể nên áp dụng phương pháp kernel để huấn luyện mô hình


Hình 1. Tập dữ liệu không thể tách tuyến tính


Biểu đồ trên được tạo bằng cách sử dụng hai thuộc tính đầu tiên của bộ dữ liệu ung thư vú sklearn như được hiển thị trong mẫu mã bên dưới

Java

 





x

20



 

1

import pandas as pd

2

import matplotlib.pyplot as plt

3

from sklearn import datasets

4

5

# Load the breast cancer dataset

6

#

7

bc = datasets.load_breast_cancer[]

8

df = pd.DataFrame[data=bc.data]

9

df["label"] = bc.target

10

11

________số 8

12

#

13

import matplotlib.pyplot as plt
0

14

import matplotlib.pyplot as plt
1

15

import matplotlib.pyplot as plt
2

16

import matplotlib.pyplot as plt
3

17

import matplotlib.pyplot as plt
4

18

import matplotlib.pyplot as plt
5

19

import matplotlib.pyplot as plt
6

20

import matplotlib.pyplot as plt
7




Cho rằng tập dữ liệu là phi tuyến tính, nên sử dụng phương thức nhân và do đó hàm nhân như RBF

Chức năng và tham số hạt nhân SVM RBF

Khi sử dụng nhân SVM RBF để huấn luyện mô hình, người ta có thể sử dụng các tham số sau

Tham số hạt nhân - Giá trị Gamma

Tham số gamma xác định mức độ ảnh hưởng của một ví dụ đào tạo đơn lẻ, với giá trị thấp nghĩa là "xa" và giá trị cao nghĩa là "gần". Các giá trị gamma thấp hơn dẫn đến các mô hình có độ chính xác thấp hơn và giống như các giá trị gamma cao hơn. Chính các giá trị trung gian của gamma mang lại một mô hình có ranh giới quyết định tốt. Điều tương tự cũng được thể hiện trong các ô được đưa ra trong hình 2

Các ô bên dưới biểu thị ranh giới quyết định cho các giá trị gamma khác nhau với giá trị C được đặt là 0. 1 cho mục đích minh họa. Lưu ý rằng khi giá trị Gamma tăng lên, các ranh giới quyết định sẽ phân loại các điểm một cách chính xác. Tuy nhiên, sau một thời điểm nhất định [Gamma = 1. 0 trở đi trong sơ đồ bên dưới], độ chính xác của mô hình sẽ giảm. Như vậy có thể hiểu rằng việc lựa chọn các giá trị Gamma phù hợp là rất quan trọng. Đây là mã được sử dụng

Java

 





import matplotlib.pyplot as plt
8

1



 

1

import matplotlib.pyplot as plt
9

2

from sklearn import datasets
0




Hình 2. Ranh giới quyết định cho các Giá trị Gamma khác nhau cho Hạt nhân RBF


Lưu ý một số điều sau trong các ô trên

  • Khi gamma rất nhỏ [0. 008 hoặc 0. 01], mô hình quá hạn chế và không thể nắm bắt được độ phức tạp hoặc "hình dạng" của dữ liệu. Vùng ảnh hưởng của bất kỳ vectơ hỗ trợ nào được chọn sẽ bao gồm toàn bộ tập huấn luyện. Mô hình kết quả sẽ hoạt động tương tự như một mô hình tuyến tính với một tập hợp các siêu phẳng phân tách các tâm có mật độ cao của bất kỳ cặp hai lớp nào. So sánh với sơ đồ trong phần tiếp theo, nơi các ranh giới quyết định cho một mô hình được đào tạo với nhân tuyến tính được hiển thị
  • Đối với các giá trị trung gian của gamma [0. 05, 0. 1, 0. 5], có thể thấy trên đồ thị thứ hai có thể tìm thấy các mô hình tốt
  • Đối với các giá trị gamma lớn hơn [3. 0, 7. 0, 11. 0] trong biểu đồ trên, bán kính của vùng ảnh hưởng của vectơ hỗ trợ chỉ bao gồm chính vectơ hỗ trợ và không có lượng chính quy nào với C sẽ có thể ngăn chặn quá mức

Tham số hạt nhân - Giá trị C

Nói một cách đơn giản, tham số C là tham số chuẩn hóa được dùng để đặt dung sai của mô hình nhằm cho phép phân loại sai các điểm dữ liệu nhằm đạt được sai số tổng quát hóa thấp hơn. Giá trị của C càng cao, dung sai càng nhỏ và thứ được đào tạo là một bộ phân loại có biên độ tối đa. Giá trị của C càng nhỏ thì khả năng phân loại sai càng lớn và thứ được đào tạo là bộ phân loại có biên độ mềm khái quát hóa tốt hơn trình phân loại có biên độ tối đa. Giá trị C kiểm soát hình phạt phân loại sai. Giá trị C lớn sẽ dẫn đến hình phạt phân loại sai cao hơn và giá trị C nhỏ hơn sẽ dẫn đến hình phạt phân loại sai nhỏ hơn. Với giá trị C lớn hơn, biên độ nhỏ hơn sẽ được chấp nhận nếu hàm quyết định tốt hơn trong việc phân loại chính xác tất cả các điểm đào tạo. Mô hình có thể overfit với tập dữ liệu huấn luyện. C thấp hơn sẽ khuyến khích biên độ lớn hơn, do đó chức năng quyết định đơn giản hơn, với chi phí đào tạo chính xác.  

Sơ đồ bên dưới biểu thị ranh giới quyết định với các giá trị C khác nhau đối với một mô hình được đào tạo với hạt nhân tuyến tính và bộ dữ liệu Sklearn Vú Cancer. Lưu ý ranh giới quyết định cho các giá trị khác nhau của C. Lưu ý rằng khi giá trị của C tăng, độ chính xác của mô hình tăng. Điều này phù hợp với những gì chúng ta đã biết trước đó rằng giá trị nhỏ hơn của C cho phép phân loại sai nhiều hơn và do đó độ chính xác của mô hình sẽ thấp hơn. Tuy nhiên, sau một thời điểm nhất định [C=1. 0], độ chính xác ngừng tăng


Hình 3 Ranh giới quyết định cho các Giá trị C khác nhau cho Hạt nhân Tuyến tính


Chúng ta hãy xem xét các giá trị khác nhau của C và các ranh giới quyết định liên quan khi mô hình SVM được đào tạo bằng hạt nhân RBF [kernel = "rbf"]. Sơ đồ bên dưới thể hiện mô hình được đào tạo với mã sau đây cho các giá trị khác nhau của C. Lưu ý giá trị của gamma được đặt thành 0. 1 và hạt nhân = 'rbf'

Hạt nhân RBF và Gaussian có giống nhau không?

Sự khác biệt duy nhất giữa hai mô hình là chữ K trong thuật ngữ chuẩn hóa . Ưu điểm lý thuyết chính của phương pháp hạt nhân là nó cho phép bạn diễn giải mô hình phi tuyến tính thành mô hình tuyến tính tuân theo phép biến đổi phi tuyến tính cố định không phụ thuộc vào mẫu dữ liệu.

Làm cách nào để tính hạt nhân RBF trong Python?

kernel nhập RBF >>> X, y = load_iris[return_X_y=True] >>> kernel = 1. 0 * RBF[1. 0] >>> gpc = GaussianProcessClassifier[kernel=kernel,. random_state=0]. vừa [X, y] >>> gpc. điểm[X, y] 0. 9866. >>>

Hạt nhân RBF trong SVM Python là gì?

Trong học máy, nhân hàm cơ sở hướng tâm hay nhân RBF, là một hàm nhân phổ biến được sử dụng trong các thuật toán học nhân hóa khác nhau . Đặc biệt, nó thường được sử dụng trong phân loại máy vector hỗ trợ.

Hạt nhân nào sẽ sử dụng cho hồi quy quy trình Gaussian?

Hàm nhân k[xₙ, xₘ] được sử dụng trong mô hình quy trình Gaussian chính là trái tim của nó — về cơ bản, hàm nhân cho biết mô hình .

Chủ Đề