网格搜索法(GS)1--遍历寻找最佳参数

csv文件下载

CSV(indian_pines.csv)文件在本人博客另外连接可自由下载,怎么生成的这个文件在SVM那篇文章写了

网格搜索法

网格搜索法是指定参数值的一种穷举搜索方法,通过将估计函数的参数通过交叉验证的方法进行优化来得到最优的学习算法。
即,将各个参数可能的取值进行排列组合,列出所有可能的组合结果生成“网格”。然后将各组合用于SVM训练,并使用交叉验证对表现进行评估。在拟合函数尝试了所有的参数组合后,返回一个合适的分类器,自动调整至最佳参数组合。

通俗理解

遍历各种组合参数,得到最佳得分的分类参数,最后使用该组参数

搜索法1代码

循环遍历几种参数,拿去训练,然后比较最佳得分

from sklearn.datasets import load_iris
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
import pandas as pd
data = pd.read_csv(r'E:/Indian_pine.csv', header=None)
data = data.values
data_D = data[:, :-1]
data_L = data[:, -1]
X_train, X_test, y_train, y_test = train_test_split(data_D, data_L, test_size=0.5)

# grid search start
best_score = 0
best_parameters = {}
for gamma in [0.1, 1]:
    for c in [0.1, 1]:
        # 对于每种参数可能的组合,进行一次训练
        svm = SVC(gamma=gamma, C=c)
        svm.fit(X_train, y_train)
        # 返回给定测试数据和标签的平均精确度
        score = svm.score(X_test, y_test)
        # 找到表现最好的参数
        if score > best_score:
            best_score = score
            best_parameters = {'gamma': gamma, "C": c}
print('Best socre:{:.2f}'.format(best_score))
print('Best parameters{}'.format(best_parameters))

运行时间会长一些,慢慢等待

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值