• 针对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]:

  • 相关阅读:
    使用redisList的做同步队列处理数据
    java 运行服务异常,进入服务分析工具 arthas
    springboot2 搭建webstock 简单例子
    Lambda 表达式 例子。自己看。
    简易的redis分布式锁 RedisLockUtil
    读书笔记
    Kernel panic
    golang 接口
    golang 方法
    ack oscillate
  • 原文地址:https://www.cnblogs.com/komean/p/11008586.html
Copyright © 2020-2023  润新知