支持向量机(SVM)利用网格搜索和交叉验证进行参数选择

上一回有个读者问我:回归模型与分类模型的区别在哪?有什么不同,我在这里给他回答一下 : : : :

回归问题通常是用来预测一个值,如预测房价、未来的天气情况等等,例如一个产品的实际价格为500元,通过回归分析预测值为499元,我们认为这是一个比较好的回归分析。
 
分类问题是用于将事物打上一个标签。分类有多个特征,一个标签  .例如判断一幅图片上的动物是一只猫还是一只狗,分类通常是建立在回归之上,分类的最后一层通常要使用softmax函数进行判断其所属类别。分类并没有逼近的概念,最终正确结果只有一个,错误的就是错误的,不会有相近的概念。

这篇的知识点: 1,支持向量机    2 置信度    3网格搜索 

支持向量机

支持向量机 : 是一种按照监督学习的方式对数据进行二元分类, SVM是(支持向量机) . 可以用来做分类和回归

SVC是SVM的一种Type,是用来的做分类的                SVR是SVM的另一种Type,是用来的做回归的

SVM里有两个参数 C 和 gamma:
C是    C是惩罚系数,就是说你对误差的宽容度,这个值越高,说明你越不能容忍出现误差

gamma是   gamma是你选择径向基函数作为kernel后,该函数自带的一个参数。隐含地决定了数据映射到新的特征空间后的分布

有人会问:径向基 是什么?    径向基又叫做 : 高斯核函数/他是一个核函数

classifier =SVC(kernel='rbf',probability=True)   #此处是径向基核函数
classifier=SVC(kernel='linear') # 构建线性分类器
svc(分类)    poly(多项式)    rbf(径向基)  linear(线性分类器)
 
 

置信度

置信度  可理解为:  类别概率值 //或者可以理解为可信度 //可以理解为一个人的信誉度为1,而这个1分为了80%和20%,你可以信他80%,这就叫做置信度

y_pred_proba =classifier.predict_proba(train_X)    #获取预测数据的置信度置信度
#####  predict_proba 是获取置信度

print(y_pred_proba ) #打印出这组参数的置信度

网格搜索(Grid Search)

网格搜索(Grid Search)名字非常大气,但是用简答的话来说就是你手动的给出一个模型中你想要改动的所用的参数,程序自动的帮你把所用的参数都运行一遍
用 GridSearch  来搜索最佳参数组合的方法  :试出来最优的,最好的那组参数

SVM利用网格搜索和交叉验证进行参数选择 ,GridSearchCV是网格搜索,param_grid,是SVM,  cv = 2是折叠次数

gride =GridSearchCV(classifier,param_grid,cv=2)

kerenl是键linear是他的值,线性分类器,C是他的惩罚系数,
param_grid =[{'kerenl':['linear'],'C':[1,10,100,300]}]
网格(gride)参数:
cv_results_ : 将键作为列标题和值作为列的字典
splits 有分离,切割的意思,拆分的意思
n_splits  :只能拆分整数,交叉验证拆分的数量(折叠/迭代)。
best最好的,score得分   estimate 估计
best_score_ :  float;
best_estimator  的平均交叉验证分数,对于多度量评估.
上一篇:.Net Framework 开发Http协议


下一篇:一颗躁动的心---下决心从SLAM开始,不钻研嵌入式底层了