1. c : float参数,默认值为1.0
错误项的惩罚系数。
c越大,即对分错样本的惩罚程度越大,因此在训练样本中准确率越高,但是泛化能力降低,也就是对测试数据的分类准确率降低。
相反,减小c的话,允许训练样本中有一些误分类错误样本,泛化能力强。
对于训练样本带有噪声的情况,一般采用减小c的方法,把训练样本集中错误分类的样本作为噪声2.
2. kernel : str参数,默认为‘rbf’
算法中提供的核函数类型,可选参数有:
linear:线性核函数poly:多项式核函数rbf:径像核函数/高斯核sigmod:sigmod核函数precomputed:核矩阵。表示自己提前计算好核函数矩阵,算法内部就不再用核函数去计算核矩阵,而是直接用我们给的矩阵。除了上面限定的核函数外,还可以给出自己定义的核函数,内部就是用自己定义的核函数来计算核矩阵。
3. degree : int型,默认为3
这个参数只对多项式核函数有用,是指多项式核函数的阶数n。如果给的核函数参数是其他核函数,则会自动忽略该参数。4. gamma :float参数,默认为auto
核函数系数,只对rbf,poly,sigmod有效。如果gamma为auto,代表其值为样本特征数的倒数,即1/n_features5. coef0 : float参数,默认值为0
核函数中的独立项,对poly和sigmod核函数有用,是指其中的参数c。6. probability : bool参数,默认为False
是否启用概率估计。这必须在调用fit之前启用,会使fit()方法速度变慢。7. shrinking : bool参数,默认为Ture
是否采用启发式收缩方式。8. tol :float参数,默认为1e^-3
SVM停止训练的误差精度9. cache_size : float参数,默认为200
指定训练所需要的的内存,以MB为单位,默认为200MB。10. class_weight : 字典类型或者是balance字符串,默认为None
给每个类别分别设置不同的惩罚参数c,如果没有给,所有类别都是默认值。如果给定参数blance,则使用y的值自动调整与输入数据中的类的频率成反比的比重。11. verbose : bool参数,默认为false
是否启用详细输出。此设置利用libsvm中的每个进程运行时设置,如果启用,可能无法在多线程上下文中使用,一般情况下设置为False。12. max_iter : int参数,默认为-1
最大迭代次数,如果为-1表示不受限制。13. random_state :int参数,默认为None
伪随机数发生器的种子,在混洗数据时用于概率估计。14. fit()方法 :
用于训练svm,具体参数已经在定义svc对象时给出,这时候只需要给出数据集x和x对应的标签y。15. predict()方法 :
基于以上的训练,对预测样本T进行类别预测,因此只需要接收一个测试集T,该函数返回一个数组表示各测试样本的类别。
16. 属性有哪些
svc.n_support_:各类各有多少个支持向量svc.support_:各类的支持向量在训练样本中的索引svc.support_vectors_:各类所有的支持向量。1. TP FP TN FN
TP(ture positives):预测为正样本,实际也为正样本的特征数;将正类预测为正类数,真实为0,预测也为0。FN(false negatives):预测为负样本,实际为正样本的特征数;将正类预测为负类数,真实为0,预测为1。FP(Flase positives):预测为正样本,实际为负样本的特征数;将负类预测为正类数, 真实为1,预测为0。TN(true negatives):预测为负样本,实际也为负样本的特征数;将负类预测为负类数,真实为1,预测也为1。2. 精确率(precision)
P = TP/(TP+FP)3. 召回率(recall)
R = TP/(TP+FN)4. 准确率
accuracy = (TP+TN)/(TP+FN+FP+TN)5. 特异性(specificity)
S = TN/(FP+TN)6. 用F1值综合评估精确率和召回率
1. 计算分割超平面
b=clf_svc.intercept_
w=clf_svc.coef_
2. 查看决策函数:decision_function中每一列的值代表距离各类别的距离
print('decision_function:\n', clf_svc.decision_function(df_x))
3. predict()函数:返回一个数组表示各测试样本的类别
print('\npredict:\n', clf_svc.predict(df_x))
1. from random import shuffle #引入随机函数
shuffle(data) #随机打乱数据
2. data = data.as_matrix()
读取excel数据训练模型时,需要将表格转换成数组,as_matrix()可将dataframe数据转换成数组。
替代函数:dataframe.values获取的是dataframe中的数据,形式为数组array。
data_train = data[:int(0.8*len(data)),:] #选取前80%为训练数据
data_test = data[int(0.8*len(data)):,:] #选取后20%为测试数据
