Python之网格搜索与检查验证-5.2
一、网格搜索,在我们不确定超参数的时候,需要通过不断验证超参数,来确定最优的参数值。这个过程就是在不断,搜索最优的参数值,这个过程也就称为网格搜索。
二、检查验证,将准备好的训练数据进行平均拆分,分为训练集和验证集。训练集和验证集的大小差不多,总体份数通过手动设置。具体过程为:

由上图可以得知,训练集和验证集是通过交叉的方式去不断训练,这样的目的就是为了获取,更加优化的参数值。
三、代码演示(这里我们通过K-近邻的算法。来确认参数值):
# K-近邻算法
def k_near_test():
# 1、原始数据
li = load_iris()
# print(li.data)
# print(li.DESCR)
# 2、处理数据
data = li.data
target = li.target
x_train, x_test, y_train, y_test = train_test_split(data, target, test_size=0.25)
# 3、特征工程
std = StandardScaler()
x_train = std.fit_transform(x_train, y_train)
x_test = std.transform(x_test)
# 4、算法
knn = KNeighborsClassifier(n_neighbors=2)
knn.fit(x_train, y_train)
# 预估
y_predict = knn.predict(x_test)
print("预估值:", y_predict)
# 5、评估
source = knn.score(x_test, y_test)
print("准确率:", source) """
交叉验证与网格搜索:
交叉验证:
1、将一个训练集分成对等的n份(cv值)
2、将第一个作为验证集,其他作为训练集,得出准确率
3、将第二个作为验证集,其他作为训练集,知道第n个为验证集,得出准确率
4、把得出的n个准确率,求平均值,得出模型平均准确率
网格搜索:
1、用于参数的调整(比如,k近邻算法中的n_neighbors值)
2、通过不同参数传入进行验证(超参数),得出最优的参数值(最优n_neighbors值)
"""
# 4、算法
knn_gc = KNeighborsClassifier()
# 构造值进行搜索
param= {"n_neighbors": [2, 3, 5]}
# 网格搜索
gc = GridSearchCV(knn_gc, param_grid=param,cv=4)
gc.fit(x_train, y_train) # 5、评估
print("测试集的准确率:", gc.score(x_test, y_test))
print("交叉验证当中最好的结果:", gc.best_score_)
print("选择最好的模型:", gc.best_estimator_)
print("每个超参数每次交叉验证结果:", gc.cv_results_)
注意:红色部分的解释,主要就是通过网格搜索和交叉验证的方式来确认超参数中的最优方案。
其中:
# 4、算法
knn_gc = KNeighborsClassifier()
# 构造值进行搜索
param= {"n_neighbors": [2, 3, 5]}
# 网格搜索
gc = GridSearchCV(knn_gc, param_grid=param,cv=4)
gc.fit(x_train, y_train)
这部分代码就是网格搜索和交叉验证的实现方式。cv为具体的份数。
四、结果:

Python之网格搜索与检查验证-5.2的更多相关文章
- 支持向量机(SVM)利用网格搜索和交叉验证进行参数选择
上一回有个读者问我:回归模型与分类模型的区别在哪?有什么不同,我在这里给他回答一下 : : : : 回归问题通常是用来预测一个值,如预测房价.未来的天气情况等等,例如一个产品的实际价格为500元,通过 ...
- Python机器学习笔记 Grid SearchCV(网格搜索)
在机器学习模型中,需要人工选择的参数称为超参数.比如随机森林中决策树的个数,人工神经网络模型中隐藏层层数和每层的节点个数,正则项中常数大小等等,他们都需要事先指定.超参数选择不恰当,就会出现欠拟合或者 ...
- 机器学习之路:python 网格搜索 并行搜索 GridSearchCV 模型检验方法
git:https://github.com/linyi0604/MachineLearning 如何确定一个模型应该使用哪种参数? k折交叉验证: 将样本分成k份 每次取其中一份做测试数据 其他做训 ...
- libsvm交叉验证与网格搜索(参数选择)
首先说交叉验证.交叉验证(Cross validation)是一种评估统计分析.机器学习算法对独立于训练数据的数据集的泛化能力(generalize), 能够避免过拟合问题.交叉验证一般要尽量满足:1 ...
- GridSearchCV网格搜索得到最佳超参数, 在K近邻算法中的应用
最近在学习机器学习中的K近邻算法, KNeighborsClassifier 看似简单实则里面有很多的参数配置, 这些参数直接影响到预测的准确率. 很自然的问题就是如何找到最优参数配置? 这就需要用到 ...
- 调参必备---GridSearch网格搜索
什么是Grid Search 网格搜索? Grid Search:一种调参手段:穷举搜索:在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果.其原理就像是在数组里找最 ...
- Sklearn-GridSearchCV网格搜索
GridSearchCV,它存在的意义就是自动调参,只要把参数输进去,就能给出最优化的结果和参数.但是这个方法适合于小数据集,一旦数据的量级上去了,很难得出结果.这个时候就是需要动脑筋了.数据量比较大 ...
- 【sklearn】网格搜索 from sklearn.model_selection import GridSearchCV
GridSearchCV用于系统地遍历模型的多种参数组合,通过交叉验证确定最佳参数. 1.GridSearchCV参数 # 不常用的参数 pre_dispatch 没看懂 refit 默认为Tr ...
- 机器学习笔记——模型调参利器 GridSearchCV(网格搜索)参数的说明
GridSearchCV,它存在的意义就是自动调参,只要把参数输进去,就能给出最优化的结果和参数.但是这个方法适合于小数据集,一旦数据的量级上去了,很难得出结果.这个时候就是需要动脑筋了.数据量比较大 ...
随机推荐
- web常用服务架构
架构风格就是一种项目的设计模式.常见的架构风格有基于客户端与服务端的.基于组件模型的(EJB).分层架构(MVC).面向服务架构(SOA)等. 一.单体架构 单体架构也称为单体系统或单体应用,就是一种 ...
- gitlab 构建常见错误
1.前端是http服务后端是https,原因生产https,测试是http服务环境.代理后端2. java 打包程序需要运行正式数据库没连上错误.打包和跑正式的一个库.3. jenkins不能直接no ...
- PHP实现执行定时任务
首先用命令检查服务是否在运行 systemctl status crond.service 如果服务器上没有装有crontab ,则可以执行 yum install vixie-cron yum in ...
- 003 spring boot访问静态资源与重定向
今天被问到重定向的问题,后续又引起了静态资源路径配置的问题,在这里做一个总结,当然,顺便添加默认访问index.html. 一:默认访问 1.默认路径 在springboot中静态资源的映射文件是在r ...
- Centos7迁移fastdfs文件系统
系统从一个地方迁移到另一个地方,数据保持不变,但是ip地址和网络情况不一样了,最困难的是要迁移的那个地方还么有互联网,这TM就坑了,所以想到将FastDFS存储的目录整体拷贝过去,这个方法简单粗暴,这 ...
- Spring的Bean的生命周期方法执行顺序测试
通过一个简单的Maven工程来演示Spring的Bean生命周期函数的执行顺序. 下面是工程的目录结构: 直接贴代码: pom.xml文件内容: <?xml version="1.0& ...
- 【转载】 tf.split函数的用法
原文地址: https://blog.csdn.net/uestc_c2_403/article/details/73350457 由于tensorflow 版本更新问题 用法略有修改 ----- ...
- ISO/IEC 9899:2011 条款6.9——外部定义
6.9 外部定义 语法 1.translation-unit: external-declaration translation-unit external-declaration extern ...
- Spring cloud微服务安全实战-4-3常见的微服务安全整体架构
整体架构 这个图适合中小公司.麻雀虽小 五脏俱全.微服务架构所需要做的事在这个图里基本都有了. 绿色的不讲,主要讲的是这三块(橘黄色的).后面的和运维相关,会讲,不会讲的太深 订单服务 首先来写一个订 ...
- windows xp能连上网但是不能上网的解决办法
说明:我是使用这个办法解决了,并不能针对所有的情况. 具体情况是,在win xp下,能够看到当前的无线网络,并且也能够连接到无线网络. 但是连接上无线网络之后,他的ip地址和网关是没有改变的.所以也连 ...