📜  支持向量机 (SVM) 中的主要核函数

📅  最后修改于: 2022-05-13 01:55:33.330000             🧑  作者: Mango

支持向量机 (SVM) 中的主要核函数

内核函数是一种用于将数据作为输入并将其转换为处理数据所需形式的方法。使用“内核”是因为支持向量机中使用的一组数学函数提供了操作数据的窗口。因此,核函数通常会转换训练数据集,以便非线性决策面能够在更多维空间中转换为线性方程。基本上,它返回标准特征维度中两点之间的内积。
标准核函数方程:
K (\bar{x}) = 1, if ||\bar{x}|| <= 1
K (\bar{x}) = 0, Otherwise
主要内核功能:-
为了实现内核功能,首先,我们必须使用命令提示符终端安装“scikit-learn”库:

pip install scikit-learn
  • Gaussian Kernel:用于在没有关于数据的先验知识时进行转换。

K (x, y) = e ^ - (\frac{||x - y||^2} {2 \sigma^2})

  • Gaussian Kernel Radial Basis 函数 (RBF):和上面的核函数一样,增加了径向基方法来改进变换。

K (x, y) = e ^ - (\gamma{||x - y||^2})
K (x, x1) + K (x, x2) (Simplified - Formula)
K (x, x1) + K (x, x2) > 0 (Green)
K (x, x1) + K (x, x2) = 0 (Red)

高斯核图

代码:

python3
from sklearn.svm import SVC
classifier = SVC(kernel ='rbf', random_state = 0)
 # training set in x, y axis
classifier.fit(x_train, y_train)


python3
from sklearn.svm import SVC
classifier = SVC(kernel ='sigmoid')
classifier.fit(x_train, y_train) # training set in x, y axis


python3
from sklearn.svm import SVC
classifier = SVC(kernel ='poly', degree = 4)
classifier.fit(x_train, y_train) # training set in x, y axis


python3
from sklearn.svm import SVC
classifier = SVC(kernel ='linear')
classifier.fit(x_train, y_train) # training set in x, y axis


  • Sigmoid Kernel:这个函数相当于神经网络的两层感知器模型,用作人工神经元的激活函数。

K (x, y) = tanh (\gamma.{x^T y}+{r})

Sigmoid 内核图

代码:

蟒蛇3

from sklearn.svm import SVC
classifier = SVC(kernel ='sigmoid')
classifier.fit(x_train, y_train) # training set in x, y axis
  • 多项式内核:它表示特征空间中训练数据集中的向量与内核中使用的原始变量的多项式的相似性。

K (x, y) = tanh (\gamma.{x^T y}+{r})^d, \gamma>0

多项式核图

代码:

蟒蛇3

from sklearn.svm import SVC
classifier = SVC(kernel ='poly', degree = 4)
classifier.fit(x_train, y_train) # training set in x, y axis
  • 线性内核: 当数据线性可分时使用。

代码:

蟒蛇3

from sklearn.svm import SVC
classifier = SVC(kernel ='linear')
classifier.fit(x_train, y_train) # training set in x, y axis