《机器学习实战》源码解析(五):支持向量机

本系列以书中源码为主,稍作修改并添加注释,均实际运行可行。为免后来者踩坑,特此公开!欢迎打赏!
转载请注明出处!

from numpy import *
#SMO算法中的辅助函数
def loadDataSet(fileName):#功能:导入数据库;输入:文件名;输出:数据矩阵,标签向量
    dataMat = [];labelMat = []
    fr = open(fileName)
    for line in fr.readlines():
        lineArr = line.strip().split('\t')
        dataMat.append([float(lineArr[0]),float(lineArr[1])])
        labelMat.append(float(lineArr[2]))
    return dataMat,labelMat

#功能:在(0,m)的区间范围内随机选择一个除i以外的整数
#输入:不能选择的整数i,区间上界m
#输出:随机选择的整数
def selectJrand(i,m):
    j=i
    while(j==i):
        j = int(random.uniform(0,m))
    return j

#功能:保证aj在[L,H]里面
#输入:要调整的数aj,区间上界H,区间下届L
#输出:调整好的数aj
def clipAlpha(aj,H,L):
    if aj > H:
        aj = H
    if L > aj:
        aj = L
    return aj
#功能:简化版SMO算法
#输入:数据矩阵dataMatIn,标签向量classLabels,常数C,容错率toler,最大迭代次数maxIter
#输出:超平面位移项b,拉格朗日乘子alpha
def</
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值