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,它存在的意义就是自动调参,只要把参数输进去,就能给出最优化的结果和参数.但是这个方法适合于小数据集,一旦数据的量级上去了,很难得出结果.这个时候就是需要动脑筋了.数据量比较大 ...
随机推荐
- 经管/管理/团队经典电子书pdf下载
卓有有效的管理者 管理的本质 只有偏执狂才能生存 格鲁夫给经理人的第一课 影响力: 你为什么会说“是” 关键影响力:如何调动团队力量 执行 如何完成任务的学问
- git如何删除远程tag?
答: 分为两步: 1. 删除本地tag git tag -d tag-name 2. 删除远程tag git push origin :refs/tags/tag-name
- win10不能将文件拖到另外一个程序中去的解决办法
author: headsen chen date: 2019-07-25 14:48:32 notice : 个人原创 新建一个 aa.txt的文本文档: Windows Registry Ed ...
- ISO/IEC 9899:2011 条款6.5.4——投射操作符
6.5.4 投射操作符 语法 1.cast-expression: unary-expression ( type-name ) cast-expression 约束 2.除非类型名 ...
- IMDB-WIKI – 500k+ face images with age and gender labels论文学习
DEX: Deep EXpectation of apparent age from a single image 这个论文我们使用深度学习解决了在静态人脸图像中面部年龄的估计.我们的卷积神经网络使用 ...
- 【Linux】Jenkins以war包运行及开机启动配置(四)
本例介绍jenkins已war包运行及开机启动配置 环境:Linux环境(CentOS 7.4) 以war包运行 1.下载jenkins.war包 2.启动war包( 默认端口:8080,默认JENK ...
- C/C++代码静态分析工具调研
C/C++代码静态分析工具调研 摘自:https://www.jianshu.com/p/92886d979401 简述 静态分析(static analysis)是指在不执行代码的情况下对其进行分析 ...
- Python初级 4 数据的类型
一.数据类型 1.整数: int a = 3 b = 5 2.浮点数: float a = 3.0 b = 5.2 3.字符串: str a = "3.0" b = "3 ...
- matlab @(x)构造匿名函数
一起来学演化计算-matlab@(x)构造匿名函数 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://www.ilovematlab.cn/thread-81614-1 ...
- 【tshark tcpdump】linux网络排查
抓包: 1.tcpdump 2.tshark是wireshark的命令行版. tshark使用示例: ,实时打印当前http请求的url # tshark -s -i eth0 -n -f 'tcp ...