《统计学习方法》-支持向量机SVM学习笔记和python源码

本文记录了《统计学习方法》中支持向量机(SVM)的关键知识点,包括理论解析和个人理解。同时,提供了参照《机器学习实战》实现的SVM Python代码示例。
摘要由CSDN通过智能技术生成

支持向量机SVM的学习笔记。对书中关键知识点进行了摘录,并加入一些自己的理解。




------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

python代码主要参照《机器学习实战》上的python代码和数据集

#author=altman
import numpy as np 
import copy as cp
import matplotlib.pyplot as plt
'''
读取数据
'''
def readData(fileName):
    matrix = []
    labels = []
    fr = open(fileName)
    for line in fr.readlines():
        line = line.strip().split("\t")
        data = list(map(float,line))
        matrix.append([data[0],data[1]])
        labels.append(data[-1])
    return matrix,labels
def clipAlpha(aj,H,L):
    if aj > H: 
        aj = H
    if L > aj:
        aj = L
    return aj
def kernelTrans(X, A, kTup):
    m,n = np.shape(X)
    K = np.mat(np.zeros((m,1)))
    if kTup[0]=='lin':
        K = X * A.T   
    elif kTup[0]=='rbf':
        for j in range(m):
            deltaRow = X[j,:] - A
            K[j] = deltaRow*deltaRow.T
        K = np.exp(K/(-1*kTup[1]**2)) 
    return K
'''
数据结构
'''
class svmStrcut(object):
    """docstring for svmStrcut"""
    def __init__(self, data,labels,C,toler,kTup):
        self.C = C
        self.data = data
        self.labels = labels
        self.toler = toler
        self.m = self.data.shape[0]
        self.b = 0.0
        self.alphas = np.mat(np.zeros((self.m,1)))
        self.eCache = np.mat(np.zeros((self.m,2)))
        self.K = np.mat(np.zeros((self.m,self.m)))
        for i in range(self.m):
            self.K[:,i] = kernelTrans(self.data, self.data[i,:], kTup)
''' 
计算误差
error=g(x)-y
'''
def calcEk(sT,k):
    value = float(np.mu
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值