针对sklearn.svm中的"dual_coef_"理解

1、决策函数的表达式

  • 公式:

    针对sklearn.svm中的"dual_coef_"理解

    其中:

    针对sklearn.svm中的"dual_coef_"理解

2、SVM经过训练后,所得到的"dual_coef_"

  • 其实"dual_coef_"就是"ai*yi" 的集合,即:

    针对sklearn.svm中的"dual_coef_"理解
  • dual_coef_ 与支持向量的类标的关系

    如果dual_coef为正,则yi为正;如果dual_coef为负,则yi为负。
# 拉格朗日系数与支持向量的类标的乘积的集合(矩阵)
a_y = clf.dual_coef_
# 支持向量的类标(转换成矩阵)
sv_y = np.array([y_train[clf.support_]])
# 拉格朗日系数
a = np.multiply(a_y, sv_y)

3、验证

  • 这里采用支持向量机的线性模型来验证
from sklearn import svm
from Orange.data import Table
import numpy as np data = Table("iris2") model = svm.SVC(C=1.0, kernel='linear')
model.fit(data.X, data.Y) print(model.dual_coef_)
print(model.support_vectors_) # 计算法向量 累加(a[i]*y[i]*sv[i]) dual_coef = 累加(a[i]y[i])
x = np.dot(model.dual_coef_ , model.support_vectors_)
print(x[0])
print(model.coef_[0])

针对sklearn.svm中的"dual_coef_"理解

model.dual_coef_:

针对sklearn.svm中的"dual_coef_"理解

model.support_vectors_:

针对sklearn.svm中的"dual_coef_"理解

x[0]

针对sklearn.svm中的"dual_coef_"理解

model.coef_[0]:

针对sklearn.svm中的"dual_coef_"理解

上一篇:Win10系统下Dotfuscator5.44出现无法找到ildasm.exe错误


下一篇:Java 8中一些常用的全新的函数式接口