MCPcopy Create free account
hub / github.com/Dod-o/Statistical-Learning-Method_Code / __init__

Method __init__

SVM/SVM.py:54–81  ·  view source on GitHub ↗

SVM相关参数初始化 :param trainDataList:训练数据集 :param trainLabelList: 训练测试集 :param sigma: 高斯核中分母的σ :param C:软间隔中的惩罚参数 :param toler:松弛变量 注: 关于这些参数的初始值:参数的初始值大部分没有强要求,请参照书中给的参考,例如C是调和间隔与误分类点的系数, 在选值时通过经验法依据结果来动态调整。(本程序中的初始值参考

(self, trainDataList, trainLabelList, sigma = 10, C = 200, toler = 0.001)

Source from the content-addressed store, hash-verified

52 SVM类
53 '''
54 def __init__(self, trainDataList, trainLabelList, sigma = 10, C = 200, toler = 0.001):
55 '''
56 SVM相关参数初始化
57 :param trainDataList:训练数据集
58 :param trainLabelList: 训练测试集
59 :param sigma: 高斯核中分母的σ
60 :param C:软间隔中的惩罚参数
61 :param toler:松弛变量
62 注:
63 关于这些参数的初始值:参数的初始值大部分没有强要求,请参照书中给的参考,例如C是调和间隔与误分类点的系数,
64 在选值时通过经验法依据结果来动态调整。(本程序中的初始值参考于《机器学习实战》中SVM章节,因为书中也
65 使用了该数据集,只不过抽取了很少的数据测试。参数在一定程度上有参考性。)
66 如果使用的是其他数据集且结果不太好,强烈建议重新通读所有参数所在的公式进行修改。例如在核函数中σ的值
67 高度依赖样本特征值范围,特征值范围较大时若不相应增大σ会导致所有计算得到的核函数均为0
68 '''
69 self.trainDataMat = np.mat(trainDataList) #训练数据集
70 self.trainLabelMat = np.mat(trainLabelList).T #训练标签集,为了方便后续运算提前做了转置,变为列向量
71
72 self.m, self.n = np.shape(self.trainDataMat) #m:训练集数量 n:样本特征数目
73 self.sigma = sigma #高斯核分母中的σ
74 self.C = C #惩罚参数
75 self.toler = toler #松弛变量
76
77 self.k = self.calcKernel() #核函数(初始化时提前计算)
78 self.b = 0 #SVM中的偏置b
79 self.alpha = [0] * self.trainDataMat.shape[0] # α 长度为训练集数目
80 self.E = [0 * self.trainLabelMat[i, 0] for i in range(self.trainLabelMat.shape[0])] #SMO运算过程中的Ei
81 self.supportVecIndex = []
82
83
84 def calcKernel(self):

Callers

nothing calls this directly

Calls 1

calcKernelMethod · 0.95

Tested by

no test coverage detected