sklearn学习——model_selection
sklearn中文学习文档
文章目录
- 0. 写在前面
- 1. 形成测试集和训练集
- 2. 交叉验证
- 2.1 cross_val_score
- 2.2 KFold
- 2.3 网格搜索交叉验证GridSearchCV
0. 写在前面
本博客累积一些关于sklearn中model_selection中常用的函数.
1. 形成测试集和训练集
from sklearn.model_selection import train_test_split
Xtrain,Xtest,Ytrain,Ytest = train_test_split(wine.data,wine.target,test_size=0.3,shuffle=True)
2. 交叉验证
2.1 cross_val_score
Q1: 返回的评价指标是什么?
A1: 默认每次交叉验证,使用estimator本身的评价指标,具体可以参考sklearn对该estimator的介绍。当然也可以通过参数scoring来改变
Q2 :交叉验证时,使用训练集还是全部的数据集?
A2 :严谨来说,应该使用训练集。当使用全部数据集时,存在这样一个问题:有一个数据集第一次交叉验证时被作为训练集,第二次被作为验证集,这就相当于提前告诉了模型一些数据信息,使得模型过拟合。所以要使用训练集作为交叉验证的全部数据,在每一次交叉验证时,一份作为验证集,其余作为训练集,在验证集上表现好的,还要再测试集上测试,最后得出答案。
Q3 :estimator是训练后的还是未训练的
A3 :未训练的
注意:交叉验证本身就是一个经验技术,帮助我们更好的判断模型的训练效果,但并不是在验证集和测试集上都表现好的模型就是一个好模型,因为我们不确定它们对所有未知数据的预测
from sklearn.model_selection import cross_val_scorecross_val_score(estimator,X,y=None,*,groups=None,scoring=None,cv=None,n_jobs=None,verbose=0,fit_params=None,pre_dispatch='2*n_jobs',error_score=nan,
)
Docstring:
Evaluate a score by cross-validation
顺便提一下,你可以通过以下代码查看所有的评价指标:
import sklearn
sorted(sklearn.metrics.SCORERS.keys())
2.2 KFold
也许你还会碰到KFold
对象用来交叉验证,它需要配合cross_val_score
来使用,具体的:
cv = KFold(n_splits=5, shuffle = True, random_state=42)
results = cross_val_score(estimator,X,y,cv=cv)
2.3 网格搜索交叉验证GridSearchCV
目的:使用网格搜索法进行穷尽搜索最好的参数对(一般是两个参数)。
使用:GridSearchCV实现了fit
和score
方法。如果estimator
本身实现了predict
、predict_proba
、decision_function
、transform
和inverse_transform
方法,则GridSearchCV的类对象也可以调用这些方法
GridSearchCV(estimator, # √param_grid, # √*,scoring=None, # √n_jobs=None,iid='deprecated',refit=True,cv=None, # √verbose=0,pre_dispatch='2*n_jobs',error_score=nan,return_train_score=False,
)
在实际使用中,一般下面的操作:
1. 定义一个字典类型变量param,其中key值是estimator的参数,value是该参数取值范围
2. 定义模型,该模型一定是未经过训练的
3. 定义交叉验证对象,可以使用KFold,该步可有可无
4. 定义GridSearchCV对象
5. 训练等后续操作
sklearn学习——model_selection相关推荐
- 机器学习Sklearn学习总结
Sklearn学习资料推荐: sklearn中文文档 机器学习入门必看:使用 scikit-learn 构建模型的通用模板 机器学习神器Scikit-Learn保姆教程! python机器学习_FF_ ...
- sklearn学习07——集成学习
sklearn学习07--集成学习 前言 一.集成学习 1.1.什么是集成学习? 1.2.Boosting 算法 二.AdaBoost算法及实现 2.1.AdaBoost算法 2.2.调sklearn ...
- sklearn学习04——DecisionTree
sklearn学习04--DecisionTree 前言 一.决策树原理 1.1.算法基本流程 1.2.最优划分属性的选择 二.sklearn代码实践 2.1.引入库 2.2.查看数据集信息 2.3. ...
- SKlearn学习笔记——XGBoost
SKlearn学习笔记--XGBoost 1. 概述 1.1 xgboost库与XGB的sklearn API 1.2 XGBoost的三大板块 2. 梯度提升树 2.1 提升集成算法:重要参数 n_ ...
- Sklearn学习-iris数据集学习
Sklearn学习-逻辑回归(iris数据集) 使用load_iris加载数据集,查看包含的keys 查看数据的列名,分类目标的名称 获取data和target,并打印各自的shape 拆分训练集和测 ...
- sklearn学习05——K-means
sklearn学习05--K-means 前言 一.K-means算法思想 二.代码实现 K-means算法 2.1.引入相关库 2.2.生成数据集 2.3.训练 + 预测 2.3.惯性指标(iner ...
- Sklearn学习笔记3 model_selection模块
3 Model selection and evaluation 1 sklearn.model_selection: Model Selection 1.1 Splitter Classes(分组) ...
- sklearn 学习之 model_selection
(1.1) sklearn.model_selection.KFold(n_splits=3, shuffle=False, random_state=None) 这个数据分割器与之前学到的 Grou ...
- sklearn pipeline_我的sklearn学习经验
scikit-learn是python进行数据挖掘与分析的重要而有效的工具,学习scikit-learn最重要的资料来源就是它的官网: scikit-learn: machine learning i ...
最新文章
- 2016.1.20 dubbo启动之后机器ip有问题
- iOS开发-NSArray
- 如何获取版本的 Internet 信息服务器 (IIS)
- redis+aop防重复提交
- JavaScript动态加载js文件
- mysql存储过程执行报错1175_mysql 数据库 存储过程执行报错的解决办法
- JAVA实现Token学习笔记001--Token入门案例
- 瑞典抢发区块链数字货币 E-Krona!
- python打开鼠标指定文件夹_学会python文件操作,鼠标好像没用了,学习python第10天...
- 漫画贴:16岁和36岁打球的区别,你是否怀念球场上那个年少的你?
- Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)问题解决
- SQL NOTE-VARIABLE
- Flutter高级第5篇:官方推荐的状态管理库 provider 的使用
- 3DGIS 与 BIM 融合技术方案
- java 熄灯问题_遍历搜索空间的例子:熄灯问题
- oracle to_char 进制转换_ORACLE函数TO_CHAR以及数字转换格式
- 基于jsp+springboot+mybatis+mysql美食分享平台(含论文)
- godot学习笔记1前期摸索
- 中国56个民族脚本数据
- PLSQL查询语句中日期格式使用不当会导致性能和效率很低
热门文章
- 超轻量AI推理引擎MindSpore Lite新版本发布,支撑HMS Core AI领域全面升级
- es上安装x-park TLS/SSL认证
- 发泡奶精的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 数据仓库模型篇-点外卖
- 解决!百度云管家使用QQ第三方登录时提示“由于网络原因无法载入页面 请点击刷新后重试”
- 提升工作效率技巧——360桌面美化-整理凌乱的桌面-Chinar
- java中必检异常有哪些_Java中的受检异常
- 「固件下载」分享两个下载iOS固件包的网址
- Linux笔记 [全文字数1.6W]
- 企业ERP实施之反思