sklearn的svc参数总结及cross_validation

来源:互联网 发布:淘宝上的组装机好吗 编辑:程序博客网 时间:2024/06/07 22:21

1、svc参数的说明

SVC参数解释(1)C: 目标函数的惩罚系数C,用来平衡分类间隔margin和错分样本的,default C = 1.0;(2)kernel:参数选择有RBF, Linear, Poly, Sigmoid, 默认的是"RBF";(3)degree:if you choose 'Poly' in param 2, this is effective, degree决定了多项式的最高次幂;(4)gamma:核函数的系数('Poly', 'RBF' and 'Sigmoid'), 默认是gamma = 1 / n_features;(5)coef0:核函数中的独立项,'RBF' and 'Poly'有效;(6)probablity: 可能性估计是否使用(true or false);(7)shrinking:是否进行启发式;(8)tol(default = 1e - 3): svm结束标准的精度;(9)cache_size: 制定训练所需要的内存(以MB为单位);(10)class_weight: 每个类所占据的权重,不同的类设置不同的惩罚参数C, 缺省的话自适应;(11)verbose: 跟多线程有关,不大明白啥意思具体;(12)max_iter: 最大迭代次数,default = 1, if max_iter = -1, no limited;(13)decision_function_shape : ‘ovo’ 一对一, ‘ovr’ 多对多  or None 无, default=None(14)random_state :用于概率估计的数据重排时的伪随机数生成器的种子。
2、交叉验证

from sklearn.cross_validation import cross_val_score

metric = cross_val_score(clf,X,y,cv=5,scoring=‘ ‘).mean()

[‘accuracy‘, ‘adjusted_rand_score‘, ‘average_precision‘, ‘f1‘, ‘f1_macro‘, ‘f1_micro‘, ‘f1_samples‘, ‘f1_weighted‘, ‘log_loss‘, ‘mean_absolute_error‘, ‘mean_squared_error‘, ‘median_absolute_error‘, ‘precision‘, ‘precision_macro‘, ‘precision_micro‘, ‘precision_samples‘, ‘precision_weighted‘, ‘r2‘, ‘recall‘, ‘recall_macro‘, ‘recall_micro‘, ‘recall_samples‘, ‘recall_weighted‘, ‘roc_auc‘]

模型评估(预测的质量):存在三种方式来评估预测结果的质量
1、Estimator score method:每个估计模型都有自己的评价方式,可以直接使用
2、Scoring parameter:模型评价工具使用cross-validation(cross_validation.cross_val_score和grid_search.GridSearch)
3、Metric functions: 实现功能评估为特定目的的功能
交叉验证(cross-validation)
1)切分数据:使用train_test_split函数很容易的实现随机的切分形成training和test数据集。
x_train,x_test,y_train,y_test=cross_validation.train_test_split(iris.data,iris.target,test_size=0.4,random_state=0)
clf.svm.SVC(kernel='linear',C=1).fit(x_train,y_train)
clf.score(x_test,y_test)
2)cv:最简单的方式是使用函数cross_val_score,当cv为数字时,默认采用的是KFold或者stratifiedKFold
clf=svm.SVC(kernel='linear',C=1)
scores=cross_validation.cross_val_score(clf,iris.data,iris.target,cv=5)
scores==>得到array([1. ..., 0.96..., 0.9 ..., 0.96..., 1. ])
平均分数和标准偏差估计分数:scores.mean()  scores.std()
上面的方式cv的每次迭代都是计算的score,我们可以通过加入scoring参数来计算不同的指标
from sklearn import metrics
cross_validation.cross_val_score(clf,iris.data,iris.target,cv=5,scoring='f1')
==>得到array([ 1. ..., 0.96..., 0.89..., 0.96..., 1. ])
注:scoring的默认取值以及对应的函数名称
 Classification 
‘accuracy’sklearn.metrics.accuracy_score
‘average_precision’sklearn.metrics.average_precision_score
‘f1’sklearn.metrics.f1_score f1就是F-measure
‘precision’sklearn.metrics.precision_score
‘recall’sklearn.metrics.recall_score
‘roc_auc’sklearn.metrics.roc_auc_score
Clustering 
‘adjusted_rand_score’sklearn.metrics.adjusted_rand_score
Regression
 ‘mean_squared_error’sklearn.metrics.mean_squared_error
‘r2’sklearn.metrics.r2_score

0 0
原创粉丝点击