針對sklearn.svm中的"dual_coef_"理解


1、決策函數的表達式

  • 公式:

    其中:

2、SVM經過訓練后,所得到的"dual_coef_"

  • 其實"dual_coef_"就是"ai*yi" 的集合,即:
  • 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])


model.dual_coef_:

model.support_vectors_:

x[0]

model.coef_[0]:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM